roboforum.ru

Технический форум по робототехнике.
Текущее время: 18 фев 2025, 20:16

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: умный замок
СообщениеДобавлено: 12 апр 2005, 17:41 
Не в сети

Зарегистрирован: 10 апр 2005, 22:09
Сообщения: 30
Хотя это и не от носится напрямую к роботостроению, всёже думаю здесь найдутся люди которые смогут ответить на этот вопрос.

Хочу сделать электронный замок с ключом на ИК.

В данный момент всё работает так:
1. Замок посылает случайное число.
2. Ключ обрабатывает это число по зашитой в него формуле.
3. Замок обрабатывает тоже число по тойже формуле.
4. ключ возвращает результат замку.
5. замок сравнивает свой результат с ответом ключа и открывает\не открывает дверь.

Вопрос: какой должна быть формула, чтобы нельзя было по перехваченным данным её возпроизвести и сделать клон ключа?

P.S. В качестве контроллера используется at90s2313 но так как он снят с производства, предпологается заменить его на atmega8(нужен uart).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 апр 2005, 18:26 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10990
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
то что ты описал это шифрование с открытым ключём

читай алгоритмы на PGP шифрование.
логично использовать 64 , 128, 256 или 1024 бит ключа

реализовано на практике и применяется во многих авто сигналках,
код по понятным причинам закрыт.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 апр 2005, 18:28 
Не в сети

Зарегистрирован: 18 дек 2004, 03:14
Сообщения: 155
Откуда: Москва
Ну, например, облегчённый вариант шифра ЭльГамаля

Ключ -- два больших числа, К1 и К2
Замок посылает ключу случайное число Х
Ключ возводит Х в степень К1 по модулю К2, возвращает результат замку.

Цитата:
Вопрос: какой должна быть формула, чтобы нельзя было по перехваченным данным её возпроизвести и сделать клон ключа

Это зависит только от ценности того, что заперто  :lol:

atmega8 предпочтительнее, из-за её аппаратного умножения и бОльшей памяти.

А вообще, ключевые слова -- криптография, открытое шифрования, RSA. Тема очень богато представлена в инете.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 апр 2005, 18:41 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
ASin писал(а):
Ну, например, облегчённый вариант шифра ЭльГамаля

Ключ -- два больших числа, К1 и К2
Замок посылает ключу случайное число Х
Ключ возводит Х в степень К1 по модулю К2, возвращает результат замку.


Думается даже, что К2 может быть открытым :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 апр 2005, 19:33 
Не в сети

Зарегистрирован: 18 дек 2004, 03:14
Сообщения: 155
Откуда: Москва
=DeaD= писал(а):
Думается даже, что К2 может быть открытым :)


Может... А смысл (в контексте ключа и замка)?  :roll:
Веселее делать его разным для разных ключей. И вести лог доступа  :lol:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 апр 2005, 20:21 
Не в сети

Зарегистрирован: 10 апр 2005, 22:09
Сообщения: 30
как возвести в степень - это понятно =)
немоглибы вы обьяснить ламеру - что такое "по модулю"??


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 апр 2005, 20:32 
Не в сети

Зарегистрирован: 18 дек 2004, 03:14
Сообщения: 155
Откуда: Москва
http://isec.net.ru/algoritms.php?art=2

а ещё есть такой дивный сайт -- Яндекс  :lol:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 апр 2005, 20:47 
Не в сети

Зарегистрирован: 10 апр 2005, 22:09
Сообщения: 30
Спасибо, теперь я немного определился с шифрами, хотя с модулем так и не врубился..

http://criptograf.narod.ru/kr3.html вот тут прочитал, всё замечательно, с формулами.

забегая в перёд - как по вашему мнению, сколько разрядов(двоичных) потянет AVRка, чтобы вычисления не растягивались более чем на пару секунд?
потянет ли она вообще разрядность при которой можно будет говорить о хоть как-то стойкости алгоритма?

приношу извенения за своё ламерство...  :oops:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 апр 2005, 21:17 
Не в сети

Зарегистрирован: 18 дек 2004, 03:14
Сообщения: 155
Откуда: Москва
crazy писал(а):
Спасибо, теперь я немного определился с шифрами, хотя с модулем так и не врубился..


Разделить по модулю А == Получить остаток от деления на А

crazy писал(а):
забегая в перёд - как по вашему мнению, сколько разрядов(двоичных) потянет AVRка, чтобы вычисления не растягивались более чем на пару секунд?
потянет ли она вообще разрядность при которой можно будет говорить о хоть как-то стойкости алгоритма?


Ну даже не знаю  :oops: Смотря как алгоритмы писать... Смотря что такое "стойкость алгоритма"...  Смотря какая частота контроллера... Опыта нет так навскидку оценить :oops:

Интуитивно, имхо, для 128 бит передача по ИК будет происходить дольше.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 апр 2005, 21:21 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
crazy писал(а):
забегая в перёд - как по вашему мнению, сколько разрядов(двоичных) потянет AVRка, чтобы вычисления не растягивались более чем на пару секунд?
потянет ли она вообще разрядность при которой можно будет говорить о хоть как-то стойкости алгоритма?


Если не сильно оптимизируя, то получим - перемножить 2 числа длиной N байт займет для AVR-ки времени K*N*N где K - некая константа (зависит от метода умножения, ну скажем пусть будет 5), возведение числа длиной N байт в степень длиной N байт по модулю числа длиной N байт же займет времени соответственно что-то около 16*K*N*N*N (нам потребуется сделать 8*N шагов, на каждом шаге - 2 умножения длительностью K*N*N, еще и вычесть может придется, но это явно меньше K*N операций, так что не считаем вообще вычитание за затраты времени), это используя двоичное возведение в степень по модулю.

Итого если хотите делать все за 1 секунду, то получается что у вас при штатных максимальных 16МГц есть на все про все 16'000'000 операций, делим их на 16*5, получаем 200'000, извлекаем корень третьей степени и получаем чуть больше 50 байт, т.е. 400бит.

По всем меркам это очень неплохая стойкость, 256-бит вроде уже в коммерции применяют...

Надеюсь нигде сильно не ошибся :)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO