e Kiểm định tính toàn vẹn của thông tin Để đảm bảo các yêu cầu trên, kỹ thuật mật mã được thiết kế và cài đặt theo bốn loại hình: c Các hệ mật đối xứng hệ mật là cách gọi ngắn gọn của hệ
Trang 2Vũ Huy Hoàng
NÂNG CAO ĐỘ AN TOÀN THỰC TI ỄN TRONG
HỆ MẬT KHÓA CÔNG KHAI
Chuyên ngành: Công nghệ phần mềm
Mã số: 62 48 10 01
LUẬN ÁN TIẾN SĨ KỸ THUẬT
Người hướng dẫn khoa học:
1 PGS.TS Hồ Thuần
2 PGS.TS Đặng Văn Chuyết
Hà Nội – 2012
Trang 3i
Danh mục các ký hiệu và các chữ viết tắt 01
Danh mục các bảng 04
Danh mục các hình vẽ và đồ thị 05
Mở đầu 06
Chương 1 Khái quát về lý thuyết mật mã 1.1 Lý thuyết mật mã 13
1.1.1 Một số khái niệm về mật mã 13
1.1.2 Bài toán truyền tin an toàn 15
1.1.3 ứng dụng của mật mã khoá công khai hiện nay 21
1.2 Lý thuyết số học sử dụng trong nghiên cứu mật mã 25
1.3 Đại cương về thám mã 26
1.4 Một số phương pháp tấn công hệ mật RSA 27
1.4.1 Phân tích các số nguyên lớn 28
1.4.2 Các tấn công đơn giản 29
1.4.3 Số mũ giải mã bí mật nhỏ 30
1.5 Kết luận chương 1 32
Chương 2, Xây dựng hệ mật RSA an toàn với số mũ giải mã lớn 2.1 Độ an toàn của hệ mật 33
2.1.1 Độ an toàn thực tiễn 33
2.1.2 Độ an toàn không điều kiện 34
2.2 Xây dựng hệ mật RSA an toàn với số mũ giải mã lớn 34
2.2.1 Thuật toán EMD 36
2.2.2 Một số kết quả 37
2.2.3 Tính đúng đắn của thuật toán 42
2.2.4 Cải tiến thuật toán EMD 49
2.3 Một phương pháp đơn giản xây dựng hệ RSA an toàn với số
mũ giải mã lớn 57
2.4 Kết quả cài đặt thử nghiệm thuật toán 58
2.4.1 Kết quả cài đặt thử nghiệm thuật toán EMD1 58
2.4.2 Kết quả cài đặt thử nghiệm thuật toán LA 60
Trang 4ii
2.5.1 Giải pháp về xác thực 63
2.5.2 Giải pháp về bí mật 64
2.5.3 Giải pháp đảm bảo cả về bí mật và xác thực 65
2.6 Giải pháp giải mã song song 66
2.7 Kết luận chương 2 73
Chương 3 Lược đồ phân chia bí mật-một số kết quả và ứng dụng 3.1 Lược đồ ngưỡng của Shamir 74
3.2 Lược đồ chia sẻ bí mật với các tập được quyền tối tiểu 78
3.2.1 Cấu trúc truy cập 78
3.2.2 Một số tính chất của tập được quyền tối tiểu 79
3.2.3 Phát hiện có sự gian lận 80
3.3 Mở rộng lược đồ ngưỡng của Shamir cho việc chia sẻ đồng thời nhiều bí mật 81
3.3.1 Phương pháp sử dụng hệ phương trình đại số tuyến tính 82
3.3.2 Phương pháp dựa trên công thức nội suy Lagrange cho các đa thức 83
3.3.3 Ví dụ 84
3.3.4 Một số nhận xét 91
3.4 Phương pháp phát hiện sự gian lận và nhận diện những người gian lận dễ cài đặt trong thực tiễn 93 3.4.1 Lược đồ phân chia bí mật và phương pháp phát hiện gian lận 94 3.4.2 Lược đồ phân chia nhiều bí mật và phương pháp phát hiện gian lận 96
3.5 Kết luận chương 3 98
Kết luận 100
Danh mục công trình của tác giả 102
Tài liệu tham khảo 103
Phục lục A 109
Phục lục B 121
Phục lục C 124
Trang 5Danh mục các ký hiệu và các chữ viết tắt
DK Một họ các phép biến đổi giải mã
DA Phép biến đổi giải mã bí mật của Người A
DB Phép biến đổi giải mã bí mật của Người B
EK Một họ các phép biến đổi mã hoá
EA Phép biến đổi mã hoá công khai của Người A
EB Phép biến đổi mã hoá công khai của Người B
e e
e r Z r(r 1) Z
S = ∈ ư ∈ là tập con của *
eZ
e
*
e r 1 ZZ
rT(e) = ∈ ư ∈ là tập con của *
eZ
c = bản mã của x j
Trang 6e Số mũ mã hóa
j
k Giá trị tính theo công thức kj = kj + h( xj) ( mod p)
l(x) Độ dài bit trong biểu diễn nhị phân của x
n Tích hai số nguyên tố p và q (n = p.q)
p Số nguyên tố lớn (thứ nhất) trong hệ mật RSA
q Số nguyên tố lớn (thứ hai) trong hệ mật RSA
rp rp = p (mod e) ∈ Z*e là phần dư của p mod e
rq rq =q(mode)∈Z*e là phần dư của q mod e
)
j
j,y
x
( Phần chia tương ứng của thành viên pij
gcd(.,.) ước số chung lớn nhất của hai số nguyên khác nhau lcm(.,.) Bội số chung nhỏ nhất của hai số nguyên khác nhau sigk(.) Thuật toán tạo chữ ký
verk(.,.) Thuật toán kiểm tra
ϕ(n) Hàm Euler được định nghĩa là số các nguyên dương nhỏ hơn n và nguyên tố cùng n
⎣x⎦ Hàm sàn trả số nguyên lớn nhất không vượt quá x
Trang 7DES Data Encryption Standard
DSA Digital Signature Algorithm
DSS Digital Signature Standard
EMD L.H Encinas, J.M.MasquÐ and A.Q Dios
FEAL Fast Data Encipherment Algorithm
IDEA International Data Encryption Algorithm
LA Tªn cña mét thuËt to¸n cã trong LuËn ¸n
PKC Public Key Cryptography
PKI Public Key Infrastructure
Trang 8DANH MỤC CÁC BẢNG
B¶ng 2.1 BiÓu diÔn 9×25 sè nguyªn d−¬ng ®Çu tiªn 46 B¶ng 2.2 BiÓu diÔn 45 sè trong tËp T(9.25) 47 B¶ng 2.3 KÕt qu¶ thö nghiÖm b−íc 2 cña thuËt to¸n EMD1 54 B¶ng 2.4 KÕt qu¶ thö nghiÖm b−íc 2 cña thuËt to¸n EMD 55 B¶ng 2.5 So s¸nh thêi gian gi¶i m· song song vµ gi¶i m· th«ng
th−êng
72
Trang 9DANH MỤC CÁC HèNH VẼ VÀ ĐỒ THỊ
Hình 1.3 Tính mật và tính xác thực trong hệ mật đối xứng 16 Hình 1.4 Tính mật trong hệ mật khoá công khai 18 Hình 1.5 Tính xác thực trong hệ mật khoá công khai 18 Hình 3.1 Lược đồ ngưỡng (t, w) của Shamir 76
Hình B.2 Chọn chức năng Bảo vệ File dữ liệu 122 Hình B.3 Chọn chức năng Giải mã File dữ liệu 123 Hình C.1 Cửa sổ chính chương trình bảo mật thư điện tử 126
Trang 10MỞ ĐẦU
Thế kỷ 21, Công nghệ thông tin tiếp tục được coi là một trong những ngành khoa học và công nghệ mũi nhọn Nhưng trong ngữ cảnh mạng máy tính toàn cầu, vấn đề đảm bảo bí mật và toàn vẹn thông tin trên đường truyền và trong các
hệ thống máy tính (còn gọi là an toàn thông tin) có những đặc thù riêng vì:
c Dữ liệu dễ bị truy nhập, lấy cắp, sử dụng trái phép, thay thế hoặc sửa đổi làm sai lệch nội dung, bằng nhiều biện pháp khác nhau, nhưng việc phát hiện, ngăn chặn, xử lý rất khó khăn
d CSDL, phần mềm được chia sẻ dùng chung, nhất là trong Internet, Intranet, mạng LAN, nên việc đảm bảo tính sẵn sàng, tính toàn vẹn tất yếu sẽ phức tạp hơn so với trường hợp sử dụng đơn lẻ
e Nhiều mạng máy tính, CSDL bị tấn công vì mục đích chính trị, kinh tế, xã hội Tuy chính sách an toàn thông tin, quản trị hệ thống nói chung có thể được
đề cập, thực thi, quản lý khá chặt chẽ, nhưng vẫn còn nhiều kẽ hở, bất cập với những đối tượng là tin tặc (Hacker) nhằm tới hệ thống với mục tiêu, âm mưu, ý
đồ lợi dụng, chiếm đoạt, phá hoại
f An toàn thông tin đang thật sự cần thiết đối với nhiều tổ chức và doanh nghiệp Tuy nhiên hoạt động triển khai thực tế không tương xứng với yêu cầu đặt ra: các giải pháp an toàn thông tin lại thiếu đồng bộ, đặc biệt là không sử dụng các giải pháp mật mã; thiếu đội ngũ chuyên gia về an toàn thông tin đủ sức tư vấn cho các nhà lãnh đạo, quản lí
Vì vậy, vấn đề an toàn thông tin đang thật sự cần thiết đối với nhiều tổ chức, doanh nghiệp và mỗi quốc gia Trong các công nghệ bảo vệ thông tin thì mật mã
đóng vai trò quan trọng hàng đầu Mật mã có khả năng đảm bảo các yêu cầu cơ bản của an toàn thông tin:
c Xác thực nguồn gốc thông tin
d Đảm bảo tính mật nội dung thông tin
Trang 11e Kiểm định tính toàn vẹn của thông tin
Để đảm bảo các yêu cầu trên, kỹ thuật mật mã được thiết kế và cài đặt theo bốn loại hình:
c Các hệ mật đối xứng (hệ mật là cách gọi ngắn gọn của hệ mật mã)
d Các hệ mật khoá công khai hay còn gọi là hệ mật phi đối xứng
e Hệ chữ ký số
f Quản lý khóa
Mật mã đã được nhiều cơ sở nghiên cứu ở trong và ngoài nước tiếp cận, nghiên cứu và ứng dụng vào thực tiễn Sau đây chúng tôi sẽ điểm qua một số nét lớn về tình hình nghiên cứu ở trong và ngoài nước theo hướng nâng cao độ an toàn thực tiễn cho hệ mật RSA, để thấy được những kết quả trình bày trong luận
án là mới và không trùng lặp với những kết quả đã công bố
Tại một số cơ sở nghiên cứu mạnh nước ngoài
Những hướng nghiên cứu về hệ mật đối xứng [46], [48], [56] và hệ mật khóa công khai thu hút được nhiều quan tâm của các nhà nghiên cứu [46], [56] Trong các hướng nghiên cứu về hệ mật khóa công khai, thì hệ mật RSA và các kiểu tấn công khác nhau vào hệ mật RSA là hướng đã và đang được quan tâm nhiều [19], [25], [41]
Chia sẻ bí mật là một công cụ quan trọng và được nghiên cứu rộng rãi trong mật mã và tính toán phân tán Vì vậy, cùng với sự phát triển của các kỹ thuật mật mã thì lược đồ chia sẻ bí mật được nghiên cứu và phát triển mạnh mẽ như các lược đồ được trình bày trong [8], [26], [27], [30], [34], [36], [37], [38], [43], [59] Nhưng không có lược đồ chia sẻ nhiều bí mật nào thực hiện việc dùng ngay t
bí mật cần chia sẻ làm các hệ số của đa thức nội suy cần xây dựng, trong khi với lược đồ ngưỡng gốc của Shamir chỉ dấu bí mật K cần chia sẻ ở hệ số a0 của đa thức
Trang 12Tình hình nghiên cứu trong nước: Hiện nay những nghiên cứu về mật mã
ngày càng trở nên quan trọng cùng với sự phát triển theo chiều rộng, chiều sâu của kỷ nguyên Internet và thông tin số Những nghiên cứu về mật mã tại một số cơ sở đào tạo và nghiên cứu lớn như: Trường Đại học Bách khoa Hà Nội, Viện Công nghệ thông tin, Học viện Kỹ thuật Quân sự và Ban Cơ yếu Chính phủ,… Phần lớn tập trung vào việc triển khai ứng dụng các hệ mật mã đã được các cơ sở nghiên cứu nước ngoài công bố [1], [3], [4]
Trong những năm qua những cơ sở nghiên cứu trong nước đã có một số đề tài nghiên cứu về mật mã, ví dụ như:
1 Lều Đức Tân (2005), “Nghiên cứu hệ tiêu chuẩn cho các tham số và cách dùng an toàn hệ mật RSA”, Đề tài cấp Ban, Ban Cơ yếu Chính phủ
2 Lưu Hồng Dũng (2008), “Đánh giá hiệu quả tích hợp thuật toán mật mã Crypt
(D)-128 trên FPGA”, Tạp chí Nghiên cứu Khoa học Kỹ thuật và Công nghệ Quân sự, Viện khoa học và Công nghệ Quân sự, (25), tr.56-61
3 Trần Hồng Thái (2010), “Nghiên cứu xây dựng các hộp thế, lược đồ khóa có tính chất mật mã tốt sử dụng trong mã khối” Đề tài cấp Ban, Ban Cơ yếu Chính
phủ
4 Nguyễn Đức Mạnh, Thái Danh Hậu, Trần Duy Lai (2011),”Một thuật toán
sinh số nguyên tố tất định”, Tạp chí Nghiên cứu Khoa học Kỹ thuật và Công nghệ Quân sự, Viện khoa học và Công nghệ Quân sự, (11), tr.49-53
Trang 13Đội ngũ cán bộ khoa học công nghệ mật mã còn thiếu về số lượng, trình độ,
đồng thời chưa được phát huy hết tiềm năng
Các kết quả nghiên cứu trong nước phần nào đã góp phần nâng cao độ an toàn cho các hệ mật được sử dụng
Tuy nhiên cho đến nay chưa có nhiều kết quả nghiên cứu đề cấp cụ thể tới:
- Hướng xây dựng hệ mật RSA an toàn tránh được những kiểu tấn công hệ mật RSA do việc sử dụng các số mũ giải mã d nhỏ
- Nghiên cứu và đề xuất phương pháp phân phối khóa hiệu quả về không gian lưu trữ và khối lượng tính toán, lược đồ chia sẻ bí mật với các tập được quyền tối tiểu, bao gồm: cỏc cấu trỳc truy cập, một số tính chất của tập được quyền tối tiểu, phương pháp chung phát hiện có sự gian lận, và xỏc định (nhận diện) tất cả những người gian lận, những phương pháp phát hiện gian lận đơn giản và dễ áp dụng trong thực tiễn
Vì vậy mục tiêu của đề tài là:
c Điểm qua một số hệ mật khóa công khai đang được sử dụng rộng rãi hiện nay như hệ mật RSA, hệ mật Ba lô (Knapsack System), hệ mật Elgamal…, trong
đó chủ yếu nghiên cứu sâu về hệ mật RSA và các kiểu tấn công khác nhau vào hệ mật RSA [19], [25], [41] Wiener [58] đã chứng minh rằng, các số mũ bí mật nhỏ
có thể được khôi phục hiệu quả nếu
3
nd
0.25
< và kết quả này được cải tiến bởi
Boneh và Durfee [14], chỉ ra một kết quả tương tự với d < n0.292 Hơn nữa hai tác giả này còn phỏng đoán rằng hệ mật RSA không an toàn với d < n Dựa vào ý tưởng đó, luận án nghiên cứu theo hướng xây dựng hệ mật RSA an toàn tránh
được những kiểu tấn công vào hệ RSA do việc sử dụng các số mũ giải mã nhỏ
d Khi sử dụng mật mã để bảo vệ thông tin thì một vấn đề quan trọng là
quản lý không gian các khóa Quản lý khóa chính là nói đến toàn bộ hoạt động liên quan đến một vòng đời của khóa như việc sinh khóa, phân phối khóa, sử
Trang 14dụng, lưu trữ và huỷ bỏ khóa Dù một hệ mật phức tạp và tin cậy đến đâu nó vẫn
dựa trên việc sử dụng các khóa Trong quản lý khóa việc phân phối khóa là quá trình đặc biệt quan trọng, phải đảm bảo được hai yếu tố:
- Linh hoạt và chính xác,
- Che dấu các khóa được phân phối
Để đảm bảo được hai yếu tố trên, một phương pháp hay được sử dụng là
lược đồ phõn chia bớ mật (hay chia sẻ bớ mật) Do vậy cần phải nghiên cứu một
số lược đồ phõn chia bớ mật, trên cơ sở đó đề xuất phương pháp phỏt hiện có sự gian lận, nhận diện những người gian lận và xem xét phương pháp chia sẻ bí mật hiệu quả về không gian lưu trữ và khối lượng tính toán
Hệ mật RSA là một hệ mật khóa công khai mà độ an toàn của hệ mật được
dựa trên tính khó (về mặt tính toán) của bài toán phân tích số nguyên lớn ra các thừa số nguyên tố Nhưng để đảm bảo cho hệ mật RSA an toàn (hệ mật RSA an toàn trong luận án được hiểu là độ an toàn thực tiễn (tức độ an toàn tính toán) của hệ mật RSA), cũng cần phải chú ý tới việc sử dụng số mũ giải mã bí mật d, sao cho tránh được những kiểu tấn công vào hệ mật RSA do việc sử dụng các số
mũ giải mã bí mật nhỏ Do vậy:
Mục đích của đề tài:
c Nâng cao độ an toàn của hệ mật khóa công khai RSA, đảm bảo tránh
được các kiểu tấn công do việc dùng số mũ giải mã d nhỏ
d Để nâng cao độ an toàn của hệ mật khóa công khai thì phân phối khóa cũng là phần quan trọng, có tính quyết định Vì vậy, cần phải nghiên cứu và đề xuất phương pháp phân phối khóa hiệu quả về không gian lưu trữ và khối lượng tính toán
Giới hạn của đề tài:
Đề tài tập trung nghiên cứu hệ mật RSA, các kỹ thuật tấn công vào hệ mật RSA, từ đó đưa ra một phương pháp nâng cao độ an toàn thực tiễn cho hệ mật
Trang 15RSA, tránh được những kiểu tấn công vào hệ mật RSA do việc sử dụng các số
mũ giải mã nhỏ, nghiên cứu lược đồ phân chia bí mật, đề xuất phương pháp phân chia đồng thời nhiều bí mật sao cho hiệu quả về không gian lưu trữ và khối lượng tính toán, cùng với phương pháp phát hiện, nhận diện những người gian lận Nội dung luận án gồm có phần mở đầu, ba chương, phần kết luận, tài liệu tham khảo và ba phụ lục:
chung về lý thuyết mật mã, tập trung vào sự phát triển của mật mã, nhắc lại một
số khái niệm cơ sở liên quan đến luận án, giới thiệu một số phương pháp tấn công hệ mật RSA và hướng tiếp cận của luận án Các kết quả mới của luận án
được giới thiệu trong chương 2 và chương 3
trình bày một số kết quả xung quanh vấn đề: Xây dựng hệ mật RSA an toàn với
số mũ giải mã lớn bao gồm: chứng minh một số mệnh đề, cũng như chứng minh theo một cách khác một số tính chất của tập Se để làm cơ sở cho việc phân tích và cải tiến thuật toán trong [31] Đề xuất một phương pháp đơn giản xây dựng hệ mật RSA an toàn với số mũ giải mã lớn dễ áp dụng trong thực tiễn, được gọi là thuật toán LA Phần tiếp theo của chương là một số kết quả thử nghiệm chạy thuật toán cải tiến và thuật toán LA Cuối cùng là một giải pháp truyền tin an toàn dựa trên những kết quả thu được, có thể thực hiện được trong thực tiễn Bước
đầu đề xuất một giải pháp giải mã song song
Chương này giới thiệu lược đồ ngưỡng của Shamir, trình bày các kết quả của luận
án về lược đồ chia sẻ bí mật hiệu quả về không gian lưu trữ và khối lượng tính toán, lược đồ chia sẻ đồng thời nhiều bí mật với các tập được quyền tối tiểu, bao gồm: cỏc cấu trỳc truy cập, một số tính chất của tập được quyền tối tiểu, phương pháp phát hiện có sự gian lận, và xỏc định (nhận diện) tất cả những người gian lận dễ áp dụng trong thực tiễn
Trang 16Phần kết luận: Nêu những kết quả chính của luận án và đề xuất các hướng
nghiên cứu phát triển tiếp theo
Phụ lục A: Trình bày các kết quả cài đặt và chạy thử nghiệm thực tiễn thuật
toán xây dựng hệ mật RSA an toàn với số mũ giải mã lớn
Phụ lục B: Giới thiệu chương trình Bảo mật File dữ liệu, trong đó có cài đặt
thử nghiệm các thuật toán được đề xuất trong luận án
Phụ lục C: Giới thiệu chương trình Bảo mật thư điện tử là một ứng dụng bảo
mật chạy trên nền hệ điều hành Windows, có thể mã hóa, giải mã nội dung thư và các file đính kèm theo các khuôn dạng khác nhau
Các kết quả của luận án đã được báo cáo và thảo luận tại Seminar khoa học của Bộ môn Truyền thông và Mạng Máy tính, Viện Công nghệ Thông tin & Truyền thông, Đại học Bách khoa Hà Nội Những kết quả nghiên cứu bước đầu
đã áp dụng thành công vào triển khai thực tiễn trên mạng máy tính của Cục Cơ yếu 893, mạng máy tính của ba tỉnh uỷ Hòa Bình, Thanh Hóa và Tuyên Quang Một số kết quả của luận án đã được công bố trong các công trình [1], [2], [3], [4], [5], [6]
Trang 17Chương 1 Khái quát về lý thuyết mật m∙
1.1 Lý thuyết mật mã
1.1.1 Một số khái niệm về mật mã
Mật mã (Cryptography) là khoa học nghiên cứu tìm ra các phương pháp nhằm đảm bảo tính bí mật của bản tin, còn được gọi là bản rõ (Plain Text, Clear
Text) Người mã hóa cần áp dụng các phép biến đổi của mình để biến đổi bản rõ
thành bản mã (Cryptogram) Quá trình biến đổi đó gọi là mã hoá (Encipherment) Quá trình biến đổi ngược lại từ bản mã thành bản rõ được gọi là giải mã (Decipherment) Để điều khiển quá trình mã hóa và giải mã, người làm mật mã luôn sử dụng khoá Thông thường khoá được gửi đi nhờ một phương pháp tin cậy nào đó, mà sau đó người và máy sẽ sử dụng nó để tạo ra các bản mã tức các bản tin cần được bảo vệ [5]
Hệ mật mã (Cryptosystem) hay còn gọi ngắn gọn là hệ mật là một bộ 5
(M, C, K , EK, DK) thoả mãn các điều kiện sau:
c M là một không gian các bản rõ (thông báo)
d C là một không gian các bản mã
e K là một không gian các khoá
f Một họ các phép biến đổi mã hoá EK, là ánh xạ: M → C , K ∈ K
g Một họ các phép biến đổi giải mã DK, là ánh xạ: C → M, K ∈ K
Mỗi EK: M → C và DK: C → M là những hàm mà: DK(EK(M)) = M với mọi bản rõ M ∈ M
Như vậy nếu một bản rõ m được mã hoá bằng EK và bản mã nhận được c sau
đó được giải mã bằng DK thì thu được bản rõ ban đầu m Trong một hệ mật mỗi phép biến đổi mã hoá (Enciphering transformation) E K được xác định bởi một thuật toán mã hóa E và một khoá K để phân biệt nó với các phép biến đổi khác
Trang 18Mỗi phép biến đổi giải mã (Deciphering transformation) D K được xác định bởi một thuật toán giải mã D và một khoá K
Trong một hệ mật các phép biến đổi EK và DK được mô tả bởi các tham số
được dẫn xuất từ khoá K (hoặc trực tiếp bởi K) [21]
Các hệ mật phải thoả mãn những yêu cầu chung sau:
• Các phép biến đổi mã hóa và giải mã phải hiệu quả với mọi khoá Vì trong các ứng dụng tin học dữ liệu thường được mã hóa và giải mã trong thời gian truyền và các phép biến đổi đó không được dẫn tới hiện tượng nghẽn cổ chai
• Hệ mật phải dễ sử dụng
• Tính mật của khóa được thể hiện ở chỗ người thám mã không thể xác định
được khóa từ bản mã chặn được
Các hệ mật phải thoả mãn yêu cầu đặc thù đối với tính mật (Secrecy) và tính xác thực (Authenticity):
• Tính mật được thể hiện ở chỗ người thám mã không thể xác định bản rõ
từ bản mã chặn được Sơ đồ đảm bảo tính mật được thể hiện trong hình 1.1
Nói cách khác, người thám mã về mặt tính toán là không thực hiện được để
cMã hoá
Trang 19xác định được bản rõ m từ bản mã chặn được c, nếu không có phép biến đổi giải mã
• Tính xác thực của dữ liệu đòi hỏi người thám mã không thể dùng một bản mã sai c’ thay cho bản mã c mà không bị phát hiện Tính xác thực được thể hiện trong hình 1.2
Nói cách khác, với người thám mã thì về mặt tính toán là không làm được
để tìm một cách có hệ thống bản mã c’ sao cho DK(c’) là một bản rõ hợp thức (Valid) trong tập M
1.1.2 Bài toán truyền tin an toàn
Bài toán truyền tin an toàn thông tin kinh điển là người sử dụng A muốn gửi
đến người B một thông báo m Để những người khác không thể đọc được thì A và
B thoả thuận truyền đi một bản mã c thay cho m Chỉ có A biết cách biến m thành c, không ai khác ngoài A và B biết cách biến c thành m đối với hệ mật đối xứng, hoặc chỉ có người B biết cách biến c thành m đối với hệ mật khóa công khai
1.1.2.1 Hệ mật đối xứng
Với hệ mật đối xứng (hệ mật mã đối xứng), cả người sử dụng A và B cùng
dùng chung một khóa K cho cả hai phép mã hóa EK(m) = c và giải mã DK(c) = m,
Được bảo
vệ
m
Người B Người A
m
m’
Hình 1.2 Sơ đồ tính xác thực
cMã hoá
Trang 20trong đó K là khóa bí mật, chỉ hai người biết Vì vậy người thám mã không thể truy cập EK và DK Do đó, tính mật và tính xác thực được thỏa mãn trong các hệ mật đối xứng Trường hợp hệ mật đối xứng trong đó khóa mã hóa và khóa giải mã là khác nhau thì biết được một khóa dễ dàng tính được khóa kia Hình 1.3 minh họa tính mật và tính xác thực trong hệ mật đối xứng
Vậy các hệ mật đối xứng cũng cho một cách thức tốt để bảo vệ thông tin truyền qua mạng máy tính Nếu cả người gửi và người nhận có chung khoá truyền giao bí mật đáng tin cậy, thì tính mật và tính xác thực của truyền giao
được đảm bảo Có hai hệ mật đối xứng tiêu biểu là hệ mật mã dòng và hệ mật mã khối
- Hệ mật mã dòng, giả thiết cả m và c đều là các dãy n bít 0 và 1 Một cách tốt nhất là mỗi lần truyền tin, hai người A và B cùng có một dãy n bít ngẫu nhiên
r, mã hóa và giải mã bằng cách thực hiện phép cộng theo modulo 2 các bít của m
và c với các bít tương ứng của r Phương pháp mã này được gọi là phương pháp mã dòng (Stream Cipher) [48], [56] Đối với hệ mật mã này khi truyền tin trên mạng máy tính sẽ có những khó khăn là:
• Làm thế nào để tạo được dãy bít thực sự ngẫu nhiên
• Làm thế nào mà thông báo cho nhau biết dãy bít ngẫu nhiên đó, mà người thám mã không có cách nào để biết được
• Độ dài khóa phải bằng độ dài bản rõ, khóa chỉ được sử dụng một lần
m
Hình 1.3 Tính mật và tính xác thực trong hệ mật đối xứng
cMã hoá
với EK
Giải mã
với DK
Trang 21Nếu giải quyết được ba yêu cầu trên thì hệ mật mã dòng có độ an toàn không điều kiện
- Hệ mật mã khối, sử dụng một ánh xạ từ bản rõ có độ dài cố định vào một bản mã có cùng độ dài Để có thể giải mã được thì các bản rõ khác nhau phải ánh xạ vào các bản mã khác nhau Các thuật toán mã khối hay dùng như: DES (Data Encryption Standard) là chuẩn mã hoá dữ liệu của Mỹ trong vòng 20 năm (1977-1997) và hiện nay nó đang được thay bằng AES (Advanced Encryption Standard), FEAL (Fast Data Encipherment Algorithm) là chuẩn mã dữ liệu của châu Âu
• Mã khối có một ưu điểm so với mã dòng là tốc độ mã hóa rất nhanh, nó
có thể đáp ứng cho việc mã hóa dữ liệu, tiếng nói
1.1.2.2 Hệ mật khoá công khai
Hệ mật khoá công khai (hay còn được gọi là hệ mật phi đối xứng) tách riêng
hai quá trình mã hóa và giải mã với hai khoá riêng biệt
Trong hệ mật khoá công khai mỗi người dùng A có một phép biến đổi mã
hoá công khai (a Public Enciphering Transformation) EA có thể được đăng ký
trong một danh bạ công cộng và một phép biến đổi giải mã bí mật (Private Deciphering Transformation) DA mà chỉ A biết
Phép biến đổi bí mật DA được mô tả bởi một khoá bí mật, còn phép biến đổi công khai EA bởi một khoá công khai, được suy từ khoá bí mật bởi một phép biến
đổi một chiều (One Way Transformation) hay hàm một chiều (One Way Function) Hàm một chiều f: Df → Rf, tính dễ dàng f(x) = y với x ∈ Df Nhưng tính f -1(y) = {x/f(x)=y} là rất khó Như vậy đặc điểm của hệ mật khoá công khai
là việc tính toán D A khi biết E A trên thực tế là không thực hiện được trong thời gian hạn chế (còn lý thuyết thì có thể)
Trong hệ mật khoá công khai tính mật và tính xác thực được cung cấp bởi các phép biến đổi riêng biệt
Trang 22• Đảm bảo tính mật, giả sử người sử dụng A muốn gửi thông báo m cho
Tính mật trong khoá công khai được mô tả trong hình 1.4
Như vậy tính mật (Secrecy/ Privacy) được đảm bảo Tính xác thực chưa
được đảm bảo, bởi vì một người dùng bất kỳ chặn được c thì thay m bằng m’và mã EB(m’) = c’; ở đây m ≠ m’ Người B nhận và không biết được m ≠ m’
• Đảm bảo tính xác thực có nghĩa người sử dụng A gửi thông báo gì cho
người B, thì người B nhận được đúng thông báo đó sau khi giải mã Cũng giả sử người sử dụng A muốn gửi thông báo m cho người B thì:
(i) Người A dùng khoá riêng DA của mình, khoá này chỉ duy nhất có A biết, mã hoá c = DA(m), sau đó gửi bản mã c cho người B
(ii) Nhận được bản mã c, B tính EA(c) = EA( DA(m)) = m
Tính xác thực trong khoá công khai được mô tả trong hình 1.5
Bí mật (Private)
Công khai (Public)
Công khai (Public)
m
Người B m
Hình 1.5 Tính xác thực trong hệ mật khoá công khai
Người A
c
Trang 23Như vậy tính xác thực được đảm bảo Nhưng tính mật không được đảm bảo, vì khi gửi c = DA(m) trên đường truyền, người trộm tin chặn được bản mã
c sẽ giải mã bằng cách dùng EA(c) = m
• Để đảm bảo được đồng thời cả tính mật và tính xác thực cần có các yêu cầu sau: không gian bản mã C phải tương đương với không gian bản rõ M; EA,
DA là nghịch đảo của nhau
Để thực hiện được tính mật và tính xác thực, người gửi và người nhận mỗi người phải áp dụng hai tập các phép biến đổi
Giả sử A muốn gửi một thông báo m cho B Quá trình được thực hiện theo lược đồ sau:
(i) Người A gửi c = EB(DA(m)) cho B
từ đó đã có thêm một số hệ mật khoá công khai được công bố, độ an toàn của các
hệ mật dựa trên độ khó của các bài toán khác nhau Trong đó, một số hệ mật khóa công khai thu hút được sự chú ý của nhiều nhà nghiên cứu, đó là các hệ mật sau:
- Hệ mật Ba lô (Knapsack System): Dựa trên tính khó giải của bài toán tổng các tập con
- Hệ mật Mc Eliece dựa trên các mã sửa sai vì như đã biết bài toán giải mã một mã tuyến tính bất kỳ là NP-khó
- Hệ mật Elgamal dựa trên tính khó giải của bài toán logarit rời rạc trên các trường hữu hạn
- Hệ mật trên các đường cong Elliptic Hệ mật này làm việc trên các đường
Trang 24cong elliptic, chứ không phải là các trường hữu hạn và đảm bảo độ mật với khoá nhỏ hơn các hệ mật khoá công khai khác
Một giới thiệu đầy đủ về những hệ mật khóa công khai nêu trên có thể được tìm thấy trong [3], [46] và [56]
Đến những năm 80-90 của thế kỷ XX, đã xuất hiện một xu hướng hoàn toàn mới của mật mã là mật mã lượng tử (xem [4], [24] và [52]) Việc ứng dụng mật mã lượng tử trong tương lai đòi hỏi cần đầu tư nhiều thời gian nghiên cứu kỹ
lưỡng về lý thuyết và triển khai thử nghiệm Do đó nhiệm vụ cải tiến các hệ mật
đối xứng và hệ mật khóa công khai vẫn còn là cấp thiết
Ví dụ, vào năm 2000 sau khi mở cuộc thi quốc tế công khai về mật mã, Mỹ
đã chấp nhận chuẩn mã đối xứng quốc gia mới với tên viết tắt là AES (Advanced Encryption Standard)
Người sử dụng (A) chọn hai số nguyên tố ngẫu nhiên lớn p và q (có ít nhất
100 chữ số trong biểu diễn thập phân) Sau đó tính:
• n = p.q là tích của 2 số nguyên tố lớn cùng kích thước (l(n)/2 bit cho mỗi
số, trong đó l(n) là độ dài nhị phân của n) Kích thước thường cho n là l(n)=1024 bit, gồm khoảng 309 chữ số thập phân Mỗi thừa số khoảng 512 bit
• ϕ(n) = (p-1).(q-1) Trong đó ϕ là hàm Ơ le (Euler) quen thuộc
• e được chọn sao cho gcd(e, ϕ(n)) =1, tức là ước số chung lớn nhất của e
và ϕ(n) là 1
• Tìm một số d thỏa mãn hệ thức đồng dư
e.d ≡ 1 (mod ϕ(n) ) hay d = e-1 mod ϕ(n)
Trang 25Phương trình đồng dư có một nghiệm vì e và ϕ(n) là nguyên tố cùng nhau
Có thể tìm nhanh d bằng thuật toán Euclide mở rộng
- Các số p, q, ϕ(n) và d được giữ bí mật, d là số mũ giải mã
- Hai số e và n làm thành khóa mã hoá công khai cùng với tên, địa chỉ người
sử dụng được công khai ở danh bạ công cộng Trong đó:
Trước tiên ta biểu thị bản rõ như một từ trên bảng chữ {0,1,2,3, ,8,9} Từ
được chia thành các khối có kích thước thích hợp Một kích thước thích hợp của các khối là số nguyên i duy nhất thỏa mãn bất đẳng thức 10i-1<n<10i (i: số các chữ số thập phân, n = p.q)
Các khối được mã hóa riêng bằng cách áp dụng cặp (n, e), được lấy từ danh bạ công cộng và thực hiện phép mã hóa theo công thức:
c = me mod n (m: message)
Bản mã c được gửi cho A theo kênh công khai
Giải mã
Nhận được bản mã c từ người B gửi tới, A tiến hành giải mã như sau:
m = cd mod n hay cd ≡ m (mod n)
Như vậy việc giải mã là dễ dàng nếu ta có được thông tin cửa sập bí mật d
Số mũ giải mã trong hệ mật RSA là d, hiểu biết về d có liên quan chặt chẽ với sự hiểu biết của p và q
Trang 261.1.3 ứng dụng của mật mã khoá công khai hiện nay
Hệ mật khoá công khai cung cấp cho ta một phương tiện để có chữ ký số Giả sử người A ký một thông báo m và gửi cho người B thì A tiến hành như sau:
• Người A gửi c = DA(m) cho người B
• Nhận được c thì người B tính EA(c) = EA(DA(m)) = m
• Nếu có tranh chấp thì dùng trọng tài giải quyết tranh chấp giữa người A
và người B bằng cách kiểm tra xem từ EA(c) có khôi phục được thông báo m theo cách làm của người B
Có nhiều hệ chữ ký điện tử như lược đồ ElGamal, lược đồ Rabin, lược đồ RSA, Trên cơ sở lược đồ ElGamal với một số bổ sung để bảo đảm độ tin cậy tốt hơn, người ta xây dựng thuật toán chữ ký số DSA (Digital Signature Algorithm), được chấp nhận là chuẩn chữ ký điện tử DSS (Digital Signature Standard ) trong một số lĩnh vực giao dịch ở Mỹ từ đầu những năm 1990
Đi liền với chữ ký số, cần phải có một hàm băm (Hash Function) dùng để tóm lược nội dung của thông báo Có nhiều hàm băm đã được thiết kế như SHA-
Trang 27• Tem thời gian
• Chữ ký số
Như vậy có thể giải quyết vấn đề tranh chấp Tuy nhiên, để giải quyết tranh chấp thì cần phải có cơ sở pháp lý về tính hợp pháp của chữ ký số Nhưng để tiến tới cơ sở pháp lý thì chúng ta phải xây dựng được chuẩn chữ ký số Một chuẩn chữ ký số bao gồm các khía cạnh sau:
• Thuật toán chữ ký số
• Hàm băm
• Lựa chọn các tham số cụ thể
• Khuôn dạng của chữ ký (thông tin về người ký, tem thời gian)
Vậy "Chữ ký số" là một dạng chữ ký điện tử, được tạo ra bằng sự biến đổi một thông điệp dữ liệu, sử dụng kỹ thuật mật mã phi đối xứng, theo đó người có
được thông điệp dữ liệu ban đầu và khoá công khai của người ký có thể xác định
Tuy đều là chữ ký nhưng có sự khác nhau cơ bản giữa chữ ký truyền thống
và chữ ký số Chữ ký tay truyền thống được dùng để chỉ ra cá nhân tương ứng với
nó, nhưng lại yếu trong việc khẳng định tính toàn vẹn của một thông báo Với chữ ký số việc sử dụng lược đồ an toàn chẳng những xác thực được cá nhân đã ký lên thông báo mà còn khẳng định được tính toàn vẹn của thông báo [1]
Việc ký tài liệu, với chữ ký truyền thống thì chữ ký là bộ phận vật lý của tài liệu được ký Trong khi đó, chữ ký số không gắn một cách vật lý với thông báo
được ký, nó gắn với thông báo một cách logic
Chữ ký truyền thống được kiểm tra bằng cách so sánh nó với những chữ
Trang 28ký đã được xác thực Tuy nhỉên, phương pháp này không an toàn vì nó dễ bị giả mạo bởi chữ ký của người khác Ngược lại chữ ký số có thể được kiểm tra,
bằng cách dùng thuật toán kiểm tra đã biết công khai
Điều khác nhau cơ bản giữa chữ ký tay truyền thống và chữ ký số là trong thông báo điện tử được ký số, bản sao của thông báo đồng nhất với bản gốc, trong khi bản sao của tài liệu giấy thường là khác với bản gốc Đặc điểm này dẫn
đến việc phải có giải pháp để ngăn chặn một thông báo bị sử dụng lại khi dùng chữ ký số Một hướng giải quyết là phải làm sao để thông báo tự nó phải chứa thông tin ngăn chặn người nhận sử dụng lại nhiều lần
Một số lược đồ chữ ký an toàn được giới thiệu trong [20], [29], [39], [53]
1.1.3.2 Hàm băm
Hàm băm (được ký hiệu là h) là phần không thể thiếu đối với vấn đề xác thực
và chữ ký số, được giới thiệu trong [28], [53], [56] Chúng ta hãy tìm hiểu ý nghĩa của nó
Khi người A muốn ký bức điện x, trước tiên A xây dựng một bản tóm lược thông báo z = h(x) và sau đó tính y = sigk(z) A gửi cặp (x,y) cho người nhận B nếu không cần giữ bí mật x Để thực hiện xác minh, trước hết B khôi phục bản tóm lược thông báo z = h(x) bằng hàm h công khai và sau đó kiểm tra xem verk(z, y) có bằng true hay không Trong đó verk có tính chất là verk(z, y)= true nếu và chỉ nếu y = sigk(z) Nếu cần giữ bí mật x thì A sẽ mã hoá x thành x’ và gửi cặp (x’, y) đi
Việc dùng hàm băm h không làm giảm sự an toàn của sơ đồ chữ ký, vì nó là bản tóm lược thông báo được ký chứ không phải là toàn bộ thông báo/bức điện
Điều cần thiết đối với h là cần thoả mãn một số tính chất nào đó để tránh giả mạo
Cách tấn công thông thường nhất là Oscar bắt đầu bằng một bức điện được ký hợp lệ (x,y), y=sigk(h(x)) Trong đó cặp (x,y) là bức điện được A ký trước đó Sau
Trang 29đó Oscar tính z = h(x) và thử tìm x’≠ x sao cho h(x’)= h(x) Nếu Oscar tìm được như vậy, (x’, y) sẽ là bức điện được ký hợp lệ, tức một bức điện giả mạo Để tránh kiểu tấn công này, h cần thoả mãn tính chất của hàm tránh đụng độ yếu
Hàm băm h được gọi là tránh đụng độ yếu nếu khi cho trước một thông báo
x, thì hầu như không thể tiến hành về mặt tính toán để tìm ra được một
thông báo x’ khác x sao cho: h(x’) = h(x)
Một tấn công khác: Trước hết Oscar tìm hai bức điện x ≠ x’ sao cho h(x)= h(x’) Sau đó oscar đưa x cho A và thuyết phục A ký bản tóm lược thông báo h(x) để nhận được y Khi đó (x’, y) là bức điện giả mạo hợp lệ Đây là lý do đưa
ra tính chất tránh đụng độ mạnh của hàm băm
Hàm băm h được gọi là tránh đụng độ mạnh nếu không có khả năng tính
toán để tìm ra được hai bức điện x và x’ sao cho: x’ ≠ x và h(x’) = h(x)
Việc giả mạo các chữ ký trên bản tóm lược thông báo z ngẫu nhiên thường xảy ra với các sơ đồ chữ ký Giả sử oscar tính chữ ký trên bản tóm lược thông báo z ngẫu nhiên như vậy Sau đó anh ta tìm x sao cho z = h(x) Nếu làm được như vậy thì (x, y) là bức điện giả mạo hợp lệ Để tránh được kiểu tấn công này h cần thoả mãn tính chất một chiều (như trong hệ mã khoá công khai)
Hàm băm h có tính chất một chiều, nếu cho trước một bản tóm lược thông báo z thì về mặt tính toán không tìm ra được thông báo x sao cho h(x) = z
Hàm băm h mạnh có tác dụng chống lại kẻ giả mạo tạo ra hai bức điện có nội dung khác nhau, sau đó thu nhận chữ ký hợp pháp cho một bức điện để được xác nhận rồi lấy nó giả mạo làm chữ ký của bức điện thứ hai [17] Vậy theo [3] ta có
định nghĩa hàm băm như sau:
Định nghĩa 1.1 [3] Hàm một chiều h(x) được gọi là một hàm băm nếu nó thỏa
mãn hai tính chất sau:
(i) Tính nén: Hàm h(x) làm tương ứng chuỗi bit đầu vào x có chiều dài hữu hạn
tùy ý vào chuỗi bit y = h(x) có chiều dài cố định l(y) > 0 cho trước (trong
Trang 30đó l(y) là độ dài nhị phân của y, thường là không lớn)
(ii) Dễ tính toán: Với mọi chuỗi bit đầu vào x có chiều dài hữu hạn (tùy ý), h(x)
được tính toán “dễ dàng“
1.2 Lý thuyết s ố học sử dụng trong nghiên cứu mật mã
Lý thuyết số nghiên cứu các tính chất của những số nguyên dương Đây là một trong những nhánh ra đời sớm nhất của toán học và có thể nói là một trong những nhánh thuần túy nhất của toán học Tuy nhiên, sức sống của lý thuyết số rất mạnh mẽ, đặc biệt trong vài thập kỷ gần đây vì đã có những phần của lý thuyết số thực sự liên quan tới những nghiên cứu về thuật toán sử dụng
trong mật mã (được giới thiệu trong [2], [3], [7], [9], [46] và [56])
Nhiều kiến thức về lý thuyết số có ứng dụng trực tiếp trong mật mã và thám mã được giới thiệu trong [7] Tuy nhiên, nghiên cứu sâu về lý thuyết số sẽ không
được trình bày trong luận án này
1.3 Đại cương về thám mã
Ngày nay người gửi thông báo muốn giữ kín thông tin riêng của minh, cần thực hiện phương pháp che dấu bằng mật mã nào đó Trong khi đó, lại có những người rất quan tâm xác định xem thông báo nói gì Rất có thể họ chính là những người mà người gửi thông báo có ý định che dấu thông tin Vì vậy, bằng
cách này hay cách khác những người này phải có bản ‘sao’ của thông báo đã mã
hóa và tìm cách mở bí mật mà nó mang Tuy nhiên, ý định đó phải được thực hiện mà không có sự hiểu biết các chi tiết về mật mã được tiến hành để che dấu thông tin Những nghiên cứu nhằm cố gắng để đọc thông báo theo cách này được gọi là thám mã; ngành khoa học thực thi nhiệm vụ này có tên gọi là ngành thám mã Như vậy thám mã vừa là nghệ thuật vừa là khoa học trong việc giải mã mật mã
Lịch sử đã chứng minh thám mã thành công là nhân tố quan trọng nhất trong các t hành công về ngoại giao, giành chiến thắng quân sự, truy bắt tội
Trang 31phạm, ngăn chặn hoạt động gián điệp
Như vậy, thám mã (Cryptanalytics) là một nhánh của mật mã học liên quan đến việc giải các hệ thống mật mã do những người khác sử dụng Mục tiêu của các nhà thám mã là đọc nội dung của các thông báo đã mã hóa và phá vỡ các
hệ thống mật mã được sử dụng
Mối quan hệ giữa mật mã và thám mã
Hiện nay tồn tại nhiều lĩnh vực tri thức kế cận nhưng không thuộc khoa học mật mã Như ẩn mã (Steganography) thực hiện nhiệm vụ che giấu thông tin bí mật trong khối dữ liệu Với ẩn mã người gửi thông tin bí mật có thể che giấu thông tin trong một tệp (file), hay một thông báo công khai Cũng giống như mật mã, hai người dùng ẩn mã phải thỏa thuận về thuật toán mà họ sẽ sử dụng và trao
đổi thuật toán với nhau trước khi liên lạc Thuật toán ẩn mã là công thức toán học
được sử dụng để xếp đặt các bit dữ liệu vào một tệp khác, sau đó nó được sử dụng một lần nữa để bóc tách các bit như vậy ra theo trật tự ban đầu của chúng Đó thường không phải là một công thức quá phức tạp Các phương pháp nén thông tin cũng có quan hệ với khoa học mật mã
Khoa học mật mã là một ngành tri thức liên quan đến thông tin bí mật, nó bao gồm hai nhánh chủ yếu là mật mã và thám mã Hai nhánh này đấu tranh với nhau và hỗ trợ cho nhau phát triển Người làm thám mã nhất định phải am hiểu sâu sắc về mật mã, ngược lại người làm mật mã muốn có được những hệ mật đưa vào sử dụng an toàn thì nhất thiết phải nắm được khoa học thám mã Vì vậy việc nghiên cứu khoa học thám mã là nhằm để đánh giá độ an toàn của các hệ mật
được đưa vào sử dụng chính xác hơn, tránh những sơ xuất mà thám mã có thể khai thác được Điều đó có nghĩa việc nghiên cứu khoa học thám mã sẽ giúp chúng ta xây dựng, sử dụng hệ mật an toàn hơn Tuy nhiên, nghiên
cứu sâu về khoa học thám mã sẽ không được trình bày trong luận án này
1.4 Một số phương pháp tấn công hệ mật RSA
Trang 32Từ khi mới công bố, hệ mật RSA đã được nhiều nhà nghiên cứu phân tích để tìm ra các yếu điểm của nó Mặc dầu hơn ba mươi năm nghiên cứu đã mang lại nhiều cách tấn công, nhưng không có cách nào trong số đó là phá được hệ mật này hoàn toàn, mà chỉ minh hoạ cho mối nguy hiểm khi sử dụng hệ mật RSA không đúng cách Việc áp dụng hệ mật RSA một cách an toàn không phải là đơn giản Mục đích ở đây là xem xét lại các cách tấn công và mô tả công cụ toán học
mà người tấn công đã sử dụng Chúng ta quy ước tên gọi người sử dụng A (Alice)
và B (Bob) là 2 người muốn truyền tin cho nhau Người tấn công không hợp pháp muốn chặn bắt và can thiệp vào thông tin giữa người sử dụng A và B chúng ta quy ước tên gọi là Oscar [19]
Hệ mật RSA được sử dụng cho chữ ký số, ví dụ, chúng được sử dụng để ký các tờ séc số hay phiếu đặt mua hàng điện tử Để ký thông báo m bởi hệ mật RSA, người A áp dụng khoá bí mật (n, d) vào m để nhận được chữ ký s =
md mod n Khi biết (m, s), bất cứ ai cũng có thể kiểm tra chữ ký của A trên m bằng cách kiểm tra đẳng thức m = se mod n Vì chỉ riêng A có thể tạo ra s, mọi người tin rằng không một ai khác có thể giả mạo chữ ký của A Chữ ký số là một ứng dụng quan trọng của hệ mật RSA (xem [46], [47], [51]) Một số cách tấn công mà chúng ta xem xét ở đây đặc biệt dành cho chữ ký số RSA
1.4.1 Phân tích các số nguyên lớn
Phân tích số nguyên lớn (trên 308 chữ số thập phân) ra thừa số nguyên tố
đang là một thách thức lớn đối với những nhà thám mã Vì vậy, phép tấn công
đầu tiên đối với khoá công khai (n, e) của hệ mật RSA dựa vào phân tích modulus n ra thừa số, được xem như là một thách thức về đánh giá độ an toàn Khi biết các thừa số của n, người tấn công có thể dễ dàng tìm ϕ(n), từ đó có thể tìm được d = e-1 mod ϕ(n) Vì vậy có thể xem việc phân tích n như là sự tấn công bằng sức mạnh thô bạo đối với hệ mật RSA Mặc dù các thuật toán phân tích số ngày càng được cải tiến, kết quả tốt nhất hiện nay hãy còn xa để có thể mang lại nguy cơ cho độ an toàn của hệ mật RSA, nếu nó được dùng đúng cách
Trang 33Phân tích ra thừa số các số lớn là một trong các bài toán hay nhất của lý thuyết
độ phức tạp tính toán, nhưng ở đây chúng ta không đi sâu về vấn đề này Để cho
đầy đủ, chúng ta nhắc lại rằng thuật toán phân tích số nhanh nhất hiện nay là sàng trường số tổng quát Thời gian chạy của nó với số nguyên l(n) bit là exp((c + o(1))l(n)1/3log2/3l(n)) với c<2 [19] Cho nên các cách tấn công RSA mà chiếm thời gian lâu hơn ngưỡng này là không cần xem xét Các tấn công đó bao gồm tấn công vét cạn đối với thông báo m và một số tấn công cũ đã được công bố ngay sau khi hệ mật RSA ra đời Vì vậy, ta quan tâm tới các tấn công hệ mật RSA để giải mã, mà không trực tiếp phân tích modulus n
Sau đây sẽ chỉ ra rằng việc tìm khoá bí mật d và phân tích số n là tương
đương Vì thế, không có gì để giấu phân tích ra thừa số của n đối với một người biết d
Khẳng định 1.1 [19] Cho (n, e) là khoá công khai của hệ mật RSA Dựa vào
khoá bí mật d, người ta có thể phân tích có hiệu quả modulus n (với n=p.q) Ngược lại, cho phân tích của n, người ta có thể tìm được d một cách hiệu quả
1.4.2 Các tấn công đơn giản
Các phép tấn công này minh hoạ mối nguy hiểm khi sử dụng hệ mật RSA không đúng cách
1.4.2 1 Dùng chung modulus
Tránh việc phải sinh ra các modulus n (n = p.q) khác nhau cho mỗi người
sử dụng, người ta muốn cố định n cho tất cả mọi người Một trung tâm uỷ nhiệm tin cậy có thể cung cấp cho mỗi người dùng i một cặp duy nhất ei và di, từ đó người dùng i tạo ra khoá công khai ( n, ei) và khoá bí mật (n, di)
Thoạt nhìn, điều này dường như có thể được vì với bản mã gửi cho A là
n mod
m
c = e A , người B không thể giải mã được vì không có dA Tuy vậy, điều
đó không đúng và làm cho hệ không an toàn Bởi vì theo khẳng định 1.1 người B
có thể dùng eB và dB để phân tích n Vì n được phân tích nên B có thể tính được
Trang 34khoá bí mật dA của A khi biết khoá công khai eA Vì vậy modulus của hệ mật RSA không bao giờ được sử dụng cho nhiều hơn một người
1.4.2.2 Tấn công hệ mật RSA khi biết ϕ(n)
Một cách tấn công khác là tìm được p và q khi biết ϕ(n) Nếu ϕ(n) đã biết
và n = p.q công khai thì n có thể được phân tích để tìm ra p và q nhờ việc giải
hệ mật Mặt khác nếu thám mã biết ϕ(n) thì chưa cần phân tích n đã tìm được số
1.4.3 Số mũ giải mã bí mật nhỏ
Muốn giảm bớt thời gian giải mã (hay thời gian tạo chữ ký), mọi người mong muốn sử dụng giá trị d nhỏ thay cho d ngẫu nhiên Bởi vì phép lũy thừa modulo tốn thời gian tuyến tính theo log2d, với d nhỏ nó có thể tăng tốc độ thực hiện lên
ít nhất 10 lần (với số modulo có 1024 bit) Không may, cách tấn công khôn ngoan của M Wiener [58] đã chỉ ra rằng, với d nhỏ sẽ dẫn đến việc phá được
Trang 35hoàn toàn hệ mật
Định lý 1.1 (của M Wiener [58]) Giả sử n = p.q với q < p < 2q Giả sử
d< (1/3)n1/ 4 Cho (n, e) với e.d = 1 mod ϕ(n) thì Oscar có thể khôi phục được d một cách hiệu quả
Vì thường n là số có 1024 bit, suy ra d ít nhất có 256 bit để tránh được tấn công này Điều đó là không thuận tiện cho một thiết bị có công suất thấp như thẻ thông minh, khi d nhỏ sẽ mang lại sự tiết kiệm đáng kể Tuy nhiên, không phải tất cả đều mất Wiener mô tả một kỹ thuật cho phép giải mã nhanh và không bị
ảnh hưởng của tấn công nói trên cụ thể là:
Sử dụng số e lớn: Giả sử thay cho việc rút gọn e mod ϕ(n), chúng ta sử dụng
khoá công khai (n, e’) Trong đó e’ = e + tϕ(n) với t lớn Rõ ràng rằng, e’ có thể
được sử dụng thay cho e để mã hoá Một tính toán đơn giản chỉ ra rằng, nếu e’ >
n1.5 thì d nhỏ mấy cũng không ảnh hưởng gì, tấn công trên không thực thi Không may, e’ lớn sẽ tăng thời gian mã hoá
Chúng ta không biết rằng, phương pháp nêu trên có an toàn không Chúng ta chỉ biết là tấn công của Wiener không hiệu quả đối với chúng
Định lý 1.1 đã được cải tiến hơn bởi Boneh và Durfee [13], đã chỉ ra rằng với
d < n0.292 thì người tấn công có thể khôi phục d có hiệu quả từ (n, e) Các kết quả này chứng tỏ rằng cận của Wiener là chưa chặt Dường như cận chính xác là d<
n0.5 Tại thời điểm này, đây là bài toán mở [19]
Bài toán mở 1.1 [19] Giả sử n = p.q và d < n0.5 Nếu Oscar biết (n, e) với e.d =
1 mod ϕ(n) và e < ϕ(n) thì có thể khôi phục d hiệu quả không ?
khai nhỏ được giới thiệu trong [17], [32] và [42], tấn công quảng bá của Hastad [35], tấn công thông báo có quan hệ của Franklin-Reiter [19], tấn công độn thêm của Coppersmith và một kết quả quan trọng về việc độn thêm của Coppersmith
được chứng minh trong [17] Thuật toán độn thêm ngẫu nhiên thuần tuý là có thể
Trang 36kéo dài bản rõ m bằng cách thêm một số bit ngẫu nhiên vào một đầu của bản rõ
m Một cách khác là tấn công khi lộ một phần khoá, giả sử (n, d) là khoá bí mật của hệ mật RSA, giả thiết bằng một cách nào đó Oscar có thể tìm được một phần các bit của d, ví dụ là một phần tư các bit của
d Liệu Oscar có thể khôi phục lại cả d hay không ? Điều ngạc nhiên, câu trả lời là có thể khi khoá công khai tương ứng nhỏ Cũng cần chú ý đến một lớp các tấn công khác là các tấn công cài đặt Thay cho việc tấn công cấu trúc bên dưới của hàm RSA, các tấn công này tập trung vào cách cài đặt của RSA [41] Ngoài
ra một số phương pháp tấn công khác cũng được giới thiệu trong [10], [25], [33]
1.5 Kết luận chương 1
Chương 1 đã trình bày khái quát về lý thuyết mật mã, mối quan hệ qua lại giữa mật mã và thám mã, là cơ sở cho các hướng nghiên cứu được trình bày trong chương 2 và chương 3 của luận án Nội dung của luận án tập trung vào giải quyết nâng cao độ an thực tiễn của hệ mật khóa công khai mà cụ thể là hệ mật RSA và nghiên cứu một số khía cạnh lý thuyết và ứng dụng lược đồ phân chia bí mật (chia sẻ bí mật)
Wiener [1990] đã chứng minh rằng, số mũ bí mật d nhỏ có thể được khôi
phục hiệu quả nếu
3
n d
ưởng đó, chương 2 của luận án đi nghiên cứu theo hướng xây dựng hệ mật RSA, sao cho tránh được những kiểu tấn công vào hệ RSA do việc sử dụng các số mũ giải mã nhỏ
Xuất phát từ yêu cầu thực tế hiện nay, có nhiều bí mật cần được bảo vệ, một
số trường hợp có những bí mật mà chỉ một số người nào đó mới được phép và có thể tiếp cận được bí mật Trong tính toán phân tán, cần nhiều thành viên trong tập
được quyền mới tính toán được bí mật, … Những vấn đề này có thể giải được bằng các lược đồ chia sẻ bí mật Vì vậy, chương 3 nghiên cứu một số vấn đề có liên quan, cụ thể là các lược đồ chia sẻ bí mật và ứng dụng
Trang 37Chương 2
Xây dựng hệ mật RSA an toàn với số
mũ giải m∙ lớn
Mật mã có rất nhiều ứng dụng trong cuộc sống hàng ngày của chúng ta, từ
hệ thống chống sao chép lậu đĩa DVD, các ứng dụng mã hoá dữ liệu, Tổ chức chứng thực CA (Certification Authority), Mạng riêng ảo VPN (Virtual Private Network), … cho đến các hệ thống mã hoá thông tin nhạy cảm của các quốc gia
Điều gì sẽ xảy ra nếu hệ thống mã hóa đang sử dụng bị vô hiệu hoá một cách có
hệ thống? Điều gì sẽ xảy ra nếu một quốc gia hay một tổ chức luôn có được khả năng giải mã mọi thông điệp đã được mã hóa luân chuyển trên Internet?
Vì vậy cần phải tập trung vào nghiên cứu, xây dựng những hệ mật có độ an toàn thực tiễn, trên cơ sở đó nẵm vững và làm chủ được những hệ mật sử dụng trong thực tế ở Việt Nam là rất cần thiết
2.1 Độ an toàn của hệ mật
Có hai quan điểm cơ bản về độ an toàn của hệ mật, đó là độ an toàn tính toán
và độ an toàn không điều kiện Độ an toàn tính toán (Computational Security) còn được gọi là độ an toàn thực tiễn (Practical Security) [46]
2.1.1 Độ an toàn thực tiễn
Độ an toàn thực tiễn là độ đo có liên quan đến những nỗ lực tính toán cần thiết, bởi những phương pháp tốt nhất hiện đã biết để phá vỡ một hệ mật, với giả thiết là hệ mật đã được nghiên cứu thấu đáo để xác định được những kiểu tấn công nào có liên quan (có thể có) Có thể nói một hệ mật có an toàn về mặt tính toán hay an toàn về mặt thực tiễn, nếu có một phương pháp tốt nhất phá hệ mật này nhưng đòi hỏi những tài nguyên tính toán (thời gian, thiết bị) lớn đến mức không chấp nhận được trong thực tiễn
Trang 38Các hệ mật có độ an toàn thực tiễn thường có liên quan tới các bài toán khó, nhưng ở đây chưa biết một chứng minh nào về sự tương đương, khẳng định rằng độ khó để phá vỡ hệ mật về cơ bản cũng khó như giải bài toán khó có liên quan (như bài toán phân tích số nguyên lớn ra thừa số nguyên tố hoặc bài toán tính loga rời rạc)
Nếu một hệ mật được xây dựng trên cơ sở một bài toán khó mà có được chứng minh tương đương nêu trên, ta nói nó thuộc lớp hệ mật có độ an toàn chứng minh được, là một lớp con của các hệ mật có độ an toàn tính toán
Độ an toàn của hệ mật RSA được dựa trên cơ sở là hầu như không có khả năng khôi phục hai số nguyên tố lớn p và q từ tích của chúng n = p.q Có nghĩa là dựa vào bài toán phân tích số nguyên lớn ra thừa số nguyên tố
Phần lớn các hệ mật khóa công khai và hệ mật đối xứng nổi tiếng nhất đang
sử dụng đều thuộc lớp này như:
- Hệ mật khóa công khai: Hệ mật RSA, hệ mật Elgamal
- Hệ mật đối xứng: DES là chuẩn mã hóa dữ liệu của Mỹ từ 1977 đến 1997 và chuẩn mã hóa dữ liệu nâng cao hiện nay của Hoa kỳ là AES
2.1.2 Độ an toàn không điều kiện
Một hệ mật được gọi là an toàn không điều kiện (còn được gọi là hệ mật hoàn hảo) nếu nó không thể bị phá thậm chí với những tài nguyên tính toán
không hạn chế của đối phương Với độ an toàn hoàn hảo (Perfect Security) thì sau khi quan sát bản mã, độ bất định (Uncertainty) trong bản rõ vẫn phải bằng với độ bất định về bản rõ trước đó Nói cách khác việc quan sát bản mã không cung cấp thông tin gì cho đối phương
Các hệ mật khóa công khai không thể có độ an toàn không điều kiện, vì khi cho trước bản mã c, về nguyên lý bản rõ có thể được khôi phục bằng cách
mã hóa tất cả các bản rõ có thể cho tới khi thu được c [46, tr43]
Trang 392.2 Xây dựng hệ mật RSA an toàn với số mũ giải mã lớn
Đối với kiểu tấn công hệ mật RSA khi dùng số mũ giải mã nhỏ, ta có những kết quả quan trọng sau
Trong [58], Wiener đã chứng minh rằng, với hệ RSA, trong đó n = p.q, q <
Thông thường, để xây dựng một hệ mật RSA, ta thực hiện các bước sau:
1 Chọn hai số nguyên tố lớn, phân biệt p và q Tính n =p.q và ϕ(n)
ii) Xác định các số nguyên tố p và q thỏa những điều kiện nào đó sao cho: d
được xác định duy nhất, là nghịch đảo nhân của e theo modulo ϕ(n) và d là số mũ giải mã lớn
Như vậy, để xây dựng hệ RSA tránh được các tấn công của Wiener [58], của Boneh và Durfee [14], bài toán được đặt ra cụ thể như sau:
“Chọn e trước Tìm điều kiện đủ mà p, q phải thỏa mãn sao cho d được
Trang 40xác định duy nhất và là số mũ giải mã lớn”
Vì e được chọn trước và luôn có e.d = k.ϕ( n) +1; e, d < ϕ( n), dễ dàng suy
ra k < e, một cách tự nhiên phải nghĩ tới là để có d lớn nhất có thể thì phải chọn k lớn nhất có thể, tức k = e-1
Với xuất phát điểm định hướng cho nghiên cứu và cách đặt bài toán cụ thể
để giải quyết như trên, nên trong [31] đã đưa ra điều kiện chọn p và q sao cho có
Sử dụng điều kiện (2.1), trong [31] đã đưa ra thuật toán xây dựng hệ RSA
với số mũ giải mã lớn, ta gọi đó là thuật toán EMD (L.H Encinas, J.M.Masqué and A.Q Dios)
2.2.1 Thuật toán EMD