Đố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
Trang 1CÁ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
Trang 3 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
Trang 4 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ã
Trang 5 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”
Trang 6K = “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
Trang 7 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:
Trang 8 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
Trang 9Cơ 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
Trang 10Cơ 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
Trang 11 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
Trang 12 Sử dụng RSA:
Để mã hóa thông điệp M: C = Me(mod N) (0M<N)
Giải mã: M = Cd (mod N)
Trang 13 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
Trang 14RSA
Trang 16Cơ 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
Trang 17Cơ 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
Trang 18Cơ 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ỏ
Trang 19Cơ 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
Trang 20Cơ 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
Trang 21Cơ 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
Trang 23DEMO
Trang 24TÀ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