Главная | Регистрация | Вход Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » Софт и статьи » Защита » Основные алгоритмы шифрования
Основные алгоритмы шифрования
ZolanProДата: Пятница, 05.12.2008, 19:25 | Сообщение # 1
Администратиус
Группа: Администраторы
Сообщений: 71
Награды: 1
Репутация: 3
Статус: Offline
[Введение]
Моя статья постарается пролить немного света на шифрование в целом, способы шифрования и алгоритмы шифрования данных.

Шифрование — способ скрытия информации, применяемый для хранения информации в ненадежных источниках или передачи её по незащищённым каналам связи. Методы шифрования могут быть разными:
- Тайнопись – не существует какого – либо ключа, метод расшифровки знают только получатель и отправитель.
- Симметричное шифрование: другим людям может быть известен алгоритм шифрования, но неизвестен ключ, который одинаков для отправителя и получателя сообщения;
Большинство современных стойких симметричных алгоритмов используют ключ длиной 64—256 бит (8—32 байта).
- Асимметричное шифрование: посторонним лицам может быть известен алгоритм шифрования, и, возможно открытый ключ, но неизвестен закрытый ключ, известный только получателю. Например, алгоритм RSA, о нем я расскажу ниже.

Не буду долго попусту разглагольствовать, перейду к описанию самих алгоритмов. Их очень много, поэтому я перечислю лишь наиболее распространенные из них.

[Алгоритмы шифрования]
- md5 (англ. Message Digest 5) - 128-битный алгоритм хеширования, разработанный профессором Рональдом Л. Ривестом в 1991 году.
Попытаюсь описать принцип его работы. Входные данные выравниваются так, чтобы их размер был сравним с 448 по модулю 512. Сначала дописывается единичный бит (даже если длина сравнима с 448), затем необходимое число нулевых бит.
Дописывание 64 - битного представления длины данных до выравнивания. Если длина превосходит 264 − 1, то дописываются младшие биты.
Инициализируются 4 переменных размером по 32 бита:
А = 01 23 45 67;
В = 89 AB CD EF;
С = FE DC BA 98;
D = 76 54 32 10.
Выравненные данные разбиваются на блоки по 32 бит, и каждый блок проходит 4 раунда из 16 операторов. Все операторы однотипны и имеют вид:
[abcd k s i], определяемый как
a = b + ((a + Fun(b,c,d) + X[k] + T < i > ) < < < s), где X - блок данных, а T[1..64] - 64х элементная таблица данных построенная следующим образом:
T[i] = int(4294967296 * | sin(i) |), s - циклический сдвиг влево на s бит полученого 32-битного аргумента.
В первом раунде Fun F(X, Y, Z) = XY v (not X)Z
Во втором раунде Fun G(X, Y, Z) = XZ v (not Z)Y.
В третьем раунде Fun Н(Х, Y, Z) = Х xor Y xor Z.
В четвертом раунде Fun I(Х, Y, Z) = Y xor (X v (not Z)).

Md5 – брутеры. Я юзаю Advanced MD5 Recovery http://infostore.org/info/1737606

- DES (Data Encryption Standard) - разработан в середине 70-x годов. Он используется во многих криптографических системах. Это блочный алгоритм шифрования с симметричным ключом. Ключ состоит из 64 битов, но лишь 56 из них применяются непосредственно при шифровании. Оставшиеся 8 предназначены для контроля четности: они устанавливаются так, чтобы каждый из 8 байтов ключа имел нечетное значение. Шифруемая информация обрабатывается блоками по 64 бита, причем каждый блок модифицируется с помощью ключа в интерационной процедуре, включающей 16 циклов. В данный момент при длине ключа в 56 битов алгоритм считается не устойчивым к взлому.
DES брутер – PasswordsPro. Прога очень хорошая, инфу и ней, да и её саму ты сможешь взять тут: http://www.insidepro.com/rus/passwordspro.shtml

- ГОСТ_28147-89 отечественный дефолтный алгоритм. Советский и российский стандарт симметричного шифрования, введённый в 1990 году. Полное название - «ГОСТ 28147—89 Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования».

ГОСТ 28147-89 это блочный шифр с 256-битным ключом и 32 циклами преобразования, оперирующий 64-битными блоками. Базовым режимом шифрования по ГОСТ 28147-89 является режим простой замены (определены также более сложные режимы: гаммирование и гаммирование с обратной связью). Для зашифрования в этом режиме открытый текст сначала разбивается на левую и правую половины L{efl} и R{ight}. На i-м цикле используется подключ k[i]:
R[i] + 1 = L[i]
L[i+1] = R[i] xor f(L[i], k[i])
Для генерации подключей исходный 256-битный ключ разбивается на восемь 32-битных блоков: k[1] .. k[8].

Расшифрование выполняется так же, как и зашифрование, но инвертируется порядок подключей k[i].

Функция f(L[i], k[i]) вычисляется следующим образом:
R[i-1] и k[i] складываются по модулю 2^32.

Результат разбивается на восемь 4-битовых подпоследовательностей, каждая из которых поступает на вход своего S-блока. Общее количество S-блоков ГОСТа — восемь, т. е. столько же, сколько и подпоследовательностей (k[1] .. k[8]. Каждый S-блок представляет собой перестановку чисел от 0 до 15. Первая 4-битная подпоследовательность попадает на вход первого S-блока, вторая — на вход второго и т. д.
Если S-блок выглядит так:
1, 15, 13, 0, 5, 7, 10, 4, 9, 2, 3, 14, 6, 11, 8, 12
и на входе S-блока 0, то на выходе будет 1, если 9, то на выходе будет 2 и т. д.

Выходы всех восьми S-блоков объединяются в 32-битное слово, затем всё слово циклически сдвигается влево на 11 бит.
Все восемь S-блоков могут быть различными.

- 3DES — (тройное DES) симметричный блочный криптографический алгоритм, созданный на основе алгоритма DES, с целью устранения главного недостатка последнего - малой длины ключа (56 бит), который может быть взломан методом перебора ключа.
В 3-DES был выбран как простой путь увеличения длины ключа, без необходимости переходить на новый алгоритм — в нем используется над 64 битным блоком данных несколько раз производится шифрование алгоритмом DES (конечно с разным ключем), в простейшем варианте это выглядит как: DES(k3;DES(k2;DES(k1;M))), где M -блок исходных данных, k1, k2, и k3 — ключи DES. Длина ключа алгоритма 3-DES в равна 168 битам (3 x ключ DES). Я не буду описывать принцип работы этого алгоритма, так как он практически идентичен DES.

- IDEA (International Data Encryption Algorithm). Первоначальный вариант алгоритма IDEA появился в 1990 г. Разработчики алгоритма, Ксуеджа Лай (Xuejia Lai) и Джеймс Мэсси (James Massey) из Швейцарского института ETH Zurich, дали ему название PES (Proposed Encryption Standard - предлагаемый стандарт шифрования), поскольку данный алгоритм был предложен на замену стандарта DES.
Через год алгоритм был модифицирован с целью усиления криптостойкости к дифференциальному криптоанализу. Новая версия получила название IPES (Improved PES - улучшенный PES), а еще через год алгоритм сменил название на IDEA (International Data Encryption Algorithm - международный алгоритм шифрования данных).
Основные характеристики и структура
Алгоритм IDEA шифрует данные блоками по 64 бит, а ключ шифрования алгоритма имеет размер 128 бит. Блок шифруемых данных разбивается на четыре 16-битных субблока A, B, C и D (рис. 1), над которыми выполняется восемь раундов преобразований:
A = A [x] Kr1
B = B + Kr2
C = C + Kr3
D = D [x] Kr4
T1 = A [+] C
T2 = B [+] D
T1 = T1 [x] Kr5
T2 = T1 + T2
T2 = T2 [x] Kr6
T1 = T1 + T2
A = A [+] T2
B = B [+] T1
C = C [+] T2
D = D [+] T1,
где Krn - подключ n раунда r, "+" - операция сложения 16-битных операндов по модулю 2{в 16-й степени}, [+] - побитовая логическая операция "исключающее или" (XOR), [x] - умножение 16-битных операндов по модулю (2{в 16-й степени} + 1), причем в качестве значения субблока, состоящего из одних нулей, берется значение 2{в 16-й степени}.
После выполнения описанных выше действий два внутренних субблока (B и C) меняются местами - во всех раундах, кроме последнего. По завершении восьми раундов выполняются дополнительные преобразования (иногда называемые девятым раундом алгоритма):
A' = A [x] K91
B' = B + K92
C' = C + K93
D' = D [x] K94

Шифртекст представляет собой результат конкатенации полученных значений A', B', C' и D'.
Операция расшифрования аналогична зашифрованию, с той разницей, что при расшифровании используются модифицированные подключи и в другой последовательности:
K'r1 = (K(10-r)1)-1
K'r2 = -K(10-r)3
K'r3 = -K(10-r)2
K'r4 = (K(10-r)4)-1
K'r5 = K(9-r)5
K'r6 = K(9-r)6,

за исключением раундов 1 и 9, в которых подключи K'r2 и K'r3 меняются местами. Здесь K'rn - подключ n раунда расшифрования r, -x и x-1 - обратные значения x относительно описанных выше операций сложения по модулю 2{в 16-й степени} и умножения по модулю (2^16 + 1) соответственно. При этом 0^1 = 0.


 
Форум » Софт и статьи » Защита » Основные алгоритмы шифрования
Страница 1 из 11
Поиск:

Copyright MyCorp © 2017
Сайт управляется системой uCoz