Tải bản đầy đủ (.pptx) (24 trang)

vài phương pháp mã hóa trong cryptool

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.07 MB, 24 trang )

Vài Phương Pháp Mã Hóa trong CrypTool
Môn: Xây dựng Chuẩn Chính Sách An Toàn Thông Tin trong doanh nghiệp
GVHD: Nguyễn Duy
Nhóm TH:
Mai Đức An
Nguyễn Cảnh Hà
Hoàng Ngọc Tùng
Phạm Ngọc Thắng
Cao Nguyễn Trung Sang
Lê Trung Trường Giang
Nội Dung

I – Giới Thiệu

II – Các Phương Pháp Mã Hóa

III – Kết Luận

IV – Tài Liệu Tham Khảo
I – Giới Thiệu

Mật mã hóa được sử dụng từ thời cổ đại cho đến ngày nay.

Hiện nay các giao dịch tài chính, chuyển khoản, mua sắm trực tuyến, thư tín, tài liệu, được thực
hiện qua nhiều môi trường mạng đòi hỏi phải được bảo mật tốt.
I – Giới Thiệu(tt)

Một số khái niệm:

Thông báo, văn bản: là chuỗi hữu hạn các ký tự được lấy từ một bản chữ cái Z nào đó và được ký hiệu
là m



Mật mã hóa: là biến đổi một thông báo sao cho nó không thể hiểu nổi với bất kỳ người khác ngoài
người nhận mong muốn.

Phép mật mã hóa được ký hiệu là e(m), với m là thông báo cần mã hóa.
I – Giới Thiệu(tt)

Khóa: là thông số đầu vào của phép mã hóa và giải mã. Khóa dùng để mã hóa ký hiệu là: Ke
Khóa dùng để giải mã ký hiệu là: Kd

Chuỗi mật mã: là chuỗi thông báo đã qua phép mã hóa, được ky hiệu là c , c = e (m, Ke).

Phép giải mã : là quá trình xác định thông báo từ chuỗi mật mã c và khóa Kd, được ký hiệu là : d(c,
Kd), d(c,Kd) = m.
I – Giới Thiệu(tt)
I – Giới Thiệu(tt)

Mật mã học có 2 phần:

Mật mã học cổ điển : Caesar, Vigenere, Substitution …., các chữ tượng hình của Ai Cập cổ đại, mã hóa
thay thế Atbash có khoản năm 500 – 600 tr.CN

Mật mã học hiện đại : IDEA, RC4, DES, ASE …., cha đẻ của nó là Claude Shannon.
Các yêu cầu cơ bản của mật mã hóa là:
+ Có tính bảo mật cao
+ Công khai, dễ hiểu. Khả năng bảo mật được chốt vào khóa cứ không phải vào giải thuật.
+ Triển khai được trên các thiết bị điện tử.
II – Các phương pháp mã hóa

Substitution Cipher (mã hóa thay thế đơn giản).


Trong phép này, khóa là 1 hoán vị h của bản chữ cái Z và mỗi ký hiệu thông báo được thay thế bằng
ảnh của nó qua hoán vị h

Khóa thường biểu diễn bằng 1 chuỗi 26 ký tự (bản chữ cái ABC), có 26! (~4.10
26
) hoán vị (khóa).

Ví dụ: khóa là chuỗi UITPRO …. , ký hiệu A trong chuỗi thông báo thay bằng U, ký hiệu B thay bằng I
….
II – Các phương pháp mã hóa()

Ví dụ, chọn 1 hoán vị p làm khóa như hình sau, ta được: mã hóa Ep(a) = X và giải mã Dp(A)= d
II – Các phương pháp mã hóa()

Mở rộng: thay thế n-gram.

Thay vì thay thế các ký tự, người ta có thể thay thế cho từng cụm 2 ký tự (diagram), 3 ký tự (trigram),
hay cho n ký tự (n-gram)

Với bản chữ cái gồm 26 ký tự thì phép thay thế n-gram sẽ có khóa là 1 hoán vị của 26
n
n-gram khác
nhau.
II – Các phương pháp mã hóa()

Ví dụ thay thế diagram thì hoán vị của nó gồm 26
2
diagram và có thể biễu diễn bằng 1 dãy 2 chiều
trong đó các hàng biểu diễn ký hiệu đầu tiên, các cột biểu diễn ký hiệu thứ 2, minh họa như sau:

II – Các phương pháp mã hóa()

IDEA (International Data Encryption Algorithm) là một phương pháp mã khối, được đưa ra để thay
thế cái cũ là DEA (Data Encryption Algorithm), công bố năm 1991.

Cách thực hiện

IDEA là hệ mã thao tác trên từng khối 64bit, mã khối 64bit plantext thành khối 64bit ciphertext, sử
dụng 128bit làm khóa bao gồm 1 chuỗi 8 lần biến đổi liên tiếp và tiếp theo là 1 lần biến đổi đầu ra.
Lần biến đổi thứ r sử dụng 6 khối khóa con 16 bit Ki(r), 1<=i<=6, để biến đổi 64bit đầu vào X thành
1 đầu ra với 4 khối 16bit và đầu ra này lại là đầu vào cho lần biến đổi tiếp theo. Đầu ra của lần biến
đổi thứ 8 là đầu vào cho lần biến đổi cuối cùng là đầu ra của phương pháp này. Trong lần biến đổi
này nó dùng 4 khóa con Ki(9), 1<=i<=4, để tính toán mật mã cuối cùng Y= (Y1,Y2, Y3, Y4). Tất cả
các khóa con nhận được từ K.
II – Các phương pháp mã hóa()

Thuật tóan :

IDEA là thuật toán mã hóa khối dùng 1 khóa có chiều dài 128 bit để mã hóa từng khối plaintext 64
bit.Thủ tục khá phức tạp,dùng khóa phụ được tạo ra từ khóa chính để thực hiện 1 loạt phép toán đồng
đư và toán tử XOR trên những khối plaintext 64 bit. Sơ đồ mã hóa dùng tổng cộng 52 khóa phụ có
chiều dài 16 bit.Các bước phát sinh ra khóa phụ 128 như sau :

Khóa 128 bit được chia ra thành 8 khóa 16 bit mà các khóa này là 8 khóa phụ đầu tiên

Những chữ số của khóa 128 bit được dịch trái 25 bit để tạo ra khóa mới mà khóa mới này sẽ được
chia ra thành 8 khóa phụ 16 bit tiếp theo

Bước thứ 2 được lặp lại cho đến khi 52 khóa phụ được phát sinh


Quá trình mã hóa bao gồm phép nhân đồng dư với ((2^16)+1) và phép cộng đồng dư với (2^16).
Khối plaintext 64 bit được chia thành từng đoạn 16 bit mà chúng ta kí hiệu là p1, p2, p3, p4.Những
khóa phụ là s1, s2 ,s3, s4.
II – Các phương pháp mã hóa()

Quá trình mã hóa gồm 8 vòng với mỗi vòng liên quan đến những bước sau đây:

p1 x s1 > d1

p2 + s2 > d2

p3 + s3 > d3

p4 x s4 > d4

d1 XOR d3 > d5

d2 XOR d4 > d6

d5 x s5 > d7

d6 + d7 > d8

d8 x s6 > d9

d7 + d9 > d10

d1 XOR d9 > d11

d3 XOR d9 > d12


d2 XOR d10 > d13

d4 XOR d10 > d14
II – Các phương pháp mã hóa()

Sau khi thực hiện xong bước này, các khối d12 ,d 13 xuất ra sẽ được trao đổi để d11 và d13, d12 và
d14 được dùng làm đầu vào trong vòng lặp kế tiếp cùng với 6 khóa phụ tiếp theo ,bao gồm từ s7 đến
s12. Thủ tục này được lặp lại trong 8 vòng nữa để cuối cùng xuất ra tổng cộng 4 khối mà chúng ta gọi
là e1,e2,e3 và e4.

4 bước tiếp theo dùng 4 khóa phụ trước để hoàn thành việc mã hóa

e1 x s49 > c1

e2 + s50 > c2

e3 + s51 > c3

e4 x s52 > c4
II – Các phương pháp mã hóa()

Chú ý : Nhằm đáp ứng được tất cả mục đích của giải thuật , 1 khóa của mọi chữ số được định nghĩa
bằng phép nhân modulo 2^16 cho mỗi bước kế tiếp.4 khối xuất ra cuối cùng,c1 tới c4, được gán thêm
để tạo ra khối ciphertext 64 bit.Cả quá trình được lặp đi lặp lại để mã hóa khối plaintext 64 bit cho
đến khi quá trình mã hóa thành công.Quá trình giải mã cũng tiến hành tương tự quá trình mã khóa
cho khối 64 bit ciphertext nhưng với 1 bộ khóa phụ khác.Những khóa phụ để giải mã được làm ra từ
những khóa phụ để mã hóa bằng cách đảo ngược phép nhân hoặc cộng .Những khóa phụ để giải mã
(tương tự với khóa phụ mã hóa từ s1 tới s52) được trình bày ở bảng bên dưới :
II – Các phương pháp mã hóa()


1st round s49* s50# s51# s52* s47 s48

2nd round s43* s45# s44# s46* s41 s42

3rd round s37* s39# s38# s39* s35 s36

4th round s31* s33# s32# s34* s29 s30

5th round s25* s27# s26# s28* s23 s24

6th round s19* s21# s20# s22* s17 s18

7th round s13* s15# s14# s16* s11 s12

8th round s7* s9# s8# s10* s5 s6

Sự biến đổi cuối cùng s1* s2# s3# s4*

sXX* = phép nhân đảo ngược đồng dư của ((2^16)+1)

sXX# = phép cộng đảo ngược đồng dư của sXX (2^16)
II – Các phương pháp mã hóa()

RC4: phương pháp hiện đại ,khóa đối xứng,được thiết kế bởi Ron Rivest vào năm 1987.

RC4 phát sinh 1 luồng mã giả bit để mã hóa , nó được kết hợp với plaintext bằng phép toán XOR ,
quá trình giải mã cũng tương tự. Để phát sinh luồng khóa, thuật toán chia làm 2 phần :

1. Hóan vị tất cả 256 bit (biểu thị \ S \)


2. Hai con trỏ 8 bit (biểu thị \ i \ và \ j \).Quá trình hóan vị này được khởi tạo với 1 khóa có độ dài thay
đổi , thay đổi trong khoảng 40 – 256 bits , sử dụng thuật tóan RSA. Một khi đã hòan thành, luồng bits
này được sinh ra dùng giải thuật phát sinh mã giả ngẫu nhiên.
II – Các phương pháp mã hóa()

Giải thuật Key-scheduleKey-schedule là 1 thuật toán mà tính toán khóa phụ cho mỗi vòng lặp dựa
trên khóa chính được cho trước.

Key-schedule được dùng để khời tạo hoán vị trong mảng “S”. Chiều dài khóa được định nghĩa cũng
chính là số byte trong khóa và nằm trong khoảng từ : 1 ≤ chiều dài ≤ 256, Đầu tiên, mảng S được
khởi tạo từ 1 hoán vị đồng nhất. S sau đó được xử lý ,lặp đi lặp lại trong 256 lần theo cùng 1 cách cùa
giải thuật PRGA, nhưng cũng đồng thời được trộn trong những bytes của khóa .
for i from 0 to 255
S[i] := I
endfor
j := 0
for i from 0 to 255
j := (j + S[i] + key[i mod keylength]) mod 256
swap(S[i],S[j])
endfor
II – Các phương pháp mã hóa()

Giải thuật phát sinh mả giã (PRGA) . Trong quá trình lặp đi lặp lại, PRGA sửa đổi trạng thái và xuất
ra 1 byte của luồng khóa.Trong mỗi quá trình lặp , PRGA tăng dần i, và tính ra 2 giá trị của S tại 2
byte i và j , sau đó cộng 2 giá trị S[i] S[j] ,rồi xuất ra giá trị S chính là khóa k. Mỗi giá trị của S được
thay đổi ít nhất 1 lần đến 256 lần lặp đi lặp lại.
i := 0
j := 0
while GeneratingOutput:

i := (i + 1) mod 256
j := (j + S[i]) mod 256
swap(S[i],S[j])
output S[(S[i] + S[j]) mod 256]
endwhile
III – Kết Luận

Substitution Cipher là phương pháp mã hóa cổ điển, hoạt động bằng cách thay thế ký tự nên thời gian
mã hóa lâu hơn so với 2 giải thuật mã hóa IDEA và RC4.

IDEA: Nhanh hơn 3DES, nhưng chậm hơn Arcfour và Blowfish.

RC4 : Thuật toán đơn giản, ý nghĩa từng bước rõ ràng.
IV – Tài Liệu Tham Khảo
Books:
[1]: Slide An toàn mạng máy tính –
Tô Nguyễn Nhật Quang – ĐHCNTT
[2]: Cryptography And Network Security -
William Stallings
Internet:
[1]: www.wikipedia.org
[2]: www.diendantinhoc.org
[3]: www.slideshare.net
Cảm ơn các bạn đã lắng nghe!
Q & A

×