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

Добрый день!

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

Есть некоторый документ с 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 в целом и никакого понятия об используемых им алгоритмах.

Reply to
Andrew V. Miheev
Loading thread data ...

Привет!

"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 ФЗ "О защите информации" ФЗ "Об электронной цифровой подписи"

С уважением,

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

Reply to
Vitali Nassennik

Привет, Vitali!

[skip]

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

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

Reply to
Andrew V. Miheev

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.