Các Loại Hệ Thống Mã Hoá Có hai hệ thống mã hoá dựa vào khoá : Hệ thống mã hoá đối xứng Symmetric cryptosystem : sử dụng một khoá khoá bí mật duy nhất để mã hoá và giải mã dữ liệu..
Trang 1Giảng viên : Nguyễn Minh Thành
E-mail : thanhnm.itc@itc.edu.vn
Chương 4 : CÁC PHƯƠNG PHÁP
MÃ HOÁ HIỆN ĐẠI
Trang 2III. Chuẩn mã hoá cấp cao AES
IV. Hệ thống mã hoá công khai RSA
V. Chữ ký số (Digital Signature)
Trang 3I Các Loại Hệ Thống Mã Hoá
Có hai hệ thống mã hoá dựa vào khoá :
Hệ thống mã hoá đối xứng (Symmetric cryptosystem) : sử dụng một khoá (khoá bí mật) duy nhất để mã hoá và giải mã
dữ liệu.
Hệ thống mã hoá bất đối xứng (Asymmetric cryptosystem) :
sử dụng hai khoá, một khoá công khai để mã hoá (giải mã) và một khoá bí mật để giải mã (mã hoá) dữ liệu.
Trang 4I Các Loại Hệ Thống Mã Hoá (tt)
Đối với hệ mã hoá đối xứng
Người gửi và người nhận phải thoả thuận trước khoá bí mật khi muốn trao đổi thông tin với nhau
Tính an tòan của thuật tóan đều nằm trong khóa, để lộ ra khóa có nghĩa là người nào đó có thể mã hóa và giải mã thông điệp Quá trình mã hóa và giải mã với thuật tóan đối xứng có thể được biểu diễn như sau:
EK(M)=C
Trang 5I Các Loại Hệ Thống Mã Hoá (tt)
Đối với hệ mã hoá đối xứng
Các hệ mã hoá cơ bản cũng thuộc vào hệ mã hoá này
Thuật toán mã hoá có thể chia làm 2 loại :
Loại họat động dựa trên từng bit đơn hay từng byte gọi
là stream algorithms hay stream ciphers
Lọai thứ hai dựa trên plaintext là những nhóm bit, những nhóm bit này gọi là những block, cho nên thuật tóan được gọi là block algorithm hay block cipher
Đối với thuật tóan máy tính hiện đại, một block điển hình
là từ 64 bit, kích thước này đủ lớn để ngăn chận quá trình phân tích và đủ nhỏ để thuật tóan có thể họat động được
Trang 6I Các Loại Hệ Thống Mã Hoá (tt)
Đối với hệ mã hoá bất đối xứng
Người gửi và người nhận tự chọn một cặp khoá bí mật và công khai riêng cho mình Khoá bí mật sẽ được giữ kín
và khoá công khai sẽ được cho mọi người biết
Cả 2 key này đều có thể được dùng để mã hóa và giải
mã, nếu dữ liệu được mã hóa bằng key này thì phải được giải mã bằng key còn lại
Trang 7II Chuẩn Mã Hoá Dữ Liệu DES
Vào cuối thập niên 60, Horsr Feistel đã đưa ra hệ mã Lucifer Hệ mã này gắn liền với hãng IBM
Uỷ ban Tiêu Chuẩn Hoa Kỳ đã dàn xếp với IBM và đựa
hệ mã này thành tiêu chuẩn mã hoá dữ liệu (Data Encryption Standard) và miễn phí
DES là hệ mã hoá đối xứng dùng khoá bí mật
Trang 8II.1 DES (Data Encryption Standard)
Vào cuối thập niên 60, Horsr Feistel đã đưa ra hệ mã Lucifer Hệ mã này gắn liền với hãng IBM
Uỷ ban Tiêu Chuẩn Hoa Kỳ đã dàn xếp với IBM và đựa
hệ mã này thành tiêu chuẩn mã hoá dữ liệu (Data Encryption Standard) và miễn phí
DES là hệ mã hoá đối xứng dùng khoá bí mật
Vấn đề chính trong phương pháp này là bên gửi và bên nhận phải trao đổi khóa một cách an tòan
Trang 9II.1 DES (Data Encryption Standard)
Mô tả tổng quan
DES là thuật toán mã hoá với input là khối 64bit, output cũng là khối 64bit
DES sử dụng khóa 64 bit trong đó 56 bit làm key thực
sự, còn 8 bit còn lại dùng để kiểm tra parity (bit kiểm tra tính chẵn lẻ)
Trang 10II.1 DES (Data Encryption Standard)
DES thực hiện 16 vòng lặp với các phép tính và những hàm có chức năng đặc biệt để tạo ra khối mã hóa Cipher
16 vòng lặp chạy cùng thuật toáng nhưng mỗi vòng lặp
sử dụng một khoá riêng biệt 48bit Các khoá này được tạo ra từ khối khoá 56bit (đã bỏ đi các bit parity), hoán chuyển các bit và trích ra 48bit làm khoá cho từng vòng
Trong quá trình giải mã, các khoá sẽ được đảo ngược
Trang 11II.1 DES (Data Encryption Standard)
Sự tạo khoá (tt)
Mô tả thuật toán sinh khoá chi tiết như sau
Bước 1: Từ khóa key được hoán vị qua ma trận hoán vị PC-1
(Permuted Choice -1)
•Từ khóa key được đưa vào khối hoán vị PC-1, thực chất khối này chỉ tác động lên 56 bit dữ liệu và loại bỏ 8 bit parity dùng
để kiểm tra không mang tính bảo mật thông tin, sau khối hoán
vi này sẽ tạo 56 bit ngõ ra và được chia thành 2 nhóm: 28 bit trái và 28 bit phải của khóa
• 28 bit đầu tiên (bên trái) được đặt vào ma trận C0 (Ci ,Di
được xem là số vòng lặp có trong thuật toán)
•28 bit sau được đặt vào ma trận D0
Trang 12II.1 DES (Data Encryption Standard)
Sự tạo khoá (tt)
Mô tả thuật toán sinh khoá chi tiết như sau
Bước 2: Dịch xoay vòng sang trái thứ tự bit của ma trận Ci và
Di trong một vòng lặp Việc tính toán Ci và Di phụ thuộc vào Ci-1 và Di-1 và quá trình dịch chuyển từng bit của 2 nhóm
sang trái theo quy tắc sau:
Bước 3: Hoán vị Ci và Di qua ma trận nén PC-2 tạo từ khóa
48bit
Thứ tự vòng i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Số bit dịch vòng
1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1
Trang 13II.1 DES (Data Encryption Standard)
Sự tạo khoá (tt)
Sơ đồ tạo khoá
Trang 14II.1 DES (Data Encryption Standard)
Thuật toán thực hiện 16 vòng, từ khoá K (64bit), sẽ tạo ra
16 khoá con (48bit) cho mỗi vòng
Đầu tiên khối dữ liệu 64 bit sẽ được đưa vào khối hoán vị khởi tạo IP (Initial Permutation) Sau đó, khối dữ liệu sẽ được chia làm 2 nửa và đưa vào 2 khối L0 và R0(Li và Ri
là thứ tự của mỗi vòng lặp)
Trang 15II.1 DES (Data Encryption Standard)
Trang 16II.1 DES (Data Encryption Standard)
Hàm f cung cấp sức mạnh cho hệ mã hoá DES
Hoạt động của hàm f :
Nửa phải (32bit) của vòng i-1 sẽ được mở rộng thanh
48bit và được xor với khoá ki, kết quả tạo ra 48bit và
được chia thành 8 tập 6bit Mỗi tập là một bảng thay thế gọi là S-box S-box sẽ thay thế một số bit trong đó
và tạo ra 4bit ở mỗi s-box Kết hợp các bit đó ta được một chuỗi 32bit và là đầu ra cho hàm f
Trang 17II.1 DES (Data Encryption Standard)
Hoạt động của hàm f :
Trang 18II.1 DES (Data Encryption Standard)
Sau khi chạy qua hết 16 vòng, ở bước cuối cùng chuỗi 64bit sẽ được đưa vào chuỗi hoán vị ngược so với chuỗi hoán vị khởi tạo IP-1 trước khi trở thành chuỗi mã hoá
Trang 19II.1 DES (Data Encryption Standard)
Trang 20II.2 Các Mode của DES
Khi lần đầu tiên được công bố, nó đã được thông báo là quá yếu do chiều dài 56bit của khoá là quá ngắn
Do đó, DES đã được phát triển thêm nhiều Mode hoạt động khác nhau để tăng tính bảo mật
Trang 21II.2 Các Mode của DES
Mode ECB là kiểu hoạt động sử dụng cùng 1 key cho quá trình mã hóa và giải mã cho nhiều khối dữ liệu của một file Các khối dữ liệu (64 bit) được mã hóa độc lập với nhau với cùng 1 từ khóa Kiểu hoạt động này kém tính bảo mật nếu có nhiều khối truyền giống nhau
Trang 22II.2 Các Mode của DES
Hoạt động dùng thêm 1 cổng XOR để thực hiện XOR 64 bit của vector khởi tạo (initialization Vector – IV) với 64 bit dữ liệu của khối plaintext đầu tiên trước khi đưa vào
mã hóa tạo ra ciphertext đầu tiên, khối plaintext thứ 2 trước khi được mã hóa được XOR với khối ciphertext đầu tiên, tương tự cho các khối plaintext tiếp theo …IV cần được khởi tạo và được thống nhất giữa người gửi và người nhận Mode này có tính bảo mật tốt hơn mode hoạt
Trang 23II.2 Các Mode của DES
Nguyên lý hoạt động của mode này hoàn toàn khác với 2 mode ECB cà CBC Đối với 2 mode đầu thì quá trình mã hóa dữ liệu được thực hiện trên từng khối dữ liệu 64 bit
cố định Trong khi mode hoạt động CFB thì mã hóa và giải mã không dựa vào từng khối dữ liệu 64 bit, mà khối
dữ liệu có thể thay đổi từ 8 bit, 16 bit, 24 bit, 32 bit, 40 bit, 48 bit, 56 bit, 64 bit
Trang 24II.2 Các Mode của DES
Quá trình mã hóa:
Chọn số bit cho khối dữ liệu mã hóa: R bit
Lần mã hóa đầu tiên cho dữ liệu đầu vào là khối vector
IV (64 bit), sau khi mã hóa xong lấy R bit bên trái của khối cipher này XOR với R bit của dữ liệu cần mã hóa để tạo thành ciphertext cho dữ liệu
R bit cipher sẽ được thay thế vào bên phải của chuỗi IV sau khi dịch trái IV R bit
Quá trình mã hóa sẽ tiếp tục như vậy cho đến khi kết thúc data cần mã hóa
Trang 25II.2 Các Mode của DES
Mode này mã hóa tương tự như CFB Tuy nhiên, ở mode này toàn bộ ngõ ra của thuật toán mã hóa DES được sử dụng như ngõ vào của lần mã kế tiếp
Trang 26II.3 Các Biến Thể của DES
Mã DES còn có các biến thể như: 3DES (triple DES),
Chained 3DES, FEAL (Fast Encryption Algorithm),…
3DES: khối mã hóa dài 64 bit, sử dụng 3 lần mã hóa DES
và 3 key 56 bit khác nhau Chống bẻ khóa khá mạnh
Chained 3DES: cũng là 3DES nhưng theo một số cơ cấu hồi tiếp như CBC, OFB hoặc CFB Chống bẻ khóa rất tốt
FEAL: mã hóa khối, tốc độ khá nhanh nhưng đã bị bẻ
Trang 27III Chuẩn Mã Hoá Cấp Cao AES
6/1977, Diffie and Hellman đã thông báo về chiều dài của khoá 56bit là quá ngắn và đã thiết kế một bộ máy giải mã chuẩn DES chỉ trong một vài ngày
2/1/1997, NIST đã thông báo một giải thuật mã hoá đối xứng mới thay thế cho chuẩn DES, và được gọi là AES (Advanced Encryption Standard)
Trang 28III Chuẩn Mã Hoá Cấp Cao AES
AES có tên là Rijndael (Do hai nhà mật mã học người Bỉ là Joan Daemen và Vincent Rijmen đưa ra) cho phép xử lý các khối dữ liệu input có kích thước 128 bit sử dụng các khóa có
độ dài 128, 192 hoặc 256 bit
Trang 29III Chuẩn Mã Hoá Cấp Cao AES
Thuật toán mã hoá của AES (tham khảo)
Trang 30IV Hệ Thống Mã Hoá Công Khai RSA
Các hệ mã được trình bày trong các chương trước được gọi là các hệ mã khóa bí mật, khóa đối xứng, hay các hệ mã truyền thống
Các hệ mã này có các điểm yếu sau đây:
Nếu số lượng người sử dụng lớn thì số khóa sẽ tăng rấtnhanh, chẳng hạn với n người sử dụng thì số khóa sẽ làn*(n-1)/2 do đó rất khó quản lý, phức tạp và không an toàn
Dựa trên các hệ mã này không thể xây dựng các khái niệm
và dịch vụ như chữ ký điện tử, dịch vụ xác thực hóa ngườidùng cho các ứng dụng thương mại điện tử
Trang 31IV Hệ Thống Mã Hoá Công Khai RSA
Vào năm 1975 Diffie và Hellman trong một công trình của mình (một bài báo) đã đề xuất ra các ý tưởng cho phép xâydựng lên các hệ mã hoạt động theo các nguyên tắc mới gắn liền với các bên truyền tin chứ không gắn với các cặp truyềntin
Nguyên tắc hoạt động của các hệ mã là mỗi bên tham gia truyền tin sẽ có 2 khóa, một khóa gọi là khóa bí mật và một khóa được gọi là khóa công khai
Khóa bí mật là khóa dùng để giải mã và được giữ bí mật(KS), khóa công khai là khóa dùng để sinh mã được công khai hóa để bất cứ ai cũng có thể sử dụng khóa này gửi tin chongười chủ của hệ mã (KP)
Trang 32IV Hệ Thống Mã Hoá Công Khai RSA
Ngày nay chúng ta có thể thấy rất rõ nguyên tắc này trong việcgửi email, mọi người đều có thể gửi email tới một địa chỉ email nào đó, nhưng chỉ có người chủ sở hữu của địa chỉ email đó mới có thể đọc được nội dung của bức thư, còn những ngườikhác thì không Với các hệ mã khóa công khai việc phân phối khóa sẽ trở nên dễ dàng hơn qua các kênh cung cấp khóa công cộng, số lượng khóa hệ thống quản lý cũng sẽ ít hơn (là n cặpkhóa cho n người dùng) Các dịch vụ mới như chữ ký điện tử,thỏa thuận khóa cũng được xây dựng dựa trên các hệ mã này
Trang 33IV Hệ Thống Mã Hoá Công Khai RSA
Hai mô hình sử dụng hệ mã hoá công khai
Trang 34IV Hệ Thống Mã Hoá Công Khai RSA
Hệ mã RSA được đặt tên dựa theo các chữ cái đầu của 3 tác giả của hệ mã 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
Trang 35IV Hệ Thống Mã Hoá Công Khai RSA
Trang 36IV Hệ Thống Mã Hoá Công Khai RSA
Trang 37IV Hệ Thống Mã Hoá Công Khai RSA
Sử dụng RSA :
Mã hóa một thông điệp M: C = Me (mod N) (0<= M < N)
Giải mã: M = Cd (mod N)
Ví dụ : mã hoá “HELLO WORLD” với khoá ở slide trước
Sử dụng mã ASCII của chuỗi “HELLO WORLD” là 07 04 11
Trang 38V Chữ Ký Số
Trong lĩnh vực thương mại điện tử, việc gửi các văn bản, hợp đồng điện tử, hay các email, thông điệp giao dịch
thương mại việc rất bình thường và xảy ra thương xuyên.
Tuy nhiên, vấn đề đặt ra là độ tin cậy của các văn bản đó chưa được xác thực Người gởi có thể gửi các văn bản, hợp đồng hay đơn đặt hàng qua mạng, tuy nhiên sau đó học lại chối là không gửi chúng Chính vì vậy cần phải
có một cơ chế đảm bảo để chống lại sự thoái thác đó.
Giải pháp đặt ra là sử dụng chữ ký số (sử dụng phương pháp mã khoá công khai) trong các văn bản điện tử đó.
Trang 39V Chữ Ký Số
Một văn bản (thông điệp) được ký với một khoá bí mật của người dùng sẽ được xác nhận bởi một người khác với khoá công khai Điều này chứng mình chính người dùng
đó đã gửi văn bản (thông điệp).