русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Проверить выполнение равенства .


Дата добавления: 2014-04-05; просмотров: 1558; Нарушение авторских прав


Корректность:

 

По пункту 4 формирования ц.п.: => .

Проверка, если r=0 =>не проходит => .

По пункту 5 формирования ц.п.: ,

=> .

s=0 => => .

По пункту 7 проверки ц.п.: проверим неравенство .

;

;

;

;

(по пункту 4 формирования ц.п.);

(по пункту 4 формирования ц.п.);

(по пункту 6 проверки ц.п.).

Стойкость:

1)Атаки по mod q на з.к. d

(противник хочет узнать закрытый ключ d) =>задача дискретного логарифмирования в Е.

Используется метод Полларда:

 

Дискретное логарифмирование:

 

,

Атаки на неотказуемость (не доказано, что возможно).

Уязвимость рандомизатора k (актуальны).

3.3 Хэш-функция

3.3.1 Хэш-функция без ключа

можно

Чтобы сэкономить время: , где H(m) – хэш-функция (сжимает сообщение), (m, S) – сообщение незначительно удлиняется.

Что надо?

Мошенник подобрать m1≠m2: .

Предъявить (m1, S) и отказаться от (m2, S).

=> Требование: сложно подобрать 2 различных сообщения с одинаковым значением хэш-функции.

Парольная защита:

Пользователь предъявляет свой идентификатор (Id) и пароль (P).

 

Требования:

- нельзя восстановить аргумент хэш-функции по значению (хэш-функция – односторонняя функция);

- нельзя подобрать другой аргумент с тем же значением хэш-функции.

Слабая и сильная хэш-функция:

Определение 1: Слабая хэш-функция называется односторонняя функция , где – набор векторов произвольной длины, Vn – набор бинарных векторов длины n над Zn, n – некоторая константа.

* - любые (произвольные) строки.

Свойства:

Легко вычислить H(x);

Трудно найти ,

 

Определение 2: Сильная хэш-функция – односторонняя функция , (n – константа) удовлетворяющая свойству 1) и 2’) трудно найти пару x’,

Пара называется коллизией хэш-функции.



Различия сильной и слабой хэш-функции:

Коллизий бесконечно много;

2’) => 2) (сильная также является слабой за счет 2-го условия, т.к. найти фиксированные коллизии нельзя).

Атака на свойство 2): есть x; противник перебирает и проверяет на совпадение значения хэш-функции: .

Перебор значений , выглядит как случайный выбор из множества Vn.

До совпадения с H(x) перебор в среднем равен ;

=.

Стойкая слабая хэш-функция => =>

=> .

Атака на свойство 2’): перебор значений H(x) до повторения, запоминая все предыдущие.

Парадокс (эффект) близнецов: если случайно выбрать элемент из n, то до первого повторения с вероятностью 0,63 придется перебрать раз.

До первого повтора противник должен перебрать .

С вероятностью 0,63 .

Для стойкой сильной хэш-функции

=> .

Следствие: У сильной хэш-функции требования на длину в 2 раза больше чем у слабой.

SHA-1

SHA-2 (расширение значений с 160 до 224,256,384,512)

SHA-3.

Типовая конструкция хэш-функции:

ISO/IEC 10118 1 часть – общая конструкция.

Мериль-Демгард

 

Обозначения:

- Lh – длина значения H;

- m – аргумент;

- Lm – длина m;

- L1 и L2 – целые числа ϵ Z, Lh ≤ L2;

- – стартовый вектор;

- – шаговая функция хэширования;

- – финальное преобразование.

Алгоритм:

1. m дополняется до кратности L1 бит;

2. разбить дополненную последовательность на блоки m=m1|…|mq: |m1| = L1;

3. определяем стартовое значение H0=IV;

4. для i=1…q, Hi=φ(mi, Hi-1);

5. H(m)=T(Hq)

Для конкретного х необходимо определить:

- L1, L2, Lh;

- метод дополнения L1;

- стартовый вектор IV;

- шаговая функция φ;

- финальные преобразования T;

- методы дополнения.

Как правило, L1 = L2 = Lh.

Методы дополнения описаны в ISO/IEC 10118-1, самое простое – дополнение нулями.

 

IV выбирается либо нулевой, либо заранее оговоренное значение.

T: часто T(Hq)=Lm бит Hq, T – односторонняя функция.

φ:

- 10118-2: построение блочного шифра для φ (ГОСТ Р 34.10-94).

- 10118-3: заказные хэш-функции, специально построенные φ

(SHA-1, SHA-2, RIPEMD-*).

- 10118-4: использование модулярной арифметики для φ;

, Ki зависит от .

Для модулярной арифметики: ;

Bi строится по m; A – константа; N=pq; e=2.257; MASH-1,-2.

ХФ ГОСТ Р 34.10-94

,

- дополнение до кратности 256 бит;

- нарезка по 256 бит;

- каждый блок сжимается с использованием шифрования ГОСТ Р 28147 ( – шаговая функция хэширования);

- два этапа сжатия с учетом контрольной суммы и длинны сообщения.

Шаговая функция χ

;

.

Алгоритм вычисления шаговой функции:

1) генерация ключей Ki (i=1…4), зависят от H и M;

2) шифрующие преобразование строки H на ключах Ki;

3) перемешивающие преобразование: результат шифрования еще раз перемешивается в H.

Генерация ключей:

Опустим. Ki(H,M), i=1…4.

Шифрующее преобразование:

, ;

| - конкатенация (склейка битовых строк);

;

.

Перемешивание: ;

;

;

 

;

; s w:val="28"/><w:lang w:val="EN-US"/></w:rPr><m:t>О·</m:t></m:r></m:oMath></m:oMathPara></w:p><w:sectPr wsp:rsidR="00000000"><w:pgSz w:w="12240" w:h="15840"/><w:pgMar w:top="1134" w:right="850" w:bottom="1134" w:left="1701" w:header="720" w:footer="720" w:gutter="0"/><w:cols w:space="720"/></w:sectPr></wx:sect></w:body></w:wordDocument>"> .

.

Процедура вычисления h(M):

M – входные данные;

IV – стартовое значение регистра H;

Mr ϵ V* – часть М, которая еще не прошла процедуру хеширования;

Мр ϵ V* – остаток очередной терации;

Мs ϵ V256 – текущая часть М, которая обрабатывается;

Н ϵ V256 – текущее значение хэш-функции;

Σ ϵ V256 – контрольная сумма;

L ϵ V256 – длина М.

Алгоритм:

1. Mr=M, H=IV, Σ=0, L=0;

2. Пока |Mr|>256 => выполняются шаги 3.-7.;

3. Мr=Mp|Ms;

4. H=χ(Ms,H);

5. L=L+256(mod2256);

6. Σ= Σ+Ms(mod 2256);

7. Mr=Mp;

Иначе выполняются 9.-14.;

9. Модификация длины L=L+|Mr|(mod 2256);

10. Дополняются нулевыми битами до 256 бит, M’=0…0|Mr: |M’|=256;

11. Σ= Σ+M(mod 2256) – изменение контрольной суммы;

12. H=χ(M’,H);

13. H=χ(L,H) – учет длины;

14. H=χ(Σ,H) – учет контрольной суммы.

15. h(М)=Н.

 

Применение хэш-функции без ключа:



<== предыдущая лекция | следующая лекция ==>
Атака на редуцированную хэш-функцию. | ЭЦП (хэш-функция должна анализировать совместно с алгоритмом цифровой подписи).


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.016 сек.