Académique Documents
Professionnel Documents
Culture Documents
METODE DE CIFRARE
0 = ( 0,0,0 ) cu f0 = 0
t = ( 0,1,0 ) f1 = 3
t 2 = (1,0,0 ) f2 = 9
t 3 = (0,1,2 )
56
Metode de cifrare
t 4 = (1, 2,0 ) f 4 = 15
t 5 = ( 2,1,2 ) f5 = 23
t 6 = (1,1,1) f 6 = 13
t 7 = (1, 2, 2 ) f 7 = 17
t 8 = ( 2,0,2 ) f8 = 20
t 9 = ( 0,1,1) f9 = 4
t10 = (1,1,0 ) f10 = 12
t11 = (1,1,2 ) f11 = 14
t12 = (1,0,2 ) f12 = 11
t13 = (0,0,2 ) f13 = 2
t14 = (0, 2,0 ) f14 = 6
t15 = ( 2,0,0 ) f15 = 18
t16 = (0, 2,1) f16 = 7
t17 = ( 2,1,0 ) f17 = 21
t18 = (1, 2,1) f18 = 16
t19 = ( 2, 2,2 ) f19 = 26
t 20 = ( 2,1,1) f 20 = 22
t 21 = (1,0,1) f 21 = 10
t 22 = (0, 2,2 ) f 22 = 8
t 23 = ( 2, 2,0 ) f 23 = 24
t 24 = ( 2, 2,1) f 24 = 25
t 25 = ( 2,0,1) f 25 = 19
t 26 = (0,0,1) f 26 = 1
Se observă că fiecare element al câmpului are două reprezentări şi i se
asociază o valoare numerică. Pentru efectuarea operaţiilor de înmulţire şi
împărţire se foloseşte reprezentarea exponenţială, iar pentru operaţiile de
adunare şi scădere reprezentarea polinomială.
De exemplu:
57
Metode de cifrare
t 5 ⋅ t 25 = t 30 = t 4 = (1, 2,0 )
t 5 + t 25 = ( 2,1,2 ) + ( 2,0,1) = (1,1,0 ) = t10
t 3 : t14 = t 29 : t14 = t15 = ( 2,0,0,0 )
58
Metode de cifrare
59
Metode de cifrare
R ( x ) = yi =
ai xi + bi
ci xi + di
( )
, aibi ci ∈ GF p n şi ai di − bi ci ≠ 0 .
d a
Astfel R − i = ∞ ci ≠ 0 şi R (∞ ) = i , iar dacă ci = 0 atunci R (∞ ) = ∞ .
ci ci
Vom utiliza elementele câmpului GF 52 ( ) cu polinomul primitiv
f (t ) = t 2 + 4t + 2 . Alfabetul este cel al limbii engleze cu 26 = 52 + 1 litere, iar
( )
corespondenta între litere şi elementele câmpului GF 52 este dată mai jos:
A B C D E F G H I J K L M N
(a) 0 1 2 3 4 5 6 7 8 9 10 11 12 13
(b) (0,0) (1,0) (1,3) (4,3) (2,2) (4,1) (0,2) (2,0) (2,1) (3,1) (4,4) (3,2) (0,4) (4,0)
O P Q R S T U V W X Y Z
(a) 14 15 16 17 18 19 20 21 22 23 24
(b) (4,2) (1,2) (3,3) (1,4) (0,3) (3,0) (3,4) (2,4) (1,1) (2,3) (0,1)
Linia (a) cuprinde reprezentarea exponenţială iar linia (b) reprezentarea
polinomială a elementelor de câmp.
Vom folosi ca regulă de variaţie a parametrilor ai , bi , ci şi di selectând
două matrice pătrate de ordinul 2 cu elemente ale câmpului GF 52 şi stabilind: ( )
a bi
M i + 2 = M i × M i +1, deci M i ≠ 0 şi M i = i
ci di
61
Metode de cifrare
di yi − bi
xi = −
ci yi − ai
în care M i = Pi mi sau Ni = Pi mi + 1 .
k
Alfabetul A este astfel partiţionat în K subalfabeturi astfel încât A = ! Ai
i =1
subalfabetele fiind disjuncte două câte două. Fiecărui subalfabet îi este destinat
( )
un câmp GF pimi = Fi şi o funcţie de permutare fi ( x ) care poate fi
polinomială dacă Ni = pimi sau raţională dacă M i = pimi + 1.
Modul în care cele N n-grame sunt împărţite în cele k subalfabete este
următorul:
- se repartizează fiecărei litere ale alfabetului iniţial L o valoare numerică
din secvenţă: 0,1,2,...,(l–1). Această repartiţie poate fi diferită pentru mesaje
diferite.
- fiecare n-gramă se scrie sub formă numerică λ = ( v1, v 2 ,..., vn ) unde vi
este valoarea numerică a literei li din n-gramă;
- fiecărei n-grame i se ataşează un număr
σ = v1l n −1 + v 2l n − 2 + ... + v n −1l + v n care reprezintă valoarea numerică asociată
acesteia;
- în subalfabetul A1 vor fi incluse toate n-gramele pentru care
0 ≤ σ ≤ N1 − 1 ;
- în subalfabetul A2 vor fi incluse toate n-gramele pentru care
N1 ≤ σ ≤ M1 + M 2 − 1 ;
- în subalfabetul Ak vor fi incluse toate n-gramele pentru care
N1 + N 2 + ... + N k −1 ≤ σ < N − 1 ;
62
Metode de cifrare
(
ρ = Co , C1, C2 ,..., Cmi −1 )
Procedura de mai sus defineşte o bijecţie între n-gramele fiecărui
subalfabet Ai şi elementele câmpului Fi . Cu ajutorul funcţiilor fi ( x ) se face
apoi cifrarea după metodele descrise anterior.
Vom ilustra această procedură printr-un exemplu. Să consideram cazul
n = 2 şi l = 26 iar repartizarea valorilor numerice pentru literele alfabetului
normală:
A=0 H=7 0 = 14 V = 21
B=1 I=8 P = 15 W = 22
C=2 J=9 Q = 16 X = 23
D=3 K = 10 R = 17 Y = 24
E=4 L = 11 S = 18 Z = 25
F=5 M = 12 T = 19
G=6 N=13 U=20
Numărul de bi-grame este N = 262 = 676 .
Acesta se poate scrie astfel:
( ) (
262 = 73 + 132 + 34 + 1 + 34 + 1 )
Deci:
N1 = 73 = 343 N1 + N 2 = 512
N 2 = 132 = 169 N1 + N 2 + N3 = 594
N3 = 34 + 1 = 82
N 4 = 34 + 1 = 82
Vom avea deci pentru subalfabete A1, A2 , A3 şi A4 .
O bigramă λ va aparţine: - subalfabetului A1 dacă 0 ≤ σ ≤ 342 ;
- subalfabetului A2 dacă 343 ≤ σ ≤ 511;
- subalfabetului A3 dacă 512 ≤ σ ≤ 593 ;
- subalfabetului A4 dacă 594 ≤ σ ≤ 675 .
Fie diagrama: λ = RM = (17,12).
63
Metode de cifrare
( )
corespunde elementul (8,7) din GF 132 deoarece (8 × 13 + 7 = 111) .
( )
Câmpului GF 73 corespunzător primului subalfabet îi ataşăm polinomul
primitiv f (t ) = t 3 − t − 5 . Celui de-al doilea subalfabet îi asociem câmpul
( )
GF 132 şi polinomul primitiv f (t ) = t 2 + t + 2 , celui de-al treilea subalfabet îi
( )
asociem câmpul GF 132 şi polinomul primitiv f (t ) = t 2 + t + 2 , la fel şi celui
de-al patrulea subalfabet ( A4 ) .
Cele patru funcţii de permutare utilizate vor fi:
- pentru A1 yi = xi5 + ai ;
- pentru A2 yi = xi5 + bi ;
1
- pentru A3 yi = ci + 3 ;
xi + 1
1
- pentru A4 yi = di + 3 .
x1 + 1
Modul de variaţie a parametrilor este următorul:
ai +1 = (1,0,2 ) ai + ( 2,3,6 ); a1 = ( 2, 4,5 )
bi +1 = (7,8 ) bi ; b1 = (7,10 )
ci +1 = (1,0,0,0 ) ci ; c1 = (1,1,0,1)
di +1 = (1,0,0,0 ) di ; d1 = (1, 2, 2,0 )
În cazul nostru: x1 = (8,7 ) .
Se calculează y1 = x15 + b1 = (8,7 ) + (7,10 ) .
5
xi5 = yi − bi
xi = 5 yi − bi
64
Metode de cifrare
(8n
)
> N . Se face partiţionarea elementelor câmpului în două seturi:
65
Metode de cifrare
(c) bi i = 1,9
(d) valorile numerice ale literelor criptogramei
(e) criptograma.
Valorile marcate cu " * " s-au obţinut după mai multe iteraţii.
Pentru descifrare se foloseşte funcţia inversă:
vi = 640−i ( yi − bi )
aplicându-se aceleaşi iteraţii în cazul obţinerii unor elemente din S'
Exemplul 2: Fie un alfabet cu N = 1000 caractere utilizate, format din 26
de litere, 26 × 26 = 676 diagrame şi 298 dintre cele mai frecvente trigrame:
1000 = 26 + 26 2 × 26 + 298 . Cifrarea se face în câmpul GF 11( ) care conţine 1331
3
yi = ai xi3 + bi
( )
Elementele câmpului GF 113 sunt partiţionate în două seturi: setul S de
1000 de elemente şi setul S' cu 331 elemente:
S = {0,1,2,...,999} şi S' = {1000,1001,...,1331}
Se face corespondenţa între cele 1000 de caractere ale alfabetului şi
elementele setului S, sub forma:
A = 000
TE = 789
STR = 672 etc.
Pentru cifrare se împarte textul în clar în secvenţe de lungime 1,2 sau 3
elemente conţinute în A; fie acestea λ1λ 2λ3... .
Se înlocuieşte secvenţa λi prin elemente de câmp xi cu valoarea stabilită
prin corespondenţă. Parametrii ai şi bi pot fi variaţi în modul următor:
ai = t 3i +1
2
+ n+ 2
bi = t n
66
Metode de cifrare
1
Pentru descifrare se utilizează funcţia inversă: xi = ( yi − bi ) / ai 3 cu
1
specificaţia că t3 = t 887 .
67