Дополнение (криптография): различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
Нет описания правки
 
(не показано 35 промежуточных версий 12 участников)
Строка 1: Строка 1:
{{значения|Дополнение}}
В криптографии дополнение относится к числу различных применений.
'''Дополнение''' ({{lang-en|padding}}) в [[Криптография|криптографии]] — добавление ничего не значащих данных к зашифровываемой информации, нацеленное на повышение [[Криптостойкость|криптостойкости]]. Различные техники дополнения применялись в [[История криптографии|классической криптографии]] {{Переход|#Классическая криптография}}, обширное применение техники дополнений нашли в компьютерных системах шифрования.
==Классическая криптография==
Официальные сообщения часто начинаются и заканчиваются предсказуемо: ''Мой дорогой посол, С уважением'' и др. Основное применение дополнения к классическими шифрами заключается в предотвращении. Случайная длина дополнения также предотвращает аналитика от знания точной длины открытого текста.
Многие классические шифры используют в качестве открытого текста конкретные шаблоны() и если открытый текст не подходит под шаблон, то часто необходимо дополнять его символами, чтобы заполнить шаблон. Использование ничего не значащих символов в данном случае может усложнить работу криптоаналитика.
Известным примером классического дополнения, которое вызвало большое недоразумение является "[[the world wonders]]".


==Симметричная криптография==
== Классическая криптография ==
Официальные сообщения часто начинаются и заканчиваются предсказуемо, например, «''С уважением, …''». Основная цель применения дополнения к классическими шифрами — лишить [[криптоаналитик]]а возможности использовать такую предсказуемость при [[криптоанализ]]е [[Атака на основе открытых текстов|известного текста]]<ref>[[Уэлшман, Гордон|Гордон Уэлшман]], ''The Hut Six Story: Breaking the Enigma Codes'', p. 78.</ref>. Случайная длина дополнения также не позволяет криптоаналитику узнать точную длину сообщения.
===Хэш-функции===
Большинство современных криптографических хэш-функций обрабатывают сообщения в блоках фиксированной длины; но все, кроме самых первых хэш-функций в какой-то мере включают в себя схему дополнения.
Многие схемы дополнения основаны на добавлении предсказуемых данных в последний блок. Например, дополнение может быть получено от общей длины сообщения. Этот вид дополнения обычно применяется к хэш-алгоритмам, основанным на структуре Меркла-Дамгарда.


Многие классические шифры используют в качестве открытого текста конкретные шаблоны (например, квадраты, прямоугольники и так далее). Если передаваемое сообщение не подходит под шаблон, то его часто необходимо дополнять, чтобы полностью заполнить шаблон. Использование ничего не значащих символов в качестве дополнения в данном случае также усложняет работу криптоаналитика.
===Режим шифрования===
Electronic codebook (ECB) и cipher-block-chaining (CBC) - примеры режимов шифрования.


== Симметричная криптография ==
===Дополнение битами===
{{main|Симметричные криптосистемы}}

=== Хеш-функции ===
Большинство современных [[Криптографическая хеш-функция|криптографических хеш-функций]] обрабатывают сообщения в блоках фиксированной длины, и практически все в какой-то мере используют в себе схему дополнения.

Многие схемы дополнения основаны на добавлении определённых данных в последний блок. Например, дополнение может быть получено исходя из общей длины сообщения. Такой вид дополнения обычно применяется к хеш-алгоритмам, основанным на [[Структура Меркла — Дамгора|структуре Меркла — Дамгора]].

=== Режим шифрования ===
Electronic codebook (ECB) и cipher-block-chaining (CBC) — примеры [[Режим шифрования|режимов шифрования]]. Режимы шифрования для алгоритмов с симметричным ключом требуют, чтобы длина сообщения была кратна размеру блока, поэтому сообщение, возможно, необходимо дополнить, чтобы привести его к подходящей длине.

Недостатком дополнения является то, что оно делает текст уязвимым для {{iw|Атака Оракула|атакам Оракула|en|Padding oracle attack}}. Данная атака позволяет злоумышленнику получить знания о передаваемом сообщении, не атакуя блочный шифр примитивно; этой атаки можно избежать, если убедиться, что атакующий не может получить никаких знаний об удалении добавленных байтов. Это может быть достигнуто путём проверки кода аутентификации сообщений (MAC) или цифровой подписи перед удалением байтов заполнения.

==== Дополнение битами ====
Дополнение битами может быть применено к сообщению любой длины.
Дополнение битами может быть применено к сообщению любой длины.
Сообщение дополняется одним единичным битом ('1') и некоторым количеством нулевых битов ('0'). Количество добавленных нулевых битов зависит от границы блока до которой необходимо дополнить сообщение. В битных терминах это "1000 ... 0000".
Сообщение дополняется одним единичным битом ('1') и некоторым количеством нулевых битов ('0'). Количество добавленных нулевых битов зависит от границы блока, до которой необходимо дополнить сообщение. В битных терминах это «1000 0000».
Этот метод может быть использован для дополнения сообщений с любым числом битов, абсолютно не обязательно чтобы они составляли целое число байт. Например сообщение состоящее из 23 бит дополняется 9 битами, чтобы заполнить 32-битовый блок:
Этот метод может быть использован для дополнения сообщений с любым числом битов, абсолютно не обязательно, чтобы они составляли целое число байт. Например, сообщение, состоящее из 23 бит, дополняется 9 битами, чтобы заполнить 32-битовый блок:


... | 1011 1001 1101 0100 0010 011'''1 0000 0000''' |
| 1011 1001 1101 0100 0010 011'''1 0000 0000''' |


Это дополнение является первым шагом двухступенчатой схемы дополнения, использующейся во многих хэш-функциях в том числе [[MD5]] and [[Secure Hash Algorithm (disambiguation)|SHA]].
Это дополнение является первым шагом двухступенчатой схемы дополнения, использующейся во многих хеш-функциях, в том числе [[MD5]] и [[SHA]].


===Дополнение байтами===
==== Дополнение байтами ====
Дополнение байтами может быть применено к сообщениям, которые могут быть закодированы в виде целого числа байт.
Дополнение байтами может быть применено к сообщениям, которые могут быть закодированы в виде целого числа байт.


=====ANSI X.923=====
===== ANSI X.923 =====
В ANSI X.923 байты дополняются нулями и последний байт определяет границу дополнения или количество добавленных байтов.
В ANSI X.923 байты дополняются нулями и последний байт определяет границу дополнения или количество добавленных байтов.

Пример: В следующем примере блок имеет размер 8 байтов, и требуется дополнение 4 байтами.
Пример: В следующем примере блок имеет размер 8 байтов, и требуется дополнение 4 байтами.


... | DD DD DD DD DD DD DD DD | DD DD DD DD '''00 00 00 04''' |
... | DD DD DD DD DD DD DD DD | DD DD DD DD '''00 00 00 04''' |


=====ISO 10126=====
===== ISO 10126 =====
В ISO 10126<ref>{{Cite web |url=http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=18113 |title=ISO catalog, ''ISO 10126-1:1991'' |access-date=2015-12-08 |archive-date=2016-04-09 |archive-url=https://web.archive.org/web/20160409083333/http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=18113 |deadlink=no }}</ref><ref>{{Cite web |url=http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=18114 |title=ISO catalog, ''ISO 10126-2:1991'' |access-date=2015-12-08 |archive-date=2016-04-09 |archive-url=https://web.archive.org/web/20160409083338/http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=18114 |deadlink=no }}</ref> дополнение должно быть заполнено случайными байтами, а последний байт должен показывать количество добавленных байтов.


В ISO 10126 дополнение должно быть заполнено случайными байтами, а последний байт должен показывать количество добавленных байтов.
Пример: В следующем примере блок имеет размер 8 байтов, и требуется дополнение 4 байтами.
Пример: В следующем примере блок имеет размер 8 байтов, и требуется дополнение 4 байтами.


... | DD DD DD DD DD DD DD DD | DD DD DD DD '''81 A6 23 04''' |
... | DD DD DD DD DD DD DD DD | DD DD DD DD '''81 A6 23 04''' |


=====PKCS7=====
===== PKCS7 =====
[[PKCS|PKCS#7]] описано в RFC 5652.


Дополнение в целых байтах. Значение каждого байта равно числу добавленных байтов, то есть добавляется ''N'' байт со значением ''N''. Число добавленных байтов зависит от границы блока, до которого необходимо расширить сообщение.
[[PKCS|PKCS#7]] описано в [http://tools.ietf.org/html/rfc5652#section-6.3 RFC 5652].

Дополнение в целых байтах. Значение каждого байта равно числу добавленных байтов, т.е. добавляется ''N'' байт со значением ''N''. Число добавленных байтов зависит от границы блока, до которого необходимо расширить сообщение.
Дополнение будет одним из:
Дополнение будет одним из:


Строка 52: Строка 59:
etc.
etc.


Данный метод дополнения (также как и два предыдущих) хорошо определен только если ''N'' меньше чем 256.
Данный метод дополнения (также как и два предыдущих) хорошо определён, только если ''N'' меньше, чем 256.


Пример: Пример: В следующем примере блок имеет размер 8 байтов, и требуется дополнение 4 байтами
Пример: В следующем примере блок имеет размер 8 байтов, и требуется дополнение 4 байтами


... | DD DD DD DD DD DD DD DD | DD DD DD DD '''04 04 04 04''' |
... | DD DD DD DD DD DD DD DD | DD DD DD DD '''04 04 04 04''' |


=====ISO/IEC 7816-4=====
===== ISO/IEC 7816-4 =====
[[ISO/IEC 7816]]-4:2005<ref>{{Cite web |url=http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=36134 |title=ISO catalog, ''ISO/IEC 7816-4:2005'' |access-date=2015-12-08 |archive-date=2016-03-04 |archive-url=https://web.archive.org/web/20160304071317/http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=36134 |deadlink=no }}</ref> идентичен схеме дополнения битами, примененной к тексту, состоящему из N байтов. На практике это значит, что первый дополнительный байт обязательно имеет значение '80', а за ним следует, если это необходимо, от 0 до N-1 байтов '00' до тех пор, пока не будет достигнута граница блока. ISO/IEC 7816-4 является стандартом связи для смарт-карт и сам по себе не содержит каких-либо криптографических спецификаций.


Пример: В следующем примере блок имеет размер 8 байтов, и требуется дополнение 4 байтами
ISO/IEC 7816-4 идентичен схеме дополнения битами.


... | DD DD DD DD DD DD DD DD | DD DD DD DD '''80 00 00 00''' |
====Дополнение нулями====


Следующий пример показывает дополнение только одним байтом:
Все байты, которыми необходимо дополнить, заполняются нулями.


... | DD DD DD DD DD DD DD DD | DD DD DD DD DD DD DD '''80''' |
Пример: Пример: В следующем примере блок имеет размер 8 байтов, и требуется дополнение 4 байтами

=== Дополнение нулями ===
Все байты, которыми необходимо дополнить, заполняются нулями. Схема дополнения нулями не признана стандартом, хотя она описана как метод дополнения 1 для хеш-функций и MAC в ISO/IEC 10118-1<ref>{{Cite web |url=http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=31143 |title=ISO/IEC 10118-1:2000 ''Information technology — Security techniques — Hash-functions — Part 1: General'' |access-date=2015-12-08 |archive-date=2016-04-18 |archive-url=https://web.archive.org/web/20160418143720/http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=31143 |deadlink=no }}</ref> и [[ISO/IEC 9797-1]].<ref>{{Cite web |url=http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=30656 |title=ISO/IEC 9797-1:1999 ''Information technology — Security techniques — Message Authentication Codes (MACs) — Part 1: Mechanisms using a block cipher'' |access-date=2015-12-08 |archive-date=2016-04-09 |archive-url=https://web.archive.org/web/20160409083413/http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=30656 |deadlink=no }}</ref>

Пример: В следующем примере блок имеет размер 8 байтов, и требуется дополнение 4 байтами


... | DD DD DD DD DD DD DD DD | DD DD DD DD '''00 00 00 00''' |
... | DD DD DD DD DD DD DD DD | DD DD DD DD '''00 00 00 00''' |
Строка 72: Строка 85:
Дополнение нулями может быть необратимо, если оригинальное сообщение заканчивалось одним или несколькими нулевыми байтами, что делает невозможным отличить байты открытого текста от байтов заполнения.
Дополнение нулями может быть необратимо, если оригинальное сообщение заканчивалось одним или несколькими нулевыми байтами, что делает невозможным отличить байты открытого текста от байтов заполнения.


====Криптография с открытым ключом====
== Криптография с открытым ключом ==
В [[Криптосистема с открытым ключом|криптографии с открытым ключом]] дополнение это способ приготовления сообщения для шифрования или подписи следующими схемами: [[PKCS|PKCS#1]], [[Оптимальное асимметричное шифрование с дополнением|OAEP]], [[RSASSA-PSS|PSS]], PSSR, [[IEEE P1363]] EMSA2 и EMSA5. Современная форма дополнения для асимметричных примитивов применяется с алгоритму [[RSA]], когда он используется для шифрования ограниченного количества байт.


Операция называется «Дополнение», потому что изначально случайный материал просто добавляется к сообщению. Эта форма дополнения не является безопасной и поэтому больше не применяется.
В криптографии с открытым ключом дополнение это способ приготовления сообщения для шифрования или подписи следующими схемами: [[PKCS1|PKCS#1]] v1.5, [[OAEP]], PSS, PSSR, IEEE P1363 EMSA2 and EMSA5. Современнаz форма дополнения для асимметричных примитивов применяется с алгоритму RSA, когда он используется для шифрования ограниченного количества байт.


== Анализ трафика ==
Операция называется "Дополнение", потому что изначально случайный материал просто добавляется к сообщению. Эта форма дополнения не является безопасной и поэтому больше не применяется.
Даже если используются совершенные криптографические процедуры, злоумышленник может получить знания о количестве трафика, который был создан. Злоумышленник не может конкретно знать, что [[Алиса и Боб]] передавали, но может знать, что сообщение передавалось и насколько долго это было. В некоторых ситуациях это может быть очень плохо. Например, когда страны организуют секретное нападение на другую страну: этого может быть достаточно, чтобы предупредить эту страну, давая ей знать, что происходит много тайной деятельности.


В качестве другого примера, при шифровании потоков [[VOIP|Voice Over IP]], которые используют кодирование с попеременной битовой скоростью, число битов в единицу времени не скрыто, и это может служить для предположения голосовой фразы.<ref>[http://portal.acm.org/citation.cfm?doid=1880022.1880029 Uncovering Spoken Phrases in Encrypted Voice over IP Conversations<!-- Заголовок добавлен ботом -->]</ref>
==Анализ трафика==


Дополнение сообщения помогает сделать анализ трафика сложнее. Как правило, случайные биты добавляется к концу сообщения с указанием, сколько таких битов всего.
Даже если используются совершенные криптографические процедуры, злоумышленник может получить знания о количестве трафика, который был создан. Злоумышленник не может конкретно знать, что Алиса и Боб передавали, но может знать, что сообщение передавалось и насколько долго это было. В некоторых ситуациях это может быть очень плохо. Например, когда страны организуют секретное нападение на другую страну: этого может быть достаточно, чтобы предупредить эту страну, давая ей знать, что происходит много тайной деятельности.


== См. также ==
В качестве другого примера, при шифровании потоков Voice Over IP, которые используют кодирование с попеременной битовой скоростью, число битов в единицу времени не скрыто, и это может служить для предположения голосовой фразы.
* [[Соль (криптография)]]

* [[Заимствование шифротекста]]
Дополнение сообщения помогает сделать анализ трафика сложнее. Как правило, случайные биты добавляется к концу сообщения с указанием сколько таких битов всего.


== Примечания ==
{{примечания|2}}
{{вс}}
{{Криптография}}
{{Криптография}}

[[Категория:Криптография]]
[[Категория:Криптография]]

Текущая версия от 16:14, 31 июля 2024

Дополнение (англ. padding) в криптографии — добавление ничего не значащих данных к зашифровываемой информации, нацеленное на повышение криптостойкости. Различные техники дополнения применялись в классической криптографии , обширное применение техники дополнений нашли в компьютерных системах шифрования.

Классическая криптография

[править | править код]

Официальные сообщения часто начинаются и заканчиваются предсказуемо, например, «С уважением, …». Основная цель применения дополнения к классическими шифрами — лишить криптоаналитика возможности использовать такую предсказуемость при криптоанализе известного текста[1]. Случайная длина дополнения также не позволяет криптоаналитику узнать точную длину сообщения.

Многие классические шифры используют в качестве открытого текста конкретные шаблоны (например, квадраты, прямоугольники и так далее). Если передаваемое сообщение не подходит под шаблон, то его часто необходимо дополнять, чтобы полностью заполнить шаблон. Использование ничего не значащих символов в качестве дополнения в данном случае также усложняет работу криптоаналитика.

Симметричная криптография

[править | править код]

Хеш-функции

[править | править код]

Большинство современных криптографических хеш-функций обрабатывают сообщения в блоках фиксированной длины, и практически все в какой-то мере используют в себе схему дополнения.

Многие схемы дополнения основаны на добавлении определённых данных в последний блок. Например, дополнение может быть получено исходя из общей длины сообщения. Такой вид дополнения обычно применяется к хеш-алгоритмам, основанным на структуре Меркла — Дамгора.

Режим шифрования

[править | править код]

Electronic codebook (ECB) и cipher-block-chaining (CBC) — примеры режимов шифрования. Режимы шифрования для алгоритмов с симметричным ключом требуют, чтобы длина сообщения была кратна размеру блока, поэтому сообщение, возможно, необходимо дополнить, чтобы привести его к подходящей длине.

Недостатком дополнения является то, что оно делает текст уязвимым для атакам Оракула[англ.]. Данная атака позволяет злоумышленнику получить знания о передаваемом сообщении, не атакуя блочный шифр примитивно; этой атаки можно избежать, если убедиться, что атакующий не может получить никаких знаний об удалении добавленных байтов. Это может быть достигнуто путём проверки кода аутентификации сообщений (MAC) или цифровой подписи перед удалением байтов заполнения.

Дополнение битами

[править | править код]

Дополнение битами может быть применено к сообщению любой длины. Сообщение дополняется одним единичным битом ('1') и некоторым количеством нулевых битов ('0'). Количество добавленных нулевых битов зависит от границы блока, до которой необходимо дополнить сообщение. В битных терминах это «1000 … 0000». Этот метод может быть использован для дополнения сообщений с любым числом битов, абсолютно не обязательно, чтобы они составляли целое число байт. Например, сообщение, состоящее из 23 бит, дополняется 9 битами, чтобы заполнить 32-битовый блок:

… | 1011 1001 1101 0100 0010 0111 0000 0000 |

Это дополнение является первым шагом двухступенчатой схемы дополнения, использующейся во многих хеш-функциях, в том числе MD5 и SHA.

Дополнение байтами

[править | править код]

Дополнение байтами может быть применено к сообщениям, которые могут быть закодированы в виде целого числа байт.

В ANSI X.923 байты дополняются нулями и последний байт определяет границу дополнения или количество добавленных байтов.

Пример: В следующем примере блок имеет размер 8 байтов, и требуется дополнение 4 байтами.

... | DD DD DD DD DD DD DD DD | DD DD DD DD 00 00 00 04 |

В ISO 10126[2][3] дополнение должно быть заполнено случайными байтами, а последний байт должен показывать количество добавленных байтов.

Пример: В следующем примере блок имеет размер 8 байтов, и требуется дополнение 4 байтами.

... | DD DD DD DD DD DD DD DD | DD DD DD DD 81 A6 23 04 |

PKCS#7 описано в RFC 5652.

Дополнение в целых байтах. Значение каждого байта равно числу добавленных байтов, то есть добавляется N байт со значением N. Число добавленных байтов зависит от границы блока, до которого необходимо расширить сообщение. Дополнение будет одним из:

01
02 02
03 03 03
04 04 04 04
05 05 05 05 05
etc.

Данный метод дополнения (также как и два предыдущих) хорошо определён, только если N меньше, чем 256.

Пример: В следующем примере блок имеет размер 8 байтов, и требуется дополнение 4 байтами

... | DD DD DD DD DD DD DD DD | DD DD DD DD 04 04 04 04 |

ISO/IEC 7816-4:2005[4] идентичен схеме дополнения битами, примененной к тексту, состоящему из N байтов. На практике это значит, что первый дополнительный байт обязательно имеет значение '80', а за ним следует, если это необходимо, от 0 до N-1 байтов '00' до тех пор, пока не будет достигнута граница блока. ISO/IEC 7816-4 является стандартом связи для смарт-карт и сам по себе не содержит каких-либо криптографических спецификаций.

Пример: В следующем примере блок имеет размер 8 байтов, и требуется дополнение 4 байтами

... | DD DD DD DD DD DD DD DD | DD DD DD DD 80 00 00 00 |

Следующий пример показывает дополнение только одним байтом:

... | DD DD DD DD DD DD DD DD | DD DD DD DD DD DD DD 80 |

Дополнение нулями

[править | править код]

Все байты, которыми необходимо дополнить, заполняются нулями. Схема дополнения нулями не признана стандартом, хотя она описана как метод дополнения 1 для хеш-функций и MAC в ISO/IEC 10118-1[5] и ISO/IEC 9797-1.[6]

Пример: В следующем примере блок имеет размер 8 байтов, и требуется дополнение 4 байтами

... | DD DD DD DD DD DD DD DD | DD DD DD DD 00 00 00 00 |

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

Криптография с открытым ключом

[править | править код]

В криптографии с открытым ключом дополнение это способ приготовления сообщения для шифрования или подписи следующими схемами: PKCS#1, OAEP, PSS, PSSR, IEEE P1363 EMSA2 и EMSA5. Современная форма дополнения для асимметричных примитивов применяется с алгоритму RSA, когда он используется для шифрования ограниченного количества байт.

Операция называется «Дополнение», потому что изначально случайный материал просто добавляется к сообщению. Эта форма дополнения не является безопасной и поэтому больше не применяется.

Анализ трафика

[править | править код]

Даже если используются совершенные криптографические процедуры, злоумышленник может получить знания о количестве трафика, который был создан. Злоумышленник не может конкретно знать, что Алиса и Боб передавали, но может знать, что сообщение передавалось и насколько долго это было. В некоторых ситуациях это может быть очень плохо. Например, когда страны организуют секретное нападение на другую страну: этого может быть достаточно, чтобы предупредить эту страну, давая ей знать, что происходит много тайной деятельности.

В качестве другого примера, при шифровании потоков Voice Over IP, которые используют кодирование с попеременной битовой скоростью, число битов в единицу времени не скрыто, и это может служить для предположения голосовой фразы.[7]

Дополнение сообщения помогает сделать анализ трафика сложнее. Как правило, случайные биты добавляется к концу сообщения с указанием, сколько таких битов всего.

Примечания

[править | править код]
  1. Гордон Уэлшман, The Hut Six Story: Breaking the Enigma Codes, p. 78.
  2. ISO catalog, ISO 10126-1:1991. Дата обращения: 8 декабря 2015. Архивировано 9 апреля 2016 года.
  3. ISO catalog, ISO 10126-2:1991. Дата обращения: 8 декабря 2015. Архивировано 9 апреля 2016 года.
  4. ISO catalog, ISO/IEC 7816-4:2005. Дата обращения: 8 декабря 2015. Архивировано 4 марта 2016 года.
  5. ISO/IEC 10118-1:2000 Information technology — Security techniques — Hash-functions — Part 1: General. Дата обращения: 8 декабря 2015. Архивировано 18 апреля 2016 года.
  6. ISO/IEC 9797-1:1999 Information technology — Security techniques — Message Authentication Codes (MACs) — Part 1: Mechanisms using a block cipher. Дата обращения: 8 декабря 2015. Архивировано 9 апреля 2016 года.
  7. Uncovering Spoken Phrases in Encrypted Voice over IP Conversations