Sơ đồ thuật toán Thuật toán DES được sử dụng để mã hóa và giải mã các khối block dữ liệu 64 bit dựa trên một key khóa mã 64 bit.. Một block dữ liệu sẽ được hoán vị khởi tạo Initial Perm
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
TIỂU LUẬN
MÔN HỌC
AN NINH MẠNG VIỄN THÔNG
Đề tài: CHUẨN MẬT MÃ HÓA DỮ LIỆU DES
VÀ ỨNG DỤNG
Trang 2
PHÂN CÔNG CÔNG VIỆC
Tên thành viên Công việc chung Công việc riêng
- Tất cả thành viên trong nhóm đều gặp trực tiếp làm tiểu luận kết thúc môn chung
- Làm lần lượt nội dung theo đề cương
đã nộp cho giảng viên (không chia tách riêng lẻ)
- Vẽ hình
- Phụ trách rà soát nội dung lần cuối Format và tổng kết Word
- Phụ trách nội dung tìm và phân tích ví dụ lần 1
- Vẽ hình
- Phụ trách rà soát nội dung lần 2
Trang 3LỜI CAM ĐOAN
Ngày nay, công nghệ thông tin và truyền thông là một lĩnh vực tất yếu đối với sự phát triển của thế giới Mạng máy tính thì ngày càng trở nên phổ biến và phát triển kéo theo đó là nhiều dịch vụ như thư điện
tử, giao dịch ngân hàng, thương mại điện tử,
Cùng với sự phát triển đó, các vấn đề về an toàn mạng, an ninh dữ liệu ngày càng trở nên quan trọng Có nhiều nghiên cứu về các thuật toán với mục đích bảo toàn thông tin, bảo mật dữ liệu Một trong số đó
là thuật toán Tiêu chuẩn mật mã hóa dữ liệu (DES) Tiêu chuẩn này được đưa ra năm 1977 bởi Viện tiêu chuẩn và kỹ thuật quốc gia Hoa
Kỳ (NIST) Để tìm hiểu về vấn đề này, nhóm em đã làm rõ một số vấn
đề như sau:
I Tổng quan về Chuẩn mật mã hóa dữ liệu DES
II Đặc điểm, cấu trúc, thuật toán mã hóa, giải mã DES
III Ứng dụng của DES
IV Độ an toàn của DES
Tuy nhiên với sự phát triển của công nghệ ngày nay, DES không còn đảm bảo độ an toàn tuyệt đối, nhưng nó vẫn là cơ sở cho những tiêu chuẩn mật mã hóa tiên tiến sau này
Bài tiểu luận này có thể không tránh khỏi một số sai sót do có sự kết hợp của nhiều nguồn tài liệu khác nhau, kính mong cô xem và góp ý để bài tiểu luận của chúng em được hoàn thiện hơn
Nhóm em xin chân thành cảm ơn!
Trang 4MỤC LỤC
I Tổng Quan 1
II Chuẩn mật mã hoá dữ liệu DES 1
1 Đặc điểm 1
2 Cấu trúc DES 1
3 Thuật toán mã hoá dữ liệu 2
3.1 Sơ đồ thuật toán 2
3.2 Hoán vị khởi tạo 3
3.3 Hàm mã hóa f (R,k) 3
3.3.1 Hàm Expand 4
3.3.2 Hàm S-boxes 4
3.3.3 Hàm P-box 7
3.4 Tạo khóa 7
3.5 Hoán vị kết thúc (IP-1) 9
3.6 Ví dụ về mã hóa DES 9
4 Thuật toán giải mã dữ liệu 14
5 Hiệu ứng lan truyền 14
III Ứng dụng của DES 15
1 Ứng dụng giao dịch ngân hàng 15
2 Ứng dụng vào thi tuyển đại học 16
IV Độ an toàn của DES 18
1 Tấn công vét cạn khóa (Brute-Force Attack) 18
2 Phá mã DES theo phương pháp vi sai (Differential Cryptanalysis) 18
3 Phá mã DES theo phương pháp tuyến tính 18
V Kết luận 19
VI Tài liệu tham khảo 19
Trang 5DANH MỤC HÌNH
Hình 1: Cấu trúc của DES 2
Hình 2: Sơ đồ giải thuật mã hóa DES 2
Hình 3: Minh họa một vòng Feistel của DES 3
Hình 4: Hoán vị mở rộng 4
Hình 5: Mô tả hàm S-box 5
Hình 6: Quy tắc hàm S- box 5
Hình 7: Sơ đồ thuật toán tạo khóa 8
Hình 8: Minh họa các Bước mã hóa và giải mã PIN Block 16
Hình 9: Sơ đồ thực hiện giải bài toán 17
Trang 6DANH MỤC BẢNG
Bảng 1: Ví dụ hiệu ứng lan truyền 14
Trang 7I Tổng Quan
Data Encryption Standard (DES), hay còn gọi là “Tiêu chuẩn Mã hóa Dữ liệu” Được công nhận vào năm 1977 bởi viện nghiên cứu quốc gia về chuẩn của nước Mỹ là NIST Sau này chuẩn này đã được sử dụng rất rộng rãi trên phạm vi toàn thế giới Với việc ứng dụng mã hóa vào việc truyền thông tin trên mạng, mã hóa thông tin là rất cần thiết, góp phần đảm bảo sự toàn vẹn và bảo mật, xác thực cho thông điệp cần gửi đi qua mạng Internet
Bài viết này tôi sẽ giới thiệu cho các bạn về thuật toán mã hóa DES
Hiện nay thì DES đã được xem là không còn đủ an toàn cho nhiều ứng dụng Nguyên nhân gây ra chủ yếu là độ dài 56bit của khóa là quá nhỏ Khóa mã hóa DES đã
và từng bị phá trong vòng chưa đầy một ngày Đã có nhiều kết quả đã phân tích chỉ những điểm yếu về mặt lý thuyết của mã hóa dẫn đến phá khóa, tuy chúng không khả thi trong thực tiễn Thuật toán được tin tưởng là an toàn trong thực tiễn có dạng Triple DES (thực hiện DES ba lần), mặc dù trên lý thuyết phương pháp này vẫn có thể bị phá Gần đây DES đã được thay thế bằng AES (Advanced Encryption Standard, hay Tiêu chuẩn Mã hóa Tiên tiến)
II Chuẩn mật mã hoá dữ liệu DES
1 Đặc điểm
Là mã thuộc mã khối Feistel có 16 vòng, ngoài ra DES sẽ có thêm một hoán vị khởi tạo trước khi bắt đầu vòng 1 và một hoán vị kết thúc sau vòng 16
+ Kích thước khối là 64 bit
+ Trong đó 56 bit được sử dụng, 8 bit dùng để kiểm tra chẵn lẻ
Phần bên phải sơ đồ mô tả cách thức khóa 56 bit được sử dụng Đầu tiên khóa 64 bit được đưa vào bộ hoán vị khóa Tiếp đó, ở với mỗi 16 vòng, bằng cách kết hợp dịch vòng trái và lựa chọn hoán vị để tạo ra các khóa con Ki (i = 1- 16) Ở mỗi vòng, hàm hoán vị là giống nhau, nhưng khóa con khác nhau được tạo ra bởi các dịch vòng trái được lặp lại ở các bit khóa
Trang 8Hình 1: Cấu trúc của DES
3 Thuật toán mã hoá dữ liệu
3.1 Sơ đồ thuật toán
Thuật toán DES được sử dụng để mã hóa và giải mã các khối (block) dữ liệu 64 bit dựa trên một key (khóa mã) 64 bit Chú ý, các khối được đánh số thứ tự bit từ trái sang phải
và bắt đầu từ 1, bit đầu tiên bên trái là bit số 1 và bit cuối cùng bên phải là bit số 64 Quá trình giải mã và mã hóa sử dụng cùng một key nhưng thứ tự phân phối các giá trị các bit key của quá trình giải mã ngược với quá trình mã hóa
Một block dữ liệu sẽ được hoán vị khởi tạo (Initial Permutation) IP trước khi thực hiện tính toán mã hóa với key Cuối cùng, kết quả tính toán với key sẽ được hoán vị lần nữa để tạo ra , đây là hoán vị đảo của hoán vị khởi tạo gọi là (Inverse Initial Permutation) IP-1 Việc tính toán dựa trên key được định nghĩa đơn giản trong một hàm f, gọi là hàm
mã hóa, và một hàm KS, gọi là hàm phân phối key (key schedule) Hàm KS là hàm tạo
ra các khóa vòng (round key) cho các lần lặp mã hóa Có tất cả 16 khóa vòng từ K1 đến K16
Hình 2: Sơ đồ giải thuật mã hóa DES
Trang 93.2 Hoán vị khởi tạo
Hoán vị là thay đổi vị trí các bit trong một chuỗi giá trị nhưng không làm thay đổi giá trị của các bit này Đây là bước đầu tiên trong quy trình mã hóa dữ liệu 64 bit dữ
liệu đầu vào, gọi là plaintext, sẽ được hoán vị theo bảng mô tả sau đây
Giả sử bản rõ 64 bit được đánh số từ trái qua phải là 0,1,2, 63 hay b0b1b2 b63 Khi đó các bit sẽ được hoán vị như bảng trên Bit số 57 được đặt vào vị trí đầu tiên, bit
số 49 được đặt vào vị trí thứ hai Cứ như vậy cho đến bit số 6 được đặt vào vị trí cuối
cùng: b0b1b2 b61b62b63 -> b57b49b41 b22b14b6
3.3 Hàm mã hóa f (R,k)
Tiêu chuẩn DES gồm có 16 vòng Một vòng mã hóa của DES sẽ thực hiện chia khối 64 bit làm 2 phần L và R, mỗi phần 32 bit Phần R của vòng trước sẽ là trở thành phần L của vòng sau, đồng thời phần R này sẽ được biến đổi trở thành phần R của vòng
sau Cuối cùng ghép lại sẽ thu được khối 64 bit
- Hình dưới đây minh họa một vòng Feistel của DES
Hình 3: Minh họa một vòng Feistel của DES
- Hàm F trong tiêu chuẩn DES được biểu diễn như sau:
F (R i-1 , K i ) = P-box (S-box (Expand (R i-1 ) ⨁ K i)
Trang 10Hàm Expand là một hoán vị mở rộng Nó sẽ thực hiện làm tăng độ dài của Ri-1 từ
32 bit lên 48 bit bằng cách lặp lại các bit ở một số vị trí và thay đổi vị trí các bit với thuật toán hoán vị mở rộng
- Việc tăng độ dài của của Ri-1 có hai mục đích là:
• Làm Ri-1 và khóa K có cũng cỡ để thực hiện cộng Module
• Tạo ra một kết quả dài hơn để có thể được nén trong suốt quá trình thay thế
- Cả hai mục đích trên đều nhắm đến việc bảo mật dữ liệu
- Hàm Expand thực hiện đánh số các bit của Ri-1 từ trái sang phải là 0, 1, 2, …, 31 Quy tắc thực hiện mở rộng và hoán vị của hàm Expand như hình dưới đây:
Sau khi qua hàm Expand, 48 bit thu được ở đầu ra sẽ được trộn cùng 48 bit của khóa con Các khóa con 48 bit này được trích ra từ khóa chính 56 bit Mỗi vòng sẽ sử dụng một khóa khác nhau Quá trình tạo khóa sẽ được nói cụ thể hơn ở phần sau
Hình 4: Hoán vị mở rộng
3.3.2 Hàm S-boxes
Trang 11Sau khi đi qua bộ trộn, 48 bit thu được sẽ được chia làm 8 khối con mỗi khối có 6 bit Các khối 6 bit này được đưa vào xử lý qua S-box (gọi là hộp thay thế) Các khối 6 bit đầu vào sau khi đi qua S-Box sẽ thu được các khối 4 bit Kết quả cuối cùng sẽ thu được một chuỗi 32 bit để tiếp tục đi vào hộp P-Box Sự biến đổi của các bit đầu vào sẽ dẫn đến sự biến đổi ở đầu ra Độ an toàn của DES được đảm bảo bởi khối S-Box Nếu không có S-Box thì quá trình mã hóa sẽ là tuyến tính và nó khiến cho việc thám mã sẽ trở nên vô cùng đơn giản
Hình 5: Mô tả hàm S-box
Hàm S-Box của DES biến đổi nén một số 48 bit thành một số 32 bit Tuy nhiên, nếu chỉ lập một bảng tra cứu như ở TinyDES thì bảng này này sẽ cần phải có kích thước 216x232 (216 dòng và 232 cột) Điều này thì sẽ dẫn đến số lượng phần tử trong bảng rất lớn và rất khó để tra cứu Để giải quyết điều này người ta giảm kích thước của bảng tra cứu các hàm S-boxes thành 8 hàm S-box con, mỗi hàm biến đổi số 6 bit thành số 4 bit Mỗi S-Box cần có bảng riêng của nó nên sẽ có 8 bảng được thể hiện ở phần dưới Việc thay thế trong mỗi hộp tuân theo quy tắc được xác định trước dựa trên bảng
4 hàng x 16 cột Sự kết hợp của bit 1 và 6 của đầu vào xác định một trong bốn hàng; sự kết hợp của các bit từ 2 đến 5 xác định một trong mười sáu cột như thể hiện trong hình
Hình 6: Quy tắc hàm S- box
Ví dụ về hoạt động của hàm S-box đầu tiên như sau:
Trang 12Chi tiết các hàm S-box được thể hiện cụ thể như sau:
Trang 133.3.3 Hàm P-box
Các khối 4 bit đầu ra của các hộp S-box sẽ được ghép lại thu được 32 bit và đưa vào hộp P-box Hộp P-Box chỉ đơn giản là khối thực hiện việc hoán vị các bit với nhau Quy tắc thực hiện hoán vị của hàm P-Box:
3.4 Tạo khóa
- Sơ đồ thuật toán G tạo các từ khóa K1,K2, ,K16
- Thuật toán G tạo ra các từ khóa K1 K16 từ khóa mật mã K được thực hiện theo sơ đồ thuật toán bên
- Khóa mật mã K là một từ 56 bit, ta thực hiện:
• Khóa K được chia cắt thành 8 đoạn, mỗi đoạn có độ dài 7 bit
• Ta sẽ thêm cho mỗi đoạn ở bước 1 đó một bit thử tính chẵn lẻ vào vị trí phía cuối
để thu được một từ 64 bit
Trang 14• Ta vẫn ký hiệu là K, từ mới K này là từ xuất phát cho quá trình tính toán của thuật toán G
Hình 7: Sơ đồ thuật toán tạo khóa
- Khóa K có độ dài 64 bit ban đầu được rút trích và sau đó hoán vị thành một khóa có
độ dài 56 bít (nghĩa là chỉ 56 bít được sử dụng) theo quy tắc PC-1 đã trình bày ở trên:
• Biến K thành hai nửa C0D0, mỗi nửa có 28 bit
Chúng ta có phép hoán vị PC-1 được xác định bởi bảng sau đây:
LSi là phép dịch vòng sang trái với các giá trị i = 1,2,3, ,16:
• Với i = 1,2,9,16 thì ta sẽ chuyển dịch một vị
• Với giá trị i còn lại ta chuyển dịch hai vị trí
Cuối cùng, phép hoán vị PC-2 biến mỗi từ 56 bit Ci Di (i = 1,2, ,16) thành từ 48 bit Ki
theo bảng dưới:
Trang 16Bước 1: Tính các khóa con Ki từ khóa K
Thuật toán PC-1 biến K thành một từ 56 bit
Phép hoán vị PC-1 được xác định bởi bảng sau:
Trang 17Bước 2: Hoán vị khởi tạo
Các bit ở bản rõ M sẽ được hoán đổi theo quy tắc:
Trang 18Giá trị A 48 bit ở trên qua hàm S-box được biến đổi thành 32 bit
Hoạt động hàm S1 như sau:
Hàm Expand vừa hoán vị, vừa mở rộng 32 bit nửa phải thành 48 bit theo quy tắc:
Ta có A1 = 011000 = > S1(A1) = 5
Tương tự cho các hàm S-box còn lại, ta được kết quả như sau:
Trang 19- Thực hiện hoán vị kết thúc R16L16 theo quy tắc:
→ Kết quả cuối cùng ta thu được là:
Trang 204 Thuật toán giải mã dữ liệu
Đối với mã hóa DES thì thuật toán giải mã sẽ làm ngược lại các bước của thuật toán mã hóa ta sẽ có bản rõ ban đầu cần mã hóa
Thuật toán giải mã dữ liệu được xây dựng giống với thuật toán mã hóa dữ liệu Tuy nhiên thứ tự các khóa con được sử dụng thì ngược lại so với thuật toán mã hóa, tức
là khóa con K16 được dùng cho vòng 1, K15 cho vòng 2, cứ thế cho đến K1 sẽ được dùng cho vòng 16 Thuật toán giải mã có thể được thể hiện qua biểu thức sau:
DES-1 = (IP)-1 F1 ⨁ T ⨁ F2 ⨁ … ⨁ F15 ⨁ T ⨁ F16 ⨁ (IP)
Bây giờ chú ý rằng mỗi hàm T (phép biến đổi L và R) hoặc F đều là các hàm có tính chất đối hợp (f = f - 1, hay f (f(x) = x) Do đó nếu ta thực hiện phép tích DES - 1 x DES hay DES x DES-1 thì sẽ thu được phép đồng nhất Điều đó có thể giải thích tại sao thuật toán giải mã lại giống với như sinh mã, chỉ khác về thứ tự các khóa con được sử dụng trong các vòng
5 Hiệu ứng lan truyền
Hiệu ứng lan truyền tức là trong khóa hay bản rõ chỉ cần có một thay đổi nhỏ sẽ dẫn đến sự thay đổi lớn trong bản mã
Nhờ có tính chất này mà kẻ phá mã phải thực hiện kiểu tấn công Brute Force (vét cạn khóa) mới có thể phá khóa
Bảng 1: Ví dụ hiệu ứng lan truyền
Ví dụ về hiệu ứng lan truyền:
a Hai bản mã khác nhau 1 bit
Trang 21b Hai khóa khác nhau 1 bit
III Ứng dụng của DES
Tiêu chuẩn DES thường được sử dụng để mã hóa bảo mật các thông tin quan trọng cần được giữ kín trong quá trình truyền cũng như lưu trữ thông tin để tránh rò rỉ gây ra nhiều hậu quả nghiêm trọng Ta có thể áp dụng DES rất nhiều ứng dụng ví dụ như trong đấu thầu từ xa, xác thực mật khẩu truy nhập hệ thống như hệ thống bán hàng, kiểm tra tính hợp lệ trong mã thẻ ATM hay, trong thi tuyển sinh…
1 Ứng dụng giao dịch ngân hàng
a Sơ lược về hệ thống ATM
ATM là một phần trong hệ thống mạng không tập trung, nằm rải rác ở các điểm khác nhau nên việc an toàn bảo mật rất được quan tâm Các ATM được kết nối đến Switch, các Switch sẽ được kết nối trực tiếp với CoreBank và thiết bị như POS Switch là một thành phần quan trọng, là trung gian giữa ngân hàng và các ATM Mọi giao dịch trên ATM đều sẽ thông qua Switch
Nhằm đảm bảo an toàn trong giao dịch, hệ thống sử dụng thiết bị mã hóa cứng để mã hóa và giải mã thông tin Trên các máy ATM có trang bị EPP (Encrypting PIN Pad), hệ thống Switch có bộ HSM (Hardware Security Module)
b Thuật toán mã hóa
Trong hệ thống các ATM của các ngân hàng hiện nay thường sử dụng thuật toán DES để mã hóa và giải mã dữ liệu
Kích thước khóa sử dụng có thể là 64, 128, 192 bit tùy vào việc sử dụng mã hóa DES hay 3DES
Thuật toán mã hóa 3DES chính là DES, nó được gọi là 3DES là do người ta sử dụng mã hóa DES liên tiếp 3 lần với 3 khóa K1, K2 và K Khóa K được xây dựng từ bộ
ba khóa 64 bit (K1, K2, K3) có độ dài 3*64 = 192 bit
• Sử dụng K1 để mã hóa, sau đó dùng K2 để giải mã, cuối cùng sẽ sử dụng K3 để
mã hóa trước khi gửi đi
• Sử dụng K3 để giải mã, dùng khóa K2 để mã hóa, và cuối cùng là khóa K1 để tiến hành giải mã thu được bản rõ
c Mã hóa và giải mã số PIN
- Mã hóa PIN tại ATM
Để đảm bảo độ an toàn của số PIN trong quá trình truyền trên mạng, số PIN được chuyển thành khối PIN (PIN Block) và được mã hóa trước khi chuyển từ ATM tới hệ thống Switch Khối PIN được mã hóa bằng khóa được thỏa thuận trước giữa ATM và
hệ thống Switch
Trang 22Thuật toán DES (3DES) chỉ làm việc với khối dữ liệu đầu vào có độ dài là 64 bit, nên PIN Block được xây dựng bằng cách module-2 (XOR) hai trường 64 bit theo chuẩn ISO 9564-1 gồm:
• Trường số PIN theo khuôn dạng 64 bit
• Trường số PAN theo khuôn dạng 64 bit
Điều kiện đầu vào và kết quả đầu ra của quá trình mã hóa số PIN Đầu vào:
mô tả việc dùng khóa 3DES bộ hai để mã hóa và giải mã PIN block:
Hình 8: Minh họa các Bước mã hóa và giải mã PIN Block
- Xác thực PIN tại HSM
• Tại HSM để xác thực PIN gồm các quá trình sau:
• Giải mã PIN được nhập vào từ máy ATM đã được mã hóa
• Giải mã PIN lưu trong CSDL của CoreBank đã được mã hóa
• So sánh số PIN được nhập vào và số PIN được lưu trong CSDL
• Quá trình xác thực đều được thực hiện trong thiết bị HSM
• Kết quả đầu ra sẽ là số PIN nhập vào đúng hay sai
2 Ứng dụng vào thi tuyển đại học
Trong một kì thi, trường hợp nơi ra đề thi và nơi tổ chức thi ở cách xa nhau, yêu cầu phải tiến hành chuyển đề thi từ nơi ra đề đến địa điểm tổ chức thi thông qua mạng