|
Помогите подобрать алгоритм шифрования |
|
|
|
Jan 7 2009, 10:40
|
Частый гость
 
Группа: Новичок
Сообщений: 85
Регистрация: 2-10-08
Пользователь №: 40 646

|
Есть устройство, которое принимает некие данные и записывает их на внешнюю EEPROM, сделано оно на МК, тини2313. Задача такая, что бы никто кроме пользователя устройства не мог расшифровать эти данные (ну или подбор ключа занимал как можно больше времени), алгоритм нужен асимметричный, что бы, даже если хакер получит дамп памяти микроконтроллера, открытые ключи которые он оттуда достанет не помогли ему в расшифровке. Плюс ко всему код алгоритма не должен занимать большим, так как осталось не особо много места на МК. Сейчас занялся алгоритмом RSA, но прочитал, что ключ для стойкости должен быть не менее 1024 бит, а я не представляю где его хранить.
|
|
|
|
|
Jan 7 2009, 11:02
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата Сейчас занялся алгоритмом RSA, Годится. Цитата но прочитал, что ключ для стойкости должен быть не менее 1024 бит, а я не представляю где его хранить. Как где? Это же всего 128 байт. На выбор - либо в EEPROM проца, либо в памяти программ. С доступом по LPM. Другое дело - скорости шифрования там очень маленькие. Не пугает?
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Jan 7 2009, 11:43
|
Частый гость
 
Группа: Новичок
Сообщений: 85
Регистрация: 2-10-08
Пользователь №: 40 646

|
Цитата(Rst7 @ Jan 7 2009, 14:02)  Годится. Как где? Это же всего 128 байт. На выбор - либо в EEPROM проца, либо в памяти программ. С доступом по LPM.
Другое дело - скорости шифрования там очень маленькие. Не пугает? Да не там скорости не большии данные идут порциями по 50 байт, в среднем каждые полчаса. А что такое LPM?
|
|
|
|
|
Jan 7 2009, 11:50
|
Частый гость
 
Группа: Участник
Сообщений: 149
Регистрация: 2-06-08
Из: Москва
Пользователь №: 38 003

|
Цитата(Xenom0rph @ Jan 7 2009, 14:43)  .... А что такое LPM? LPM - ассемблерная команда (для архитектуры AVR) - загрузить (в регистр) байт из памяти программ. Наверное имелось ввиду, что ключ должен располагаться в той области памяти программ, для которой возможно исполнение данной команды.
Сообщение отредактировал smac - Jan 7 2009, 11:51
|
|
|
|
|
Jan 7 2009, 12:48
|
Частый гость
 
Группа: Участник
Сообщений: 107
Регистрация: 1-07-07
Пользователь №: 28 823

|
Цитата(Xenom0rph @ Jan 7 2009, 13:40)  ... как можно больше времени... необходимо Вам задать это время - час? месяц? год? - а потом выбирать алгоритм.
|
|
|
|
|
Jan 7 2009, 16:55
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата необходимо Вам задать это время - час? месяц? год? - а потом выбирать алгоритм. Вы много знаете алгоритмов шифрования с открытым ключем и более-менее обозримыми вычислениями? А ведь именно такая задача у топикстартера. Имеет смысл рассмотреть вопрос длинны ключа. Цитата Сильно сомневаюсь, что в Тиню влезет многознаковая арифметика Спокойно  Во-первых, кода там как раз немного, намного больше требуется ОЗУ. Во-вторых, надо взять ATMega48 вместо Tiny2313 - дешевле, размер на плате даже меньше, ресурсов больше. В-третьих, требуется произвести только 2 операции для шифрования - возведение в степень (причем, для быстродействия имеет смысл взять e=3, т.е. будет 3 умножения) и собственно остаток от деления. Теперь посмотрим, что мы имеем по ОЗУ. Если длинна ключа n-бит, и e=3, то после возведения в степень e имеем размер буфера 3n. Для умножения вроде бы дополнительных буферов не нужно, все можно выполнить по месту. Ключ можно брать прямо по месту, на него озу тратить не надо. Кроме того, нас не интересует результат деления, а только остаток. Значит, результат у нас получится прямо в буфере после возведения в степень. Т.е. при ключе 1024 бита (128 байт) необходим буфер ОЗУ размером 128*3=384 байта. ATMega48 имеет 512 байт ОЗУ супротив 128 у Tiny2313, так что как раз войдет  Вообщем, я вроде не вижу проблем в реализации шифрования RSA с ключем длинной 1024 бита на мелком AVR.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Jan 7 2009, 17:18
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата требование алгоритма с открытым ключем неочевидно при постановке вопроса "стартпостером" А это что? Цитата алгоритм нужен асимметричный, что бы, даже если хакер получит дамп памяти микроконтроллера, открытые ключи которые он оттуда достанет не помогли ему в расшифровке.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Jan 7 2009, 19:21
|
Частый гость
 
Группа: Участник
Сообщений: 107
Регистрация: 1-07-07
Пользователь №: 28 823

|
Цитата(Rst7 @ Jan 7 2009, 20:18)  А это что? Это и непонятно. Есть доступ к ключу - и только?
|
|
|
|
|
Jan 7 2009, 20:09
|
Частый гость
 
Группа: Участник
Сообщений: 107
Регистрация: 1-07-07
Пользователь №: 28 823

|
Цитата(Rst7 @ Jan 7 2009, 22:50)  Вам пофлудить охота? Русским языком топикстартером написано, что требуется шифрование с открытым ключем. Асимметричность - это тоже один из признаков такого шифрования. Где неясность? Что за тон? Чему обязан?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|