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

các phương pháp mã hóa dữ liệu

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.18 MB, 24 trang )

CÁC PHƯƠNG
PHÁP MÃ HÓA
DỮ LIỆU
GVHD: Ths. Nguyễn Duy
Nhóm thực hiện:
1. Nguyễn Xuân Hàm
2. Lê Cao Trí
3. Nguyễn Minh Huy
4. Lê Huỳnh Khương
5. Lê Võ Hoàng Phi
6. Nguyễn Xuân Thảo
NỘI DUNG:

CƠ SỞ LÝ THUYẾT CÁC PHƯƠNG PHÁP MÃ HÓA

Vigenere

3DES

RSA

SỬ DỤNG CRYPTOOL ĐỂ MÃ HÓA VĂN BẢN

Văn bản 1MB

Văn bản 10MB

DEMO

TÀI LIỆU THAM KHẢO
VIEGENERE



Hệ mã này được đặt theo tên của một nhà mật mã học
người Pháp Blaise de Vigenere (1523 – 1596).

Đối với hệ mã này không gian các bản mã và bản rõ cũng là
các thông điệp được tạo thành từ một bảng chữ cái A như
trong hệ mã Caesar, các chữ cái được đánh số từ 0 tới N-1
trong đó N là số phần tử của bảng chữ cái.
VIEGENERE

Không gian khóa K được xác định như sau:

Với mỗi số nguyên dương M, khóa có độ dài M là một
xâu ký tự có độ dài M, K = k1k2…kM.

Để mã hóa một bản rõ P người ta chia P thành các đoạn
độ dài M và chuyển thành số thứ tự tương ứng của
chúng trong bản chữ cái, chẳng hạn X = x1x2…xM. Khi
đó việc mã hóa và giải mã được thực hiện như sau:
EK(X) = (x1+k1,x2+k2,…,xM+kM) mod N
DK(Y) = (y1 – k1, y2 – k2,…,yM – kM) mod N.
N là số phần từ của bảng chữ cái và Y= y1y2…yM -là bản
mã.
VIEGENERE

Ví dụ: Xét A là bản chữ cái tiếng Anh, ta có N = 26 giả sử khóa
có độ dài 6 và K = “CIPHER”, bản rõ P =”THIS
CRYPTOSYSTEM IS NOT SECURE”.
Ta có : K = 2 8 15 7 4 17
P = 19 7 8 18 2 17 | 24 15 19 14 18 23 | 18 19 4 12 8 18 | 13

14 19 18 4 2 | 20 17 4
Quá trinh mã hóa như sau:

P = 19 7 8 18 2 17 | 24 15 19 14 18 23 | 18 19 4 12 8 18 |
13 14 19 18 4 2 | 20 17 4

K = 2 8 15 7 4 17 | 2 8 15 7 4 17 | 2 8 15 7 4 17 |
2 8 15 7 4 17 | 2 8 15

C = 21 15 23 25 6 8 | 0 23 8 21 22 14 | 20 1 19 19 12 9 | 15
22 8 25 8 19 | 22 25 19
Vậy bản mã C = “VPXZGI AXIVWO UBTTMJ PWIZIT WZT”.
K = “CIPHER”
P = ”THIS CRYPTOSYSTEM IS NOT SECURE”
C = “VPXZGI AXIVWO UBTTMJ PWIZIT WZT”
K = 2 8 15 7 4 17
P = 19 7 8 18 2 17
C = 21 15 23 25 6 8
3DES

3DES là giải thuật hiện đang được sử dụng rộng rãi để thay
thế cho DES (vì chỉ có 256 khóa). Mô hình sử dụng đơn giản
nhất của 3DES là mã hóa sử dụng 3 khóa K1, K2, K3 như
hình minh họa:
3DES

Bản mã C = DESK3(DESK2(DESK1(M)), mô hình này gọi là
EEE vì cả ba bước sử dụng ba khóa và thuật toán mã hóa
đều theo chuẩn DES.


Các chứng minh về mặt lý thuyết và các tấn công đối với
Triple DES cho thấy hệ mã này vẫn sẽ còn được sử dụng
trong một tương lại dài nữa mặc dù trên thực tế nó chậm
hơn so với AES 6 lần.
Cơ bản về DES

DES là thuật toán mã hóa với input là khối 64 bit, output
cũng là khối 64 bit. Khóa mã hóa có độ dài 56 bit.
Cơ bản về DES

Cụ thể khối input 64 bit sẽ được hoán vị bởi
hoán vị khởi đầu IP để sinh ra Premuted
input.

Tiếp theo là quá trình sinh khóa từ khóa 56
bit, sẽ sinh ra 16 subkey 48 bit.

Thuật toán thực hiện thông qua 16 vòng.
Mỗi subkey tham gia vào một vòng mã hóa.

Kết quả sau 16 vòng DES là Pre-output sẽ
được hoán vị một lần nữa bằng hoán vị
ngược của IP (IP-1) để được output Y.

Quá trình giải mã diễn ra tương tự nhưng
với các khóa con ứng dụng vào các vòng
trong theo thứ tự ngược lại.
RSA

Hệ mã RSA được đặt tên dựa theo các chữ cái đầu của 3 tác

giải của hệ mã hóa là Rivest, Shamir và Adleman. Đây là
thuật toán mã hóa nổi tiếng nhất và cũng là thuật toán được
ứng dụng thực tế nhất.

Để cài đặt RSA ban đầu mỗi người dùng Alice và Bob sinh
khóa công khai và khóa bí mật của mình bằng cách:

Phát sinh ngẫu nhiên 2 số nguyên tố p và q, p ≠ q

Tính N = p*q

Tính giá trị hàm số Ơle φ(N) = (p-1)(q-1)

Chọn số tự nhiên e: 1<e<φ(N) và là số nguyên tố cùng
nhau với φ(N).

Tính d từ: e.d ≡ 1 mod (φ(N))

Khóa công khai là KP = (e,N)

Khóa bí mật là KS = (d,N)
RSA

Sử dụng RSA:

Để mã hóa thông điệp M: C = Me (mod N) (0≤M<N)

Giải mã: M = Cd (mod N)
RSA


Mã hóa:

Giả sử Bob muốn gửi đoạn thông tin M cho Alice. Đầu tiên
Bob chuyển M thành một số m < n theo một hàm có thể
đảo ngược (từ m có thể xác định lại M) được thỏa thuận
trước.

Lúc này Bob có m và biết n cũng như e do Alice gửi. Bob
sẽ tính c là bản mã hóa của m theo công thức:
c = me mod n

Hàm trên có thể tính dễ dàng sử dụng phương pháp tính
hàm mũ (theo môđun) bằng (thuật toán bình phương và
nhân) Cuối cùng Bob gửi c cho Alice.

Giải mã:

Alice nhận C từ Bob và biết khóa bí mật d. Alice có thể tìm
được M từ C theo công thức sau:
M = Cd mod N
RSA

Ví dụ: Cho hệ mã RSA có N = p*q = 61 * 53 = 3233, e = 17, d
= 2753

KP = (e,N) = (17,3233) và KS = (d,N) = (2753,3233)

Mã hóa bản rõ M = 123

C = 2617 mod 3233 = 855


P = 8552753 mod 3233 = 123
RSA
Cơ chế, hình thức sử dụng mã hóa khối

Cơ chế bảng tra mã điện tử ECB – Electronic CodeBook
Book

Cơ chế mã móc xích CBC – Cipher Block Chaining
Cơ chế bản tra mã điện tử
ECB (Electronic CodeBook Book)

Thông điệp cần mã hóa được chia thành các khối độc lập để
mã hóa, mỗi khối văn bản mã là kết quả của việc mã hóa
riêng biệt khối bản rõ tương ứng với nó và độc lập với khối
khác. Cách làm việc này giống như chúng ta thay thế các
khối bản mã bằng các khối bản rõ tương ứng nên có tên gọi
là bảng tra mã điện tử.
P = P1P2…PN

Mã hóa: Ci = DESK(Pi), kết quả bản mã là C = C1C2…CN.
Quá trình giải mã tiến hành ngược lại: Pi =DES-1K(Ci).
Cơ chế bản tra mã điện tử
ECB (Electronic CodeBook Book)

Ưu điểm:

Đơn giản và dễ cài đặt nhất

Được sử dụng khi chỉ một khối đơn thông tin cần được gửi

đi (chẳng hạn như một khóa session được mã hóa bằng
cách dùng một khóa chính)

Nhược điểm:

Các lặp lại của thông điệp có thể được thể hiện trên bản
mã.

Bản mã có thẻ bị giả mạo bằng cách thêm một số khối bản
mã giả mạo vào kết quả mã hóa.

Việc mã hóa khối thông điệp là độc lập làm suy yếu DES.
Trên thực tế ECB chỉ thực sự có ích khi gửi một khối dữ
liệu nhỏ.
Cơ chế móc xích CBC (Cipher Block Chaining)

Để vượt qua các vấn đề về sự lặp lại và yêu cầu độc lập trong
ECB, chúng ta cần một vài cách để làm cho bản mã phụ thuộc
vào tất cả các khối trước đó. Đó là chính điều mà CBC cung
cấp cho chúng ta bằng cách kết hợp khối bản rõ trước với khối
thông điệp hiện tại trước khi mã hóa.

Cũng giống như cơ chế EBC trong cơ chế CBC bản rõ sẽ
được chia thành các khối nhưng sẽ được liên kết với nhau
trong quá trinh mã hóa để tạo thành bản rõ. Chính vì các khối
bản mã được móc xích với bản rõ và vì thế chế độ này có tên
là CBC.
Cơ chế móc xích CBC (Cipher Block Chaining)

CBC sử dụng một vector khởi tạo IV (Initial Vector) để bắt

đầu:
C0 = IV, P = P1P2…PN

Mã hóa: Ci = DESK(Pi ⊕ Ci-1), C = C1C2…CN

Giải mã: Pi =DES-1K(Ci) ⊕ Ci-1, P = P1P2…PN
Cơ chế móc xích CBC (Cipher Block Chaining)

Ưu điểm:

Phù hợp với các yêu cầu cần gửi các lượng lớn dữ
liệu một cách an toàn (chẳng hạn như FTP, EMAIL,
WEB)

Nhược điểm:

Mỗi khối bản mã phụ thuộc vào tất cả các khối thông
điệp trước đó nên việc sai lệch một khối bản rõ hoặc
bản mã nào cũng làm sai lệch kết quả

Khó khăn trong việc bản lý giá trị IV, nếu IV bị tiết lộ kể
tấn công có thể làm thay đổi các bit ở khối đầu tiên.
SỬ DỤNG CRYPTOOL
1MB Vigenere 3DES RSA
Mã hóa 0.75s 0.75s 0.75s
Giải mã 2s 2s 10.069s
10MB Vigenere 3DES RSA
Mã hóa 43.8s 1.25s 7.295s
Giải mã 44.82s 13.01s 102.177s


Sử dụng văn bản plaintext 1MB:

Sử dụng văn bản plaintext 10MB:
DEMO
TÀI LIỆU THAM KHẢO

Handbook of Applied Cryptography, by A. Menezes, P.van
Oorschot, and S.Vanstone, CRC Press, 1996

Tài liệu môn XDCSATM và ATM.

×