Всем привет! Хочу сделать самую простую сигналку с обратной связью. Для более или менее безопасного общения нужно шифровать передачу, чтобы приемник и передатчик поняли и принимали данные только друг от друга.
В принципе устройство, для которого делаю сигналку особо в защите не нуждается. Это так, от навязчивых граждан, которые не задумываются о чужом имуществе, поэтому даже если теоретически захватят данные при передаче команд, особой опасности от этого не будет. Интересуюсь темой шифрования для себя.
Вопрос: Если использовать какой-нибудь хэш с уникальным ключом(который будут хранится в передатчике и приемнике) и добавить какой-нибудь уникальный параметр (например время в UNIX) при шифровании и одновременно с хэшом передать этот уникальный параметр в приемник и потом уже сравнить полученный шифр, то как смогут "взломать" данный вариант шифрования?
Для простаты приведу пример:
Допустим передать хэш типа "12345abcd" в котором будет ключ и динамический параметр (например время в UNIX).
Хэш и время, которое было использовано при формировании хэша передается по воздуху.
В приемнике прошит такой же ключ и приемник формирует хэш с применением ключа и времени, который поступил с хэшом. Таким образом получается уникальный хэш при каждой передаче. А т.к. ключ прошит в само устройство, то получить ее без физ. контакта не получится.
Насколько сложно "взломать" такое устройство?
В вопросе шифрования не очень силен, поэтому если вопрос глупый, извините заранее))
hint000, если учебная задача, как лабораторка студента, то сойдет.
динамический параметр (например время в UNIX)
Вообще, подойдет любое случайное число в качестве проверочного параметра.
Его нужно сформировать и запомнить на стороне А, передать на сторону Б вместе с сообщением в зашифрованном виде.
На стороне Б сообщение расшифровать, и к проверочному параметру прибавить некоторое значение по заданной функции (в простейшем случае делают +1).
Отправляют стороне А ответ в зашифрованном виде с этим новым значением проверочного параметра.
На стороне А опять расшифровывают, достают из памяти старое значение, прибавляют некоторое значение и сравнивают с новым значением. Если они совпадают, то можно сделать вывод, что сторона Б знает как шифровать и расшифровать сообщение, а не просто повторять зашифрованный сигнал.
Ziptar, характерная особенность сигнализации - периодическая передача одних и тех же команд от пульта и отчётов на пульт. Злоумышь тупо запишет шифрованое сообщение, а позже воспроизведёт запись, не нуждаясь в расшифровке. Поэтому автор изобретает что-то наподобие криптографической соли. Хотя и сумбурно описывает, но некоторая логика есть. Хотя соль не совсем так применяется. https://ru.wikipedia.org/wiki/Атака_повторного_вос... https://ru.wikipedia.org/wiki/Соль_(криптография)
hint000, Да, можно такой шифр можно легко записать и позже применить, но я не просто так для уникального значения взял время в UNIX. Можно также на приемнике использовать какое-нибудь условие по времени шифрования. Если с момента создания ключа прошло > n секунд, то не принимать ответ или попросить создать новый ключ