Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Практическая криптография алгоритмы и их программирование
.pdf
Глава 4. Как устроены современные шифры 141
break;
case 2: case 5:
R1_CLOCK;
R3_CLOCK;
break;
case 3: case 4:
R1_CLOCK;
R2_CLOCK;
break;
}
}
// получаем выходные 228 битов
o=0;
i=0;
c=0;
for (round = 0; round < 228; round++) {
// смотрим, что нужно двигать
s = (r1 >> 8) & 1;
s <<= 1;
s |= (r2 >> 9) & 1;
s <<= 1;
s |= (r3 >> 10) & 1;
switch (s) {
case 0: case 7:
R1_CLOCK;
R2_CLOCK;
R3_CLOCK;
break;
case 1: case 6:
R1_CLOCK;
R2_CLOCK;
break;
case 2: case 5:
R1_CLOCK;
R3_CLOCK;
break;
case 3: case 4:
R1_CLOCK;
R2_CLOCK;
break;
}
o |= ((r1 >> 18) ^ (r2 >> 21) ^ (r3 >> 22)) & 1;
printf("%d", o & 1);
if (i++ == 32) {
(*frame)[c++] ^= o;
i=0;
}
o <<= 1;
}
(*frame)[c] ^= o;
}

142 Глава 4. Как устроены современные шифры
Размер пакета равен 228 битам. Шаги зашифрования начинаются с того, что
регистры обнуляются, затем подвергаются модификации без учета мажоритарных
битов. В это время на каждой из 64 итераций биты ключа последовательно по одному суммируются с младшими битами каждого из регистров.
Затем то же самое проделывается с номером пакета. Для этого проводится 22
дополнительные итерации. На этом процедура разворачивания ключа завершается, а получившиеся значения регистров называют их начальным заполнением.
Перед тем как начать зашифрование пакета, проводится еще 100 итераций,
но уже с учетом мажоритарных битов C1, C2 и C3. После этого проводится еще
228 итераций, и после каждой итерации результирующий бит суммируется по модулю 2 с очередным битом данных пакета (см. листинг 4.36).
Список литературы
1. Announcing Development of Federal Information Processing Standard for Advan-
ced Encryption Standard. — Federal Register. Vol. 62, ¹ 1. 1997. Pp. 93—94.
2. Announcing Reguest for Candidate Algorithm Nomination for Advanced Encrypti-
on Standard (AES). - Federal Register. Vol. 62, ¹ 177. 1997. Pp. 48051—48058.
3. Status report on the 2-nd round of the Development of the Advanced Encryption
Standard / AES home page. http://www.nist.gov/aes.
4. Status report on the 3-th round of the Development of the Advanced Encryption
Standard, http://www.nist.gov/aes.
5. Joan Daemen, Vincent Rijmen. The Rijndael Block Cipher. AES Proposal: Rijnda-
el, Document version 2, 3.09.99.
6. Horst Feistel, Block cipher cryptographic system, USPatent N3,798,359 îò
19/03/1974, USPatent Bureau.
7. Horst Feistel, Block cipher cryptographic system, USPatent N3,798,360 îò
19/03/1974, USPatent Bureau.
8. A Mathematical Theory of Communication By C. E. SHANNON The Bell System
Technical Journal, Vol. 27, pp. 379—423, 623—656, July, October, 1948.
9. M. Dawson and S. E. Tavares, An Expanded Set of S-Box Design Criteria Based
on In-formation Theory and its Relation to Differential-Like Attacks, in Advances in
Cryptol-ogy: Proc. of Eurocrypt'91, Springer-Verlag, 1991, pp. 352—367.
10. H. Feistel, Cryptography and Computer Privacy, Scientific American, vol.228,
1973, pp. 15-23.
11. C. E. Shannon, Communication Theory of Secrecy Systems, Bell Systems Technical Jour-nal, vol. 28, 1949, pp. 656—715.
12. M. Sivabalan, S. E. Tavares, and L. E. Peppard, On the Design of SP Networks
from an Information Theoretic Point of View, in Advances in Cryptology: Proc. of
CRYPTO '92.
13. A. F. Webster, Plaintext/Ciphertext Bit Dependencies in Cryptographic Sys-
tems, M.Sc. hesis, Department of Electrical Engineering, Queen's University, 1985.
14. A. F. Webster and S. E. Tavares, On the Design of S-Boxes, in Advances in
Cryptology: roc. of CRYPTO'85, Springer-Verlag, New York, 1986, pp. 523—534.

Глава 4. Как устроены современные шифры 143
15. C. M. Adams, Designing DES-Like Ciphers with Guaranteed Resistance to
Differential and Linear Attacks, Workshop Record of the Workshop on Selected Areas in
Cryptography (SAC 95), May 18-19, 1995, pp. 133—144.
16. C. M. Adams and S. E. Tavares, Generating and Counting Binary Bent Sequen-
ces, IEEE Transactions on Information Theory, vol. IT-36, 1990, pp. 1170—1173.
17. A.K. Leung, S.E. Tavares. Sequence Complexity as Test for Cryptographic Systems. — Advances in Cryptology — CRYPTO'84. Proc. LNCS, Vol. 196 — Springer-Verlag.
18. Alfred Menezes, et. al. Handbook af Applied Cryptography — CRC Press, 1997.
19. J. Daemen, R. Govaerts and J. Vandewalle, A Hardware Design Model for Cryptographic Algorithms, Computer Security'92, pp. 419-434. Lecture Notes in Computer
Science, vol. 648, Springer-Verlag, Berlin 1992.
20. J. Daemen, R. Govaerts and J. Vandewalle, A New Approach Towards Block Cipher Design, Computer Security'92, pp. 419-434. Lecture Notes in Computer Science, vol.
648, Springer-Verlag, Berlin 1992.
21. Data Encryption Standard, Federal Information Processing Standard (FIPS) Publication 46, National Bureau of Standards, U.S. Department of Commerce, Washington
D.C., January 1977.
22. X. Lai and J.L. Massey, A Proposal for a New Block Encryption Standard, in Advances in Cryptology{Eurocrypt' 90, Springer-Verlag, Berlin 1991, pp. 389—404.
23. X. Lai, J.L. Massey and S. Murphy, Markov Ciphers and Differential Cryptanalysis, in Advances in Cryptology{Eurocrypt' 91, Springer-Verlag, Berlin 1991, pp. 17—38.
24. J. Daemen, L. Van Linden, R. Govaerts and J. Vandewalle, Propagation Properti-
n
es of Multiplication Modulo 2
-1. Proceedings of the 13th Symposium on Information Theory in the Benelux (1992), Werkgemeenschap voor informatie en Communicatione theorie, Enschede, The Netherlands.
25. R. A. Rueppel, øStream Ciphers', in Contemporary Cryptology, Gustavus J. Sim-
mons Ed. IEEE Press, New York.
26. Specification of the systems of the MAC/packet family'. EBU Technical Docu-
ment 3258-E, Oct 1986.
27. J. Daemen, R. Govaerts, J. Vandewalle, Cryptanalysis of MUX-LFSR Based
Scramblers, in Proceedings of SPRC '93, 15—16 February, Roma.
28. S. W. Golomb, Shift Register Sequences, Holden-Day Inc., San Francisco, 1967.
29. G.Z. Xiao, J.L. Massey, A Spectral Characterization of Correlation-Immune Fun-
ctions, IEEE Trans. Inform. Theory, Vol. 34, No. 3, 1988, pp. 569—571.
30. Y. Desmedt, J-J. Quisquater, and M. Davio. Dependence of output in DES: Small
avalanche characteristics. In Advances in Cryptology, Proceedings of CRYPTO'84, Ed G R
Blakley, D Chaum, Vol.196, pages 359-376. Springer-Verlag, 1985.
31. S. Even and O. Goldreich. Des-like functions can generate the alternating group.
IEEE Transactions on Information Theory, 29(6):863—865, November 1983.
32. J. Gordon and H. Retkin. Are big S-boxes best ? In T. Beth, editor, Cryptography,
Proceedings, Burg Feuerstein 1982, pages 257—262. Springer Verlag, 1983.
33. L.J. O'Connor. On the distribution of characteristics in bijective mappings. In Extended Abstracts — Eurocrypt'93, May 1993.
34. Госстандарт СССР, Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования ГОСТ 28147—89. М: ИПК Изда
тельство стандартов, 1989.
-

144 Глава 4. Как устроены современные шифры
35. J.P. Pieprzyk and Xian-Mo Zhang. Permutation generators of alternating groups.
In Advances in Cryptology — AUSCRYPT'90, J. Seberry, J. Pieprzyk (Eds), Lecture Notes in Computer Science, Vol. 453, pages 237—244. Springer Verlag, 1990.
36. E. Biham, A. Biryukov, and A. Shamir, «Miss in the Middle Attacks on IDEA and
Khufu,» Fast Software Encryption: 6th International Workshop, FSE '99, Springer-Verlag,
1999, pp. 124—138.
37. E. Biham, «New Types of Cryptanalytic Attacks using Related Keys,» Technical
Report #753, Computer Science Department, Technion — Israel Institute of Technology,
Sep. 1992.
38. E. Biham and A. Biryukov, «An Improvement of Davies' Attack on DES,» Advances in Cryptology — EUROCRYPT '94 Proceedings, Springer-Verlag, 1995, pp.
461—467.
39. J. Borst, L.R. Knudsen, and V. Rijmen, «Two Attacks on Reduced IDEA» Advances in Cryptology — EUROCRYPT '97 Proceedings, Springer-Verlag, 1998, pp. 1—13.
40. E. Biham and A. Shamir, «Differential Cryptanalysis of DES-like Cryptosystems,»
Advances in Cryptology — CRYPTO '90 Proceedings, Springer-Verlag, 1991, pp. 2—21.
41. D. Chaum and J.-H. Evertse, «Cryptanalysis of DES with a Reduced Number of
Rounds; Sequences of Linear Factors in Block Ciphers,» Advances in Cryptology - CRYPTO '85 Proceedings, Springer-Verlag, 1986, pp. 192—211.
42. D.W. Davies, «Some Regular Properties of the DES,» Advances in Cryptology:
Proceedings of Crypto 82, Springer-Verlag, Plenum Press, 1983, pp. 89—96.
43. W. Diffie and M.E. Hellman, «Exhaustive Cryptanalysis of the NBS Data Encryption Standard,» Computer, v. 10, n. 6, Jun. 1977, pp. 74—84.
44. M.E. Hellman, «A Cryptographic Time-Memory Trade Off,» IEEE Transactions
on Information Theory, v. 26, n. 4, Jul. 1980, pp. 401—406.
45. M.E. Hellman, R. Merkle, R. Schroeppel, L. Washington, W. Diffie, S.Pohlig, and
P. Schweitzer, «Results of an Initial Attempt to Cryptanalyze the NBS Data Encryption
Standard,» Technical Report SEL 76-042, Information Systems Lab, Department of Electrical Engineering, Stanford University, 1976.
46. L.R. Knudsen and W. Meier, «Improved Differential Attacks on RC5,» Advances
in Cryptology — CRYPTO '96 Proceedings, Springer-Verlag, 1997, pp. 216—228.
47. L.R. Knudsen, «Applications of Higher Order Differentials and Partial Differentials,» K.U. Leuven Workshop on Cryptographic Algorithms, Springer-Verlag, 1995.
48. L.R. Knudsen and M.J.B. Robshaw, «Nonlinear Approximations in Linear Cryptanalysis,»Advances in Cryptology - EUROCRYPT '96 Proceedings, Springer-Verlag, 1997,
pp. 224—236.
49. J. Kelsey, B. Schneier, and D. Wagner, «Key-Schedule Cryptanalysis of IDEA,
G-DES, GOST, SAFER, and Triple-DES,» Advances in Cryptology - CRYPTO '96 Proceedings, Springer-Verlag, 1997, pp. 237—251.
50. J. Kelsey, B. Schneier, and D. Wagner, «Mod n Cryptanalysis, With Applications
Against RC5P and M6,» Fast Software Encryption: 6th International Workshop, FSE '99,
Springer-Verlag, 1999, pp. 139—155.
51. B. Schneier, Applied Cryptography, Second Edition, John Wiley & Sons, 1996.

Глава 5
Дешифрование современных шифров
It is very hard to estimate the security of a block cipher and
equally hard to compare several block ciphers in terms of security. Block ciphers today are construced from the designers experience and we are very far from constructing provably secure
block ciphers.
Из беседы с Ларсом Кнудсеном
Со времени использования шифров Цезаря, Вернама, Виженера и других,
признанных сегодня классическими, прошло очень много времени. С появлением
вычислительной техники шифросистемы приобрели новые качества и заметно
усложнились. Вместе с ними усложнились и методы криптоанализа новых шифров. Сами по себе методы дешифрования современных шифров довольно сложны
и в большой степени связаны с подчас огромным количеством вычислений. Многие из них уже невозможно провести без использования современных компьютерных систем.
К тому же использовавшиеся в криптографии понятия сильно изменились с
приходом новой вычислительно-информационной эры. Сегодня взломать шифр
уже не означает «узнать в точности зашифрованное сообщение». Современная
криптоаналитическая атака может закончиться, к примеру, сужением ключевого
пространства, то есть к выбору множества наиболее вероятных ключей, по которым будет производиться тотальное опробование и выбор дешифрованного сообщения с помощью мощной вычислительной техники. Она, кстати, представляет
собой весь спектр современных компьютерных технолоий — от обычных персональных компьютеров до специализированных устройств и программно-аппаратных
комплексов (см. раздел «Дешифрование DES»).
Конечно, криптоатака, завершившаяся уменьшением пространства перебора
256
с2
решающей при выборе того или иного криптографического средства для зашифрования служебной или секретной информации. Зачастую компьютеры используются не только на финальном этапе криптоатак — для подсчета результатов и перебора всех возможных значений, — но и для вычисления различных характеристик шифра или шифротекста. Без компьютерных методов криптоанализа
невозможно было бы оценить криптографическую стойкость датчиков псевдослучайных чисел, хэш-функций.
техники, которые заключает Агентство национальной безопасности США с производителями мультипроцессорных систем, особо оговорены условия работы этих
систем и даже наличие специальных инструкций, предназначенных для функционирования в качестве сверхэффективных «кирпичиков» в сложных системах
криптоанализа и дешифрования современных шифросистем.
255
äî 2
, не выглядит впечатляющей, однако в конце концов и она может быть
К примеру, в контрактах на разработку и производство суперкомпьютерной

146 Глава 5. Дешифрование современных шифров
Многие характеристики блочных и поточных симметричных шифров остались бы малоизученной областью криптографии, если бы не мощь современных
компьютеров. На сегодняшний день авторы симметричных и даже асимметричных криптоалгоритмов, основанных на базовых проблемах фундаментальных областей современной математики, вынуждены следить за скоростью развития вычислительной техники. Это небходимоcть, c которой приходится считаться, чтобы дать своим алгоритмам искомое свойство неподверженности криптоанализу с
помощью самых совершенных вычислительных устройств.
В этой главе мы постарались собрать наиболее интересные достижения современного криптоанализа, опирающиеся именно на существование современной
вычислительной техники, а также те методы и алгоритмы, которые представляют
интерес прежде всего с практической точки зрения.
Однако это всего лишь один из аспектов связки «программирование + криптография». Кроме того, что стойкость криптографического алгоритма должна
быть подтверждена теоретическими исследованиями, при использовании криптоалгоритмов на практике необходима комплексная проверка программно-аппаратной реализации разработанных шифросистем. При отсутствии оной последствия
могут быть просто фатальными, примером может служить исходный текст алгоритма симметричного шифрования Blowfish, распространяемого среди прочих в
Интернете. В данных исходных текстах в процедуре разворачивания ключа содержится ошибка (умышленно допущенная или нет — авторам неизвестно), заключающаяся в том, что подключи шифра определяются всего лишь двумя первыми
байтами ключа криптосистемы. Это означает, что при верной реализации основной функции шифрования и верном использовании алгоритма криптостойкость
его реализации не превысит 2
16
, что, вообще говоря, не предоставляет на сегод-
няшний день практически никакой защиты.
Так что современная криптография содержит очень много подводных камней.
И лишь часть из них мы научились распознавать и преодолевать быстро.
Создание и оценка узлов замен
Shannon uses the term confusion to denote the process of substituting one byte for another. The current jargon is to describe
a device which substitutes one byte for another according to a
fixed table as a substitution box or S-box.
J. Gordon, H. Retkin. Are Big S-Boxes Best?
Практически во всех существующих сегодня архитектурах систем симметричного шифрования используются так называемые узлы (таблицы) замен или
S-блоки (S-box). Ñàìè S-блоки представляют собой не что иное, как обычные табличные подстановки. Узлы замен используются в самых различных криптосистемах — от криптографических хэшей до блочных итеративных шифров. При этом,
несмотря на то что внимание уделяется в основном обратимым узлам замены,
сами S-блоки таковыми являться не обязаны. То есть, вообще говоря, узел заме
-

Глава 5. Дешифрование современных шифров 147
ны — это некоторое отображение, заданное с помощью таблицы значений. В большинстве случаев узлы замен являются единственной нелинейной частью шифра, и потому от стойкости метода их создания, оценки и использования целиком
зависит стойкость шифра.
С самого момента создания узлов замен для американского стандарта шифрования DES критерии отбора тех или иных значений узлов оставались чуть ли не
государственным секретом. Компания IBM сохранила в тайне критерии по просьбе Национального агентства безопасности США, что послужило поводом для
многих слухов. Кроме того, по этой причине многие из исследователей выражали
сомнения по поводу того, можно ли оценить предоставленные в стандарте узлы
замен адекватно и нет ли там каких-либо «черных ходов», позволяющих взломать
шифр гораздо быстрее, чем это может быть сделано известными способами.
До сих пор в открытой печати не было опубликовано ни одной идеи, позволяющей улучшить время дешифрования с помощью лучших известных методов
криптоанализа, но основанных лишь на знании критериев создания узлов замен
для шифрования.
Зато на сегодняшний день выработано уже несколько подходов к созданию и
анализу узлов замен. Для этого даже создан подходящий математический аппарат, позволяющий описывать узлы замен на языке формул и вычислять количественные характеристики «стойкости» получившихся узлов.
Конечно, таблицу узла замены можно было бы заполнить и случайными чис-
33
лами, но что произойдет, если она будет тривиальной
? Очевидно, что шифр, использующий тривиальные узлы замен, попросту не представляет собой надежного средства сохранения конфиденциальности, впрочем, видимо, как не представляет собой в этом случае и средства шифрования вообще. Следовательно, надо
постараться не использовать случайный подход либо использовать его весьма
осторожно.
Тем не менее, несмотря на возможные казусы в использовании случайных узлов замен, такой подход весьма распространен и широко применяется сегодня.
В листинге 5.1 представлена программа, демонстрирующая на практике этот способ конструирования узлов замен. Узлы замен, созданные ею, используются в алгоритме криптографического хэширования Snefru.
Листинг 5.1
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "unidef.h"
#define SBoxCount 16
#define sizeOfRANDtableIn5DigitGroups 20000
// положение группы в таблице случайных чисел
int locationInRANDtable = 0;
33
Тривиальным узел замены называют в том случае, если он элемент x переводит в тот же
самый элемент x, то есть не производя никаких преобразований.

148 Глава 5. Дешифрование современных шифров
// положение внутри группы
int locationIn5DigitGroup = 0;
// таблица случайных чисел (умышленно НЕ ИСПОЛЬЗУЕТСЯ процедура rand()
// из стандартной библиотеки компиляторов языка Си, потому что она
// представляет собой программный датчик ПСЕВДОслучайных чисел, а нам
// нужны именно СЛУЧАЙНЫЕ)
// значения таблицы взяты из справочника RAND Corporation
char RANDtable[sizeOfRANDtableIn5DigitGroups][5] = {
/* 0 */ "10097", "32533", "76520", "13586", "34673",
"54876", "80959", "09117", "39292", "74945",
/* 1 */ "37542", "04805", "64894", "74296", "24805",
"24037", "20636", "10402", "00822", "91665",
/* 2 */ "08422", "68953", "19645", "09303", "23209",
"02560", "15953", "34764", "35080", "33606",
/* 3 */ "99019", "02529", "09376", "70715", "38311",
"31165", "88676", "74397", "04436", "27659",
/* 4 */ "12807", "99970", "80157", "36147", "64032",
"36653", "98951", "16877", "12171", "76833",
/* 5 */ "66065", "74717", "34072", "76850", "36697",
"36170", "65813", "39885", "11199", "29170",
..............
/* 1995 */ "85532", "87232", "26852", "06072", "20552",
"37337", "43185", "87156", "02774", "81224",
/* 1996 */ "96818", "98016", "85405", "71729", "86948",
"43048", "10382", "12016", "11606", "16368",
/* 1997 */ "45410", "27000", "35418", "64141", "08731",
"20285", "97055", "74760", "85335", "95673",
/* 1998 */ "09848", "60615", "11085", "64537", "71296",
"71800", "09895", "69411", "93490", "04683",
/* 1999 */ "91228", "87269", "43082", "28147", "04175",
"54874", "03737", "93493", "97159", "07515"
};
typedef uint32_t sBox[256];
// обмен двух байтов в узле замены
void swapBytesInSBox(sBox &anSBox, uint16_t row1, uint16_t row2, uint16_t column) {
// маска определяет байты, которые обмениваются местами
uint32_t mask;
uint32_t temp;
mask = 0xFF000000;
if (column > 3) return;
// позиционируем маску
mask >>= (column * 8);
// меняем байты
temp = anSBox[row1];
anSBox[row1] = (anSBox[row1] & (~mask)) | (anSBox[row2] & mask);
anSBox[row2] = (anSBox[row2] & (~mask)) | (temp & mask);
}

Глава 5. Дешифрование современных шифров 149
// генерируем случайную цифру (от 0 до 9)
// для этого выбираем значения из таблицы RAND
uint16_t randomDigit() {
if (locationIn5DigitGroup == 5) {
locationIn5DigitGroup = 0;
locationInRANDtable++;
};
if (locationInRANDtable >= sizeOfRANDtableIn5DigitGroups)
exit(1);
return (RANDtable[locationInRANDtable][locationIn5DigitGroup++] - '0');
};
// генерируем случайное число, опять-таки используя таблицу RAND */
uint16_t randomInRange(uint16_t low, uint16_t high) {
uint16_t range; // границы, в которых генерируем
uint16_t maximum; // максимальное случайное
uint16_t random; // случайное, созданное присоединением
range = (high - low) + 1;
do {
random = 0;
maximum = 1;
// цикл до тех пор, пока не выбраны все цифры
while (maximum < range) {
maximum *= 10; /* 0-n = n+1 возможных случайных чисел */
// приписываем цифру в конец
random = (random * 10) + randomDigit ();
}
}
// обрезаем, чтобы попало в границы
while (random >= ((unsigned int) (maximum / range)) * range);
return (low + (random % range));
}
void main() {
sBox SBoxFromRand[SBoxCount];
int SBoxIndex;
// column определяет номер байта, 0 обозначает самый левый
uint16_t column, row;
uint32_t longRow;
for (SBoxIndex = 0; SBoxIndex < SBoxCount; SBoxIndex++) {
// заполняем узлы замен тривиально
for (longRow = 0; longRow < 256; longRow++)
SBoxFromRand[SBoxIndex][longRow] =
longRow | (longRow << 8) | (longRow << 16)
| (longRow << 24);
for (column = 0; column < 4; column++) {
for (row = 0; row < 255; row++)
// переставляем столбцы-байты
swapBytesInSBox(SBoxFromRand[SBoxIndex],
row, randomInRange (row, 255), column);
}
}

150 Глава 5. Дешифрование современных шифров
for (SBoxIndex = 0; SBoxIndex < SBoxCount; SBoxIndex++) {
printf("{ // Начало S-Box %d\n", SBoxIndex);
for (row = 0; row < 256; row++) {
if (row%5 == 0) printf("\n // %4d \n",row);
printf ("0x%08lxL", SBoxFromRand[SBoxIndex][row] );
if (row != 255) printf(",");
}
printf("\n// Завершаем S-box %d\n},\n\n\n", SBoxIndex);
}
}
Собственно, для описания неслучайных узлов замен, представляющих собой
так называемые криптографические примитивы, используют особые Булевы функции. Данные функции должны удовлетворять определенным критериям, среди
которых обязаны присутствовать следующие свойства:
Свойство полноты.
Свойство полноты (completeness) формулируется правилом: каждый выходной бит является нетривиальной функцией всех входных битов. Это позволяет
внести в криптосистему строгую зависимость выхода шифра от всех битов ключа,
что гарантирует шифру криптостойкость, определенную длиной ключа. Неполнота шифра может привести к возможности разделения зависимостей битов выхода
и входа на группы, независящие друг от друга, в результате чего криптоаналитику
будет необходимо решить не одну сложную задачу, а в противовес ей — несколько попроще.
Наличие лавинного эффекта.
Лавинный эффект (Avalanche Criterion — как развитие свойства рассеивания) означает принудительное изменение в среднем половины битов выхода шифра при изменении хотя бы одного бита входа. Отсутствие лавинного эффекта приводит к появлению больших эквивалентных ключей, что отрицательно сказывается на фактической криптостойкости шифра. Наличие же его делает весьма
затруднительным статистический анализ выхода шифра и определение ключа
шифра с помощью вероятностных методов.
Наличие их комбинации как строгого лавинного эффекта.
Строгий лавинный эффект (Strict Avalanche Criterion, или SAC) достигается
как компиляция свойств полноты и лавинного эффекта, если каждый бит выхода
шифра изменяется с вероятностью
1
при изменении одного бита входа. Число
2
функций для n переменных, обладающих таким эффектом, подсчитано и равно
n−1
2
. Строгий лавинный эффект обеспечен также для тех функций, для которых
сумма f(x) ⊕ f(x ⊕ a) является сбалансированной, то есть содержащей единиц и
нулей поровну, для всех a с одним установленным в единицу битом и остальными
нулями.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
