Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Практическая криптография алгоритмы и их программирование

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
Глава 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 Tech­nical 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 Sys­tems. — Advances in Cryptology — CRYPTO'84. Proc. LNCS, Vol. 196 — Springer-Ver­lag.
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 Cryp­tographic 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 Cip­her 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) Pub­lication 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 Ad­vances in Cryptology{Eurocrypt' 90, Springer-Verlag, Berlin 1991, pp. 389—404.
23. X. Lai, J.L. Massey and S. Murphy, Markov Ciphers and Differential Cryptanaly­sis, 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 The­ory in the Benelux (1992), Werkgemeenschap voor informatie en Communicatione theo­rie, 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 Ex­tended 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 No­tes 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,» Advan­ces 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» Advan­ces 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 - CRYP­TO '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 Encryp­tion 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 Elect­rical 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 Differenti­als,» K.U. Leuven Workshop on Cryptographic Algorithms, Springer-Verlag, 1995.
48. L.R. Knudsen and M.J.B. Robshaw, «Nonlinear Approximations in Linear Crypta­nalysis,»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 Procee­dings, 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 secu­rity. Block ciphers today are construced from the designers ex­perience 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 sub­stituting 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 с одним установленным в единицу битом и остальными нулями.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]