Với sự phát triển mang tính toàn cầu của mạng Internet và TMĐT , con người có thể mua bán hàng hóa và dịch vụ thông qua mạng máy tính toàn cầu một cách dễ dàng trong lĩnh vực thương mại rộng lớn. Tuy nhiên đối với các giao dịch mang tính nhạy cảm này cần phải có những cơ chế đảm bảo bảo mât và an toàn vì vậy vấn đề bảo mật và an toàn thông tin trong thương mại điện tử là một vấn đề hết sức quan trọng. Đề tài sẽ đề cập đến các kỹ thuật chính của lĩnh vực Bảo mật và an toàn thông tin trong thương mại điện tử. Hiện nay vấn đề Bảo mật và an toàn thông tin trong TMĐT đã và đang được áp dụng phổ biến và rộng rãi ở Việt Nam và trên phạm vi toàn cầu . Vì thế vấn đề Bảo mật và an toàn đang được nhiều người tập trung nghiên cứu và tìm mọi giải pháp để đảm bảo Bảo mật và an toàn cho các hệ thống thông tin trên mạng. Tuy nhiên, cũng cần phải hiểu rằng không một hệ thống thông tin nào được bảo mật 100% bất kỳ một hệ thống thông tin nào cũng có những lỗ hổng về bảo mật và an toàn mà chưa được phát hiện ra. Xuất phát từ những khả năng ứng dụng trong thực tế và những ứng dụng đã có từ các kết quả của nghiên cứu trước đây về lĩnh vực Bảo mật và an toàn trong TMĐT.Sau đây chúng em xin đi sâu vào nghiên cứu một loại mã dùng để mã hóa thông tin và có ứng dụng rất lớn trong thực tế đó là “Mã DES và Mã 3DES”.
Trang 1VIỆN ĐÀO TẠO QUỐC TẾ TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
- -BÁO CÁO
AN TOÀN BẢO MẬT THÔNG TIN
Đề tài: “Sự khác nhau mã DES và mã 3DES,demo
thuật toán DES ”
Trang 2Hiện nay vấn đề Bảo mật và an toàn thông tin trong TMĐT đã và đang được áp dụng phổ biến và rộng rãi ở Việt Nam và trên phạm vi toàn cầu Vì thế vấn đề Bảo mật và an toàn đang được nhiều người tập trung nghiên cứu và tìm mọi giải pháp để đảm bảo Bảo mật và an toàn cho các hệ thống thông tin trên mạng Tuy nhiên, cũng cần phải hiểu rằng không một hệ thống thông tin nào được bảo mật 100% bất kỳ một hệ thống thông tin nào cũng có những lỗ hổng
về bảo mật và an toàn mà chưa được phát hiện ra
Xuất phát từ những khả năng ứng dụng trong thực tế và những ứng dụng đã có từ các kết quả của nghiên cứu trước đây về lĩnh vực Bảo mật và an toàn trong TMĐT.Sau đây chúng em xin đi sâu vào nghiên cứu một loại mã dùng để mã hóa thông tin và có ứng dụng rất lớn trong thực tế đó là “Mã DES và Mã 3DES”
Trang 3CHƯƠNG I: TỔNG QUAN VỀ MÃ DES VÀ MÃ 3DES
II MÃ DES
A Mô tả thuật toán mã hóa DES
Mô tả tổ ng quan:
DES là thuâṭ 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, thựcc ra chính xác hơn phải là 64 bit với các bit ở vi ̣trí chia hết cho 8 có thể sử dụng là các bit kiểm tra tính chẵn lẻ Số khóa
của không gian khóa K là 256.
Hình 1: Chuẩn mã hóa dữ liệu DES
sinh ra , mỗi khóa cho một vòng thực hiện trong quá trình mã hóa Trong
chọn kỹ càng và cố định , ký hiệu chung là S sẽ được sử dụng Bản rõ 64bit
Li = Ri-1; (1)
Trong đó:
Trang 4−⊕ là ký hiệu của phép tuyển loại trừ (XOR) của hai xâu bit theo modul 2.
− E là hoá n vi ̣mở rôn ̣g á nh xạ Ri từ 32 bit thành 48 bit (đôi khi tất cả các bit sẽ
được sử dụng hoăc ̣ môṭ bit sẽ được sử dụng 2 lần)
− P là hoán vi ̣cố đinh khác của 32 bit
Một hoán vị bit khởi đầu được sử dụng cho vòng đầu tiên, sau vòng cuối cùng nửa trái và phải sẽ được đổi cho nhau và cuối cùng xâu kết quả sẽ được hoán vị
Quả trình giải mã diễn ra tương tự với các khóa con ứng dụng vào các vòng trong theo thứ tự ngược lại
Có thể hình dung đơn giản là phần bêm phải trong mỗi vòng (sau khi mở rộng inpu 32 bit thành 8 bit ký tự 6 bit-xâu 48 bit) sẽ thực hiện một tính toán thay thế phụ thuộc khóa trên mỗi ký tự trong xâu 48bit, và sau đó sử dụng một phép chuyển bit cố định để phân bố lại các bit của các ký tự kết quả hình thành nên output 32bit
PC2 Trước tiên 8bit của K bị bỏ đi , 56bit còn lại được hoán vị và gán cho hai biến 28bit C và D, và sau đó trong 16 vòng lặp cả C và D sẽ được quay 1
xâu với nhau
Như vậy, ta có thể mô tả toàn bộ thuật toán sinh mã DES dưới dạng công thức như sau:
Y = IP -1.f 16.T.f 15.T.… f 2.T.f 1.T . IP(x)
Trong đó:
Thuật toán chi tiết:
Input: bản rõ M = m1 m2 m3 … m64 khóa 64bit K= k1 k2 … k64 (bao gồm cả 8 bit chẵn lẻ , việc thêm bit chẵn lẽ sao cho các đoạn khóa 8bit có số bit 1 là lẻ)
Trang 5Output: bản mã 64bit C=c1 c2 c3 … c64
1 Sinh khóa con Tính các khóa con theo thuật toán sinh khóa con bên dưới
2 (L0 R0 ) IP(m1 m2 m3 … m64) ( Sử dụng các hoán vị IP để hoán vị các bit, kết quả nhận được chia thành 2 nửa Lo= m58 m50 …m8 , Ro = m57 m49 …
m7
3 16 vòng for , i=1 to 16
Tính các L i và R i theo các công thức (1) và (2), viêc ̣tính:
a) Mở rộng R i-1 = r1r2…r32 từ 32 bit thành 48bit bằng cách sử dụng hoán vị
mở rộng E
…,B8)
thành các xâu 4 bit của phần tử thuôc ̣ hàng r và côṭ c của các bả ng Si (S box) trong đó r = 2 * b1
+ b6 và c = b2b3b4b5 là một số nhị phân từ 0 tớ i 15 Chẳng han ̣
S1(011011) sẽ cho r = 1 và c = 13 và kết quả là 5 biểu diễn dướii dan ̣g nhi
̣phân là 0101
t1t2…t32 sinh ra t16t7…t25
Sơ đồ 16 vòng lặp của DES:
Trang 6
1 Hoán vị IP và hoán vị ngược IP -1
Bảng hoán vị IP được đưa ra trong bảng dưới đây:
Hai hoán vị IP và IP-1 không có ý nghĩa gì về mặt mật mã mà hoàn toàn nhằm
Trang 7Sơ đồ cấu trúc một vòng DES:
2 Thuật toán sinh khóa con.
16 vòng lặp của thuật toán DES chạy cùng thuật toán như nhau với 16 khóa con khác nhau.Các khóa con đều được sinh ra từ khóa chính của DES bằng một thuật toán sinh khóa con Khóa chính K ( 64bit) đi qua 16bit biến đổi , tại mỗi bit biến đổi này một khóa con được sinh ra với độ dài 48bit
Có thể mô tả chi tiết thuật toán sinh khóa con như sau:
Input: khóa 64 bit K = k1k2 k64 (bao gồm cả 8 bit kiểm tra tính chẵn lẻ)
1) Đinh nghĩa vi, 1 ≤ i ≤ 16 như sau: vi = 1 đố i với i ∈ {1,2,9,16}; vi = 2 cho các trườnng hợp khác (Đây là các giá tri ̣dic̣h trái cho các quay vòng 28 bit bên dưới)
để chọn các bit từ K: C0 = k57k49 k36, D0 = k63k55 k4.)
Trang 8b1b2 b56 của Ci và Di: Ki =b14b17 b32 ‟← „ là ký hiêu ̣ dic̣h vòng trái.)
Sơ đồ sinh các khóa con của DES:
64bit đầu sẽ giảm xuống còn 56bit bằng cách bỏ đi 8bit ( ở các vị trí chia hết cho 8) , các bit này dùng để kiểm tra tính chẵn lẻ, sau đó 56bit này sẽ được trích lấy 48bit để sinh ra cho 16 vòng khóa của DES
Bảng trật tự khóa PC-1:
Đầu tiên 56bit khóa sẽ được chia ra thành 2 nửa 28bit Sau đó 2 nửa 28 bit này sẽ được dịch vòng trái hoặc 1 hoặc 2 bit phụ thuộc vào số bit dịch vòng tương ứng với vòng đó
Số bit dịch của các vòng (LS)
Trang 9Sauk hi dịch vòng một bảng chon 48bit được sử dụng Vì cách hoán vị này của các bit được lựa chọn như một tổ hợp con của các bit nên được gọi là “ hoán vị nén” hay “ trật tự nén “
Bảng trật tự nén PC-2:
Ví dụ như chúng ta có thể nhận lấy bit ở vị trí thứ 33 của khóa sẽ dịch sang vị trí
35 ra ngoài, còn bit ở vị trí 18 của khóa sẽ bị bỏ qua Chính việc dịch vòng này tạo nên một tập hợp con của các khóa Mỗi bit được sử dụng 14 lần trong tổng số 16 tổ hợp khóa, dù không phải tất cả các bit được sử dụng một cách chính xác cùng lúc trong mỗi lần sử dụng
3 Mô tả hàm f
tự có độ dài 32bit.Hàm f có thể là hàm bất kỳ tuy nhiên nguồn gốc sức mạnh của DES đều nằm trong hàm f nên việc chọn hàm f phải cẩn thận để tránh việc phá mã một cách dễ dàng Thông thường hàm f được chọn là hàm có tính chất:
Trang 10- Thực chất hàm mở rộng E(Ri-1) là một hoán vị có lặp trong đó lặp
lại 16 bit của Ri-1
B1B2B3B4B5B6B7B8
Mỗi hộp S-Box là một bảng 4*16 cố định có các cột từ 0 đến 15 và các hàng từ 0 đến 3 Với mỗi xâu 6 bit Bi = b1b2b3b4b5b6, ta tính được Si(Bi) như sau: hai bit b1b6 xác định hàng r trong hộp Si, bốn bit b2b3b4b5 xác định cột c trong hộp Si Khi đó, Si(Bi) sẽ xác định phần tử Ci = Si(r,c), phần tử này viết dưới dạng nhị phân 4 bit Như vậy, 8 khối 6 bit Bi (1 ≤ i ≤ 8) sẽ cho ra 8 khối 4 bit Ci với (1 ≤ i ≤ 8)
phép hoán vị P (hộp P-Box) Kết quả P(C) sẽ là kết quả của hàm f(Ri-1, Ki), và cũng chính là Ri cho vòng sau
Hàm f cũng có thể được mô tả trong hình sau:
4 Hàm ánh xạ mở rộng E
thứ tự của các bit cũng như lặp lại các bit Việc thực hiện này gồm các bước:
Trang 11Tuy nhiên, cả hai mục đích này đều nhằm một mục tiêu chính là bảo mật dữ liệu.
Bằng cách cho phép 1 bit có thể chèn vào hai vị trí thay thế, sự phụ thuộc của các bit đầu ra với các bit đầu vào sẽ trải rộng ra DES được thiết kế với điều kiện là mỗi bit của bản mã phụ thuộc vào mỗi bit của bản rõ và khoá
Sơ đồ hàm mở rộng:
Đôi khi nó được gọi là hàm E-Box, mỗi 4 bit của khối vào, bit thứ nhất và bit thứ
tư tương ứng với 2 bit của đầu ra, trong khi bit thứ 2 và 3 tương ứng với 1 bit
ở đầu ra Bảng sau đây miêu tả vị trí của bit ra so với bit vào
Ví dụ như bit ở vị trí số 3 của khối vào sẽ di chuyển đến vị trí số 4 của khối ra và bit ở vị trí 21 ở đầu vào sẽ di chuyển đến vị trí 30 và 32 ở đầu ra
5 Mô tả hộp S-Box
Đối với sơ đồ mã hoá DES, mọi tính toán đều là tuyến tính, tức là việc tính phéptuyển loại trừ XOR của hai đầu ra cũng giống với phép tuyển loại trừ XOR của hai đầu vào rồi tính toán đầu ra Chỉ duy nhất có các tính toán với hộp S là phi tuyến Chính vì vậy các hộp S-Box (chứa đựng các thành phần phi
Trang 12tuyến của hệ mật) là quan trọng nhất đối với độ mật của hệ mã, chính các hộp S tạo nên sự hỗn loạn (confusion) và sự khuếch tán (diffusion) của DES Năm 1976, NSA đã đưa ra tiêu chuẩn thiết kế hộp S như sau:
NSA cũng tiết lộ 3 thuộc tính của hộp S, những thuộc tính này đảm bảo tínhconfusion và diffusion của thuật toán:
− Sửa đổi ở một bit vào làm thay đổi ít nhất là hai bit ra
hiện
một tính chất được gọi là “phân bố đồng nhất”: so sánh số lượng bit số 0 và 1
ở các đầu ra luôn ở mức cân bằng Tính chất này khiến cho việc phân tích theo lý thuyết thống kê để tìm cách phá hộp S là vô ích
Sau khi cộng module với khoá K, kết quả thu được chuỗi 48 bit chia làm 8 khối đưa vào 8 hộp S-Box Mỗi hộp S-Box có 6 bit đầu vào và 4 bit đầu ra (tổng bộ nhớ yêu cầu cho 8 hộp S-Box chuẩn DES là 256 bytes) Kết quả thu được là một chuỗi 32 bit tiếp tục vào hộp P-Box
Ta có thể xây dựng các hộp S của riêng mình, tuy nhiên cũng có thể dùng các hộp
S chuẩn đã được công bố:
Hộp S1
Trang 13Hộp 2
Hộp 3
Hộp 4
Hộp 5
Trang 1414 ( số điểm của cột, hàng bắt đầu từ 0) và giá trị 1110 được thay thế cho giá trị 110110 ở đầu ra.
6 Mô tả hộp P-Box
Việc hoán vị này mang tính đơn ánh, nghĩa là một bit đầu vào sẽ cho một
P-Box thực chất chỉ làm chức năng sắp xếp đơn thuần theo bảng sau:
Bảng mô tả hộp P-Box:
Trang 15
Bảng hoán vị P
Ví dụ như bit 21 sẽ dịch chuyển đến bit thứ 4, trong khi bit thứ 4 lại dịch chuyển đến bit 31 Kết quả cuối cùng của hộp P-Box lại được XOR với nửa trái của khối 64 bit của chính nó (tức Li-1 để tạo ra Ri) và sau đó nửa trái và nửa phải đảo cho nhau và bắt đầu một vòng khác
7 Ví dụ về một mã DES
phân là một dãy bit như sau( không có bit kiểm tra):
Trang 19− Cuối cùng, chuyển đổi IP-1, ta thu được bản mã (ở dạng Hecxa):
“85E813540F0AB405”.
B Các điểm yếu của DES.
1 Tính bù:
Nếu ta ký hiệu u là phần bù của u (ví dụ như: 0100101 là phần bù của 1011010)
thì DES có tính chất sau:
y = DES(x,k) → y = DES( x , k )
Cho nên nếu ta biết mã y được mã hoá từ thông tin x với khoá K thì ta suy ra
được bản mã y được mã hoá từ bản rõ x với khoá k Tính chất này chính là
Trang 20một yếu điểm của DES bởi vì qua đó đối phương có thể loại bỏ đi một số khoá phải thử khi tiến hành thử giải mã theo kiểu vét cạn.
3 DES có cấu trúc đại số
Với 64 bit khối bản rõ có thể được ánh xạ lên tất cả vị trí của 64 bit khối bản mãtrong 264 cách Trong thuật toán DES, với 56 bit khoá, có thể cho chúng ta
256 (khoảng 1017) vị trí ánh xạ Với việc đa mã hoá thì không gian ánh xạ còn lớn hơn Tuy nhiên điều này chỉ đúng nếu việc mã hoá DES là không có cấu trúc
Trang 21Với DES có cấu trúc đại số thì việc đa mã hoá sẽ được xem ngang bằng với việc
đơn mã hoá Ví dụ như có hai khoá bất kỳ K1 và K2 thì sẽ luôn được khoá thứ K3 như sau:
“nhóm” được phát với cấu trúc hàm quá nhỏ thì tính an toàn sẽ giảm
4 Không gian khóa K
DES có 256 = 1017 khoá Nếu chúng ta biết được một cặp “tin/mã” thì chúng ta
có thể thử tất cả 1017 khả năng này để tìm ra khoá cho kết quả khớp nhất Giả sử như một phép thử mất 10-6s, thì chúng sẽ mất 1011s, tức 7300 năm Nhưng với các máy tính được chế tạo theo xử lý song song Chẳng hạn với
107 con chipset mã DES chạy song song thì bây giờ mỗi một con chipset chỉ phải chịu trách nhiệm tính toán với 1010 phép thử Chipset mã DES ngày nay có thể xử lý tốc độ 4.5×107 bit/s tức có thể làm được hơn 105 phép mã DES trong một giây
Vào năm 1976 và 1977, Diffie và Hellman đã ước lượng rằng có thể chế tạo được
một máy tính chuyên dụng để vét cạn không gian khoá DES trong ½ ngày với cái giá 20 triệu đô la Năm 1984, chipset mã hoá DES với tốc độ mã hoá
256000 lần/giây Năm 1987, đã tăng lên 512000 lần/giây Vào năm 1993, Michael Wiener đã thiết kế một máy tính chuyên dụng với giá 1 triệu đô la
sử dụng phương pháp vét cạn để giải mã DES trung bình trong vòng 3,5 giờ (và chậm nhất là 7 giờ)
Đến năm 1990, hai nhà toán học người Do Thái - Biham và Shamir - đã phát minh
ra phương pháp phá mã vi sai (diferential cryptanalyis), đây là một kỹ thuật
sử dụng những phỏng đoán khác nhau trong bản rõ để đưa ra những thông tin trong bản mã Với phương pháp này, Biham và Shamir đã chứng minh rằng nó hiệu quả hơn cả phương pháp vét cạn
Phá mã vi sai là thuật toán xem xét những cặp mã hoá khác nhau, đây là những
cặp mã hoá mà bản rõ của chúng là khác biệt Người ta sẽ phân tích tiến trình biến đổi của những cặp mã này thông qua các vòng của DES khi chúng được mã hoá với cùng một khoá K Sau đó sẽ chọn hai bản rõ khác nhau một cách ngẫu nhiên hợp lý nhất Sử dụng sự khác nhau của kết quả mã hoá và
Trang 22gán cho những khoá khác nhau một cách phù hợp nhất Khi phân tích nhiều hơn những cặp bản mã, chúng ta sẽ tìm ra một khoá được xem là đúng nhất.
C MÃ 3DES
1 Thuật toán mã hóa 3DES
Thuật toán mã hoá 3DES là một biến thể phụ của DES, như ta đã biết DES vẫn tồn tại nhiều nhược điểm như: Có thể bẽ gãy bằng những máy có mục đích đặc biệt để tìm ra khóa
Trước tiên, thực hiện mã hóa DES với khóa K1, tiếp tục giải mã DES với khóa
K2 và cuối cùng mã hóa DES với khóa K3 (E – Encryption: quá trình mã hóa; D - Decryption: quá trình giải mã; Bản rõ: Dữ liệu đầu vào của phép mã hóa hoặc dữ liệu đầu ra của phép giải mã; Bản mã: Dữ liệu đầu ra của phép mã hóa hoặc dữ liệu đầu vào của phép giải mã)
Trang 231) Lựa chọn 1: K1, K2, K3 là các khóa độc lập
2) Lựa chọn 2: K1, K2 là hai khóa độc lập và K3 = K1
3) Lựa chọn 3:K1=K2=K3
Lựa chọn 1 là phương thức mã hóa mạnh nhất với 168 bít khóa độc lập
(168=3x56) Lựa chọn 2 ít bảo mật hơn với 112 bít khóa ( 2x56=112 bít) và lựa chọn 3 chỉ tương đương với việc mã hóa DES 1 lần với 56 bít khóa Mỗi khóa DES thông thường được lưu trữ và truyền đi trong 8 byte, vì vậy một nhóm khóa yêu cầu 8 hoặc 16, 24 byte cho việc lưu trữ khóa
2 Ưu nhược điểm của 3DES
- Ưu điểm: Khác với DES , thuật toán mã hóa 3DES được mã hóa 3 lần DES, với
kích cỡ không gian khóa là 168 cho nên an toàn hơn rất nhiều so với DES
- Nhược điểm: Vì 3DES sử dụng 3 lần mã hóa DES nên tốc độ mã hóa sẽ chậm hơn rất nhiều so với DES Phần mềm ứng dụng tỏ ra rất chậm đối với hình ảnh số
và một số ứng dụng dữ liệu tốc độ cao vì có kích thước khối 64bit vẫn còn là một nhược điểm đối với những hệ có tốc độ của thế kỷ 21
IV YÊU CẦU LƯU TRỮ KHÓA
- Đối với một khóa riêng lẻ hay một nhóm khóa gồm 03 khóa sẽ phải:
- Đảm bảo duy trì tính bảo mật;
- Việc cấp phát khóa sử dụng một phương pháp đã được chấp thuận dựa trên việc sinh khóa ngẫu nhiên;
- Nhóm khóa độc lập với các nhóm khóa khác;
- Phải có tính toàn vẹn do mỗi khóa trong nhóm khóa không thể thay đổi theo thời gian trong quá trình sinh phát khóa, truyền tải và lưu trữ khóa;
- Sử dụng một cách tuần tự theo thứ tự xác định trước;
- Số lượng khóa là cố định với mỗi khóa đơn lẻ không thể làm sai lệch
Khóa yếu
Có nhiều khóa được xem là khóa yếu trong thuật toán DES, đó là các khóa dễ có khả năng bị đối tượng phá khóa do một số bít của khóa lặp lại và dễ dự đoán