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

Do you have a question? Post it now! No Registration Necessary

Threaded View
Добрый день!

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

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

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

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

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

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

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

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

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

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

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

--
С уважением, Андрей Михеев.



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

"Andrew V. Miheev"

Quoted text here. Click to load it
[поскипано]

Quoted text here. Click to load it
периферией,
Quoted text here. Click to load it

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

Quoted text here. Click to load it

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

Quoted text here. Click to load it

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

Quoted text here. Click to load it

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

Quoted text here. Click to load it

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

Quoted text here. Click to load it

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

С уважением,

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



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

Привет, Vitali!


[skip]

Quoted text here. Click to load it

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

Quoted text here. Click to load it


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

--
С уважением, Андрей Михеев.


Site Timeline