ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
29 марта
1247180 Топик полностью
Nikolay_Po (07.10.2022 14:40, просмотров: 151) ответил klen на я код по ссылке еще лет пять назад переписал и использую. но жто аеs, он жеж блочный а не потоковый...
Я делал так (уверен, что это снижает стойкость, но...): в начале каждого пакета, передавал в открытом виде 128-битный серийный номер пакета (не нулевой!). Номера не повторяются, раз в 10 минут сохраняются в кольцевой буфер ЭСПЗУ с CRC32 на обеих сторонах. Если устройство выключалось, то сначала загружается последний сохранённый в ЭСПЗУ номер, к нему прибавляется число более чем на 10 минут работы (чтобы гарантированно отбросить переданные и записанные с эфира между 

сохранением номера и перезагрузкой пакеты) Принимаются только пакеты с серийным номером более ранее использованного (с учётом добавки 10+минут после загрузки устройства). Если пакет потерян, не принят приёмником, а интервал передачи пакетов миновал, приёмник самостоятельно инкрементирует ожидаемый серийный номер пакета (если интервал между пакетами фиксирован и примерно известен. В случае, если принят пакет с большим номером, чем учёл приёмник, и пакет усешно расшифрован, приёмник считает пакет достоверным и обновляет счётчик, записав новое значение в ЭСПЗУ и начав новый период записи в энергонезависимую, защищённую память.

Далее, уникальный серийный номер принятого пакета преобразуется небольшим каскадом РСЛОС в вектор инициализации блочного шифра и с этим вектором дешифруется пакет.

Алгоритм требует обратной связи. Если приёмник перезагружался, на передатчике нужно толкнуть счётчик серийных номеров вперёд на значение, большее, чем у приёмника.

Если данных недостаточно для заполнения очередного блока внутри пакета, добавляются произвольные байты "соли", чем случайнее - тем лучше.

Таким образом, для каждого пакета, гарантируется синхронизация шифра. При этом, так же, гарантируется отсутствие повторов векторов инициализации, а значит, обеспечивается какая-никакая стойкость и обеспечивается защита от повтора записи ранее переданных пакетов. Разумеется, при потере связи с приёмником, передатчик должен прекращать работу и передачу достоверных пакетов раньше, чем истечёт интервал в условные 10 минут - чтобы злоумышленник не использовал записанные пакеты как достоверные сразу с момента перезапуска приёмника за пределами 10-минутного интервала передатчика. Это опять требование к какой-никакой обратной связи.

Другими словами, если связь потеряна, то при приближении длительности отказа связи к длительности интервала записи ЭСПЗУ, передатчик должен принудительно останавливать свою работу и возобновлять только по команде оператора - чтобы злоумышленник не записал с эфира пакеты, которые после перезагрузки приёмника могут быть приняты им как достоверные. Злоумышленник не знает их содержания, но может использовать для подачи действительных данных в неподходящий момент включения приёмника.