Криптосистемы Симметричные Ассиметричные Потоковые Блочные Ключи шифрования и дешифрования совпадают Различные ключи шифрования и дешифрования Таблица истинности XOR a b 0 1 0 1 0 0 1 1 Пример: 101 200 = 173 01100101 11001000 10101101 101 200 173 (128+32+8+4+1) Свойства операции XOR Инволютивность (A ⊕ B) ⊕ B == A. Пример: ((100 ⊕ 200) ⊕ 50) ⊕ 150= 8 8 ⊕ 150 ⊕ 50 ⊕ 200 = 100 a ⊕b 0 1 1 0 Совершенно секретные криптосистемы M={M1,M2,…,Mm} – множество сообщений K={K1,K2,…,Kn}- множество ключей E={E1,E2,…,Ek} – множество криптограмм Ej =f(Mi,Kt} Априорное распределение вероятностей P(Mi), i={1,…,m} P(A|B) – условная вероятность … P(“привет”)=0.3 P(“тытут”)=0.1 P(“здравствуй”)=0.3 … P(“тытут”|”фэфхф”) = 1 фэфхф A B (Шифр Цезаря) Шифр Вернама M={Mi}, Mi={0,1}*, |Mi|<=n K=M, P(Ki)=1/2n 1<= i<=2n Для Mi = m1m2…mn Ki = k1k2…kn Ei = e1e2…en = Mi ⊕ Ki (шифровка) Mi = Ei ⊕ Ki (дешифровка) Пример: 100101 m 111000 k _______________________ 011101 e 011101 e 111000 k _______________________ 100101 m Шифр Вернама является совершенно секретной криптосистемой Симметричное шифрование Потоковые шифры Шифр, в котором криптограмма получается по правилу yi=xi ⊕ zi , i=1..n а z1…zn – псевдослучайная последовательность называется потоковым. Дешифрование: xi=yi ⊕ zi , i=1..n Генераторы псевдослучайных чисел Линейный конгруэнтный генератор псевдослучайных чисел Правило: a,b,c - коэффициенты z0 – начальное значение Пример: a=5,b=12,c=23 z0 =4 RC4 K0K1…KL (n-битные слова) ГПСЧ z0 z1 z2… zi ∈ {0,…,2n-1} S=(0,1,2,…, 2n-1) Перемешивание Генерация n←0 i← (i+1) mod 2n j← (j+Si) mod 2n Sj ↔ Si t← (Sj + Si) mod 2n zn←St n←n+1 Пример K=25 (L=2), n=3 S=(0,1,2,3,4,5,6,7) Перемешивание Генерация WAKE, VEST, Rabbit, ISAAC