![]() |
Модераторы: PILOT, ManiaK, Mazzi |
![]() ![]() ![]() |
|
adonin |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 16.12.2005 Где: Новочеркасск Рост овская обл. Репутация: нет Всего: 5 |
БРАВО!!! Как я сам не додумался!!! Так и нужно поступать!!! ![]() P.S. Хотел поднять Вам рейтинг, но оказалось, что у меня не достаточно постов ![]() ![]() Это сообщение отредактировал(а) adonin - 2.2.2006, 17:23 --------------------
Тот, кто слизывает мед с крапивы, платит за него слишком дорого. (Томас ФУЛЛЕР) |
|||
|
||||
Metal_Heart |
|
|||
а почему бы и нет? ![]() ![]() Профиль Группа: Участник Сообщений: 728 Регистрация: 31.3.2005 Где: Москва Репутация: 1 Всего: 12 |
приподнял ![]() Добавлено @ 11:14 а мысль мне тоже понравилась ![]() -------------------- не стыдно учиться, а стыдно не учиться |
|||
|
||||
Alexei |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 382 Регистрация: 20.8.2003 Репутация: 4 Всего: 4 |
||||
|
||||
Alex1984 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 299 Регистрация: 6.3.2005 Где: Киев Репутация: 2 Всего: 2 |
Да, но программа должна быть универсальной, к тому же серийник это постоянная оставляющая, а как известно постоянство, это лючь к взлому. Можно конечно вносить переменную составляющую в посылку данных (код+случайная переменная), далее криптография. Но по моему решаеться намного проще. Не используем серийники. В программе просто ставим номер (масив, программный серийник) который служит основой для генерации случайных чисел. Это дает возможность делать универсальные ключи (только для производителя либо старшего администратора), что не мало важно. Ето случайное число поступает на обрабуотку как на контроллер так и на ключь. В обоих оно обрабатываеться и ключь отсылает уже другое число, сгенерированое на основе принятогого им кода, В МК протсходит тоже самое, далее в МК оба код сравниваються, и при совпадении ключь принимаеться. Каждый новая посылка, будет соверщенно отличаться. Думаю если взять хорошего размера код, то взломать алгоритм не реально будет. |
|||
|
||||
PILOT |
|
||||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
Очень правильно по поводу серийника МК... подделать оч. сложно. СУВ. -------------------- тут могла быть Ваша реклама... |
||||
|
|||||
Alex1984 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 299 Регистрация: 6.3.2005 Где: Киев Репутация: 2 Всего: 2 |
Согласен, что правельно, но с таким же успехом сложно добраться до программы.
Вопрос в том, что вместо ключа можно подключить ПК, и передать любую последовательность, которую можно считать припомощи подключенияч к линии обмена члюча и МК. Есть партия устроцств, и к ней нужен мастер ключ, как тогда быть с серийниками МК, или записывать все их в ключь, а он будет определять есть или нет номер в списке? так тоже можно. тогда задача сводиться только в шифровании передачи данных, хотелось бы конечно задать в МК несколько (), которые будуть циклически меняться при перезагрузке прибора, тогда думаю отловить пароли и сэмулировать ключь будет нереально |
|||
|
||||
adonin |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 16.12.2005 Где: Новочеркасск Рост овская обл. Репутация: нет Всего: 5 |
Что значит универсальной? У Вас в ТЗ записано, что для всех устройств должены быть одинаковые ключи? Не совсем понял. На счет постоянства могу сказать, что алгоритмы электронной подписи (RSA) разрабатывались в качестве аналога реальной подписи, а это значит: 1) подписать некоторый файл может только владелец секретного, закрытого ключа. 2) проверить подпись может любое приложение, зная открытый ключ (свободно распространяется), содержимое подписанного файла и алгоритм подписи. 3) по открытому ключу, оригинальному файлу, подписи и алгоритму подписи не возможно восстановить закрытый ключ, а значит и подделать подпись (не возможно т.к. группа математиков не нашла лучшего способа нахождения закрытого ключа, чем прямой перебор. В слючае со 128 битным ключём среднее время подбора для RSA ~ 10^10 лет!!!!!!!!!!!!!) Итак: алгоритм: 1) Присваиваем устройству уникальный серийник. 2) закрытым ключём(храним его в тайне) алгоритмом RSA создаём подпись на основе серийника. 3) записываем подпись в аппаратный ключ. 4) записываем открытый ключ в устройство. 5) реализуем механизм проверки подписи. Проанализируем возможность взлома: Взломать в данном случае - составить подпись на основе серийника (узнать закрытый ключ) и записать её в аппаратный ключ. взломщик имеет устройство и ключ. Задача - создать ключ для другого устройства. Взломщику известны: серийник устройства; открытый ключ; подпись этого серийника; алгоритм подписи; серийник, который нужно подписать. Чтобы подписать серийник, нужно знать закрытый ключ, но как сказано выше, его нельзя получить на основе имеющихся данных. Данный метод представляется мне самым надёжным (надёжность математически обоснована и обусловлена криптостойкостью RSA). Если в ТЗ не оговорено обратное, использовать нужно именно этот метод. --------------------
Тот, кто слизывает мед с крапивы, платит за него слишком дорого. (Томас ФУЛЛЕР) |
|||
|
||||
adonin |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 16.12.2005 Где: Новочеркасск Рост овская обл. Репутация: нет Всего: 5 |
Тоже хорошая мысль. Лучше - комбинация этого методоа и электронной подписи. Еще возможен вариант: Часть прошивки можно шифровать, используя в качестве ключа электронную подпись серийника. Тогда алгоритм работы: 1) подсоединяем ключ к устройству. 2) Выполняем проверку валидности подписи серийника. 3) Устройство расшифровывает зашифрованную часть прошивки, в которой выполняются критичные для системы действия. При этом ощибки в реализации шифрования прошивки заметно снижают надёжность: Если будет использован не криптостойкий алгоритм, можно будет найти подпись серийника, что сведёт на нет надёжность RSA. Возможны и другие варианты и комбинации методов. Это сообщение отредактировал(а) adonin - 10.2.2006, 13:34 --------------------
Тот, кто слизывает мед с крапивы, платит за него слишком дорого. (Томас ФУЛЛЕР) |
|||
|
||||
Alex1984 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 299 Регистрация: 6.3.2005 Где: Киев Репутация: 2 Всего: 2 |
может кто чтото подобное писал, и знает какой алгоритм самый компактный при реализации, ну и желательно пошустрей. Хотя они все достаточно быстрые
|
|||
|
||||
adonin |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 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 --------------------
Тот, кто слизывает мед с крапивы, платит за него слишком дорого. (Томас ФУЛЛЕР) |
|||
|
||||
Alex1984 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 299 Регистрация: 6.3.2005 Где: Киев Репутация: 2 Всего: 2 |
Не в этом вопрос, вопрос в ыборе алгоритма по параметру копмпактности и быстродействия алгоритма.
|
|||
|
||||
adonin |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 16.12.2005 Где: Новочеркасск Рост овская обл. Репутация: нет Всего: 5 |
Наиболее быстрые - симметричные шифры (DES). Но для формирования подписи их использовать не получится. Можно использовать только для шифрования информации.
Насчет компактности - трудно сказать. Не сравнивал. При реализации вышеописанного алгоритма создания аппаратного ключа цифровую подпись серийника можно создать на PC и "Залить" в ключ. Это снимает ограничения на объём кода. Критичный параметр - объём и скорость процедуры проверки подписи. Можно порекомендовать алгоритм Эль Гамаля. Если есть возможность, криптографию реализуют аппаратно: разрабатывают девайс, на выходе которого - зашифрованное сообщение или подпись. В случае аппаратной реализации скорость алгоритма возрастает на порядок. --------------------
Тот, кто слизывает мед с крапивы, платит за него слишком дорого. (Томас ФУЛЛЕР) |
|||
|
||||
Alex1984 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 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, не могу подять, что не так? как оно считаеться |
|||
|
||||
adonin |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 166 Регистрация: 16.12.2005 Где: Новочеркасск Рост овская обл. Репутация: нет Всего: 5 |
Ошибка может возникать из-за переполнения регистров: 123^113=1,4430374184804243930793722836564e+236
![]() Можно считать по следующему правилу: a*b (mod m) = a(mod m)*b(mod m) Вычисляем степень как произведение, при этом после каждого умножения нахлдим остаток от деления результата на 143 и на следующем этапе умнажаем этот остаток на 123 (во втором случае на 41). --------------------
Тот, кто слизывает мед с крапивы, платит за него слишком дорого. (Томас ФУЛЛЕР) |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 1 Всего: 110 |
маленькая поправка: a*b (mod m) = ( a(mod m)*b(mod m) ) (mod m) -------------------- qqq |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)" | |
|
На данный раздел помимо Правил форума распространяются текже следующие правила:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |