Разработка динамических сайтов
SEO услуги
Управление контекстной рекламой

Вход на хостинг

Имя пользователя:*

Пароль пользователя:*

IT-новости

20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла

Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......

подробнее

30.07.2015 Ищем уникальный контент для сайта

Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......

подробнее

11.05.2015 Распространённые ошибки разработчиков сайтов

Не секрет, что в сети Интернет насчитывается миллионы сайтов, и каждый день появляются тысячси новых......

подробнее

    key_init = 1;

    return;

}

Функция symple_replace_crypt

Операцию шифрования в режиме простой замены ГОСТ 28147-89 выполняет функция symple_replace_crypt(). Функция имеет следующий вид:

void symple_replace_crypt()

{

 

    int i,n;

В соответствии с алгоритмом ГОСТ 28147-89 выполняем 31 цикл преобразования:

    for(n=1;n<=3;n++) {

           for(i=0;i<=7;i++) op(i);

    }

    for(i=7;i>=1;i--) op(i);

32-й цикл несколько отличается от остальных, распишем его отдельно:

    SM1=nac.lg.N1+X[0];

    SM2=block(SM1,keys.key_d,nac.lg.N2);

    nac.lg.N2=SM2;

 

    return;

}

В функции op() реализованы циклы преобразования:

void op(int i)

{

Суммируем значение накопителя N1 и 4-х байтового вектора X[i] в сумматоре SM1:

    SM1 = nac.lg.N1+X[i];

Получаем результат из блока подстановки:

    SM2 = block(SM1,keys.key_d,nac.lg.N2);

    nac.lg.N2 = nac.lg.N1;

    nac.lg.N1 = SM2;

 

    return;

}

Функция block

В функции block объединены блок подстановки (главный структурный элемент алгоритма) и регистр сдвига. В целях повышения скорости работы данная функция реализована на языке assembler.

__u32 block(__u32 SM1, char *k, __u32 N2)

{

 

    __u32 SM2;

 

    __asm__ __volatile__ (

    "      cld "

    "      pushl %%edx "

    "      xorl %%ecx,%%ecx "

    "      xorl %%edx,%%edx "


Предыдущая страницаОглавлениеСледующая страница
 
[001] [002] [003] [004] [005] [006] [007] [008] [009] [010] [011] [012] [013] [014] [015] [016] [017] [018] [019] [020]
[021] [022] [023] [024] [025] [026] [027] [028] [029] [030] [031] [032] [033] [034] [035] [036] [037] [038] [039] [040]
[041] [042] [043] [044] [045] [046] [047] [048] [049] [050] [051] [052] [053] [054] [055] [056] [057] [058] [059] [060]
[061] [062] [063] [064] [065] [066] [067] [068] [069] [070] [071] [072] [073] [074] [075] [076] [077] [078] [079] [080]
[081] [082] [083] [084] [085] [086] [087] [088] [089] [090] [091] [092] [093] [094] [095] [096] [097] [098] [099] [100]
[101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120]
[121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140]
[141] [142] [143] [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154] [155]

+7 (831) 413-63-27
ООО Дельта-Технология ©2007 - 2016 год
Нижний Новгород, ул. Дальняя, 17А.
Rambler's Top100