реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Шифрование данных в памяти, Механизмы реализации шифрования данных обрабатываемых микроконтроллеро
Stasevuch
сообщение Apr 2 2009, 18:42
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 6-11-07
Пользователь №: 32 112



Интересует тема шифрования даннх обрабатываемх контроллером и в последствии ханищихся во внешней памти . Сосотав устройства - некий источник ASC кода ( к примеру возьмём последовательный интерфейс ) , данные приходят в микроконтроллер , маркируются и отправляются на хранение в энергонезависимую память. В определённой степени накопитель данных. По запросу данные считываются из памяти , только вот считываться они длжны уже шифроваными. Каковы могут быть алгоритмы шифрования данных по средствам контроллеров семейства AVR. Может есть библиотеки для подобных задач? Или опыт решения подобных технических заданий .
Go to the top of the page
 
+Quote Post
Rst7
сообщение Apr 2 2009, 19:11
Сообщение #2


Йа моск ;)
******

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



Не так давно обсуждали некоторые моменты аналогичного устройства. В основном, все зависит от стоимости данных, сохраняемых на носитель. А технические моменты не очень сложны - вполне по силам и RSA, и AES. Часто хватает XTEA.

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

Рассказывайте подробности, будем обсуждать.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Apr 3 2009, 04:38
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Из постановки вопроса не понятно, данные должны храниться зашифрованными во внешней памяти для того, чтобы:
Злоумышленник, физически выдрав энергонезависимую память из платы, не смог считать из нее данные as-is ?
или
Их нужно считать в зашифрованном виде просто для передачи по какому-то открытому каналу, чтобы не тратить время на шифрование при передаче в run-time ?
Или вы имели ввиду что-то еще?
А канал, по которому поступают данные в устройство, не проще будет перехватить?


Цитата(Rst7 @ Apr 3 2009, 00:11) *
Если злоумышленник не имеет возможности подменить само устройство, то возможна организация системы с одноразовым блокнотом

Можно про одноразовый блокнот пояснить, что он из себя представляет, какой алгоритм?


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
Палыч
сообщение Apr 3 2009, 05:27
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(Andy Mozzhevilov @ Apr 3 2009, 07:38) *
Можно про одноразовый блокнот пояснить, что он из себя представляет, какой алгоритм?
Принцип этого метода шифрования легко находится в интернете. Но, в чистом виде этот метод в данном случае не применим, т.к. поток данных не ограничен, то и ключ будет иметь бесконечную длину.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Apr 3 2009, 05:32
Сообщение #5


Йа моск ;)
******

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



Цитата
Можно про одноразовый блокнот пояснить, что он из себя представляет, какой алгоритм?


http://ru.wikipedia.org/wiki/Шифр_Вернама

А основная идея в регистраторах такая - когда снимается информация, на ее место пишется новый шифроблокнот. Потом, по мере поступления информации, выполняется xor с уже имеющимся шифроблокнотом.

Цитата
т.к. поток данных не ограничен


Ограничен. Размером накопителя smile.gif


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Stasevuch
сообщение Apr 3 2009, 05:36
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 6-11-07
Пользователь №: 32 112



Собственно данные вполне могут храниться в памяти в открытом (не шифрованном виде). А вот их появление из недр памяти в открытый канал как раз таки и должно сопровождаться шифрованием. В роли открытого канала , опять таки выступает тот же последовательный порт. Открытые данные предстваляют собой символьную строку фиксированной длинны.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Apr 3 2009, 05:38
Сообщение #7


Йа моск ;)
******

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



Цитата
А вот их появление из недр памяти в открытый канал как раз таки и должно сопровождаться шифрованием.


Ах так это не совсем регистратор. Тогда любой алгоритм на выбор - например AES (вполне надежно) или XTEA, если не боитесь серьезных противников.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
ssvSerge
сообщение Apr 4 2009, 07:52
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 95
Регистрация: 22-01-09
Пользователь №: 43 819



Цитата(Stasevuch @ Apr 2 2009, 21:42) *
Интересует тема шифрования даннх обрабатываемх контроллером и в последствии ханищихся во внешней памти.
По запросу данные считываются из памяти, только вот считываться они длжны уже шифроваными.

В целом задача достаточно тривиальна.
Вам надо определиться с несколькими вопросами:
1) Насколько велика ценность хранимых данных. Другими словами как много усилий надо
потратить злоумышленнику что бы вы сказали "узнал - ну и бог с тобой"
2) Насколько велика вероятность взлома используемой однокристалки.
Опытные люди понижают(или снимают) напряжение питания через
строго заданный промежуток времени после подачи команды стирания.
В результате стираются биты защиты, а данные во Flash остаются. После
этого дешифрование данных становится тривиальной задачей.
3) Но (1) и (2) это всё мелочи. Проблемы со взломом оборудования
составляют совсем не большой процент по сравнению с отказами самого
оборудования. Вам надо выбирать такой алгоритм шифрования, при котором
потеря одного (или нескольких) блоков данных во внешней памяти не повлияла
на шифрование-расшифровывание остальных.

Собственно без решения этих вопросов определиться с алгоритмом или
библиотекой вам не удасться.
Сразу хотелось бы предостеречь от "самой лучшей" защиты.
От хороших фокусников вы не защититесь.

Озвучьте ваши мысли по этим вопросам, после этого можно будет предложить
что-либо.

Сообщение отредактировал ssvSerge - Apr 4 2009, 07:54
Go to the top of the page
 
+Quote Post
dch
сообщение Apr 4 2009, 10:24
Сообщение #9


Профессионал
*****

Группа: Участник
Сообщений: 1 179
Регистрация: 15-09-04
Из: 141070 г. Королев МО, улица Горького 39-121
Пользователь №: 661



никто не видел реализацию gpg для embedded приложений?
Go to the top of the page
 
+Quote Post
Stasevuch
сообщение Apr 4 2009, 16:15
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 6-11-07
Пользователь №: 32 112



К вопросу об определении ряда факторов влиющих на степень ценности информации и вероятности их взлома на аппаратном уровне.
Предположим что такие пути подхода к информации , как демонтаж микросхемы памяти ,или взлом Flash не рассматриваются. И вполне допустим простой алгоритм криптовки. Проблемма разве что может заключаться в том , что шифрованию подлежат исключительно цифры , а не символы.(ну это на мой неопытный взгляд проблемма , может не всё так уж проблематично). Это может быть некий алгоритм , котрорый прячет полезную информацию в бесполезном "мусоре" знаков . В том то вся и беда , что ранее не сталкивался с подобной задачей.

Нарыл алгоритм TEA. Но его реализация изображена на примере С. Не пинайте , но на бейсик это может кто перевести.

Routine, written in the C language, for encoding with key k[0] - k[3]. Data in
v[0] and v[1].
void code(long* v, long* k) {
unsigned long y=v[0],z=v[1], sum=0, /* set up */
delta=0x9e3779b9, /* a key schedule constant */
n=32 ;
while (n-->0) { /* basic cycle start */
sum += delta ;
y += ((z<<4)+k[0]) ^ (z+sum) ^ ((z>>5)+k[1]) ;
z += ((y<<4)+k[2]) ^ (y+sum) ^ ((y>>5)+k[3]) ;
} /* end cycle */
v[0]=y ; v[1]=z ; }


Decode Routine
void decode(long* v,long* k) {
unsigned long n=32, sum, y=v[0], z=v[1],
delta=0x9e3779b9 ;
sum=delta<<5 ;
/* start cycle */
while (n-->0) {
z-= ((y<<4)+k[2]) ^ (y+sum) ^ ((y>>5)+k[3]) ;
y-= ((z<<4)+k[0]) ^ (z+sum) ^ ((z>>5)+k[1]) ;
sum-=delta ; }
/* end cycle */
v[0]=y ; v[1]=z ; }
Go to the top of the page
 
+Quote Post
Rst7
сообщение Apr 4 2009, 19:54
Сообщение #11


Йа моск ;)
******

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



Цитата
Нарыл алгоритм TEA. Но его реализация изображена на примере С. Не пинайте , но на бейсик это может кто перевести.


Ну, во-первых, возьмите XTEA. Во-вторых - учите Си. В-третьих - покурите что-нибудь типа "Прикладной Криптографии" Б. Шнайдера.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
sensor_ua
сообщение Apr 5 2009, 05:55
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



Цитата
на бейсик это может кто перевести

Для PIC, но якобы на Бейсике
http://www.picbasic.co.uk/forum/showthread.php?p=54888
Привет от google;)


--------------------
aka Vit
Go to the top of the page
 
+Quote Post
ssvSerge
сообщение Apr 5 2009, 18:03
Сообщение #13


Частый гость
**

Группа: Участник
Сообщений: 95
Регистрация: 22-01-09
Пользователь №: 43 819



Цитата(Stasevuch @ Apr 4 2009, 19:15) *
Предположим что такие пути подхода к информации , как демонтаж микросхемы памяти, или взлом Flash не рассматриваются.
И вполне допустим простой алгоритм криптовки.

А вы уверены, что вам вообще нужна шифрование - расшифровывание?
Судя по тому, что вы написали, то "оно" вам не нужно вообще. Ведь вы
даже не предполагаете факт доступа ко внешней памяти.

Ну, а если у вас задача стоит именно так, как вы сказали, то посмотрите
на алгоритм DES. Если вы выберете старый вариант (не 3DES, а простой
DES) то будет всё очень быстро и весьма надёжно. У него есть дополнительные
режимы "ECB", "CBC", "CBF, "OBF". ECB - ваш выбор. Остальные вам не нужны.
Более того - они для вас - зло. Получите весьма хороший "набор знаков".
Реализаций - полно.

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

Сергей.

Сообщение отредактировал ssvSerge - Apr 5 2009, 18:14
Go to the top of the page
 
+Quote Post
Stasevuch
сообщение Apr 8 2009, 11:56
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 6-11-07
Пользователь №: 32 112



Может подход и делетанский в вопросе шифрования , но вот так вот ! Я без понятия что за алгоритм шифрования в итоге получилось следующее :
Берём строку длинной в 48 символов . Её содержание : (цифры + доп знаки) по таблице ASC Dec (48-63)
В этой же строке в конце последние 8 символов - временная метка ЧЧ:ММ:СС
Выделяю из временной метки секунды , прибавляю 32 к значению секунд , что бы при декодировании не влезть в служебные непечатные символы ASC кода . и к ASC коду каждого символа в строке прибался значение временной метки. Потом что что получилось (секунды из временной метки+32+код ASC шифруемого символа+ № позиции в строке шифруемого символа ) переожу вновь в ASC код и отправляю в открытый канал . Да , и значение ключа (секундная метка + 32 ) вписываю в тело шифрованой строки , место ключа в строке , так же меняется. Может такой код и раз-плюнуть взломать, но для моих целей - с головой хватает . И не надо меня пинать за бейсик. Мы в институтах на програмёра не учились .
Go to the top of the page
 
+Quote Post
ssvSerge
сообщение Apr 8 2009, 19:54
Сообщение #15


Частый гость
**

Группа: Участник
Сообщений: 95
Регистрация: 22-01-09
Пользователь №: 43 819



Цитата(Stasevuch @ Apr 8 2009, 14:56) *
Я без понятия что за алгоритм шифрования...
Может такой код и раз-плюнуть взломать, но для моих целей - с головой хватает.

Если вас устраивает качество такого шифрования,
то и отлично. Реализуйте и используйте.

Вы только должны чётко понимать, что является
секретом в вашем случае. Это - алгоритм. Секрет
никому раскрывать нельзя по определению
(в том числе и заказчику). Иначе мероприятие теряет
всякий смысл. Да, еще момент - продумайте что надо
будет сделать в случае компрометации секрета.

И, вы правы, не стоит рассчитывать на какую-либо
стойкость вашего решения. Взломать его можно
будет автоматическим способом.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 5th July 2025 - 02:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.01487 секунд с 7
ELECTRONIX ©2004-2016