Trường Đại học Hải Phòng Bài giảng: An toàn thông tin CHƯƠNG 2 CÁC VẤN ĐỀ CƠ BẢN Trong phần này sẽ trình bày về một số cơ sở toán học của mã hóa, điều này sẽ giúp ta nắm được một cách ch
Trang 1MỤC LỤC
Trang 2Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
CHƯƠNG 1
AN TOÀN DỮ LIỆU TRÊN MẠNG MÁY TÍNH
Ngày nay, với sự phát triển mạnh mẽ của công nghệ thông tin việc ứng dụng cáccông nghệ mạng máy tính trở nên vô cùng phổ cập và cần thiết Công nghệ mạng máytính đã mang lại những lợi ích to lớn
Sự xuất hiện mạng Internet cho phép mọi người có thể truy cập, chia sẽ và khai thácthông tin một cách dễ dàng và hiệu quả Các công nghệ E-mail cho phép mọi người cóthể gửi thư cho người khác cũng như nhận thư ngay trên máy tính của mình Gần đây cócông nghệ E-business cho phép thực hiện các hoạt động thương mại trên mạng máytính Việc ứng dụng các mạng cục bộ trong các tổ chức, công ty hay trong một quốc gia
là rất phong phú Các hệ thống chuyển tiền của các ngân hàng hàng ngày có thể chuyểnhàng tỷ đôla qua hệ thống của mình Các thông tin về kinh tế, chính trị, khoa học xã hộiđược trao đổi rông rãi
Tuy nhiên lại nảy sinh vấn đề về an toàn thông tin Đó cùng là một quá trình tiếntriển hợp logic: khi những vui thích ban đầu về một siêu xa lộ thông tin, bạn nhất địnhnhận thấy rằng không chỉ cho phép bạn truy nhập vào nhiều nơi trên thế giới, Internetcòn cho phép nhiều người không mời mà tự ý ghé thăm máy tính của bạn
Thực vậy, Internet có những kỹ thuật tuyệt vời cho phép mọi người truy nhập, khaithác, chia sẻ thông tin Những nó cũng là nguy cơ chính dẫn đến thông tin của bạn bị hưhỏng hoặc phá huỷ hoàn toàn
Có những thông tin vô cùng quan trọng mà việc bị mất hay bị làm sai lệch có thểảnh hưởng đến các tổ chức, các công ty hay cả một quốc gia Các thông tin về an ninhquốc gia, bí mật kinh doanh hay các thông tin tài chính là mục tiêu của các tổ chức tìnhbáo nước ngoài về chính trị hay công nghiệp hoặc kẻ cắp nói chung Bọn chúng có thểlàm mọi việc có thể để có được những thông tin quý giá này Thử tưởng tượng nếu có
kẻ xâm nhập được vào hệ thống chuyển tiền của các ngân hàng thì ngân hàng đó sẽ chịunhững thiệt hại to lớn như mất tiền có thể dẫn tới bị phá sản Chưa kể nếu hệ thôngthông tin an ninh quốc gia bị đe doạ thì hậu quả không thể lường trước được
Theo số liệu của CERT(Computer Emegency Response Team - “Đội cấp cứu máy tính”), số lượng các vụ tấn công trên Internet được thông báo cho tổ chức này là ít hơn
200 vào năm 1989, khoảng 400 vào năm 1991, 1400 vào năm 1993, và 2241 vào năm
1994 Những vụ tấn công này nhằm vào tất cả các máy tính có mặt trên Internet, cácmáy tính của tất cả các công ty lớn như AT&T, IBM, các trường đại học, các cơ quannhà nước, các tổ chức quân sự, nhà băng Một số vụ tấn công có quy mô khổng lồ (cótới 100.000 máy tính bị tấn công) Hơn nữa, những con số này chỉ là phần nổi củatảng băng Một phần rất lớn các vụ tấn công không được thông báo, vì nhiều lý do,trong đó có thể kể đến nỗi lo bị mất uy tín, hoặc đơn giản những người quản trị hệthống không hề hay biết những cuộc tấn công nhằm vào hệ thống của họ
Không chỉ số lượng các cuộc tấn công tăng lên nhanh chóng, mà các phương pháptấn công cũng liên tục được hoàn thiện Điều đó một phần do các nhân viên quản trị hệthống được kết nối với Internet ngày càng đề cao cảnh giác Cũng theo CERT, những
Trang 3Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
gồm cả các thao tác như giả mạo địa chỉ IP, theo dõi thông tin truyền qua mạng, chiếmcác phiên làm việc từ xa (telnet hoặc rlogin)
Để vừa bảo đảm tính bảo mật của thông tin lại không làm giảm sự phát triển của
việc trao đổi thông tin quảng bá trên toàn cầu thì một giải pháp tốt nhất là mã hoá thông
tin Có thể hiểu sơ lược mã hoá thông tin là che đi thông tin của mình làm cho kẻ tấncông nếu chặn được thông báo trên đường truyền thì cũng không thể đọc được và phải
có một giao thức giữa người gửi và người nhận để có thể trao đổi thông tin, đó là các cơchế mã và giải mã thông tin
Ngày nay thì việc mã hoá đã trở nên phổ cập Các công ty phần mềm lớn trên thếgiới đều có nghiên cứu và xây dựng các công cụ, thuật toán mã hoá để áp dụng cho thực
tế Mỗi quốc gia hay tổ chức đều có những cơ chế mã hoá riêng để bảo vệ hệ thốngthông tin của mình
Một số vấn đề an toàn đối với nhiều mạng hiện nay:
Một người dùng chuyển một thông báo điện tử cho một người sử dụng khác Mộtbên thứ ba trên cùng mạng LAN này sử dụng một thiết bị nghe trộm gói để lấythông báo và đọc các thông tin trong đó
Cũng trong tình huống trên bên thứ ba chặn thông báo, thay đổi các thành phầncủa nó và sau đó lại gửi cho người nhận Người nhận không hề nghi ngờ gì trừkhi nhận ra thông báo đó là vô lý, và có thể thực hiện vài hành động dựa trên cácthành phần sai này đem lại lợi ích cho bên thứ ba
Người dùng log vào một server mà không sử dụng mật khẩu được mã hoá Mộtngười khác đang nge trộm trên đường truyền và bắt được mật khẩu logon củangười dùng, sau đó có thể truy nhập thông tin trên server như người sử dụng
Một người quản trị hệ thống không hiểu về khía cạnh an toàn và yêu cầu của hệthống và vô tình cho phép người dùng khác truy nhập vào thư mục chứa cácthông tin hệ thống Người dùng phát hiện ra họ có thể có được các thông tin hệthống và có thể dùng nó phục vụ cho loựi ích của mình
Trang 4Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
CHƯƠNG 2 CÁC VẤN ĐỀ CƠ BẢN
Trong phần này sẽ trình bày về một số cơ sở toán học của mã hóa, điều này sẽ giúp
ta nắm được một cách chi tiết hơn về các phương pháp mã hóa
2.1 Lý thuyết số
2.1.1 Khái niệm đồng dư Modulo
Định nghĩa 1: Giả sử a và b là các số nguyên và m là một số nguyên dương Khi
đó ta viết a ≡ b(mod m) nếu m chia hết cho b-a Mệnh để a ≡ b(mod m) được gọi
là “a đồng dư với b theo mođun m”.
Giả sử chia a và b cho m và ta thu được thương nguyên và phần dư, các phần dưnằm giữa 0 và m-1, nghĩa là a = q1m + r1 và b = q2m + r2 trong đó 0 ≤ r1 ≤ m-1 và 0 ≤ r2 ≤
m-1 Khi đó có thể dễ dàng thấy rằng a ≡ b(mod m) khi và chỉ khi r1 = r2
Ta sẽ dùng ký hiệu a mod m để xác định phần dư khi a được chia cho m (chính làgiá trị r1 ở trên) Như vậy: a≡b(mod m) khi và chỉ khi (a mod m) = (b mod m) Nếu thay
a bằng a mod m thì ta nói rằng a được rút gọn theo modulo m
Nhận xét: Nhiều ngôn ngữ lập trình của máy tính xác định a mod m là phần dư
trong dải -m+1,…,m-1 có cùng dấu với a Ví dụ -18 mod 7 sẽ là –4, giá trị này khácvới giá trị 3 là giá trị được xác định theo công thức trên Tuy nhiên, để thuận tiện ta sẽxác định a mod m luôn là một số không âm
Bây giờ ta có thể định nghĩa số học mođun m: Zm được coi là tập hợp {0,1,…,m-1}
có trang bị hai phép toán cộng và nhân Việc cộng và nhân trong Zm được thực hiệngiống như cộng và nhân các số thực ngoại trừ một điểm là các kết quả được rút gọntheo mođun m
2.1.3 Khái niệm phần tử nghịch đảo
Định nghĩa 2: Giả sử a ∈ Z m Phần tử nghịch đảo (theo phép nhân) của a là phần
tử a -1∈ Z m sao cho aa -1 ≡ a -1 a ≡ 1 (mod m)
Bằng các lý luận tương tự như trên, có thể chứng tỏ rằng a có nghịch đảo theomođun m khi và chỉ khi UCLN(a,m) = 1, và nếu nghịch đảo này tồn tại thì nó phải làduy nhất Ta cũng thấy rằng, nếu b = a-1 thì a = b-1 Nếu m là số nguyên tố thì mọi phần
tử khác không của Zm đều có nghịch đảo
2.1.4 Thuật toán Euclide
Cho hai số tự nhiên a,n Ký hiệu (a,n) là ước số chung lớn nhất của a,n; φ(n) là sốcác số nguyên dương < n và nguyên tố với n Giả sử n > a Thuật toán Euclide tìm
Trang 5Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
ta dễ chứng minh bằng qui nạp rằng: rj ≡ tjr1 (mod r0)
Do đó, nếu (n,a) = 1, thì tm = a-1 mod n
2.1.5 Phần tử nguyên thủy và logarith rời rạc
Cho số n nguyên dương Ta biết rằng tập các thặng dư thu gọn theo mođun n (tức làtập các số nguyên dương < n và nguyên tố với n) lập thành một nhóm với phép nhânmod n, ta ký hiệu là Zn Nhóm đó có cấp (số phần tử) là φ(n) Một phẩn tử g ∈ Zn cócấp m, nếu m là số nguyên dương bé nhất sao cho gm = 1 trong Zn*
Theo một định lý đại số, ta có m |φ(n) (ký hiệu m là ước số của φ(n)) vì vậy với mọi
b ∈ Zn ta luôn có: bφ(n) ≡ 1 (mod n)
Nếu p là số nguyên tố, thì do φ(p) = p-1, nên ta có với mọi b nguyên tố với p
bp-1≡ 1 (mod p) (1)Nếu b có cấp p-1, thì p-1 là số mũ bé nhất sao cho có công thức (1), do đó các phần
tử b, b2,…, bp-1 đều khác nhau, và lập thành Zp Nói cách khác, b là một phẩn tử sinh,hay như thường gọi là phần tử nguyên thủy của Zp* ; và khi đó Zp* là một nhóm cyclic.Trong lý thuyết số, người ta đã chứng minh đươc các định lý sau đây:
• Với mọi số nguyên tố p, Zp* là nhóm cyclic, và số các phần tử nguyên thủy của
Zp* bằng φ(p-1)
• Nếu g là phần tử nguyên thủy theo mođun p, thì β = gi, với mọi i mà (i,p-1) = 1, cũng là phần tử nguyên thủy theo mođun p
2.1.6 Thặng dư bậc hai và ký hiệu Legendre
Cho p là một số nguyên tố lẻ, và x là một số nguyên dương ≤ p-1 x được gọi là mộtthặng dư bậc hai theo mođun p, nếu phương trình: y2 ≡ x (mod p) có lời giải
Ta có tiêu chuẩn Euler sau đây: x là thặng dư bậc hai theo mođun p, nếu và chỉ nếu
Trang 6x(p-1)/2 ≡ (y2)(p-1)/2 ≡ yp-1≡ 1 (mod p) ;Ngược lại, giả sử rằng x(p-1)/2 ≡ 1 (mod p) Lấy b là một phần tử nguyên thủy (mod p),
ta có x ≡ bi (mod p) với số i nào đó
2.1.7 Một số thuật toán kiểm tra tính nguyên tố
Ta phát biểu một số tính chất sau đây, chúng là cơ sở cho việc phát triển một sốthuật toán xác suất thử tính nguyên tố của các số nguyên
a
≡ a(n-1)/2 (mod n)}|≤ (n-1)/2
Solovay_Strassen (cải tiến bởi Lehmann):
Nếu n là số nguyên tố, thì với mọi 1 ≤ a ≤ n-1:
Trang 7Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
2.2.4 Độ phức tạp tính toán
Lý thuyết thuật toán và các hàm tính ra đời từ những năm 30 đã đặt nền móng chocác nghiên cứu về các vấn đề “tính được”, “giải được”, và đã thu được nhiều kết quả rấtquan trọng Nhưng từ cài “tính được” một cách trừu tượng, tiềm năng đến việc tínhđược trong thực tế của khoa học tính toán bằng máy tính điện tử là một khoảng cách rấtlớn Lý thuyết về độ phức tạp tính toán được nghiên cứu bắt đầu từ những năm 60 đã bùđắp cho khoảng trống đó, cho ta nhiều tri thức cơ bản, đồng thời có nhiều ứng dụngthực tế rất phong phú
Độ phức tạp (về không gian hay thời gian) của một quá trình tính toán là số ô nhớhay số các phép toán được thực hiện trong quá trình tính toán đó
Độ phức tạp tính toán của một thuật toán được hiểu là một hàm số f, sao cho vớimỗi n, f(n) là là số ô nhớ hay số các phép toán tối đa mà thuật toán thực hiện quá trìnhtính toán của mình trên các dữ liệu vào có độ lớn n
Độ phức tạp tính toán của một bài toán (của một hàm) được định nghĩa là độ phứctạp của một thuật toán tốt nhất có thể tìm được để giải bài toán (hay tính hàm) đó
Một bài toán được cho bởi:
• Một tập các dữ liệu vào Y
• Một câu hỏi dạng R(I)? với I ∈ Y, lời giải bài toán là đúng hay không
Ví dụ:
• Bài toán đồng dư bậc hai
o Dữ liệu: Các số nguyên dương a,b,c
o Câu hỏi: Có hay không số x < c sao cho x2 ≡ a mod b ?
• Bài toán hợp số
o Dữ liệu: Số nguyên dương N
o Câu hỏi: Có hay không hai số m,n > 1 sao cho N = m×n ?
Nhiều bài toán được chứng tỏ là thuộc lớp NP, nhưng chưa ai chứng minh được làchúng thuộc lớp P hay không Và một vấn đề cho đến nay vẫn còn mở, chưa có lời giảilà: NP = P ?
Một cách trực giác, lớp NP bao gồm các bài toán khó hơn phức tạp hơn các bài toánthuộc lớp P, nhưng điều có vẻ hiển nhiên trực giác đó vẫn chưa được chứng minh haybác bỏ
Trang 8Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
Giả sử NP ≠ P, thì trong NP có một lớp con các bài toán được gọi là NP_đầy đủ , đó
là những bài toán mà bản thân thuộc lớp NP, và mọi bài toán bất kỳ thuộc lớp NP đều
có thể qui dẫn về bài toán đó bằng một hàm tính được trong thời gian đa thức
Cho đến nay, người ta đã chứng minh được hàng trăm bài toán thuộc nhiều lĩnh vựckhác nhau là NP_đầy đủ Bài toán đồng dư bậc hai kể trên là NP_đầy đủ, bài toán hợp
số không là NP_đầy đủ, nhưng chưa tìm được một thuật toán làm việc trong thời gian
đa thức giải nó
Trang 9Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
2.3 Hàm một phía và hàm cửa sập một phía
Hàm f(x) được gọi là hàm một phía, nếu tính y = f(x) là dễ, nhưng việc tính ngượcx=f-1(y) là rất khó Có thể hiểu “dễ” là tính được trong thời gian đa thức (với đa thứcbậc thấp), và “khó” là không tính được trong thời gian đa thức
Ví dụ: Hàm f(x) = gx (mod p) (p là số nguyên tố, g là phần tử nguyên thủy theomođun p) là hàm một phía Vì biết x tính f(x) là khá đơn giản, nhưng biết f(x) đểtính x thì với các thuật toán đã biết hiện nay đòi hỏi một khối lượng tính toán cỡ
O(exp(lnp lnlnp) 112 ) phép tính (nếu p là số nguyên tố cỡ 200 chữ số thập phân, thì
khối lượng tính toán trên đòi hỏi một máy tính 1 tỷ phép tính/giây làm việc khôngnghỉ trong khoảng 3000 năm)
Hàm f(x) được gọi là hàm cửa sập một phía, nếu tính y = f(x) là dễ, tính x = f-1(y) làrất khó, nhưng có cửa sập z để tính x = fz-1(y) là dễ
Ví dụ: Cho n = p×q là tích của hai số nguyên tố lớn, a là số nguyên, hàmf(x)=xa(mod n) là hàm cửa sập một phía, nếu chỉ biết n và a thì tính x = f-1(y) là rấtkhó, nhưng nếu biết cửa sập, chẳng hạn hai thừa số của n, thì sẽ tính được f-1(y)khá dễ
Trên đây là hai thí dụ điển hình, và cũng là hai trường hợp được sử dụng rộng rãi vềhàm một phía và hàm cửa sập một phía Vì đây là những điểm then chốt của lý thuyếtmật mã khóa công khai, nên việc tìm kiếm các loại hàm một phía và cửa sập một phíađược nghiên cứu rất khẩn trương, và đến nay tuy có đạt được một số kết quả, nhưngviệc tìm kiếm vẫn tiếp tục, đầy hứng thú nhưng cũng đầy khó khăn
Trang 10Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
CHƯƠNG 3 GIỚI THIỆU VỀ MÃ HÓA
Giải mã là quá trình chuyển ngược lại thông tin được mã hoá thành bản rõ.
Thuật toán mã hoá là các thủ tục tính toán sử dụng để che dấu và làm rõ thông tin.
Thuật toán càng phức tạp thì bản mã càng an toàn
Một khoá là một giá trị làm cho thuật toán mã hoá chạy theo cách riêng biệt và sinh
ra bản rõ riêng biệt tuỳ theo khoá Khoá càng lớn thì bản mã kết quả càng an toàn Kíchthước của khoá được đo bằng bit Phạm vi các giá trị có thể có của khoá được gọi là
không gian khoá.
Phân tích mã là quá trình hay nghệ thuật phân tích hệ mật mã hoặc kiểm tra tính
toàn vẹn của nó hoặc phá nó vì những lý do bí mật
Một kẻ tấn công là một người (hay hệ thống) thực hiện phân tích mã để làm hại hệ
thống Những kẻ tấn công là những kẻ thọc mũi vào chuyện người khác, các tay hacker,những kẻ nghe trộm hay những các tên đáng ngờ khác, và họ làm những việc thườnggọi là cracking
3.2 Định nghĩa hệ mật mã.
Hệ mật mã: là một hệ bao gồm 5 thành phần (P, C, K, E, D) thoả mãn các tính chấtsau
P ( Plaintext ) là tập hợp hữu hạn các bản rõ có thể
C ( Ciphertext ) là tập hợp hữu hạn các bản mã có thể
K ( Key ) là tập hợp các bản khoá có thể
E ( Encrytion ) là tập hợp các qui tắc mã hoá có thể
D ( Decrytion ) là tập hợp các qui tắc giải mã có thể
Chúng ta đã biết một thông báo thường được tổ chức dưới dạng bản rõ Người gửi
sẽ làm nhiệm vụ mã hoá bản rõ, kết quả thu được gọi là bản mã Bản mã này được gửi
đi trên một đường truyền tới người nhận sau khi nhận được bản mã người nhận giải mã
nó để tìm hiểu nội dung
Dễ dàng thấy được công việc trên khi sử dụng định nghĩa hệ mật mã :
E K ( P) = C và D K ( C ) = P
Trang 11Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
Độ tin cậy: cung cấp sự bí mật cho các thông báo và dữ liệu được lưu bằng
việc che dấu thông tin sử dụng các kỹ thuật mã hóa
Tính toàn vẹn: cung cấp sự bảo đảm với tất cả các bên rằng thông báo còn lại
không thay đổi từ khi tạo ra cho đến khi người nhận mở nó
Tính không từ chối: có thể cung cấp một cách xác nhận rằng tài liệu đã đến từ
ai đó ngay cả khi họ cố gắng từ chối nó
Tính xác thực: cung cấp hai dịch vụ: đầu tiên là nhận dạng nguồn gốc của một
thông báo và cung cấp một vài sự bảo đảm rằng nó là đúng sự thực Thứ hai làkiểm tra đặc tính của người đang logon một hệ thống và sau đó tiếp tục kiểmtra đặc tính của họ trong trường hợp ai đó cố gắng đột nhiên kết nối và giảdạng là người sử dụng
3.4 Các phương pháp mã hoá
3.4.1 Mã hoá đối xứng khoá bí mật
Định nghĩa: Thuật toán đối xứng hay còn gọi thuật toán mã hoá cổ điển là thuật toán mà tại đó khoá mã hoá có thể tính toán ra được từ khoá giải mã Trong rất nhiều trường hợp, khoá mã hoá và khoá giải mã là giống nhau Thuật toán này còn có nhiều tên gọi khác như thuật toán khoá bí mật, thuật toán khoá đơn giản, thuật toán một khoá Thuật toán này yêu cầu người gửi và người nhận phải thoả thuận một khoá trước khi thông báo được gửi đi, và khoá này phải được cất giữ bí mật Độ an toàn của thuật toán này vẫn phụ thuộc và khoá, nếu để lộ ra khoá này nghĩa là bất kỳ người nào cũng
có thể mã hoá và giải mã thông báo trong hệ thống mã hoá.
Sự mã hoá và giải mã của thuật toán đối xứng biểu thị bởi :
3.4.1.2 Các vấn đề đối với phương pháp mã hoá này
Các phương mã hoá cổ điển đòi hỏi người mã hoá và người giải mã phải cùng chungmột khoá Khi đó khoá phải được giữ bí mật tuyệt đối, do vậy ta dễ dàng xác định mộtkhoá nếu biết khoá kia
Hệ mã hoá đối xứng không bảo vệ được sự an toàn nếu có xác suất cao khoá ngườigửi bị lộ Trong hệ khoá phải được gửi đi trên kênh an toàn nếu kẻ địch tấn công trênkênh này có thể phát hiện ra khoá
Trang 12Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
Vấn đề quản lý và phân phối khoá là khó khăn và phức tạp khi sử dụng hệ mã hoá
cổ điển Người gửi và người nhận luôn luôn thông nhất với nhau về vấn đề khoá Việcthay đổi khoá là rất khó và dễ bị lộ
Khuynh hướng cung cấp khoá dài mà nó phải được thay đổi thường xuyên cho mọingười trong khi vẫn duy trì cả tính an toàn lẫn hiệu quả chi phí sẽ cản trở rất nhiều tớiviệc phát triển hệ mật mã cổ điển
3.4.2 Mã hoá phi đối xứng khoá công khai
Định nghĩa: Vào những năm 1970 Diffie và Hellman đã phát minh ra một hệ mã
hoá mới được gọi là hệ mã hoá công khai hay hệ mã hoá phi đối xứng.
Thuật toán mã hoá công khai là khác biệt so với thuật toán đối xứng Chúng được
thiết kế sao cho khoá sử dụng vào việc mã hoá là khác so với khoá giải mã Hơn nữa
khoá giải mã không thể tính toán được từ khoá mã hoá Chúng được gọi với tên hệthống mã hoá công khai bởi vì khoá để mã hoá có thể công khai, một người bất kỳ cóthể sử dụng khoá công khai để mã hoá thông báo, nhưng chỉ một vài người có đúngkhoá giải mã thì mới có khả năng giải mã
Trong nhiều hệ thống, khoá mã hoá gọi là khoá công khai (public key), khoá giải mã thường được gọi là khoá riêng (private key).
3.4.2.2 Điều kiện hệ mã hóa khóa công khai
Diffie và Hellman đã xác đinh rõ các điều kiện của một hệ mã hoá công khai nhưsau:
1 Việc tính toán ra cặp khoá công khai KB và bí mật kB dựa trên cơ sở các điềukiện ban đầu phải được thực hiện một cách dễ dàng, nghĩa là thực hiện trong thờigian đa thức
2 Người gửi A có được khoá công khai của người nhận B và có bản tin P cần gửi
đi thì có thể dễ dàng tạo ra được bản mã C
C = EKB (P) = EB (P)
Công việc này cũng trong thời gian đa thức
3 Người nhận B khi nhận được bản tin mã hóa C với khoá bí mật kB thì có thể giải
mã bản tin trong thời gian đa thức
Trang 13Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
4 Nếu kẻ địch biết khoá công khai KB cố gắng tính toán khoá bí mật thì khi đóchúng phải đương đầu với trường hợp nan giải, trường hợp này đòi hỏi nhiều yêucầu không khả thi về thời gian
5 Nếu kẻ địch biết được cặp (KB,C) và cố gắng tính toán ra bản rõ P thì giải quyếtbài toán khó với số phép thử là vô cùng lớn, do đó không khả thi
3.5 Các hệ mã hóa đơn giản
Đối tượng cơ bản của mật mã là tạo ra khả năng liên lạc trên một kênh không mậtcho hai người sử dụng (tạm gọi là Alice và Bob) sao cho đối phương (Oscar) không thểhiểu được thông tin được truyền đi Kênh này có thể là một đường dây điện thoại hoặcmột mạng máy tính Thông tin mà Alice muốn gửi cho Bob (bản rõ) có thể là một vănbản tiếng Anh, các dữ liệu bằng số hoặc bất cứ tài liệu nào có cấu trúc tuỳ ý Alice sẽ
mã hoá bản rõ bằng một kháo đã được xacs định trước và gửi bản mã kết quả trên kênh.Oscar có bản mã thu trộm được trên kênh song không thể xác định nội dung của bản
rõ, nhưng Bob (người đã biết khoá mã) có thể giải mã và thu được bản rõ
Ta sẽ mô tả hình thức hoá nội dung bằng cách dung khái niệm toán học như sau:
Định nghĩa:
Một hệ mật là một bộ 5 (P,C,K,E,D) thoả mãn các điều kiện sau:
P là một tập hữu hạn các bản rõ có thể
C là một tập hữu hạn các bản mã có thể
K (không gian khoá) là tập hữu hạn các khoá có thể
Đối với mỗi k∈ K có một quy tắc mã ek: P → C và một quy tắcv giải mã tương ứng
dk ∈ D Mỗi ek: P → C và dk: C → P là những hàm mà:
d k (e k (x)) = x với mọi bản rõ x ∈ P.
Trong tính chất 4 là tính chất chủ yếu ở đây Nội dung của nó là nếu một bản rõ x
được mã hoá bằng e k và bản mã nhận được sau đó được giải mã bằng d k thì ta phải thuđược bản rõ ban đầu x Alice và Bob sẽ áp dụng thủ tục sau dùng hệ mật khoá riêng.Trước tiên họ chọn một khoá ngẫu nhiên K ∈ K Điều này được thực hiện khi họ ởcùng một chỗ và không bị Oscar theo dõi hoặc khi họ có một kênh mật trong trườnghợp họ ở xa nhau Sau đó giả sử Alice muốn gửi một thông baó cho Bob trên một kênhkhông mật và ta xem thông báo này là một chuỗi:
x = x1,x2 , .,xn
với số nguyên n ≥ 1 nào đó Ở đây mỗi ký hiệu của mỗi bản rõ xi ∈ P , 1 ≤ i ≤ n Mỗi
xi sẽ được mã hoá bằng quy tắc mã ek với khoá K xác định trước đó Bởi vậy Alice sẽtính yi = ek(xi), 1 ≤ i ≤ n và chuỗi bản mã nhận được:
y = y1,y2 , .,yn
Trang 14Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
sẽ được gửi trên kênh Khi Bob nhận đươc y1,y2 , .,yn anh ta sẽ giải mã bằng hàmgiải mã dk và thu được bản rõ gốc x1,x2 , .,xn Hình dưới là một ví dụ về một kênhliên lạc
Hình 3.3 Kênh liên lạc
Rõ ràng là trong trường hợp này hàm mã hoá phải là hàm đơn ánh ( tức là ánh xạ 1), nếu không việc giải mã sẽ không thực hiện được một cách tường minh Ví dụ
1-y = ek(x1) = ek(x2)trong đó x1 ≠ x2 , thì Bob sẽ không có cách nào để biết liệu sẽ phải giải mã thành x1hay x2 Chú ý rằng nếu P = C thì mỗi hàm mã hoá là một phép hoán vị, tức là nếu tậpcác bản mã và tập các bản rõ là đồng nhất thì mỗi một hàm mã sẽ là một sự sắp xếp lại(hay hoán vị ) các phần tử của tập này
Do các ví dụ của chúng ta xét trên tập dữ liệu là bảng chữ cái nên chúng ta coi bảngchữ cãi tiếng anh là tập hợp gồm 26 giá trị như bảng bên dưới
Trang 15Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
Ta sẽ sử dụng MDV (với modulo 26) để mã hoá một văn bản tiếng Anh thôngthường bằng cách thiết lập sự tương ứnggiữa các kí tự và các thặng dư theo modulo 26như sau: A ↔ 0,B ↔ 1, , Z ↔ 25
Ví dụ 1:
Giả sử khoá cho MDV là K = 11 và bản rõ là: wewillmeetatmidnight
Trước tiên biến đổi bản rõ thành dãy các số nguyên nhờ dùng phép tương ứng trên
Nhận xét: Trong ví dụ trên , ta đã dùng các chữ in hoa cho bản mã, các chữ thườngcho bản rõ để tiện phân biệt Quy tắc này còn tiếp tục sử dụng sau này
Nếu một hệ mật có thể sử dụng được trong thực tế thì nó phảo thoả mãn một số tínhchất nhất định Ngay sau đây sẽ nêu ra hai trong số đó:
1 Mỗi hàm mã hoá eK và mỗi hàm giải mã dK phải có khả năng tính toán đượcmột cách hiệu quả
2 Đối phương dựa trên xâu bản mã phải không có khả năng xác định khoá K đãdùng hoặc không có khả năng xác định được xâu bản rõ x
Tính chất thứ hai xác định (theo cách khá mập mờ) ý tưởng ý tưởng "bảo mật" Quátrình thử tính khoá K (khi đã biết bản mã y) được gọi là mã thám (sau này khái niệmnày sẽ đực làm chính xác hơn) Cần chú ý rằng, nếu Oscar có thể xác định được K thìanh ta có thể giải mã được y như Bob bằng cách dùng dK Bởi vậy, việc xác định K chí
ít cũng khó như việc xác định bản rõ x
Nhận xét: MDV (theo modulo 26) là không an toàn vì nó có thể bị thám theo
phương pháp vét cạn Do chỉ có 26 khoá nên dễ dàng thử mọi khoá dK có thể cho tớikhi nhận được bản rõ có nghĩa Điều này được minh hoạ theo ví dụ sau:
Trang 16Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
Tới đây ta đã xác định được bản rõ và dừng lại Khoá tương ứng K = 9
Trung bình có thể tính được bản rõ sau khi thử 26/2 = 13 quy tắc giải mã Như đãchỉ ra trong ví dụ trên , điều kiện để một hệ mật an toàn là phép tìm khoá vét cạn phảikhông thể thực hiện được; tức không gian khoá phải rất lớn Tuy nhiên, một không giankhoá lớn vẫn chưa đủ đảm bảo độ mật
3.5.2 Mã thay thế
Một hệ mật nổi tiếng khác là hệ mã thay thế Hệ mật này đã được sử dụng hàng trăm
năm Trò chơi đố chữ "cryptogram" trong các bài báo là những ví dụ về MTT Trên
thực tế MTT có thể lấy cả P và C đều là bộ chữ cái tiếng anh, gồm 26 chữ cái Ta dùng
Z26 trong MDV vì các phép mã và giải mã đều là các phép toán đại số Tuy nhiên, trongMTT, thích hợp hơn là xem phép mã và giải mã như các hoán vị của các kí tự
Định nghĩa: Một hệ mật là một bộ 5 (P,C,K,E,D)
Cho P =C = Z26 K chứa mọi hoán vị có thể của 26 kí hiệu 0,1, ,25
Với mỗi phép hoán vị π∈K , ta định nghĩa:
eπ(x) = π(x)
và dπ(y) = π-1(y)trong đó π-1 là hoán vị ngược của π
Sau đây là một ví dụ về phép hoán vị ngẫu nhiên π tạo nên một hàm mã hoá (cũngnhư trước, các kí hiệu của bản rõ được viết bằng chữ thường còn các kí hiệu của bản mã
Trang 17Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
Mỗĩ khoá của MTT là một phép hoán vị của 26 kí tự Số các hoán vị này là 26!, lớnhơn 4 ×1026 là một số rất lớn Bởi vậy, phép tìm khoá vét cạn không thể thực hiệnđược, thậm chí bằng máy tính Tuy nhiên, sau này sẽ thấy rằng MTT có thể dễ dàng bịthám bằng các phương pháp khác
3.5.3 Mã Apphin
MDV là một trường hợp đặc biệt của MTT chỉ gồm 26 trong số 26! các hoán vị cóthể của 26 phần tử Một trường hợp đặc biệt khác của MTT là mã Affine được mô tảdưới đây trong mã Affine, ta giới hạn chỉ xét các hàm mã có dạng:
e(x) = ax + b mod 26,a,b ∈ Z26 Các hàm này được gọi là các hàm Affine (chú ý rằng khi a = 1, ta có MDV)
Để việc giải mã có thể thực hiện được, yêu cầu cần thiết là hàm Affine phải là đơnánh Nói cách khác, với bất kỳ y ∈ Z26, ta muốn có đồng nhất thức sau:
ax + b ≡ y (mod 26)phải có nghiệm x duy nhất Đồng dư thức này tương đương với:
ax ≡ y-b (mod 26)
Vì y thay đổi trên Z26 nên y-b cũng thay đổi trên Z26 Bởi vậy, ta chỉ cần nghiên cứuphương trình đồng dư:
ax ≡ y (mod 26) (y∈ Z26 )
Ta biết rằng, phương trình này có một nghiệm duy nhất đối với mỗi y khi và chỉ khi
UCLN(a,26) = 1 (ở đây hàm UCLN là ước chung lớn nhất của các biến của nó) Trước
tiên ta giả sử rằng, UCLN(a,26) = d >1 Khi đó, đồng dư thức ax ≡ 0 (mod 26) sẽ có ítnhất hai nghiệm phân biệt trong Z26 là x = 0 và x = 26/d Trong trường hợp này, e(x) =
ax + b mod 26 không phải là một hàm đơn ánh và bởi vậy nó không thể là hàm mã hoáhợp lệ
Giải thích theo một cách khác như sau:
Phép lập mã được cho bởi một hàm apphin dạng:
e(x) = ax + b mod 26
Để có được phép giải mã tương ứng, tức là để cho phương trình sau có nghiệm:
ax + b = c mod 26
có lời giải đối với x (với bất kỳ c cho trước), theo một định lý số học, điều kiện cần và
đủ là a nguyên tố với 26, tức là UCLN(a,26) = 1 Khi UCLN(a,26)=1 thì có:
a-1 ⊆Z26 sao cho a.a-1=a-1.a=1 mod 26
và do đó nếu y=ax+b mod 26 thì x=a-1(y-b) mod 26 và ngược lại
Định nghĩa: Một hệ mật là một bộ 5 (P,C,K,E,D)
Cho P = C = Z26 và giả sử P = { (a,b) ∈ Z26 × Z26 : UCLN(a,26) =1 }
Với K = (a,b) ∈K , ta định nghĩa:
eK(x) = ax +b mod 26
và dK(y) = a-1(y-b) mod 26, x,y ∈ Z26
Ví dụ: Giả sử K = (7,3) Như đã nêu ở trên, 7-1 mod 26 = 15
Trang 18Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
Hàm mã hoá là
eK(x) = 7x+3
Và hàm giải mã tương ứng là:
dK(x) = 15(y-3) = 15y -19
Ở đây, tất cả các phép toán đều thực hiện trên Z26
Ta sẽ kiểm tra liệu dK(eK(x)) = x với mọi x Z26 không?
Dùng các tính toán trên Z26 , ta có
dK(eK(x)) =dK(7x+3) =15(7x+3)-19 = x +45 - 19 = x
Để minh hoạ, ta hãy mã hoá bản rõ "hot" Trước tiên biến đổi các chữ h, o, t thành
các thặng du theo modulo 26 Ta được các số tương ứng là 7, 14 và 19
Bây giờ sẽ mã hoá:
7x7 +3 mod 26 = 52 mod 26 = 0
7 x14 + 3 mod 26 = 101 mod 26 =23
7 x19 +3 mod 26 = 136 mod 26 = 6
Bởi vậy 3 ký hiệu của bản mã là 0, 23 và 6 tương ứng với xâu ký tự AXG Việc giải
mã sẽ do bạn thực hiện như một bài tập
3.5.4 Mã Vigenère
Trong cả hai hệ MDV và MTT (một khi khoá đã được chọn) mỗi ký tự sẽ được ánh
xạ vào một ký tự duy nhất Vì lý do đó, các hệ mật còn được gọi hệ thay thế đơn biểu.Bây giờ ta sẽ trình bày ( trong hùnh 1.5) một hệ mật không phải là bộ chữ đơn, đó là hệ
mã Vigenère nổi tiếng Mật mã này lấy tên của Blaise de Vigenère sống vào thế kỷXVI
Sử dụng phép tương ứng A ⇔ 0, B ⇔ 1, , Z ⇔ 25 mô tả ở trên, ta có thể gắncho mỗi khoa K với một chuỗi kí tự có độ dài m được gọi là từ khoá Mật mã Vigenère
sẽ mã hoá đồng thời m kí tự: Mỗi phần tử của bản rõ tương đương với m ký tự
Định nghĩa: Một hệ mật là một bộ 5 (P,C,K,E,D)
Cho m là một số nguyên dương cố định nào đó
Định nghĩa P = C = K = (Z26)m Với khoá K = (k1, k2, ,km) ta xác định :
eK(x1, x2, ,xm) = (x1+k1, x2+k2, , xm+km)và
dK(y1, y2, ,ym) = (y1-k1, y2-k2, , ym-km)trong đó tất cả các phép toán được thực hiện trong Z26
Ví dụ: Giả sử m =6 và từ khoá là CIPHER
Từ khoá này tương ứng với dãy số K=(2,8,15,4,17)
Giả sử bản rõ là xâu: thiscryptosystemisnotsecure
Trang 19Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
Ta sẽ biến đổi các phần tử của bản rõ thành các thặng dư theo modulo 26, viết chúngthành các nhóm 6 rồi cộng với từ khoá theo modulo 26 như sau:
Bởi vậy, dãy ký tự tương ứng của xâu bản mã sẽ là:
× 107 Lượng khoá này đã đủ lớn để ngăn ngừa việc tìm khoá bằng tay( chứ không phảidùng máy tính)
Trong hệ mật Vigenère có từ khoá độ dài m,mỗi ký tự có thể được ánh xạ vào trong
m ký tự có thể có (giả sử rằng từ khoá chứa m ký tự phân biệt) Một hệ mật như vậyđược gọi là hệ mật thay thế đa biểu (polyalphabetic) Nói chung, việc thám mã hệ thaythế đa biểu sẽ khó khăn hơn so việc thám mã hệ đơn biểu
3.5.5 Mã HILL
Trong phần này sẽ mô tả một hệ mật thay thế đa biểu khác được gọi là mật mã Hill
Mật mã này do Lester S.Hill đưa ra năm 1929 Giả sử m là một số nguyên dương, đặt P
= C = (Z26)m Ý tưởng ở đây là lấy m tổ hợp tuyến tính của m ký tự trong một phần tửcủa bản rõ để tạo ra m ký tự ở một phần tử của bản mã
Ví dụ nếu m = 2 ta có thể viết một phần tử của bản rõ là x = (x1,x2) và một phần tửcủa bản mã là y = (y1,y2) Ở đây, y1cũng như y2 đều là một tổ hợp tuyến tính của x1và x2.Chẳng hạn, có thể lấy
Trang 20Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
11 8( y ) ( )
3 7
y = x x
Nói chung, có thể lấy một ma trận K kích thước m × m làm khoá
Nếu một phần tử ở hàng i và cột j của K là ki,,j thì có thể viết K = (ki,,j), với x = (x1,
Trang 21Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
Cho tới lúc này ta đã chỉ ra rằng có thể thực hiện phép giải mã nếu K có một nghịchđảo Trên thực tế, để phép giải mã là có thể thực hiện được, điều kiện cần là K phải cónghịch đảo ( Điều này dễ dàng rút ra từ đại số tuyến tính sơ cấp, tuy nhiên sẽ khôngchứng minh ở đây) Bởi vậy, chúng ta chỉ quan tâm tới các ma trận K khả nghich Tínhkhả nghịch của một ma trận vuông phụ thuộc vào giá trị định thức của nó Để tránh sựtổng quát hoá không cần thiết, ta chỉ giới hạn trong trường hợp 2×2
Định nghĩa : Định thức của ma trận A = (a,i j ) cấp 2× 2 là giá trị
det A = a 1,1 a 2,2 - a 1,2 a 2,1
Một ma trận thức K là có nghịch đảo khi và chỉ khi định thức của nó khác 0 Tuynhiên, điều quan trọng cần nhớ là ta đang làm việc trên Z26 Kết quả tương ứng là matrận K có nghịch đảo theo modulo 26 khi và chỉ khi UCLN(det K,26) = 1
Định lý: Giả sử A = (ai j) là một ma trận cấp 2 × 2 trên Z26 sao cho:
det A = a1,1a2,2 - a1,2 a2,1 có nghịch đảo Khi đó
=(11.7-8.3) mod 26 = 77 - 24 mod 26 = 53 mod 26 =1
Vì 1-1 mod 26 = 1 nên ma trận nghịch đảo là
1563 Định nghĩa hình thức cho MHV được nêu ra bên dưới
Không giống như MTT, ở đây không có các phép toán đại số nào cần thực hiện khi
mã hoá và giải mã nên thích hợp hơn cả là dùng các ký tự mà không dùng các thặng dưtheo modulo 26 Dưới đây là một ví dụ minh hoạ
Định nghĩa: Một hệ mật là một bộ 5 (P,C,K,E,D)
Cho m là mộ số nguyên dương xác định nào đó Cho P = C = (Z26 )m và cho Kgồm tất cả các hoán vị của {1, , m} Đối một khoá π ( tức là một hoán vị) taxác định
eπ(x1, , xm ) = (xπ(1), , xπ(m))
và dπ(x1, , xm ) = (yπ -1(1), , yπ -1(m))
trong đó π -1 là hoán vị ngược của π
Ví dụ: Giả sử m = 6 và khoá là phép hoán vị ( π ) sau:
Trang 22Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
Khi đó phép hoán vị ngược π-1 sẽ tương ứng như trên:
Bây giờ giả sử có bản rõ
Shesellsseashellsbytheseashore
Trước tiên ta nhóm bản rõ thành các nhóm 6 ký tự:
shesel | lsseas | hellsb | ythese | ashore
Bây giờ mỗi nhóm 6 chữ cái được sắp xếp lại theo phép hoán vị π, ta có:
EESLSH | SALSES | LSHBLE | HSYEET | HRAEOS
Như vậy bản mã là
EESLSH SALSES LSHBLE HSYEET HRAEOS
Như vậy bản mã đã được mã theo cách tương tự bằng phép hoán vị đảo π-1
Thực tế mã hoán vị là trường hợp đặc biệt của mật mã Hill Khi cho phép hoán vị π
của tập {1, ,m}, ta có thể xác định một ma trận hoán vị m × m thích hợp Kπ= {ki,j}theo công thức: ,
(ma trận hoán vị là ma trận trong đó mỗi hàng và mỗi cột chỉ có một số "1", còn tất
cả các giá trị khác đều là số "0" Ta có thể thu được một ma trận hoán vị từ ma trận đơn
vị bằng cách hoán vị các hàng hoặc cột)
Dễ dàng thấy rằng, phép mã Hill dùng ma trận Kπ trên thực tế tương đương với phép
mã hoán vị dùng hoán vị π Hơn nữa K-1
π= Kπ-1 tức ma trận nghịch đảo của Kπ là matrận hoán vị xác định theo hoán vị π -1 Như vậy, phép giải mã Hill tương đương vớiphép giải mã hoán vị
Đối với hoán vị π được dung trong ví dụ trên, các ma trận hoán vị kết hợp là:
Bạn có thể kiểm tra để thấy rằng, tích của hai ma trận này là một ma trận đơn vị
Trang 23Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
Trang 24Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
CHƯƠNG 4
HỆ MÃ HÓA DES
Ngày 15.5.1973 Uỷ ban tiêu chuẩn quốc gia Mỹ đã công bố một khuyến nghị chocác hệ mật trong Hồ sơ quản lý liên bang Điều này cuối cùng đã dẫn đến sự phát triểncủa Chuẩn mã dữ liệu (DES) và nó đã trở thành một hệ mật được sử dụng rộng rãi nhấttrên thế giới DES được IBM phát triển và được xem như một cải biên cuả hệ mậtLUCIPHER Lần đầu tiên DES được công bố trong Hồ sơ Liên bang vào ngày17.3.1975 Sau nhiều cuộc trânh luận công khai, DES đã được chấp nhận chọn làmchuẩn cho các ứng dụng không được coi là mật vào 5.1.1977 Kể từ đó cứ 5 năm mộtlần, DES lại được Uỷ ban Tiêu chuẩn Quốc gia xem xét lại Lần đổi mới gàn đây nhấtcủa DES là vào tháng 1.1994 và tiếp tới sẽ là 1998 Người ta đoán rằng DES sẽ khôngcòn là chuẩn sau 1998
4.1 Mô tả DES
Mô tả đầy đủ của DES được nêu trong Công bố số 46 về các chuẩn xử lý thông tinLiên bang (Mỹ) vào 15.1.1977 DES mã hoá một xâu bít x của bẳn rõ độ dài 64 bằngmột khoá 54 bít Bản mã nhận được cũng là một xâu bít có độ dài 48 Trước hết ta mô
tả ở mức cao của hệ thống
4.1.1 Thuật toán DES
1 Với bản rõ cho trước x, một xâu bít x0 sẽ được xây dựng bằng cách hoán vị các bítcủa x theo phép hoán vị cố định ban đầu IP
Ta viết:x0= IP(X) = L0R0, trong đó L0 gồm 32 bít đầu và R0 là 32 bít cuối
2 Sau đó tính toán 16 lần lặp theo một hàm xác định
Ta sẽ tính LiRi, 1≤i≤16 theo quy tắc sau:
Li = Ri-1
Ri = Li-1⊕f(Ri-1,Ki)
trong đó: kí hiệu phép hoặc loại trừ của hai xâu bít (cộng theo modulo 2) f là mộthàm mà ta sẽ mô tả ở sau, còn K1,K2, ,K16 là các xâu bít độ dài 48 được tính nhưhàm của khoá K (trên thực tế mỗi Ki là một phép chọn hoán vị bít trong K) K1, ,
K16 sẽ tạo thành bảng khoá Một vòng của phép mã hoá được mô tả trên hình dưới
Trang 25Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
3 Áp dụng phép hoán vị ngược IP-1 cho xâu bít R16L16, ta thu được bản mã y
Các bước sau được thực hiện:
1 Biến thứ nhất A được mở rộng thành một xâu bít độ dài 48 theo một hàm mở rộng
cố định E E(A) gồm 32 bít của A (được hoán vị theo cách cố định) với 16 bít xuấthiện hai lần
2 Tính E(A) ⊕ J và viết kết quả thành một chuỗi 8 xâu 6 bít = B1B2B3B4B5B6B7B8
3 Bước tiếp theo dùng 8 bảng S1, S2, ,S8 ( được gọi là các hộp S ) Với mỗi Si là mộtbảng 4×16 cố định có các hàng là các số nguyên từ 0 đến 15 Với xâu bít có độ dài 6(Kí hiệu Bi = b1b2b3b4b5b6), ta tính Sj(Bj) như sau: Hai bít b1b6 xác định biểu diễn nhịphân của hàng r của Sj ( 0 ≤ r ≤ 3) và bốn bít (b2b3b4b5) xác định biểu diễn nhị phâncủa cột c của Sj ( 0 ≤ c ≤ 15 )
Khi đó Sj(Bj) sẽ xác định phần tử Sj(r,c); phần tử này viết dưới dạng nhị phân là mộtxâu bít có độ dài 4 ( Bởi vậy, mỗi Sj có thể được coi là một hàm mã mà đầu vào làmột xâu bít có độ dài 2 và một xâu bít có độ dài 4, còn đầu ra là một xâu bít có độdài 4) Bằng cách tương tự tính các Cj = Sj(Bj), 1 ≤ j ≤ 8
4 Xâu bít C = C1C2 C8 có độ dài 32 được hoán vị theo phép hoán vị cố định P Xâukết quả là P(C) được xác định là f(A,J)
Hàm f được mô tả trong hình dưới Chủ yếu nó gồm một phép thế (sử dụng hộp S),tiếp sau đó là phép hoán vị P 16 phép lặp của f sẽ tạo nên một hệ mật tích nêu như ởphần trên
Trang 26Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
4.1.3 Mô tả chi tiết các hàm trong DES
Phép hoán vị ban đầu IP như sau: bảng này có nghĩa là bít thứ 58 của x là bít đầu
tiên của IP(x); bít thứ 50 của x là bít thứ hai của IP(x), v.v
Trang 27Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
4.1.4 Tính toán bảng khóa từ khóa K
Trên thực tế, K là một xâu bít độ dài 64, trong đó 56 bít là khoá và 8 bít để kiểm tratính chẵn lẻ nhằm phát hiện sai Các bít ở các vị trí 8,16, , 64 được xác định sao chomỗi byte chứa một số lẻ các số "1" Bởi vậy một sai sót đơn lẻ có thể phát hiện đượctrong mỗi nhóm 8 bít Các bít kiểm tra bị bỏ qua trong quá trình tính toán bảng khoá
1 Với một khoá K 64 bít cho trước, ta loại bỏ các bít kiểm tra tính chẵn lẻ và hoán
vị các bít còn lại của K theo phép hoán vị cố định PC-1
Trang 28Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
Việc tính bảng khoá được mô tả trong hình sau:
Các hoán vị PC-1 và PC-2 được dùng trong bảng khoá là:
Trang 29Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
41 44 35 34 17 2 3 10 9 36 27 50
29 39 46 61 12 15 54 37 47 28 30 4 5 63 45 7 22 31 20 21 55 6 62 38
Trang 30Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
Phép giải mã được thực hiện nhờ dùng cùng thuật toán như phép mã nếu đầu vào là
y nhưng dùng bảng khoá theo thứ tự ngược lại K16, K1 Đầu ra của thuật toán sẽ là bản
rõ x
Sau khi thay đổi, hóan vị, ⊕, và dịch vòng, bạn có thể nghĩ rằng thuật toán giải mãhoàn toàn khác và phức tạp, khó hiểu như thuật toán mã hóa Trái lại, DES sử dụngcùng thuật toán làm việc cho cả mã hóa và giải mã
Với DES, có thể sử dụng cùng chức năng để giải mã hoặc mã hóa một khối Chỉ có
sự khác nhau đó là các khóa phải được sử dụng theo thứ tự ngược lại Nghĩa là, nếu cáckhóa mã hóa cho mỗi vòng là k1, k2, k3 , , k15, k16 thì các khóa giải là k16, k15, , k3,
k2, k1 Thuật toán dùng để sinh khóa được sử dụng cho mỗi vòng theo kiểu vòng quanh.Khóa được dịch phải, và số ở những vị trí được dịch được tính từ cuối của bảng lên,thay vì từ trên xuống
Trang 31Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
Trang 32Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
Trang 33Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
Khi DES được đề xuất như một chuẩn mật mã, đã có rất nhiều ý kiến phê phán Một
lý do phản đối DES có liên quan đến các hộp S Mọi tính toán liên quan đến DES ngoạitrừ các hộp S đều tuyến tính, tức việc tính phép hoặc loại trừ của hai đầu ra cũng giốngnhư phép hoặc loại trừ của hai đầu vào rồi tính tóan đầu ra Các hộp S - chứa đựngthành phần phi tuyến của hệ mật là yếu tố quan trong nhất đối với độ mật của hệthống( Ta đã thấy trong chương 1 là các hệ mật tuyến tính - chẳng hạn như Hill - có thể
dễ dàng bị mã thám khi bị tấn công bằng bản rõ đã biết) Tuy nhiên tiêu chuẩn xây dựngcác hộp S không được biết đầy đủ Một số người đã gợi ý là các hộp S phải chứa các
"cửa sập" được dấu kín, cho phép Cục An ninh Quốc gia Mỹ (NSA) giải mã được cácthông báo nhưng vẫn giữ được mức độ an toàn của DES Dĩ nhiên ta không thể bác bỏđược khẳng định này, tuy nhiên không có một chứng cớ nào được đưa ra để chứng tỏrằng trong thực tế có các cửa sập như vậy
Năm 1976 NSA đã khẳng định rằng, các tính chất sau của hộp S là tiêu chuẩn thiếtkế:
• P0 Mỗi hàng trong mỗi hộp S là một hoán vị của các số nguyên 0, 1, , 15
• P1 Không một hộp S nào là một hàm Affine hoặc tuyến tính các đầu vào của nó
Trang 34Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
• P2 Việc thay đổi một bít vào của S phải tạo nên sự thay đổi ít nhất là hai bít ra
• P3 Đối với hộp S bất kì và với đầu vào x bất kì S(x) và S(x ⊕ 001100) phải khácnhau tối thiểu là hai bít ( trong đó x là xâu bít độ dài 6 )
Hai tính chất khác nhau sau đây của các hộp S có thể coi là được rút ra từ tiêu chuẩnthiết kế của NSA
• P4 Với hộp S bất kì, đầu vào x bất kì và với e, f ∈{0,1}: S(x) ≠S(x ⊕ 11ef00)
• P5 Với hộp S bất kì , nếu cố định một bít vào và xem xét giá trị của một bít đầu
ra cố định thì các mẫu vào để bít ra này bằng 0 sẽ xấp xỉ bằng số mẫu ra để bít
đó bằng 1
Chú ý rằng, nếu cố định giá trị bít vào thứ nhất hoặc bít vào thứ 6 thì có 16 mẫu vàolàm cho một bít ra cụ thể bằng 0 và có 16 mẫu vào làm cho bít này bằng 1 Với các bítvào từ bít thứ hai đến bít thứ 5 thì điều này không còn đúng nữa Tuy nhiên phân bố kếtquả vẫn gần với phân bố đều Chính xác hơn, với một hộp S bất kì, nếu ta cố định giá trịcủa một bít vào bất kì thì số mẫu vào làm cho một bít ra cố định nào đó có giá trị 0(hoặc 1) luôn nằm trong khoảng từ 13 đến 19
Người ta không biết rõ là liệu có còn một chuẩn thiết kế nào đầy đủ hơn được dùngtrong việc xây dựng hộp S hay không Sự phản đối xác đáng nhất về DES chính là kíchthước của không gian khoá: 256 là quá nhỏ để đảm bảo an toàn thực sự Nhiều thiết bichuyên dụng đã được đè xuất nhằm phục vụ cho việc tấn công với bản rõ đã biết Phéptấn công này chủ yếu thực hiện tìm khoá theo phương pháp vét cạn Tức với bản rõ x 64bít và bản mã y tương ứng, mỗi khoá đều có thể được kiểm tra cho tới khi tìm được mộtkhoá K thảo mãn eK(x) = y Cần chú ý là có thể có nhiều hơn một khoá K như vậy).Ngay từ năm 1977, Diffie và Hellman đã gợi ý rằng có thể xây dựng một chíp VLSI(mạch tích hợp mật độ lớn) có khả năng kiểm tra được 106khoá/giây Một máy có thểtìm toàn bộ không gian khoá cỡ 106 trong khoảng 1 ngày Họ ước tính chi phí để tạomột máy như vậy khoảng 2.107$
Trong cuộc hội thảo tại hội nghị CRYPTO'93, Michael Wiener đã đưa ra một thiết
kế rất cụ thể về máy tìm khoá Máy này xây dựng trên một chíp tìm khoá, có khả năngthực hiện đồng thời 16 phép mã và tốc độ tới 5×107 khoá/giây Với công nghệ hiện nay,chi phí chế tạo khoảng 10,5$/chíp Giá của một khung máy chứa 5760 chíp vào khoảng100.000$ và như vậy nó có khả năng tìm ra một khoá của DES trong khoảng 1,5 ngày.Một thiết bị dùng 10 khung máy như vậy có giá chừng 106 $ sẽ giảm thời gian tìm kiếmkhoá trng bình xuống còn 3,5 giờ
4.4 DES trong thực tế
Mặc dù việc mô tả DES khá dài dòng song người ta có thể thực hiện DES rất hữahiệu bằng cả phần cứng lẫn phần mền Các phép toán duy nhất cần được thực hiện làphép hoặc loại trừ các xâu bít Hàm mở rộng E, các hộp S, các hoán vị IP và P và việctính toán các giá tri K1, ,K16 đều có thể thực hiện được cùng lúc bằng tra bảng (trongphần mền ) hoặc bằng cách nối cứng chúng thành một mạch
Các ứng dụng phần cứng hiện thời có thể đạt được tốc độ mã hoá cực nhanh Công
ty Digital Equipment đã thông báo tại hội nghị CRUPTO'92 rằng họ sẽ chế tạo một chíp
có 50 ngàn tranzistor có thể mã hoá với tốc độ 1 Gbít/s bằng cách dùng nhịp có tốc độ
Trang 35Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
cứng và chương trình cơ sở của DES được Uỷ ban tiêu Chuẩn quốc gia Mỹ (NBS) chấpthuận
Một ứng dụng quan trọng của DES là trong giao dịch ngân hàng Mỹ - (ABA) DESđược dùng để mã hoá các số định danh cá nhân (PIN) và việc chuyển tài khoản bằngmáy thủ quỹ tự động (ATM) DES cũng được Hệ thống chi trả giữa các nhà băng củaNgân hàng hối đoái (CHIPS) dùng để xác thực các giao dụch vào khoản trên 1,5×1012
USA/tuần DES còn được sử dụng rộng rãi trong các tổ chức chính phủ Chẳng hạn như
bộ năng lượng, Bộ Tư pháp và Hệ thống dự trữ liên bang
Các chế độ hoạt động của DES: Có 4 chế độ làm việc đã được phát triển cho DES:
Chế độ chuyển mã điện tử (ECB), chế độ phản hồi mã (CFB), chế độ liên kết khối mã(CBC) và chế độ phản hồi đầu ra (OFB) Chế độ ECB tương ứng với cách dùng thôngthường của mã khối: với một dãy các khối bản rõ cho trước x1,x2, .( mỗi khối có 64bít), mỗi xi sẽ được mã hoá bằng cùng một khoá K để tạo thành một chuỗi các khối bản
mã y1y2 theo quy tắc yi = eK(yi-1⊕xi) i ≥ 1 Việc sử dụng chế độ CBC được mô tả trênhình 3.4
Trong các chế độ OFB và CFB dòng khoá được tạo ra sẽ được cộng mod 2 với bản
rõ (tức là nó hoạt động như một hệ mã dòng, xem phần 1.1.7) OFB thực sự là một hệ
mã dòng đồng bộ: dòng khoá được tạo bởi việc mã lặp véc tơ khởi tạo 64 bít (véc tơIV) Ta xác định z0 =IV và rồi tính dòng khoá z1z2 theo quy tắc zi = eK(zi-1), i≥1 Dãybản rõ x1x2 sau đó sẽ được mã hoá bằng cách tính yi = xi⊕ zi,i ≥1
Trong chế độ CFB, ta bắt đầu với y0 = IV (là một véc tơ khởi tạo 64 bít) và tạo phần
tử zi của dòng khoá bằng cách mã hoá khối bản mã trước đó Tức zi = eK(yi-1), i ≥1
Trang 36Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
Cũng như trong chế độ OFB: yi = xi ⊕ zi,i ≥1 Việc sử dụng CFB được mô tả trên hình3.5 (chú ý rằng hàm mã DES eK được dùng cho cả phép mã và phép giải mã ở các chế
độ CFB và OFB)
Cũng còn một số biến tấu của OFB và CFB được gọi là các chế độ phản hồi K bít (1
< K < 64 ) ở đây ta đã mô tả các chế độ phản hồi 64 bít Các chế độ phản hồi 1 bít và 8bít thường được dùng trong thực tế cho phép mã hoá đồng thời 1 bit (hoặc byte) số liệu.Bốn chế độ công tác có những ưu, nhược điểm khác nhau ở chế độ ECB và OFB,
sự thay đổi của một khối bản rõ xi 64 bít sẽ làm thay đổi khối bản mã yi tương ứng,nhưng các khối bản mã khác không bị ảnh hưởng Trong một số tình huống đây là mộttính chất đáng mong muốn Ví dụ, chế độ OFB thường được dùng để mã khi truyền vệtinh
Mặt khác ở các chế độ CBC và CFB, nếu một khối bản rõ xi bị thay đổi thì yi và tất
cả các khối bản mã tiếp theo sẽ bi ảnh hưởng Như vậy các chế độ CBC và CFB có thểđược sử dụng rất hiệu quả cho mục đích xác thực Đặc biệt hơn, các chế độ này có thểđược dùng để tạo mã xác thực bản tin ( MAC - message authentication code) MACđược gắn thêm vào các khối bản rõ để thuyết phục Bob tin rằng, dãy bản rõ đó thực sự
là của Alice mà không bị Oscar giả mạo Như vậy MAC đảm bảo tính toàn vẹn (haytính xác thực) của một bản tin ( nhưng tất nhiên là MAC không đảm bảo độ mật)
Ta sẽ mô tả cách sử dụng chế độ BCB để tạo ra một MAC Ta bắt đầu bằng véc tơkhởi tạ IV chứa toàn số 0 Sau đó dùng chế đô CBC để tạo các khối bản mã y1, ,yn
theo khoá K Cuối cùng ta xác định MAC là yn Alice sẽ phát đi dãy các khối bản rõ
x1,x2, ,xn cùng với MAC Khi Bob thu được x1 .xn anh ta sẽ khôi phục lại y1 .yn
bằng khoá K bí mật và xác minh xem liệu yn có giống với MAC mà mình đã thu đượchay không
Trang 37Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
đổi ít nhiều nội dung thì thì chắc chắn là Oscar không thể thay đổi MAC để được Bobchấp nhận
Thông thường ta muốn kết hợp cả tính xác thực lẫn độ bảo mật Điều đó có thể thựchiện như sau: Trước tiên Alice dùng khoá K1 để tạo MAC cho x1 xn Sau đó Alicexác định xn+1 là MAC rồi mã hoá dãy x1 .xn+1 bằng khoá thứ hai K2 để tạo ra bản mã
y1 .yn+1 Khi Bob thu được y1 .yn+1 , trước tiên Bob sẽ giải mã ( bằng K2) và kiểm traxem xn+1 có phải là MAC đối với dãy x1 .xn dùng K1 hay không
Ngược lại, Alice có thể dùng K1 để mã hoá x1 .xn và tạo ra được y1 yn , sau đódùng K2 để tạo MAC yn+1 đối với dãy y1 .yn Bob sẽ dùng K2 để xác minh MAC vàdung K1 để giải mã y1 .yn
4.5 Ứng dụng của DES
Mặc dù việc mô tả DES khá dài dòng song người ta có thể thực hiện DES rất hữuhiệu bằng cả phần cứng lẫn phần mềm Các phép toán duy nhất cần được thực hiện làphép hoặc loại trừ các xâu bit Hàm mở rộng E, các hộp S, các hóan vị IP và P và việctính toán các giá tri K1, ,K16 đều có thể thực hiện được cùng lúc bằng tra bảng ( trongphần mềm ) hoặc bằng cách nối cứng chúng thành một mạch
Các ứng dụng phần cứng hiện thời có thể đạt được tốc độ mã hóa cực nhanh Năm
1991 đã có 45 ứng dụng phần cứng và chương trình cơ sở của DES được Uỷ ban tiêuChuẩn quốc gia Mỹ (NBS) chấp thuận
Một ứng dụng quan trọng của DES là trong giao dịch ngân hàng Mỹ - (ABA) DESđược dùng để mã hóa các số định danh cá nhân (PIN) và việc chuyển tài khoản bằngmáy thủ quỹ tự động (ATM) DES cũng được Hệ thống chi trả giữa các nhà băng củaNgân hàng hối đoái (CHIPS) dùng để xác thực các giao dịch DES còn được sử dụngrộng rãi trong các tổ chức chính phủ Chẳng hạn như bộ năng lượng, Bộ Tư pháp và Hệthống dự trữ liên bang
Trang 38Đặc trưng của bài toán: I = (p,,) trong đó p là số nguyên tố, Zp là phần tử nguyên thủy, Zp*
Mục tiêu: Hãy tìm một số nguyên duy nhất a, 0 a p-2 sao cho:
a (mod p)
Ta sẽ xác định số nguyên a bằng log
Bài toán logarith rời rạc trong Zp
Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
CHƯƠNG 5
MÃ HÓA KHÓA CÔNG KHAI
Nhờ những tính chất ưu việt của mã hóa khóa công khai, đã dẫn đến sự phát triển rấtlớn của hệ mã hóa này và có lẽ chính nó đã tạo ra cuộc cách mạng trong toàn bộ lịch sửcủa mã hóa Trong thực tế có rất nhiều loại mã hóa khóa công khai nhưng trong phạm
vi phần này ta chỉ xét một số thuật toán rất phổ biến đó là Elgamal và RSA…
5.1 Bài toán Logarit rời rạc (DL)
Hệ mã hóa Elgamal được đề xuất từ năm 1985, dựa trên cơ sở bài toán logarith rờirạc Chúng ta sẽ bắt đầu bằng việc mô tả bài toán khi thiết lập môi trường hữu hạn Zp, p
là số nguyên tố (Nhóm nhân Zp* là nhóm cyclic và phần tử sinh của Zp* đượcgọi là phần
tử nguyên thủy)
Bài toán logarith rời rạc trong Zp là đối tượng trong nhiều công trình nghiên cứu vàđược xem là bài toán khó nếu p được chọn cẩn thận Cụ thể không có một thuật toánthời gian đa thức nào cho bài toán logarith rời rạc Để gây khó khăn cho các phươngpháp tấn công đã biết, p phải có ít nhất 150 chữ số và (p-1) phải có ít nhất một thừa sốnguyên tố lớn Lợi thế của bài toán logarith rời rạc trong xây dựng hệ mã hóa là khó tìmđược các logarith rời rạc, song bài toán ngược lấy lũy thừa lại có thể tính toán hiệu quảtheo thuật toán “bình phương và nhân” Nói cách khác, lũy thừa theo mođun p là hàmmột chiều với các số nguyên tố p thích hợp
5.2 Các thuật toán cho bài toán Logarit rời rạc
Trong phần này ta xem rằng p là số nguyên tố, α là phần tử nguyên thuỷ theomođun p Ta thấy rằng p và α là các số cố định Khi đó bài toán logarith rời rạc có thểđược phát biểu dưới dạng sau: tìm một số mũ a duy nhất, 0 ≤ a ≤ p-2 sao cho αa ≡β
(mod p), với β∈ Zp cho trước
Rõ ràng là bài toán logarith rời rạc (Discrete Logarith-DL) có thể giải bằng mộtphép tìm kiếm vét cạn với thời gian cỡ O(p) và không gian cỡ O(1) (bỏ qua các thừa sốlogarith) Bằng cách tính toán tất cả các giá trị αa có thể và sắp xếp các cặp có thứ tự (a,
αa mod p) có lưu ý đến các toạ độ thứ hai của chúng, ta có thể giải bài toán DL với thờigian cỡ O(1) bằng O(p) phép tính toán trước và O(p) bộ nhớ (vẫn bỏ qua các thừa sốlogarith) Có một số thuật toán cho bài toán logarith rời rạc như: Shanks, Pohlig-
Trang 39Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
Trang 40Đặt m = p-1
Tính mj mod p, 0 j m-1
Sắp xếp m cặp thứ tự (j,mj mod p) có lưu ý tới các toạ độ thứ hai của các cặp này, ta sẽ thu được một danh sách L1Tính -i mod p, 0 i m-1
Sắp xếp m cặp thứ tự (i, -i mod p) có lưu ý tới các tọa độ thứ hai của các cặp được sắp này, ta sẽ thu được một danh sách L2
Tìm một cặp (j,y) L1 và một cặp (i,y) L2 (tức là một cặp có toạ độ thứ hai như nhau)
Xác định log = mj + i mod (p-1)
Thuật toán Shanks cho bài toán DL
Trường Đại học Hải Phòng Bài giảng: An toàn thông tin
• Nếu cần, các bước 1 và 2 có thể tính toán trước (tuy nhiên, điều này không ảnhhưởng tới thời gian chạy tiệm cận)
• Tiếp theo cần để ý là nếu (j,y) ∈ L1 và (i,y) ∈ L2 thì
αmj = y = βα-i
Bởi vậy αmj+i = β như mong muốn
Ngược lại, đối với β bất kì ta có thể viết: logαβ = mj+itrong đó 0 ≤ j,i ≤ m-1 Vì thế phép tìm kiếm ở bước 5 chắc chắn thành công
Có thể áp dụng thuật toán này chạy với thời gian O(m) và với bộ nhớ cỡ O(m) (bỏqua các thừa số logarith) Chú ý là bước 5 có thể thực hiện một cách (đồng thời) quatừng danh sách L1 và L2
Sau đây là một ví dụ nhỏ để minh hoạ:
Giả sử p=809 và ta phải tìm log3525 Ta có α = 3, β = 525 và m = √808 = 29
Khi đó: α29 mod 809 = 99Trước tiên tính các cặp được sắp (j, 99j mod 809) với 0 ≤ j≤28 Ta nhận được danhsách sau:
(0,1) (1,99) (2,93) (3,308) (4,559)(5,329) (6,211) (7,664) (8,207) (9,268)(10,644) (11,654) (12,26) (13,147) (14,800)(15,727) (16,781) (17,464) (18,314) (19,275)(20,582) (21,496) (22,564) (23,15) (24,676)(25,586) (26,575) (27,295) (28,81)
Danh sách này sẽ được sắp xếp để tạo L Danh sách thứ hai chứa các cặp được sắp