Модераторы: PILOT, ManiaK, Mazzi

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Электронный ключь, На МК (зашитить по максимуму) 
:(
    Опции темы
Alex1984
Дата 31.1.2006, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 299
Регистрация: 6.3.2005
Где: Киев

Репутация: 2
Всего: 2



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

КЛЮЧ ЗАВЕДОМО БУДЕТ ПОПАДАТЬ В ЧУЖЫЕ РУКИ (ЗАЩИТИТЬ ОТ ПОДДЕЛКИ)

Одна из идей создать в обоих МК прогу которая будет генерировать каждые десять секунд код, колюч отсылает код на центральный МК, а он сравнивает со значением полученым самостоятельно. Разумееться, что при подключении они переходят в одну отправную точку.
По приходу какогото числа (заданого) из ряда в памяти, отправная точка тоже меняеться.
Отправные точки тоже запрограмированы в МК.
Еще много что нужно учесть. Один придумывает, второй ламает =)
Интерефно получеться.

Интересует минимальная цена.



PM MAIL WWW ICQ   Вверх
maxim1000
Дата 31.1.2006, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 1
Всего: 110



проблема в том, что те, к кому
Цитата(Alex1984 @ 31.1.2006, 12:30 Найти цитируемый пост)

КЛЮЧ ЗАВЕДОМО БУДЕТ ПОПАДАТЬ В ЧУЖЫЕ РУКИ

могут вытащить оттуда МК, скопировать его память на другой такой же МК и спаять себе второй ключ...

если же пытаться обезопасить от программных взломов, можно покопать что-нибудь в сторону цифровой подписи - центральный МК генерирует случайное число, отправляет его на другой, тот его подписывает и результат отсылает назад, центральный проверяет...


--------------------
qqq
PM WWW   Вверх
makwen
Дата 31.1.2006, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 163
Регистрация: 9.11.2005
Где: Киев

Репутация: 1
Всего: 1



Цитата

могут вытащить оттуда МК, скопировать его память на другой такой же МК и спаять себе второй ключ...

В этом случае нужно прошивку привязать к серийному номеру МК, который есть уникальным и больше не повторяется. А можно, что-то еще поцепить к МК, к этому элементу имел доступ только МК. И что б в прошивке МК, была реализованиа функция, которая сравнивает серийный номер этого элемента, или что-то другое.
PM MAIL   Вверх
Romikgy
Дата 31.1.2006, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 3
Всего: 146



Имхо у последних МК есть бит , от которого чип просто не читается (в смысле памяти), но работает


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Alexei
Дата 31.1.2006, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 382
Регистрация: 20.8.2003

Репутация: 4
Всего: 4



Цитата(maxim1000 @ 31.1.2006, 14:07 Найти цитируемый пост)

если же пытаться обезопасить от программных взломов, можно покопать что-нибудь в сторону цифровой подписи - центральный МК генерирует случайное число, отправляет его на другой, тот его подписывает и результат отсылает назад, центральный проверяет..

Это вламывается легко- есть такая штуки СофтАйс и Ида.В программе находится место,где принимается решение и за нопевается.
Надо чтобы в ключе делались какие-нибудь важные для программы действия.
PM MAIL   Вверх
Alex1984
Дата 31.1.2006, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 299
Регистрация: 6.3.2005
Где: Киев

Репутация: 2
Всего: 2



Вот я и говорю, что нужно чтоб программа была и в МК и в ключе, и сравнивали коды генерируемве ними только по им известному закону. проблемма в синхронизации программ и в реализации протокола обмена данными.
По послылкам перехватывая их тоже можно написать прогу
Считать программу не оеально, так как она защищена битами защиты.
можно, но это промышленный шпионаж не слабого уровня, дешевле будет покупать ключи smile
PM MAIL WWW ICQ   Вверх
makwen
Дата 1.2.2006, 00:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 163
Регистрация: 9.11.2005
Где: Киев

Репутация: 1
Всего: 1



Alex1984
Немешало тебе почитать криптографические основы безопасности, а именно алгоритмы шифрования такие как: алгоритмы симметрического шифрования, алоритмы асимметрического шифрования и т.д.

PM MAIL   Вверх
Alex1984
Дата 1.2.2006, 01:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 299
Регистрация: 6.3.2005
Где: Киев

Репутация: 2
Всего: 2



makwen
пасиб
PM MAIL WWW ICQ   Вверх
Fin
Дата 1.2.2006, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дракон->Спать();
**


Профиль
Группа: Участник
Сообщений: 687
Регистрация: 4.1.2006

Репутация: нет
Всего: 10



Можно часть функций сделать в одном МК, другую часть в другом МК. Так чтобы, только при стыковке двух МК, программный код состовлял единое целое. Если сделать, скажем еше 16 вариантов компоновки программы. Плюс электронные подписи. Получется, что 2 МК будут уникальны в своем роде.


--------------------
Пролетал мимо.
PM MAIL   Вверх
Alex1984
Дата 1.2.2006, 01:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 299
Регистрация: 6.3.2005
Где: Киев

Репутация: 2
Всего: 2



PM MAIL WWW ICQ   Вверх
cardinal
Дата 1.2.2006, 01:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 8
Всего: 99



Когда я был на Expo 2004 я видел нечто похожее, только для защиты программ помоему. Помоему "ключ" действовал так:
втыкаешь его в RS232 разъем, а прога смотрит есть ли он там или нет. При этом информация от RS232 идет через эту фишку насквозь. Как фирма называется не помню, но посмотри в инете - может чего похожее найдешь...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Alex1984
Дата 1.2.2006, 02:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 299
Регистрация: 6.3.2005
Где: Киев

Репутация: 2
Всего: 2



cardinal
Цитата
При этом информация от RS232 идет через эту фишку насквозь.

не понял как работает

Ркиптография рулит, только вот сообщение меняться не будет, и следовательно и коды МК и ключа. Что мешает перехватить кодированое сообщение, записать его и просто отсылать по потребности на МК. вот в чем загвозка
PM MAIL WWW ICQ   Вверх
Alex1984
Дата 1.2.2006, 03:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 299
Регистрация: 6.3.2005
Где: Киев

Репутация: 2
Всего: 2



можно криптографией воспользоваться, передавая код и какую-то произвольную добавку.
тогда каждый раз посыка будет другой. Вопрос только в том на сколько это будет надежно при использовании коротих ключей, и какой алгоритм максимально разгрузит МК.
Каие идею еще?
PM MAIL WWW ICQ   Вверх
adonin
Дата 2.2.2006, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 16.12.2005
Где: Новочеркасск Рост овская обл.

Репутация: нет
Всего: 5



Можно попробовать так:
Аппаратный ключ имеет уникальный серийный номер (возможно серийный номер контроллера). По этому номеру ассимметричным методом (Например RSA) получаем цифровую подпись. Записываем подпись в память ключа.
Устройство, к которому подключён аппаратный ключ считывает серийный номер, подпись и с использованием открытого ключа проверяет валидность подписи.

Простым копированием памяти аппаратного ключа защита не взламывается (подпись не будет соответствовать серийному номеру ключа).
Возможность подделать аппаратный ключ появляется только если известен закрытый ключ, используемый при создании подписи (это не так уж просто - RSA криптостойкий алгоритм)

Надёжность метода в данном случае определяется криптостойкостью алгоритма электронной подписи и честностью ваших сотрудников (Закрытый ключ можно всегда выкупить)

Это сообщение отредактировал(а) adonin - 2.2.2006, 14:42
--------------------
Тот, кто слизывает мед с крапивы, платит за него слишком дорого. (Томас ФУЛЛЕР)
PM MAIL   Вверх
maxim1000
Дата 2.2.2006, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 1
Всего: 110



Цитата

Аппаратный ключ имеет уникальный серийный номер (возможно серийный номер контроллера). По этому номеру ассимметричным методом (Например RSA) получаем цифровую подпись. Записываем подпись в память ключа.
Устройство, к которому подключён аппаратный ключ считывает серийный номер, подпись и с использованием открытого ключа проверяет валидность подписи

тут все значительно проще smile
берем устройство и ключ
начинаем просматривать протокол из общения (я думаю, с тем, чтоб подслушать, проблем возникнуть не должно smile )
самое ужасное вот что - он каждый раз будет одинаковый: ведь серийники не меняются, а значит, и подпись его будет одинаковая
в этом случае ничто не мешает нам просто симитировать этот протокол, поставив вместо ключа какую-нибудь свою железячку
тут даже не надо будет как-то копировать ПО ключа - просто протокол, т.к. он простой

зато это невело меня на интересную идею:
выдавать именные ключи, т.е. для каждого экземпляра устройства будет свой ключ, а сделать это очень просто - ключ должен хранить подпись не своего серийника, а серийника контроллера основного устройства
таким образом протокол тоже будет одинаковый, но только для одного конкретного устройства, а для другого будет другой
сделать универсальный ключ нельзя - у нас нет закрытых ключей, чтобы уметь подписывать любые серийники
подделать ключ для одного конкретного устройства можно... но для этого сначала нужно купить настоящий, а если он есть, то его и подделывать не надо smile


--------------------
qqq
PM WWW   Вверх
adonin
Дата 2.2.2006, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 16.12.2005
Где: Новочеркасск Рост овская обл.

Репутация: нет
Всего: 5



Цитата(maxim1000 @ 2.2.2006, 16:21 Найти цитируемый пост)

ключ должен хранить подпись не своего серийника, а серийника контроллера основного устройства


БРАВО!!! Как я сам не додумался!!! Так и нужно поступать!!! smile

P.S. Хотел поднять Вам рейтинг, но оказалось, что у меня не достаточно постов smile. Граждане, имеющие больше 100 постов, не проходите мимо, поднимите за меня рейтинг для maxim1000. Действительно хорошая мысль smile

Это сообщение отредактировал(а) adonin - 2.2.2006, 17:23
--------------------
Тот, кто слизывает мед с крапивы, платит за него слишком дорого. (Томас ФУЛЛЕР)
PM MAIL   Вверх
Metal_Heart
Дата 6.2.2006, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а почему бы и нет?
**


Профиль
Группа: Участник
Сообщений: 728
Регистрация: 31.3.2005
Где: Москва

Репутация: 1
Всего: 12



Цитата(adonin @ 2.2.2006, 17:15 Найти цитируемый пост)

P.S. Хотел поднять Вам рейтинг, но оказалось, что у меня не достаточно постов smile. Граждане, имеющие больше 100 постов, не проходите мимо, поднимите за меня рейтинг для maxim1000. Действительно хорошая мысль smile


приподнял smile
Добавлено @ 11:14
а мысль мне тоже понравилась smile


--------------------
 не стыдно учиться, а стыдно не учиться 
PM ICQ   Вверх
Alexei
Дата 7.2.2006, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 382
Регистрация: 20.8.2003

Репутация: 4
Всего: 4



А как вам понравится это: http://www.semiresearch.com/default.php?secure_mcu_readers

PM MAIL   Вверх
Alex1984
Дата 8.2.2006, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 299
Регистрация: 6.3.2005
Где: Киев

Репутация: 2
Всего: 2



Цитата
ключ должен хранить подпись не своего серийника, а серийника контроллера основного устройства

Да, но программа должна быть универсальной, к тому же серийник это постоянная оставляющая, а как известно постоянство, это лючь к взлому.
Можно конечно вносить переменную составляющую в посылку данных (код+случайная переменная), далее криптография. Но по моему решаеться намного проще.
Не используем серийники. В программе просто ставим номер (масив, программный серийник) который служит основой для генерации случайных чисел. Это дает возможность делать универсальные ключи (только для производителя либо старшего администратора), что не мало важно.
Ето случайное число поступает на обрабуотку как на контроллер так и на ключь. В обоих оно обрабатываеться и ключь отсылает уже другое число, сгенерированое на основе принятогого им кода,
В МК протсходит тоже самое, далее в МК оба код сравниваються, и при совпадении ключь принимаеться.
Каждый новая посылка, будет соверщенно отличаться.
Думаю если взять хорошего размера код, то взломать алгоритм не реально будет.
PM MAIL WWW ICQ   Вверх
PILOT
Дата 9.2.2006, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

Репутация: 20
Всего: 54



Цитата(makwen @ 31.1.2006, 11:40)
Цитата

могут вытащить оттуда МК, скопировать его память на другой такой же МК и спаять себе второй ключ...

В этом случае нужно прошивку привязать к серийному номеру МК, который есть уникальным и больше не повторяется. А можно, что-то еще поцепить к МК, к этому элементу имел доступ только МК. И что б в прошивке МК, была реализованиа функция, которая сравнивает серийный номер этого элемента, или что-то другое.

Очень правильно по поводу серийника МК... подделать оч. сложно.

СУВ.


--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
Alex1984
Дата 10.2.2006, 07:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 299
Регистрация: 6.3.2005
Где: Киев

Репутация: 2
Всего: 2



Согласен, что правельно, но с таким же успехом сложно добраться до программы.
Вопрос в том, что вместо ключа можно подключить ПК, и передать любую последовательность, которую можно считать припомощи подключенияч к линии обмена члюча и МК.
Есть партия устроцств, и к ней нужен мастер ключ, как тогда быть с серийниками МК, или записывать все их в ключь, а он будет определять есть или нет номер в списке?
так тоже можно. тогда задача сводиться только в шифровании передачи данных, хотелось бы конечно задать в МК несколько (), которые будуть циклически меняться при перезагрузке прибора, тогда думаю отловить пароли и сэмулировать ключь будет нереально
PM MAIL WWW ICQ   Вверх
adonin
Дата 10.2.2006, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 16.12.2005
Где: Новочеркасск Рост овская обл.

Репутация: нет
Всего: 5



Цитата(Alex1984 @ 8.2.2006, 12:52 Найти цитируемый пост)

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


Что значит универсальной? У Вас в ТЗ записано, что для всех устройств должены быть одинаковые ключи? Не совсем понял.
На счет постоянства могу сказать, что алгоритмы электронной подписи (RSA) разрабатывались в качестве аналога реальной подписи, а это значит:

1) подписать некоторый файл может только владелец секретного, закрытого ключа.
2) проверить подпись может любое приложение, зная открытый ключ (свободно распространяется), содержимое подписанного файла и алгоритм подписи.
3) по открытому ключу, оригинальному файлу, подписи и алгоритму подписи не возможно восстановить закрытый ключ, а значит и подделать подпись (не возможно т.к. группа математиков не нашла лучшего способа нахождения закрытого ключа, чем прямой перебор. В слючае со 128 битным ключём среднее время подбора для RSA ~ 10^10 лет!!!!!!!!!!!!!)

Итак: алгоритм:

1) Присваиваем устройству уникальный серийник.
2) закрытым ключём(храним его в тайне) алгоритмом RSA создаём подпись на основе серийника.
3) записываем подпись в аппаратный ключ.
4) записываем открытый ключ в устройство.
5) реализуем механизм проверки подписи.

Проанализируем возможность взлома:

Взломать в данном случае - составить подпись на основе серийника (узнать закрытый ключ) и записать её в аппаратный ключ.
взломщик имеет устройство и ключ. Задача - создать ключ для другого устройства.
Взломщику известны:
серийник устройства; открытый ключ; подпись этого серийника; алгоритм подписи; серийник, который нужно подписать.
Чтобы подписать серийник, нужно знать закрытый ключ, но как сказано выше, его нельзя получить на основе имеющихся данных.

Данный метод представляется мне самым надёжным (надёжность математически обоснована и обусловлена криптостойкостью RSA).
Если в ТЗ не оговорено обратное, использовать нужно именно этот метод.
--------------------
Тот, кто слизывает мед с крапивы, платит за него слишком дорого. (Томас ФУЛЛЕР)
PM MAIL   Вверх
adonin
Дата 10.2.2006, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 16.12.2005
Где: Новочеркасск Рост овская обл.

Репутация: нет
Всего: 5



Цитата(Alexei @ 31.1.2006, 16:23 Найти цитируемый пост)

Надо чтобы в ключе делались какие-нибудь важные для программы действия.


Тоже хорошая мысль. Лучше - комбинация этого методоа и электронной подписи.

Еще возможен вариант:
Часть прошивки можно шифровать, используя в качестве ключа электронную подпись серийника.

Тогда алгоритм работы:

1) подсоединяем ключ к устройству.
2) Выполняем проверку валидности подписи серийника.
3) Устройство расшифровывает зашифрованную часть прошивки, в которой выполняются критичные для системы действия.

При этом ощибки в реализации шифрования прошивки заметно снижают надёжность:

Если будет использован не криптостойкий алгоритм, можно будет найти подпись серийника, что сведёт на нет надёжность RSA.
Возможны и другие варианты и комбинации методов.

Это сообщение отредактировал(а) adonin - 10.2.2006, 13:34
--------------------
Тот, кто слизывает мед с крапивы, платит за него слишком дорого. (Томас ФУЛЛЕР)
PM MAIL   Вверх
Alex1984
Дата 13.2.2006, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 299
Регистрация: 6.3.2005
Где: Киев

Репутация: 2
Всего: 2



может кто чтото подобное писал, и знает какой алгоритм самый компактный при реализации, ну и желательно пошустрей. Хотя они все достаточно быстрые
PM MAIL WWW ICQ   Вверх
adonin
Дата 13.2.2006, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 16.12.2005
Где: Новочеркасск Рост овская обл.

Репутация: нет
Всего: 5



Системы шифрования, электронная подпись
Взлом криптоалгоритмов: мифы и реалии

Как видно из второй статьи, идеального алгоритма не существует. Рещение принимается разработчиком изходя из следующих положений:

Нужно минимизировать затраты на применение защиты в течение определённого периода, которые вычисляются:
C=Cr+P*Cv
где:
С - стоиммость применения защиты
Cr - стоимость реализации защиты
P - вероятность взлома защиты (за определённый период)
Cv - ущерб от взлома защиты

P уменьшается с ростом Cr.
Стоимость реализации защиты должна быть не больше величины P*Cv (не оправданные затраты, тратим на защиту больше, чем можем потерять)
С другой стороны, стоимость реализации защиты должна быть не меньше величины P*Cv (можем потерять больше, чем тратим, => можно увеличить расходы на защиту).
Итак: Cr=P*Cv.

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

Это сообщение отредактировал(а) adonin - 13.2.2006, 14:40
--------------------
Тот, кто слизывает мед с крапивы, платит за него слишком дорого. (Томас ФУЛЛЕР)
PM MAIL   Вверх
Alex1984
Дата 13.2.2006, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 299
Регистрация: 6.3.2005
Где: Киев

Репутация: 2
Всего: 2



Не в этом вопрос, вопрос в ыборе алгоритма по параметру копмпактности и быстродействия алгоритма.
PM MAIL WWW ICQ   Вверх
adonin
Дата 13.2.2006, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 16.12.2005
Где: Новочеркасск Рост овская обл.

Репутация: нет
Всего: 5



Наиболее быстрые - симметричные шифры (DES). Но для формирования подписи их использовать не получится. Можно использовать только для шифрования информации.
Насчет компактности - трудно сказать. Не сравнивал.

При реализации вышеописанного алгоритма создания аппаратного ключа цифровую подпись серийника можно создать на PC и "Залить" в ключ. Это снимает ограничения на объём кода.
Критичный параметр - объём и скорость процедуры проверки подписи.
Можно порекомендовать алгоритм Эль Гамаля.

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

--------------------
Тот, кто слизывает мед с крапивы, платит за него слишком дорого. (Томас ФУЛЛЕР)
PM MAIL   Вверх
Alex1984
Дата 20.2.2006, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 299
Регистрация: 6.3.2005
Где: Киев

Репутация: 2
Всего: 2



RSA
(143,113) - открытый
(143,17) - закрытый
E(123)=123^113(mod143)=41 У меня =28, можно в ноликах и еденичка, как это выглядит?
D(41)=41^17(mod143)=123 у меня =125, не могу подять, что не так? как оно считаеться

PM MAIL WWW ICQ   Вверх
adonin
Дата 20.2.2006, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 16.12.2005
Где: Новочеркасск Рост овская обл.

Репутация: нет
Всего: 5



Ошибка может возникать из-за переполнения регистров: 123^113=1,4430374184804243930793722836564e+236 smile

Можно считать по следующему правилу:

a*b (mod m) = a(mod m)*b(mod m)

Вычисляем степень как произведение, при этом после каждого умножения нахлдим остаток от деления результата на 143 и на следующем этапе умнажаем этот остаток на 123 (во втором случае на 41).

--------------------
Тот, кто слизывает мед с крапивы, платит за него слишком дорого. (Томас ФУЛЛЕР)
PM MAIL   Вверх
maxim1000
Дата 20.2.2006, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 1
Всего: 110



Цитата(adonin @ 20.2.2006, 12:20 Найти цитируемый пост)
a*b (mod m) = a(mod m)*b(mod m)

маленькая поправка:

a*b (mod m) = ( a(mod m)*b(mod m) ) (mod m)



--------------------
qqq
PM WWW   Вверх
Alex1984
Дата 21.2.2006, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 299
Регистрация: 6.3.2005
Где: Киев

Репутация: 2
Всего: 2



все равно 125 ;)
smile
PM MAIL WWW ICQ   Вверх
adonin
Дата 21.2.2006, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 16.12.2005
Где: Новочеркасск Рост овская обл.

Репутация: нет
Всего: 5



Да вот собственно и он smile

Код

// Expl.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <conio.h>

int main(int argc, char* argv[])
{
//    int a=123;
//    int b=113;
    int a=41;
    int b=17;

    int m=143;

    unsigned long Result=a;

    for(int i=1;i<b;i++)
    {
        Result=Result-(Result/m)*m;
        Result*=a;
    }
    Result=Result-(Result/m)*m;
    printf("%ld",Result);
    getch();

    return 0;
}



Всё работает.
--------------------
Тот, кто слизывает мед с крапивы, платит за него слишком дорого. (Томас ФУЛЛЕР)
PM MAIL   Вверх
maxim1000
Дата 21.2.2006, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 1
Всего: 110



Цитата(Alex1984 @ 21.2.2006, 07:37)
все равно 125 ;)
smile

(2*2) mod 3=1
(2 mod 3)*(2 mod 3)=4


--------------------
qqq
PM WWW   Вверх
adonin
Дата 21.2.2006, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 16.12.2005
Где: Новочеркасск Рост овская обл.

Репутация: нет
Всего: 5



Цитата(maxim1000 @ 21.2.2006, 11:35 Найти цитируемый пост)
(2*2) mod 3=1
(2 mod 3)*(2 mod 3)=4


В приведённом выше коде эта ситуация учтена.
--------------------
Тот, кто слизывает мед с крапивы, платит за него слишком дорого. (Томас ФУЛЛЕР)
PM MAIL   Вверх
maxim1000
Дата 21.2.2006, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 1
Всего: 110



Цитата(adonin @ 21.2.2006, 10:41 Найти цитируемый пост)
В приведённом выше коде эта ситуация учтена.

это было не к коду
просто, когда я прочитал
Цитата(Alex1984 @ 21.2.2006, 07:37 Найти цитируемый пост)
все равно 125 ;)

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


--------------------
qqq
PM WWW   Вверх
Alex1984
Дата 21.2.2006, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 299
Регистрация: 6.3.2005
Где: Киев

Репутация: 2
Всего: 2



В Mathcad набирал и получал такой результат
PM MAIL WWW ICQ   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.2030 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.