Криптокодирование на MCU

Oct 20, 2003 2 Replies

Добрый день!



Поставили мне такую задачу:



Есть некоторый документ с 2D-кодом, в котором (в 2D-коде) содержится примерно 1Кбайт информации. Это код печатается на спец.принтере в разных местах (несколько тысяч мест) и должен считываться в других местах (несколько десятков тысяч мест). Необходимо защитить информацию в 2D-коде от изменения электронной подписью, печатаемой в этом же 2D-коде, уникальной для каждого из мест, где печатают 2D-код, но так, чтобы проверить эту подпись (и установить место печати) можно было бы в любом месте считывания. Для считывания и печати используются специализированные устройства, подключенные к компьютеру, причем везде разные, но поддерживающие общий стандарт



2D-кодировки при печати и считывании. Т.е. разместить контроллер между устройством печати/считывания и компьютером нереально.

Я подумал, что это можно сделать на основе ключа на один из доступных внешних портов компьютера (COM, LPT, USB и т.д.), внутри которого стоит MCU шифрующий или расшифровывающий данные с/на 2D-метку по алгоритму чего-то похожего на PGP с открытым ключом. Т.е. MCU втыкается в порт компьютера, через который ему дается команда на шифрование и данные, которые надо "подписать". Он внутри выполняет шифрацию и возвращает те же самые данные, но с электронной подписью, после чего программа компьютера отправляет их на печать. Так мы получим "скрытый" внутри MCU алгоритм и "скрытые" там же публичный (общий для всех) и секретный (уникальный для этого MCU) ключи, т.е. снизим риск подделки до минимума. Для исключения воровства самого шифрующего контроллера будут приняты жесткие организационные меры и мне сказали, что случай воровства MCU можно в расчет не брать.



Думал еще над тем, что можно взять что-то типа MD5SUM и прямо в генерируемой им контрольной сумме перемешать и раскидать биты номера "шифратора", но мне кажется, что это будет не очень стойко к "взлому".



Отсюда вопросы:


  1. Получается, что нужен MCU с небольшим кол-вом ног, небогатой периферией, но приличной внутренней памятью и высокой производительностью. Кто что посоветует посмотреть на эту тему?


  1. Возможно уже были или есть аналогичные готовые или полуготовые решения. Подскажите, где что поискать/посмотреть?

  2. Нужно ли сертифицировать алгоритм кодирования при условии, что он будет использоваться в гос.структурах?


  1. Наверняка есть способы/алгоритмы кодирования, оптимизированные под применение на MCU с 8-ми или 16-разрядной арифметикой. Подскажите названия?

  2. Я всетаки считаю, что случай воровства самого MCU и несанкционированная работа через него в этом случае возможны. Как в таком случае лучше защитить ключ? Пароль, который теоретически можно купить? Сеанс связи через интернет с "разрешающим" работу данного ключа сервером?

P.S. Сразу скажу, что в криптографии я почти полный чайник - имею только общее представление о том, как работает PGP в целом и никакого понятия об используемых им алгоритмах.


Привет!

"Andrew V. Miheev"

[поскипано]

периферией,

Если что-то будешь делать сам, то придётся для начала получить лицензии на:

1) разработку, 2) изготовление, 3) распространение, 4) использование и обслуживание СКЗИ и ЭЦП, а затем сертифицировать изделие. Раньше эти функции выполняла ФАПСИ, а сейчас это передано в ФСБ и Минсвязи. Если будешь сам выдумывать алгоритм, то его придется сертифицировать через Гостехкомиссию.

Попробуй в ru.crypt сходить, там это более эхотажно. А искать надо что-то вроде платы "Криптон" или просто сертифицированной библиотеки, которые выпускают фирмы "ЛанКрипт", "КриптоПро" и т.д. Почти все они в ru.crypt постоянно сидят.

Обязательно. Коммерческим структурам в этом смысле легче, а вот для госструктур и публичных организаций в соответствии с ФЗ "Об ЭЦП" N1 от января 2001 года обязательно использование только сертифицированных средств.

ГОСТ 28147-89 "Алгоритм шифрования" ГОСТ 34.11-94 "Хэш-функция" ГОСТ 34.10-94 "ЭЦП" или ГОСТ 34.10-2001 "ЭЦП на эллиптических кривых"

Это называется "компрометация ключа ЭЦП". Решение этих вопросов осуществляется при помощи правильных криптографических протоколов (не путать с алгоритмами!) и созданием соответствующей инфраструктуры. Ключевое понятие - "сертификат открытого ключа ЭЦП". RTFM.

Брюс Шнаер "Прикладная криптография" Андрей Чмора "Современная прикладная криптография" FAQ эхоконференции ru.crypt ФЗ "О защите информации" ФЗ "Об электронной цифровой подписи"

С уважением,

Виталий Насенник

Привет, Vitali!

[skip]

Т.е. даже в том случае, если сама информация не кодируется и присутствует в явном читаемом виде?

Спасибо. Обязательно посмотрю.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required