Как сделать шифратор/дешифратор для передачи команд

Обсуждаем приемники, передатчики, радиомикрофоны, жучки, генераторы, ВЧ-усилители, антенны и прочее радиохозяйство
Ответить
Konstantin11
Первый раз сказал Мяу!
Сообщения: 20
Зарегистрирован: Ср дек 21, 2011 00:24:40

Как сделать шифратор/дешифратор для передачи команд

Сообщение Konstantin11 »

Приветствую форумчан!

Передача данных по радиоканалу осуществляется с помощью приемопередатчика Si1000 на 868MHZ.

С одной стороны управление происходит с компьютера , переходник USB-TTL.

С другой стороны МК Attiny848 который принимает команду на включение/выключение двух отдельных друг от друга устройств с обратной связью , т.е. проверяется статус в каком положении находится устройство.

Hex пакет передачи открытый (пример: FF 55 01 01 85 00 ) , поэтому запросто можно перехватить команды устройства и управлять с другого пульта управления.

Может кто-нибудь сталкивался с такой задачей , подскажите у кого какие идеи , как можно реализовать шифратор/дешифратор команд , чтоб невозможно было при перехвате дублировать передаваемый пакет с другого компьютера.
roman.com
Друг Кота
Сообщения: 9147
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Как сделать шифратор/дешифратор для передачи команд

Сообщение roman.com »

Вопрос конечно интерсный)) Сам приемопередатчик Si1000 на 868MHZ стандартный и перехватить вполне реально... даже простейшим радиосканером...
Обычно для шифрования используют стандартный алгоритмы шифрования... типа таких - https://ru.wikipedia.org/wiki/Advanced_ ... n_Standard
Такое ещё не делал)) Хотя это для передачи данных, а для двух отдельных друг от друга устройств с обратной связью на включение/выключение думаю можно придумать самому, попроще)) С одной стороны и с другой стороны МК, шифратор/дешифратор.
Может типа таблицы замещения, чтобы коды не повторялись... и добавить в пакет избыточную информацию - случайный набор цифр... и добавить в пакет контрольную сумму, с неизвесным никому полиномом и начальным значением... )) Например контрольная сумма может высчитаваеться хитро... например от всех пакетов, начиная с первого пакета... При этом контрольную сумму расчитать невозможно, не имея всех пакетов сообщения... )) И т.д. Вариантов много))
Аватара пользователя
pasha_zv
Мучитель микросхем
Сообщения: 460
Зарегистрирован: Пт фев 17, 2017 11:18:07
Откуда: Ставрополь-Донское

Re: Как сделать шифратор/дешифратор для передачи команд

Сообщение pasha_zv »

шифрование методом магического квадрата, да еще с плавающим ключем.
запарятся расшифровывать.
LIVE - EVIL
Konstantin11
Первый раз сказал Мяу!
Сообщения: 20
Зарегистрирован: Ср дек 21, 2011 00:24:40

Re: Как сделать шифратор/дешифратор для передачи команд

Сообщение Konstantin11 »

[uquote="roman.com",url="/forum/viewtopic.php?p=3364848#p3364848"]Вопрос конечно интерсный)) Сам приемопередатчик Si1000 на 868MHZ стандартный и перехватить вполне реально... даже простейшим радиосканером...
Обычно для шифрования используют стандартный алгоритмы шифрования... типа таких - https://ru.wikipedia.org/wiki/Advanced_ ... n_Standard
Такое ещё не делал)) Хотя это для передачи данных, а для двух отдельных друг от друга устройств с обратной связью на включение/выключение думаю можно придумать самому, попроще)) С одной стороны и с другой стороны МК, шифратор/дешифратор.
Может типа таблицы замещения, чтобы коды не повторялись... и добавить в пакет избыточную информацию - случайный набор цифр... и добавить в пакет контрольную сумму, с неизвесным никому полиномом и начальным значением... )) Например контрольная сумма может высчитаваеться хитро... например от всех пакетов, начиная с первого пакета... При этом контрольную сумму расчитать невозможно, не имея всех пакетов сообщения... )) И т.д. Вариантов много))[/uquote]

Спасибо , что откликнулись !

Была у меня идея на подобие вашей , добавить в пакет избыточную информацию типа серийного номера каждого приёмного устройства с общим с пакетом контрольной суммой . Как Вы и сказали вариантов то много но Я в электронике разбираюсь , а в программировании к сожалению нет , поэтому ничего не получилось хоть и имею первоисточник программы МК приёмника .
Вы пишете такое ещё не делали , но похоже опыт у Вас есть , может попробуете сделать нечто подобное ? Ели что пишите в личку договоримся.

Добавлено after 10 minutes 24 seconds:
[uquote="pasha_zv",url="/forum/viewtopic.php?p=3364930#p3364930"]шифрование методом магического квадрата, да еще с плавающим ключем.
запарятся расшифровывать.[/uquote]

Спасибо что откликнулись !

Погуглил после вашего ответа, идея отличная , но к сожалению мне эту идею не осилить , тут нужен программист , а Я просто электронщик.
Я был бы рад , если бы кто нибудь мог бы воплотить эту идею (разумеется не безвозмездно)
roman.com
Друг Кота
Сообщения: 9147
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Как сделать шифратор/дешифратор для передачи команд

Сообщение roman.com »

я не программист... я только учусь)) Помочь только советом. )) Сам тоже думал...
сам по себе магический квадрат ничего не даст. Данные будут повторяться... Понятно, что расшифровать это не составит труда)) С плавающим ключем? Это другое дело)) Только как передавать ключ? И т.д. ...

Вообще задача не стоит в шифровании данных, задача стоит в защите от несанкционированного доступа. Для управления двумя нагрузками можно просто забить в массив таблицу кодов вкл/выкл нагрузкой, при этом коды вкл/выкл никогда не будут повторяться. Простой перебор кодов не поможет, т.к. если код не верный - сработает защита. При повторной передачи кода тоже сработает система защиты и на экране появится сообщение "попытка несанкционированного доступа". )) Проблема только в ограниченной памяти МК... Массив должен переодически обновляться... например по специальной команде или автоматически, когда закончатся коды... ))

А ещё в современных радиомодулях есть функция - Перемежитель. (https://ru.wikipedia.org/wiki/Перемежитель). Это как дополнение...))
kaetzchen
Друг Кота
Сообщения: 11994
Зарегистрирован: Пн апр 19, 2010 00:04:18
Откуда: Малороссия

Re: Как сделать шифратор/дешифратор для передачи команд

Сообщение kaetzchen »

ну да.. забить коды заранее а траффик подсолить языком Эзопа!
Morroc
Друг Кота
Сообщения: 19495
Зарегистрирован: Чт фев 20, 2014 18:57:55

Re: Как сделать шифратор/дешифратор для передачи команд

Сообщение Morroc »

Шахту ракетную защищаем ? :) Простейшего шифрование, когда ключ, вшитый в приемник и передатчик, и точный алгоритм известен только программисту в случае единичных девайсов, imho, достаточно. Ну добавить еще систему команд посложнее. Кто будет париться взломом нестандартной защиты ? ЦРУ ? ФСБ ? ИГИЛ ? :)
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Konstantin11
Первый раз сказал Мяу!
Сообщения: 20
Зарегистрирован: Ср дек 21, 2011 00:24:40

Re: Как сделать шифратор/дешифратор для передачи команд

Сообщение Konstantin11 »

[uquote="Morroc",url="/forum/viewtopic.php?p=3366687#p3366687"]Шахту ракетную защищаем ? :) Простейшего шифрование, когда ключ, вшитый в приемник и передатчик, и точный алгоритм известен только программисту в случае единичных девайсов, imho, достаточно. Ну добавить еще систему команд посложнее. Кто будет париться взломом нестандартной защиты ? ЦРУ ? ФСБ ? ИГИЛ ? :)[/uquote]


Друг Кота , Вы высказали то , что Я и хотел сказать , мне нужно хоть как то отбить желание от попытки запросто повторить подобное , а то тут предлагают действительно шахту защищать от ЦРУ !!!
Простое шифрование с нестандартным алгоритмом , где ключ вшит в программу , и хорошо бы немного усложнить команды , с разницей , что с одной стороны используется ПК а с другой МК , тем более , что первоисточник программы у меня имеется в открытой форме и ничего не нужно ломать и считывать с МК.
Асы программирования где Вы , отзовитесь и воплотите идею в железо !
kaetzchen
Друг Кота
Сообщения: 11994
Зарегистрирован: Пн апр 19, 2010 00:04:18
Откуда: Малороссия

Re: Как сделать шифратор/дешифратор для передачи команд

Сообщение kaetzchen »

ну дело в том, что ЮСБ- Трансививеры(реже), а ЮСБ Ресиверы на 433 и 800 Мгц щас стоят просто копейки, а в инете есть красивый GUI софт(кто ищет тот найдет..),
с так наз Learn Function ну и Replay там тоже есть! Отдельным макаром реализуются готовые брелки "нажал и забыл"
roman.com
Друг Кота
Сообщения: 9147
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Как сделать шифратор/дешифратор для передачи команд

Сообщение roman.com »

Morroc писал(а):Кто будет париться взломом нестандартной защиты ? ЦРУ ? ФСБ ? ИГИЛ ?
Да любой радиолюбитель)) Например Я :))) Или любой радиолюбитель, в радиусе нескольких километров от вас..)) У Si1000 мощность+20 dBm (0,1 Ватт).

Стандартный приемопередатчик Si1000 на 868MHZ. https://www.silabs.com/documents/public ... Si1000.pdf

У Si1000 обычный стандартный протокол, как и во многих чипах. Обычная GFSK https://ru.wikipedia.org/wiki/GFSK ...Фильтр Гаусса https://ru.wikipedia.org/wiki/Фильтр_Гаусса ...с NRZ кодированием ... )) https://ru.wikipedia.org/wiki/Физическое_кодирование
1.jpg
(130.73 КБ) 858 скачиваний
Пакет у Si1000 обычный стандартный...
2.jpg
(171.59 КБ) 770 скачиваний
Взломать такой приемопередатчик - нефиг делать)) Радиолюбители взламывают всё))
https://www.youtube.com/watch?v=3HMThJkW_O0
И даже GSM взламывают, а не то что простейший радиомодуль))
https://www.youtube.com/watch?v=nOYVoR3B2hY
...
и т.д. ))

Простейшего шифрования будет недостаточно)) Всё таки нужна таблица шифрования... иначе никак...
Morroc
Друг Кота
Сообщения: 19495
Зарегистрирован: Чт фев 20, 2014 18:57:55

Re: Как сделать шифратор/дешифратор для передачи команд

Сообщение Morroc »

[uquote="roman.com",url="/forum/viewtopic.php?p=3368119#p3368119"]Взломать такой приемопередатчик - нефиг делать)) Радиолюбители взламывают всё))[/uquote]
Это же насколько должно быть скучно жить :))

[uquote="roman.com",url="/forum/viewtopic.php?p=3368119#p3368119"]И даже GSM взламывают, а не то что простейший радиомодуль))[/uquote]
Про него больше известно, чем про неизвестный протокол обмена с неизвестным шифрованием, который применяется несколько раз в сутки. Ну присобачить часы еще и чтоб алгоритм с ключом зависели от времени - радиолюбитель забодается и взломает к пенсии шлагбаум или ворота, вот праздник то будет :)

[uquote="Konstantin11",url="/forum/viewtopic.php?p=3367834#p3367834"]Асы программирования где Вы , отзовитесь и воплотите идею в железо ![/uquote]
А в каком месте проблема то ? Придумайте какой нибудь кадр обмена с командами и параметрами и перед передачей самый простейший вариант - это все со всеми байтами xor с ключом, в приемнике обратно. Дальше навороты по вкусу. По мне так даже "эффекта неуловимого джо" достаточно если эта штука в единичном экземпляре и работает всего несколько раз в день. Можно еще два передатчика сделать на разных частотах с разными ключами и наборами команд, ловим 2 одинаковых команды, если поймали - выполняем, для "радиолюбителя" сюрприз будет гарантировано в том бардаке, который сейчас в эфире. Чтобы нельзя было записать и передать команду лучше всего использовать двусторонний обмен и тогда вообще ушифроваться можно.
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
roman.com
Друг Кота
Сообщения: 9147
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Как сделать шифратор/дешифратор для передачи команд

Сообщение roman.com »

Так много написали.. и ничего конкретного))
Morroc писал(а):взломает к пенсии шлагбаум или ворота
)) коды записывыаются на компьютер... и обработка идёт в автоматическом режиме)) поэтому не важно сколько времени это займёт... как только соберётся достаточно данных о вашем шлагбауме... он будет взлома))
Morroc писал(а):Придумайте какой нибудь кадр обмена с командами и параметрами и перед передачей самый простейший вариант - это все со всеми байтами xor с ключом, в приемнике обратно.
Ну так вот и придумайте... вопрос именно про это.
Все алгоритмы используют Операцию ХОР с ключом, в приемнике обратно. - https://ru.wikipedia.org/wiki/Advanced_ ... n_Standard
Вопрос только в самом ключе или алгоритме шифрования... простая операция ХОР с ключом, в приемнике обратно. - вас никак не защитит.
Или нужно постоянно менять ключ (после кажной передачи) или использовать другой алгоритм.

В простейшем случае забить коды (массив) заранее в приёмник и передатчик... случайными числами... белый ШУМ... и использовать Операцию ХОР с этими числами. На выходе получим шумоподный сигнал)) Взломать такой алгоритм невозможно, белый ШУМ ещё никто не взломал))
Одна проблема - память для массива в МК ограничена. Тогда подключить к МК внешнюю флешку... на несколько гигабайт)) Для шлагбаума кодов хватит на несколько лет..)) Потом придётся обновлять массив в флешке...
Morroc
Друг Кота
Сообщения: 19495
Зарегистрирован: Чт фев 20, 2014 18:57:55

Re: Как сделать шифратор/дешифратор для передачи команд

Сообщение Morroc »

[uquote="roman.com",url="/forum/viewtopic.php?p=3374431#p3374431"]Ну так вот и придумайте... вопрос именно про это.[/uquote]
Я не вижу тут над чем думать. Готовых алгоритмов полно, надо лишь выбрать степень параноидальности, определиться однонаправленная передача будет ли двунаправленная и подобрать соответствующий.

[uquote="roman.com",url="/forum/viewtopic.php?p=3374431#p3374431"]Вопрос только в самом ключе или алгоритме шифрования... простая операция ХОР с ключом, в приемнике обратно. - вас никак не защитит.
Или нужно постоянно менять ключ (после кажной передачи) или использовать другой алгоритм.[/uquote]
Если команда одна и никак не меняется - не защитит. Ключ конечно можно менять и даже перебирать в приемнике, ориентируясь на контрольную сумму блока команды (если влом синхронизацию какую то делать). Или использовать там и там часы с батарейкой. Запутать надо ведь не ЦРУ с ФСБ, а малость двинутого случайного человека, думаю ему надоест довольно быстро и защите нужно продержаться только это время.

[uquote="roman.com",url="/forum/viewtopic.php?p=3374431#p3374431"]В простейшем случае забить коды (массив) заранее в приёмник и передатчик... случайными числами... белый ШУМ... и использовать Операцию ХОР с этими числами. На выходе получим шумоподный сигнал)) Взломать такой алгоритм невозможно, белый ШУМ ещё никто не взломал))
Одна проблема - память для массива в МК ограничена.[/uquote]
Если ключ один - это почти тоже самое, только ключ длинный и его подбирать долго. В плане ограничения памяти можно просто написать свой собственный генератор псевдослучайной последовательности и тогда ключом будет значение "random.seed".

[uquote="roman.com",url="/forum/viewtopic.php?p=3374431#p3374431"]Тогда подключить к МК внешнюю флешку... на несколько гигабайт)) Для шлагбаума кодов хватит на несколько лет..)) Потом придётся обновлять массив в флешке...[/uquote]
Навсегда хватит :) И памяти МК скорее всего тоже.
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Аватара пользователя
vlasovzloy
Друг Кота
Сообщения: 20068
Зарегистрирован: Чт янв 26, 2012 16:44:29
Откуда: Таксимо

Re: Как сделать шифратор/дешифратор для передачи команд

Сообщение vlasovzloy »

частоту менять после каждого байтика рандомно. отправили такой то байтик, приемник отвечает ок, частота сегодня будет такая. перестроились оба, опять байтик отправили, опять частота будет такая. и так несколько раз поговорили с друг другом на разных частотах. если все совпало, команда принята
Мои поставщики запчастей с отличной репутацией
texnomag.ru
radioremont.com
pl-1.org
4ip.info
elitan.ru
roman.com
Друг Кота
Сообщения: 9147
Зарегистрирован: Вт мар 13, 2012 12:16:13
Откуда: .ru

Re: Как сделать шифратор/дешифратор для передачи команд

Сообщение roman.com »

vlasovzloy писал(а):частоту менять после каждого байтика
Не поможет... )) И даже это вас не спасёт )) - https://ru.wikipedia.org/wiki/Псевдослу ... ей_частоты

Современные приёмники могут АВТОМАТИЧЕСКИ принимать и записывать всё сигналы, на разных частотах, на разных диапазонах... с записью на жёсткий диск... и последующим их декодированием... )) Даже если сигнал на разных частотах, программа АВТОМАТИЧЕСКИ определит что это один и тот же сигнал, только на разных частотах... )) Вопрос только в софте...
https://www.youtube.com/watch?v=EK7oNxERNus
Сейчас таких приёмников навалом. И даже для телефона...))
https://www.youtube.com/watch?v=LUNCMEs2qX8
...
и т.д.))
Morroc писал(а):однонаправленная передача будет ли двунаправленная
Однозначно двунаправленная. Мы должны получать на пульт подтверждение открытия шлагбаума... или что у нас там... ))
Morroc писал(а):Если ключ один - это почти тоже самое, только ключ длинный и его подбирать долго. В плане ограничения памяти можно просто написать свой собственный генератор псевдослучайной последовательности и тогда ключом будет значение "random.seed".
Если ключ один - это не тоже самое. Любой алгоритм имеет свою криптостойкость. Любой алгоритм, имеющий фиксированный алгоритм шифрования, с конечным количеством ключей, может быть взломан... Вопрос только в вычислительной мощности... )) Кратко вот.))
Аватара пользователя
vlasovzloy
Друг Кота
Сообщения: 20068
Зарегистрирован: Чт янв 26, 2012 16:44:29
Откуда: Таксимо

Re: Как сделать шифратор/дешифратор для передачи команд

Сообщение vlasovzloy »

ну значит два телеграмма с обоих сторон поставить. ркн пока взломать не могут
Мои поставщики запчастей с отличной репутацией
texnomag.ru
radioremont.com
pl-1.org
4ip.info
elitan.ru
Ответить

Вернуться в «Радиотехника: приемники, передатчики, антенны»