Di artikel ini, Anda akan belajar
Siapa cipher blok Anda.
Prinsip apa yang dipatuhi oleh pembuat algoritme?
Seperti apa proses persiapan kunci?
Algoritma kerja.
Dan apa hubungannya RC5 dengan itu?
Pengantar RC6.
RC6 ( Rivest's Cipher 6 ) adalah cipher blok simetris berdasarkan jaringan Festel , dikembangkan oleh Ronald Rivest pada tahun 1998.
Pertama, mari kita cari tahu terminologinya:
Apa arti simetris?
Ada dua jenis orang sandi:
Simetris (yang kita butuhkan)
Asimetris (lain waktu, bro)
Dalam enkripsi simetris , kunci yang sama digunakan untuk mengenkripsi dan mendekripsi data . Itu harus dirahasiakan . Itu. baik pengirim maupun penerima tidak boleh menunjukkannya kepada siapa pun. Jika tidak, data Anda dapat disadap / diubah atau bahkan lebih buruk.
Algoritme enkripsi simetris:
AES (Standar Enkripsi Lanjutan)
3DES (Algoritma Enkripsi Data Tiga)
RC4, RC5, RC6 (cipher Rivest)
Dalam enkripsi asimetris menggunakan dua kunci: publik dan privat. Dari namanya jelas bahwa kunci publik dapat ditransfer secara bebas melalui saluran komunikasi, tetapi kunci privat harus dirahasiakan.
:
RSA (Rivest-Shamir-Adleman)
DSA (Digital Signature Algorithm), DSS (Digital Signature Standard)
Diffie-Hellman
?
. , : , .
, : .
, ?
. . . .
. , .
:
— .
.
2 ( xor) .
.
( ) .
() . - ( ).
, .
. , , , .
:
, , .
RC6 . , , . :
, , . , RC6 . 4 A, B, C, D . . .
, . :
. . (.. 4 ).
. ( ). .
.
: .
, .
:
:
(), ( ). .
, , :
. :
1 .
, , . , :
# x<<<y -
c = [max(b, 1) / u]
for b - 1 downto 0 do
L[i/u] = (L[i/u]<<<8) + K[i]
2 .
. , :
S[0] = P_w
for i = 1 to 2r + 3 do
S[i] = S[i - 1] + Q_w
3 .
, , :
# : b ,
# L[0,...,c-1]
# r
# : w- S[0,...,2r+3]
A = B = i = j = 0
v = 3 * max(c, 2r + 4)
for s = 1 to v do
{
A = S[i] = (S[i] + A + B)<<<3
B = L[j] = (L[j] + A + B)<<<(A + B)
i = (i + 1)mod(2r + 4)
j = (j + 1)mod(c)
}
, RC6. , , RC5. , RC6:
RC5
RC5 , 1994 . RC6 , . .
, :
RC5 . .. () , .
RC5 , .
RC5 . , 64- , RC5 .
RC5 . .. , .
RC5 . .
RC5 . .
RC5 .
, RC5 .
RC5 , RC6. . C RC5:
:
A = A + S[0]
B = B + S[1]
for i = 1 to r do
A = ((A xor B)<<<B) + S[2i]
B = ((B xor A)<<<A) + S[2i + 1]
, RC5 .
RC5 RC6
RC5 :
, RC6.
-( ) RC5:
for i = 1 to r do
{
A = ((A xor B)<<<B) + S[2i]
(A, B) = (B, A)
}
RC5. A B, C D:
for i = 1 to r do
{
A = ((A xor B)<<<B) + S[2i]
C = ((C xor D)<<<D) + S[2i + 1]
(A, B) = (B, A)
(C, D) = (D, C)
}
, A B C D, (A, B, C, D) = (B, C, D, A). AB CD:
for i = 1 to r do
{
A = ((A xor B)<<<B) + S[2i]
C = ((C xor D)<<<D) + S[2i + 1]
(A, B, C, D) = (B, A, D, C)
}
AB CD :
for i = 1 to r do
{
A = ((A xor B)<<<D) + S[2i]
C = ((C xor D)<<<B) + S[2i + 1]
(A, B, C, D) = (B, A, D, C)
}
, B D, , . , , .
, :
for i = 1 to r do
{
t = (B * (2B + 1))<<<5
u = (D * (2D + 1))<<<5
A = ((A xor t)<<<u) + S[2i]
C = ((C xor u)<<<t) + S[2i + 1]
(A, B, C, D) = (B, C, D, A)
}
, , ( , pre- post-whitening):
B = B + S[0]
D = D + S[1]
for i = 1 to r do
{
t = (B * (2B + 1))<<<5
u = (D * (2D + 1))<<<5
A = ((A xor t)<<<u) + S[2i]
C = ((C xor u)<<<t) + S[2i + 1]
(A, B, C, D) = (B, C, D, A)
}
A = A + S[2r + 2]
C = C + S[2r + 3]
, , , :
, RC6 A, B, C, D. , . A, D. :
# : 4- w- A, B, C, D
# r
# w- S[0,...,2r+3]
# : , A, B, C, D
B = B + S[0]
D = D + S[1]
for i = 1 to r do
{
t = (B * (2B + 1))<<<lg(w)
u = (D * (2D + 1))<<<lg(w)
A = ((A xor t)<<<u) + S[2i]
C = ((C xor u)<<<t) + S[2i + 1]
(A, B, C, D) = (B, C, D, A)
}
A = A + S[2r + 2]
C = C + S[2r + 3]
# (A, B, C, D) = (B, C, D, A) .
RC6 :
:
# : 4- w- A, B, C, D
# r
# w- S[0,...,2r+3]
# : , A, B, C, D
C = C - S[2r + 3]
A = A - S[2r +2]
for i = r downto 1 do
{
(A, B, C, D) = (D, A, B, C)
u = (D * (2D + 1))<<<lg(w)
t = (B * (2B + 1)) << lg(w)
C = ((C - S[2i + 1)>>>t) xor u
A = ((A - S[2i])>>>u) xor t
}
D = D - S[1]
B = B - S[0]
?
RC6-128/20/b .
. , .
, , RC6 20 .
RC6 - , . : , . , .
RC6, RC6_en, - .
R.L. Rivest (1994) The RC5 Encryption Algorithm
RL Rivest, MJB Robshaw, R Sidney, dan YL Yin. (1998) RC6 Block Cipher
S. Contini, RL Rivest, MJB Robshaw dan YL Yin. (1998) Keamanan RC6