|
Я написал загрузчик, Немного похвастаюсь |
|
|
|
 |
Ответов
|
Mar 8 2006, 05:29
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(osnwt @ Mar 8 2006, 00:05)  Вопрос лишь в том: "Точно ли такой алгоритм используется, скажем, в стандартной библиотеке C"? ... В лучшем кое-где используются отдельные датчики случайных чисел, основанные на физических принципах (шумы p-n перехода, к примеру). Вряд ли в бытовых PC, конечно. Но можно было бы наверняка придумать что-то получше. Алгоритм не стандартизирован никак. Более того, никак не гарантирована его псевдослучайность для повторения. Предыдущий пример взят из реальной жизни - это Borland. Ниже вариант 'послиднее', это IAR. Можете продолжить исследования - на более доступных в исходных текстах библиотеках. Код #define TSIZ 32 /* must be power of two */ #define TMSK (TSIZ - 1) #define XRND(x) (x) * 1664525L + 1013904223L
_TLS_DATA_DEF(_IMPLICIT_EXTERN, char, _Randinit, 0); _TLS_DATA_DEF(_IMPLICIT_EXTERN, unsigned long, _Randseed, 1); _TLS_DATA_DEF(static, unsigned long, idx, 0); _TLS_ARR_DEF(static, unsigned long, rv, TSIZ);
int (rand)(void) { /* compute pseudo-random value */ char *pinit = _TLS_DATA_PTR(_Randinit); unsigned long *pseed = _TLS_DATA_PTR(_Randseed); unsigned long *pidx = _TLS_DATA_PTR(idx); unsigned long *prv = _TLS_ARR(rv); int j;
if (*pinit == 0) { /* warm up, then initialize shuffle table */ for (j = 0; j < 8; ++j) *pseed = XRND(*pseed); for (j = 0; j < TSIZ; ++j) prv[j] = (*pseed = XRND(*pseed)); *pidx = prv[TSIZ - 1]; *pinit = 1; } *pseed = XRND(*pseed); j = *pidx & TMSK; *pidx = prv[j]; prv[j] = *pseed; #if _ILONG return (*pidx & RAND_MAX); #else /* _ILONG */ return ((*pidx >> 16) & RAND_MAX); #endif /* _ILONG */ } Цитата(osnwt @ Mar 8 2006, 00:05)  В лучшем кое-где используются отдельные датчики случайных чисел, основанные на физических принципах (шумы p-n перехода, к примеру). Вряд ли в бытовых PC, конечно. Но можно было бы наверняка придумать что-то получше. Я в курсе. Осталось решить вопрос, как Вы сможете повторить сию последовательность для расшифровки :-))). Ну а 'получше' уже придуманы, только для сишного rand они не используются.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Mar 8 2006, 11:18
|

Частый гость
 
Группа: Свой
Сообщений: 175
Регистрация: 26-01-06
Из: Sevastopol
Пользователь №: 13 664

|
Цитата(zltigo @ Mar 8 2006, 07:29)  Цитата(osnwt @ Mar 8 2006, 00:05)  Вопрос лишь в том: "Точно ли такой алгоритм используется, скажем, в стандартной библиотеке C"?
Алгоритм не стандартизирован никак. Более того, никак не гарантирована его псевдослучайность для повторения. Предыдущий пример взят из реальной жизни - это Borland. Да я это всё понимаю. Делать аппаратные датчики в ширпотребовских PC никто не станет. Цитата Можете продолжить исследования - на более доступных в исходных текстах библиотеках. Да нет, спасибо  Я же говорил, что не являюсь специалистом по криптографии. Цитата Осталось решить вопрос, как Вы сможете повторить сию последовательность для расшифровки :-))). Ну, это вопрос не ко мне. В текущих аппноутах это используется лишь как шум, а не как средство защиты. Основная защита тут - огромное количество переборов, если исключить выделяющиеся паттерны и т.п. Но вообще-то, такие вещи классически ломаются совсем иначе. Догадываясь, что могло потенциально использоваться для написания такого бута, можно сконцентрировать атаку совсем на другом направлении. Например, на потенциальном переполнении входного буфера, что в исходниках от Atmel представляет вполне очевидную дыру. Правда, получится ли ей воспользоваться - еще вопрос. Но сформировать входной фрейм так, чтобы загрузчик улетел в определенном направлении (на определенный адрес) можно вполне. И какое при этом будет его состояние - неизвестно. Потому я предпочел поправить такие вот места, чем ломать голову над правильностью ключей. Уж мои-то самоделки явно ломать никто не станет - дешевле купить готовое или разработать самому :-) Цитата Ну а 'получше' уже придуманы, только для сишного rand они не используются. Когда-то и 3DES был запрещен, поскольку госагенства не имели ресурсов для его вскрытия. Сейчас с этим проще. Может, и продвинутые алгоритмы и в стандартные библиотеки когда-нибудь попадут.
|
|
|
|
Сообщений в этой теме
Firer Я написал загрузчик Mar 7 2006, 18:59 makc А теперь можно нескромный вопрос - где ключики дер... Mar 7 2006, 19:23 Firer Ключи шифрования задаются в программе для подготов... Mar 7 2006, 19:39 osnwt Цитата(Firer @ Mar 7 2006, 21:39) ...
Ко ... Mar 7 2006, 20:29 Evgeny_CD Цитата(Firer @ Mar 7 2006, 22:39) Ко всем... Mar 7 2006, 20:52 Firer osnwt: ничем, только другой алгоритм шифрования и ... Mar 7 2006, 20:54 osnwt Цитата(Firer @ Mar 7 2006, 22:54) А как т... Mar 7 2006, 21:10 Firer Evgeny_CD: Данный вопрос не беспокоит, мы не радар... Mar 7 2006, 21:05 zltigo Цитата(osnwt @ Mar 7 2006, 23:10) Реально... Mar 7 2006, 21:46 osnwt Цитата(zltigo @ Mar 7 2006, 23:46) Впечат... Mar 7 2006, 22:05 Firer osnwt: потрясающе красивое решение! Mar 7 2006, 22:44 osnwt Цитата(Firer @ Mar 8 2006, 00:44) osnwt: ... Mar 7 2006, 23:01  Grape Цитата(osnwt @ Mar 8 2006, 02:01) А Chris... Mar 8 2006, 11:41   osnwt Цитата(Grape @ Mar 8 2006, 13:41) а можно... Mar 8 2006, 12:12 Evgeny_CD Уж коль скоро тут была затронута тема случайных чи... Mar 9 2006, 07:24 at90 Я в своём загрузчике сделал простое шифрование.
Се... Mar 9 2006, 12:05 Evgeny_CD Цитата(at90 @ Mar 9 2006, 15:05) Я в своё... Mar 9 2006, 13:15  osnwt Цитата(Evgeny_CD @ Mar 9 2006, 15:15) В о... Mar 9 2006, 13:48   Evgeny_CD Цитата(osnwt @ Mar 9 2006, 16:48) А я слы... Mar 9 2006, 16:47    defunct Цитата(Evgeny_CD @ Mar 9 2006, 18:47) Цит... Mar 9 2006, 18:11     Evgeny_CD Цитата(defunct @ Mar 9 2006, 21:11) не со... Mar 10 2006, 17:21 at90 Нет прошивка на куски не разбивается.
Таблица одна... Mar 9 2006, 13:53 makc Цитата(at90 @ Mar 9 2006, 16:53) Нет прош... Mar 9 2006, 13:58 osnwt Цитата(at90 @ Mar 9 2006, 15:53) Работает... Mar 9 2006, 14:05 Petka Ответ автору топика: выражаю огромный респект, что... Mar 9 2006, 15:16 makc Цитата(Petka @ Mar 9 2006, 18:16) Ответ а... Mar 10 2006, 17:11  Petka Цитата(makc @ Mar 10 2006, 20:11) Цитата(... Mar 11 2006, 12:50 osnwt Цитата(Firer @ Mar 7 2006, 20:59) Для AVR... Mar 9 2006, 15:45 lvitaly ГОСТ28147-89 не имеет отношения к эллиптическим кр... Mar 11 2006, 13:58 Petka ЦитатаМожет быть Вы путаете ГОСТ28147-89 с ГОСТ Р ... Mar 11 2006, 17:36 lvitaly Рановато Вы восхваляете алгоритм, основанный на эл... Mar 12 2006, 03:26
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|