ФОРУМ
Вход и регистрация / Login or register

Сайт для детей и взрослых Мои Друзья

Криптология

  • ******* *******
  • ******* ******* аватар Автор темы
  • Не в сети
  • Пользователь заблокирован
  • Пользователь заблокирован
Больше
15 года 1 мес. назад #1 от ******* *******
******* ******* создал тему: Криптология
Тут у Олега возникли вопросы про md5 и шифрование.. Вот, попробую
слегка осветить тему... Вопросы будут - задавайте, так оно лучше пойдет..

Для начала пару слов о криптографии вообще. Собственно, главная
её задача — не дать постороннему узнать то, чего мы не хотим. Ну,
исторически это достигалось разными способами, желающим гугл в
помощь. В настоящее время это делается в общих чертах так:

Пусть у нас есть какой-то открытый текст, который мы хотим
передать другому («корреспонденту»). При этом есть вероятность
того, что при передаче сообщение может попасть в чужие руки
(«противника»). Для того, чтобы корреспондент его прочитать
смог, а противник — нет, мы должны сначала зашифровать
этот текст с помощью какого-то ключа, который знаем только мы и
корреспондент, а он, в свою очередь, при получении, расшифровать,
тоже с помощью ключа. Так как у противника этого ключа нет, то он
прочитать это сообщение не сможет, даже если знает, каким способом
оно было зашифровано (это называется «принцип Керкгоффса»).
(Вдобавок способ шифрования должен быть, в идеале, таким,
чтобы противник не мог вычислить ключ, даже если к нему попадут и
открытый, и закрытый (зашифрованный) тексты).

Текст, как правило, записан буквами — но это нас не волнует, так
как он у нас всё равно на компе существует в каком-то кодированном
виде, то есть, по сути, в виде набора цифр. Этот набор мы всегда
можем представить в виде одного большого целого числа (например,
слово "http" в кодировке ACSII -> 0x68 0x74 0x74 0x70 -> 0x68747470 ->
1752462448). Тогда всё сводится к математике: операции шифрования
и расшифровывания выражаются в виде функций

e = C(p, k)

и

p = D(e, k),

где p — открытый текст (точнее число, которое ему соответствует),
e — закрытый текст, k — ключ, С — функция
шифрования, D — функция расшифровывания. Ну и, собственно, задача
сводится к выбору таких C, D и k, чтобы противнику мало не
показалось.

Но противник со свой стороны тоже не ворон считает... (Продолжение следует)

[code-sh:w9eyzihi]# apt-get install anarchism[/code-sh:w9eyzihi]

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • ******* *******
  • ******* ******* аватар Автор темы
  • Не в сети
  • Пользователь заблокирован
  • Пользователь заблокирован
Больше
15 года 1 мес. назад #2 от ******* *******
******* ******* ответил в теме Криптология
Ладно. Приношу извинения за паузу, не всегда есть «час та натхнення». (Пытался привлечь Олега, но у него не всегда есть доступ к сети...)

Противник, поскольку он по дефолту противный, то пытается прочесть то, что ему не положено, не зная ключа. Собственно, эта деятельность и называется «криптоанализом». Причём обычно предполагается, что способ («алгоритм») шифрования ему известен. Тут и выявляется такое свойство алгоритма, как «устойчивость к криптоанализу». По сути, это главное свойство, которым алгоритмы и отличаются...

Скажем, самый простой способ шифрования, которым все в детстве балуются — алгоритм замены, то есть в тексте буквы заменяются на какие-то другие знаки, или, например, «А» заменяется на «Б», «Б» на «B», и т. д. (К нему же сводится и предложенный Олегом в чате, просто каждый символ заменяется на строку.) Так как в открытом тексте буквы встречаются с разной частотой, то, проанализировав частоту символов закрытого текста, можно сделать вывод о том, каким буквам они соответствуют. То есть данный алгоритм «неустойчив к частотному анализу», причем тем больше, чем длиннее текст.

Кроме того, алгоритм может иметь слабые места, проявляющиеся, если противник получает доступ к открытому тексту или его части. Например, нередко встречавшийся в экзешниках алгоритм вида e = p XOR k. XOR — функция «битовое исключающее ИЛИ», такое, что k = e XOR p. То есть, если у нас есть закрытый текст e, который, как мы подозреваем, зашифрован по XOR, и мы знаем или догадываемся о том, каков может быть открытый текст (или его часть) p, то, применив эту функцию, получим ключ k, со всеми вытекающими.

Продолжение, если надо кому — в википедии и гугле. «Читайте книги, они рулез» ©

[code-sh:w9eyzihi]# apt-get install anarchism[/code-sh:w9eyzihi]

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 1 мес. назад #3 от olegon
olegon ответил в теме Криптология
Лёша
1)привет!
2)я решил помочь, скинул инфу про md5 и sha
MD5 является доработанной версией алгоритма MD4. Аналогично MD4, в алгоритме MD5 размер хэш-кода равен 128 битам.
После ряда начальных действий MD5 разбивает текст на блоки длиной 512 битов, которые, в свою очередь, делятся на 16 подблоков по 32 бита. Выходом алгоритма являются 4 блока по 32 бита, конкатенация которых образует 128-битовый хэш-код.
Сначала текст дополняется таким образом, чтобы длина получаемого текста, выраженная в битах, стала на 64 меньше числа, кратного 512. Дополнение осуществляется приписыванием к концу сообщения единицы и затем необходимого числа нулей (в бинарном представлении). Затем к тексту приписывается 64-битовое представление длины исходного сообщения. Таким образом получается текст, длина которого кратна 512 битам.
Инициализируются 4 переменных размером по 32 бита:

Далее начинает работу основной цикл алгоритма. Основной цикл повторяется столько раз, сколько блоков по 512 битов присутствует в хэшируемом сообщении.
Создаются копии инициализированных переменных: для , для , для , для .
Каждый основной цикл состоит из 4 раундов (в MD4 было всего 3 раунда). В свою очередь, каждый раунд состоит из 16 операторов. Все операторы однотипны и имеют вид: . Здесь:
, , и суть , , и в зависимости от номера раунда и номера оператора в раунде (в оригинале эта подстановка записана в явном виде).
обозначает -тый подблок обрабатываемого блока. В каждом раунде порядок обработки очередным оператором подблоков определяется задаваемой в явном виде подстановкой на множестве всех подблоков (их, также как и операторов, 16).
обозначают зафиксированные случайные константы, зависящие от номера раунда и номера оператора в раунде (Ривест положил для -того ( ) оператора в -том ( ) раунде константу равной целой части от .
обозначает левый циклический сдвиг аргумента на битов. Величины сдвигов также зависят от номера раунда и номера оператора в раунде.
 -- некоторая функция (фиксированная для каждого раунда), действующая покоординатно на биты своих трех аргументов.
В первом раунде действует функция .
Во втором раунде действует функция .
В третьем раунде действует функция .
В четвертом раунде действует функция .
Функции подобраны таким образом, чтобы при равномерном и независимом распределении битов аргументов выходные биты были бы также распределены равномерно и независимо.
Основной цикл алгоритма завершается суммированием полученных , , и и накапливаемых , , и , после чего алгоритм переходит к обработке нового блока данных. Выходом алгоритма является конкатенация получаемых после последнего цикла , , и .

Известные результаты анализа

Ривест внес следующие изменения в MD4 при разработке MD5:
· добавлен четвертый раунд в основной цикл;
· в каждом операторе при суммировании используется уникальная константа;
· изменена функция второго раунда (в MD4 было ). Это сделано для того, чтобы сделать функцию менее симметричной;
· результат каждого шага теперь суммируется с результатом предыдущих шагов, что позволяет усилить эффект распространения ошибки;
· изменен порядок считывания слов во втором и третьем раундах для того, чтобы они меньше походили друг на друга;
· величина циклического сдвига в каждом раунде оптимизирована с точки зрения усиления эффекта распространения ошибки. Сдвиги от раунда к раунду различаются.
Берсон пытался применить метод дифференциального анализа к однораундовым преобразованиям алгоритма MD5. Но его подход не дает эффекта для полной четырехраундовой схемы.
Ден Буру и Босселэру удалось построить коллизию для функции сжатия (т. е. элементарной функции, которая на каждом раунде преобразует промежуточное значение, полученное из предыдущего раунда, и текущий блок сообщения в новое промежуточное значение) алгоритма MD5. Пока это не привело к компрометации MD5 в практических приложениях. Тем не менее этот результат означает, что нарушен один из принципов построения MD5, а именно требование, чтобы функция сжатия была свободна от коллизи

[0L3G][0n]

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 1 мес. назад #4 от olegon
olegon ответил в теме Криптология
извините что без картинок (непонятно почему из нет) если непонятно идите
на вики и читайте

[0L3G][0n]

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.296 секунд
Яндекс.Метрика