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

 
 
> Я написал загрузчик, Немного похвастаюсь
Firer
сообщение Mar 7 2006, 18:59
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 294
Регистрация: 7-01-05
Пользователь №: 1 832



Для AVR, с шифрованием по ГОСТ28147-89,
помещается в блок 2kWord, грузит файл из UART.
+ утилитка под Windows для преобразования .hex файлов FLASH и EEPROM в шифрованный файл, и утилитка для пользователя для загрузки в кристалл.
Целый год мечтал сделать.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zltigo
сообщение Mar 8 2006, 05:29
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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
|- - osnwt   Цитата(zltigo @ Mar 8 2006, 07:29) Цитата...   Mar 8 2006, 11:18
- - 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


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 12:47
Рейтинг@Mail.ru


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