Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 71 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
71
Dung lượng
1,18 MB
Nội dung
i
®¹i häc th¸i nguyªn
Tr-êng ®¹i häc C¤NG NGHÖ TH¤NG TIN Vµ TRUYÒN TH¤NG
VŨ QUỐC THỊNH
TÌM HIỂU MỘT SỐ PHƯƠNG PHÁP
THÁM MÃ HỆ MẬT MÃ KHÓA CÔNG KHAI
ỨNG DỤNG TRONG BẢO MẬT DỮ LIỆU
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
th¸i nguyªn - n¨m 2014
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
ii
®¹i häc th¸i nguyªn
Tr-êng ®¹i häc C¤NG NGHÖ TH¤NG TIN Vµ TRUYÒN TH¤NG
VŨ QUỐC THỊNH
TÌM HIỂU MỘT SỐ PHƯƠNG PHÁP
THÁM MÃ HỆ MẬT MÃ KHÓA CÔNG KHAI
ỨNG DỤNG TRONG BẢO MẬT DỮ LIỆU
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số: 60.48.01
Ngƣời hƣớng dẫn khoa học: TS. NGUYỄN DUY MINH
Thái Nguyên, 2014
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
iii
LỜI CẢM ƠN
Lời đầu tiên, em xin đƣợc gửi lời cảm ơn sâu sắc đến TS.Nguyễn Duy Minh,
ngƣời thầy đã giúp đỡ em trong suốt quá trình làm khóa luận, đồng thời cũng là
ngƣời thầy đã hƣớng dẫn em những bƣớc đi đầu tiên để khám phá một lĩnh vực đầy
bí ẩn và thách thức – lĩnh vực an toàn và bảo mật dữ liệu.
Em xin đƣợc cảm ơn các thầy, các cô đã giảng dạy em trong suốt quá trình
học tập. Những kiến thức mà các thầy các cô đã dạy sẽ mãi là hành trang giúp em
vững bƣớc trong tƣơng lai.
Em cũng xin đƣợc gửi lời cảm ơn đến tập thể lớp CK11G, một tập thể lớp
đoàn kết với những ngƣời bạn không chỉ học giỏi mà còn luôn nhiệt tình, những
ngƣời bạn đã giúp đỡ em trong suốt quá trình học tập.
Cuối cùng em xin đƣợc gửi lời cảm ơn sâu sắc tới gia đình em, những ngƣời
luôn kịp thời động viên, khích lệ em, giúp đỡ em vƣợt qua những khó khăn trong
cuộc sống.
Thái Nguyên, tháng 08 năm 2014
Học viên
Vũ Quốc Thịnh
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
iv
ĐỊNH NGHĨA, VIẾT TẮT
Advanced Encryption Standard (AES)
Tiêu chuẩn tiên tiến
Asymmetric key cryptography
Mã hóa bất đối xứng
Authentication
Tính xác thực
Cipher text
Bản mã
Concatenate frequency of pairs
Tần số bộ đôi móc xích
Confidentiality
Tính bảo mật
Cryptannalysis
Thám mã
Cryptography
Mật mã
Cryptology
Mật mã học
Data Encryption Standard (DES)
Tiêu chuẩn mã hóa dữ liệu
Decryption
Giải mã
Encryption
Mã hóa
Frequency
Tấn số
Integrity
Tính toàn vẹn
Key seed
Mầm khóa
Most Likelihood Ratio (MLR)
Tỷ số hợp lý cực đại
Non – repudation
Tính không thể chối bỏ
Plain text
Bản rõ
Private key
Khóa bí mật
Public key
Khóa công khai
Relative frequency
Tần số tƣơng đối
Rivest, Shamir, & Adleman (RSA)
Symmetric - key cryptography
Mã hóa đối xứng
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
v
MỤC LỤC
LỜI CẢM ƠN .................................................................................................................. i
ĐỊNH NGHĨA, VIẾT TẮT ............................................................................................ iv
MỤC LỤC ....................................................................................................................... v
DANH MỤC HÌNH VẼ...............................................................................................viii
LỜI NÓI ĐẦU................................................................................................................. 1
CHƢƠNG 1: TỔNG QUAN VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ THÁM MÃ . 3
1.1. Giới thiệu..........................................................................................................3
1.2. Các khái niệm cơ bản .......................................................................................3
1.2.1. Mật mã ......................................................................................................3
1.2.2. Mật mã học ................................................................................................4
1.2.3. Bản rõ ........................................................................................................4
1.2.4. Bản mã ......................................................................................................4
1.2.5. Mã hóa .......................................................................................................4
1.2.6. Giải mã ......................................................................................................4
1.2.7. Khái niệm hệ mật mã ................................................................................5
1.3. Phân loại các hệ mật mã ...................................................................................6
1.3.1. Mã hóa đối xứng .......................................................................................6
1.3.2. Mã hóa bất đối xứng .................................................................................7
1.4. Tiêu chuẩn đánh giá hệ mật mã......................................................................10
1.5. Hệ mật mã RSA .............................................................................................10
1.5.1. Mô tả hệ mật RSA ...................................................................................11
1.5.2. Thực thi hệ RSA......................................................................................13
1.5.3. Độ an toàn của hệ RSA ...........................................................................14
1.6. Thám mã .........................................................................................................15
1.6.1. Khái niệm ................................................................................................15
1.6.2. Các bƣớc cơ bản để tiến hành thám mã ..................................................19
1.7. Kết luận ..........................................................................................................26
CHƢƠNG 2: CÁC PHƢƠNG PHÁP THÁM MÃ HỆ MẬT MÃ KHÓA CÔNG
KHAI ............................................................................................................................. 27
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
vi
2.1. Tính an toàn của hệ mật mã ...........................................................................27
2.1.1. An toàn vô điều kiện ...............................................................................27
2.1.2. An toàn đƣợc chứng minh .......................................................................27
2.1.3. An toàn tính toán .....................................................................................27
2.2. Các kiểu thám mã ...........................................................................................28
2.2.1. Tấn công dạng 1: Tìm cách xác định khóa bí mật ..................................28
2.2.2. Tấn công dạng 2: Tìm cách xác định bản rõ ...........................................30
2.3. Một số sơ hở dẫn đến tấn công hệ mật RSA ..................................................32
2.3.1. Biết (n) tìm đƣợc p, q ............................................................................33
2.3.2. Biết số mũ giải a ......................................................................................33
2.3.3. Giao thức công chứng .............................................................................34
2.3.4. Giao thức số mũ công khai nhỏ ..............................................................35
2.3.5. Giao thức số mũ bí mật nhỏ ....................................................................37
2.3.6. Trƣờng hợp các tham số p-1 và q-1 có các ƣớc nguyên tố nhỏ ..............39
2.4. Kết luận ..........................................................................................................42
CHƢƠNG 3: THỬ NGHIỆM PHƢƠNG PHÁP THÁM MÃ VỚI HỆ RSA ............ 44
3.1. Mô tả bài toán tấn công RSA sử dụng modul chung .....................................44
3.2. Thuật toán tấn công giao thức modul n chung ...............................................44
3.2.1. Kiểu tấn công thứ nhất: Tấn công dựa trên các số mũ mã hóa nguyên tố
cùng nhau ..........................................................................................................44
3.2.2. Kiểu tấn công thứ hai: Phân tích số modul n bằng cách tìm căn bậc hai
không tầm thƣờng của 1 mod n .........................................................................45
3.2.3. Kiểu tấn công thứ ba: Sử dụng khóa công khai và bí mật của mình để
sinh ra khóa bí mật của ngƣời dùng khác .........................................................47
3.3. Thử nghiệm chƣơng trình...............................................................................48
3.3.1. Cơ sở lý thuyết ........................................................................................48
3.2.2. Thuật toán................................................................................................49
3.3.3. Đánh giá kết quả...................................... Error! Bookmark not defined.
3.3.4. Thử nghiệm .............................................................................................51
3.4. Kết luận ..........................................................................................................60
KẾT LUẬN ................................................................................................................... 61
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
vii
TÀI LIỆU THAM KHẢO ............................................................................................ 62
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
viii
DANH MỤC HÌNH VẼ
Hình 1.1: Quá trình mã hóa và giải mã ........................................................................... 5
Hình 1.2: Mã hóa thông điệp sử dụng khóa công khai P ............................................... 8
Hình 1.3: Giải mã thông điệp sử dụng khóa riêng của ngƣời nhận ............................... 8
Hình 1.4: Mã hóa thông điệp sử dụng khóa bí mật S để mã thông điệp và................... 9
Hình 1.5: Giải mã thông điệp sử dụng khóa bí mật S để giải mã thông điệp và ........... 9
Hình 1.6: Sơ đồ biểu diễn thuật toán mã hóa RSA ...................................................... 13
Hình 3.1: Lƣu đồ giải thuật thám mã RSA ................................................................... 50
Hình 3.2: Giao diện chính của chƣơng trình thám mã RSA ........................................ 52
Hình 3.3: Nhập các tham số RSA ................................................................................ 53
Hình 3.4: Tính khóa bí mật d1, d2 ................................................................................ 54
Hình 3.5: Mã hóa ........................................................................................................... 55
Hình 3.6: Mã hóa thông điệp ........................................................................................ 56
Hình 3.7: Thám mã tìm ra khóa bí mật d1.................................................................... 57
Hình 3.8: Giải mã tìm ra bản rõ theo khóa d1 .............................................................. 58
Hình 3.9: Giải mã tìm ra thông điệp ............................................................................. 59
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
1
LỜI NÓI ĐẦU
Từ khi con ngƣời có nhu cầu trao đổi thông tin, thƣ từ với nhau thì nhu cầu
giữ bí mật và bảo mật tính riêng tƣ của những thông tin, thƣ từ đó cũng nảy sinh.
Hình thức thông tin trao đổi phổ biến sớm nhất là dƣới dạng các văn bản, để giữ bí
mật của thông tin ngƣời ta đã sớm nghĩ đến cách che dấu nội dung các văn bản bằng
các biến dạng các văn bản đó để ngƣời ngoài đọc nhƣng không hiểu đƣợc, đồng thời
có cách khôi phục lại nguyên dạng ban đầu để ngƣời trong cuộc vẫn hiểu đƣợc; theo
cách gọi ngày nay thì dạng biến đổi của văn bản đƣợc gọi là mật mã của văn bản,
cách lập mã cho một văn bản đƣợc gọi là phép lập mã, còn cách khôi phục lại
nguyên dạng ban đầu gọi là phép giải mã. Phép lập mã và phép giải mã đƣợc thực
hiện nhờ một chìa khóa riêng nào đó mà chỉ những ngƣời trong cuộc đƣợc biết và
nó đƣợc gọi là khóa lập mã. Ngƣời ngoài dù có lấy đƣợc bản mật mã trên đƣờng
truyền mà không có khóa mật mã thì cũng không thể hiểu đƣợc nội dung của văn
bản truyền đi.
Trong số các phƣơng pháp đảm bảo an toàn thông tin thì phƣơng pháp mật
mã hóa (Cryptography) đƣợc sử dụng rộng rãi và đảm bảo an toàn nhất. Tuy nhiên
phƣơng pháp mật mã hóa không tốt (mặc dù việc quản lý khóa mã đƣợc giả thiết là
an toàn) thì rất nguy hiểm. Vậy làm thế nào để đánh giá đƣợc chất lƣợng của một hệ
mã là tốt? Có nhiều phƣơng pháp đánh giá chất lƣợng của một hệ mật nhƣ phƣơng
pháp Entropy của Shannon, nhƣng phƣơng pháp tốt nhất và trực quan nhất, đó là
phƣơng pháp phân tích trực tiếp bản mã khi không có khóa mã trong tay mà ngƣời
ta thƣờng gọi là thám mã (Cryptannalysis).
Hiện nay thám mã cũng là một lĩnh vực cũng thƣờng đƣợc quan tâm nghiên
cứu nhƣng ít khi đƣợc công khai, hoặc công khai không đầy đủ. Sự hiểu biết về các
phƣơng pháp thám mã hiện nay ở trong nƣớc nói chung đang còn rất hạn chế. Tuy
đã có nhiều công trình nghiên cứu về thám mã nhƣng việc đƣa ra hệ quy trình thám
mã và chƣơng trình thám mã vẫn ở mức độ hẹp và khó khăn trong ứng dụng thực tế.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
2
Xuất phát từ thực tế đó, để góp phần tăng cƣờng độ an toàn cho các hệ mật
mã hiện đại nhằm góp phần bảo vệ an ninh thông tin trong tình hình mới nên em đã
chọn đề tài “Tìm hiểu một số phương pháp thám mã hệ mật mã khóa công khai
ứng dụng trong bảo mật dữ liệu” nhằm nghiên cứu và ứng dụng.
Trong khuôn khổ đề tài đƣợc giao, luận văn đƣợc trình bày trong 3 chƣơng.
Có phần mở đầu, phần kết luận, phần mục lục, tài liệu tham khảo. Các nội dung cơ
bản của luận văn đƣợc trình bày nhƣ sau:
Chƣơng 1: “Tổng quan về mật mã khóa công khai và thám mã”. Ở chƣơng
này, luận văn trình bày chi tiết về lịch sử cũng nhƣ các khái niệm về các hệ mã
thuộc dòng mã truyền thống cũng nhƣ dòng mã đối xứng, mã bất đối xứng giúp
chúng ta hiểu cơ sở lý thuyết về các hệ mật mã. Vấn đề thám mã nói chung và thám
mã đối với hệ mật RSA cũng đƣợc em trình bày kỹ trong chƣơng này.
Chƣơng 2: “Các phƣơng pháp thám mã hệ mật mã khóa công khai”.
Trên cơ sở hiểu các hệ mật đƣợc trình bày ở chƣơng 1, để có cái nhìn tổng quan về
vấn đề thám mã đối với hệ mật RSA và trên cơ sở trình bày các phƣơng pháp thám
mã đã tổng kết lại các phƣơng pháp và đánh giá kết quả của phƣơng pháp nhƣ: các
tấn công cơ bản - modul chung, tấn công vào số mũ công khai hoặc số mũ bí mật
nhỏ, giao thức công chứng...
Chƣơng 3: “Thử nghiệm phƣơng pháp thám mã với hệ RSA”. Qua nghiên
cứu các phƣơng pháp thám mã trong chƣơng 2, chƣơng 3 đề xuất phƣơng pháp tấn
công giao thức sử dụng hệ mật mã RSA có modul n chung. Để minh chứng cho
phƣơng pháp này, luận văn xây dựng thuật toán và cài đặt chƣơng trình thử nghiệm
trong hệ bảo mật.
Do mức độ phức tạp của công việc thám mã là rất lớn nên bài toán đặt ra với
giả thiết ngƣời thám mã biết đƣợc các thông tin và bản mã đƣợc mã hóa bởi RSA từ
bản rõ tƣơng ứng là một thông điệp dạng Text. Từ giả thiết này xây dựng thuật toán
để xác định khóa mật K đã sử dụng để mã hóa cũng nhƣ tìm ra bản rõ tƣơng ứng.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
3
CHƢƠNG 1
TỔNG QUAN VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ THÁM MÃ
1.1. Giới thiệu
Mật mã đã đƣợc con ngƣời sử dụng từ lâu đời. Các hình thức mật mã sơ khai đã
đƣợc tìm thấy từ khoảng bốn nghìn năm trƣớc trong nền văn minh Ai Cập cổ đại.Trải
qua hàng nghìn năm lịch sử, mật mã đã đƣợc sử dụng rộng rãi ở khắp nơi trên thế giới
từ Đông sang Tây để giữ bí mật cho việc giao lƣu thông tin trong nhiều lĩnh vực hoạt
động giữa con ngƣời và các quốc gia, đặc biệt trong các lĩnh vực quân sự, chính trị,
ngoại giao. Mật mã trƣớc hết là một loại hoạt động thực tiễn, nội dung chính của nó là
để giữ bí mật thông tin. Ví dụ muốn gửi một văn bản từ một ngƣời gửi A đến một
ngƣời nhận B, A phải tạo cho văn bản đó một bản mã mật tƣơng ứng và thay vì gửi văn
bản rõ thì A chỉ gửi cho B bản mã mật, B nhận đƣợc bản mã mật và khôi phục lại văn
bản rõ để hiểu đƣợc thông tin mà A muốn gửi cho mình. Do văn bản gửi đi thƣờng
đƣợc chuyển qua các con đƣờng công khai nên ngƣời ngoài có thể “lấy trộm” đƣợc,
nhƣng vì đó là bản mật mã nên không đọc hiểu đƣợc; Còn A có thể tạo ra bản mã mật
và B có thể giải bản mã mật thành bản rõ để hiểu đƣợc là do hai ngƣời đã có một thoả
thuận về một chìa khóa chung, chỉ với khóa chung này thì A mới tạo đƣợc bản mã mật
từ bản rõ và B mới khôi phục đƣợc bản rõ từ bản mã mật. Khóa chung đó đƣợc gọi là
khóa mật mã. Để thực hiện đƣợc một phép mật mã, ta còn cần có một thuật toán biến
bản rõ cùng với khóa mật mã thành bản mã mật và một thuật toán ngƣợc lại biến bản
mật cùng với khóa mật mã thành bản rõ. Các thuật toán đó đƣợc gọi tƣơng ứng là thuật
toán lập mã và thuật toán giải mã. Các thuật toán này thƣờng không nhất thiết phải giữ
bí mật, mà cái luôn cần đƣợc giữ bí mật là khóa mật mã. Trong thực tiễn, có những
hoạt động ngƣợc lại với hoạt động bảo mật là khám phá bí mật từ các bản mã “lấy
trộm” đƣợc, hoạt động này thƣờng đƣợc gọi là mã thám hay phá khóa.
1.2. Các khái niệm cơ bản
1.2.1. Mật mã
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
4
Mật mã (Cryptography) là tập hợp mọi phƣơng pháp (hoặc quy tắc) biến đổi
nào đó nhằm chuyển các thông báo (messages) dƣới dạng nhận thức đƣợc nội dung
(nhƣ chữ viết, tiếng nói, hình vẽ, hình ảnh…) thành dạng bí mật mà những ngƣời
ngoài cuộc không hiểu đƣợc nội dung nếu họ không biết đƣợc phƣơng pháp (hoặc
quy tắc) biến đổi đó.
1.2.2. Mật mã học
Mật mã học (Cryptology) là một bộ môn khoa học chuyên nghiên cứu về mật
mã và thám mã.
1.2.3. Bản rõ
Ta hiểu bản rõ (Plain text) tức là một bản thông báo có mang nội dung thông
tin mà ngƣời đọc có thể hiểu đƣợc nó nói cái gì hoặc là nó có ý nghĩa rõ ràng. Bản
rõ (bản thông báo) có thể tồn tại dƣới dạng chữ viết, tiếng nói, hình vẽ, biểu bảng…
tƣơng ứng ta sẽ có khái niện mã ký tự, mã thoại, mã fax, mã dữ liệu…
Bản rõ thƣờng đƣợc dùng biểu diễn (viết) dƣới dạng một dãy các chữ cái
theo quy tắc cú pháp nào đó hoặc ký hiệu thuộc bảng chữ cái A hữu hạn đƣợc xác
định trƣớc. Để trình bày, ta ký hiệu M là không gian các bản rõ (message space). Ví
dụ: M có thể là gồm dãy nhị phân, các văn bản tiếng Việt, hoặc mã chƣơng trình
của máy tính…
1.2.4. Bản mã
Bản mã (Cipher text) thƣờng cũng đƣợc biểu diễn dƣới dạng một dãy các ký
hiệu có thể cũng thuộc A nhƣng không theo một quy tắc cú pháp nào cả. Ngƣời ta
nói rằng đó là dãy ngẫu nhiên. Ta ký hiệu tập tất cả các bản mã ứng với các bản rõ
m là C.
1.2.5. Mã hóa
Mã hóa (Encryption) là quá trình chuyển đổi thông tin từ bản rõ sang bản
mã. Trong quá trình này thông tin trong bản rõ sẽ đƣợc ẩn đi và do đó bất kỹ một
ngƣời nào đọc thông điệp này cũng không hiểu đƣợc trừ trƣờng hợp ngƣời đó có thể
giải mã (PlainText → CipherText)
1.2.6. Giải mã
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
5
Là quá trình giải mã (Decryption) để lấy lại thông tin ban đầu, ngƣợc với quá
trình mã hóa (CipherText → PlainText).
1.2.7. Khái niệm hệ mật mã
Hệ mật mã đƣợc định nghĩa là một bộ năm (P, C, K, E, D), trong đó:
- P (Plain text) là một tập hợp hữu hạn các các bản rõ có thể, nó đƣợc gọi là
không gian bản rõ.
- C (Cipher text) tập hữu hạn các bản mã có thể, nó còn đƣợc gọi là không
gian các bản mã. Mỗi phần tử của C có thể nhận đƣợc bằng cách áp dụng phép mã
hóa Ek lên một phần tử của P, với k ∈ K.
- K (Key) là tập hữu hạn các khóa có thể hay còn gọi là không gian khóa.
Đối với mỗi phần tử k của K đƣợc gọi là một khóa. Số lƣợng của không gian khóa
phải đủ lớn để kẻ địch không có đủ thời gian để thử mọi khóa có thể (phƣơng pháp
vét cạn).
- E (Encryption) là tập các hàm lập mã
- D (Decryption) là tập các hàm giải mã.
Với mỗi k ∈ K, có một hàm lập mã ek ∈ E, ek : P → C và một hàm giải mã dk
∈ D, dk: C → P sao cho
dk(ek(x)) = x , ∀x ∈ P
Hình 1.1: Quá trình mã hóa và giải mã
Hệ mật hiện đại cần phải đáp ứng đƣợc những yêu cầu sau:
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
6
- Tính bảo mật (Confidentiality): đảm bảo dữ liệu đƣợc truyền đi một cách
an toàn và không bị lộ nếu nhƣ ai đó cố tình muốn có đƣợc thông điệp gốc ban đầu.
Chỉ những ngƣời đƣợc phép mới có khả năng đọc đƣợc nội dung thông tin ban đầu.
- Tính xác thực (Authentication): giúp cho ngƣời nhận thông điệp các định
đƣợc chắc chắn thông điệp mà họ nhận là thông điệp gốc ban đầu. Kẻ giả mạo không
thể giả dạng một ngƣời khác hay nói cách khác không thể mạo danh để gửi thông
điệp. Ngƣời nhận có khả năng kiểm tra nguồn gốc thông điệp mà họ nhận đƣợc.
- Tính toàn vẹn (Integrity): ngƣời nhận thông điệp có thể kiểm tra thông điệp
không bị thay đổi trong quá trình truyền đi. Kẻ giả mạo không thể có khả năng thay
thế dữ liệu ban đầu bằng dữ liệu giả mạo.
- Tính không thể chối bỏ (Non - repudation): ngƣời gửi, ngƣời nhận không
thể chối bỏ sau khi đã gửi hoặc nhận thông điệp.
1.3. Phân loại các hệ mật mã
Công nghệ thông tin phát triển, việc sử dụng máy tính gia tăng cùng với tốc độ
phát triển mạnh mẽ của Internet càng làm tăng nguy cơ bị đánh cắp các thông tin độc
quyền. Với mối đe dọa đó có nhiều biện pháp để đối phó song mã hóa là một phƣơng
pháp chính để có thể bảo vệ các giá trị của thông tin điện tử. Có thể nói mã hóa là công
cụ tự động, quan trọng nhất cho an ninh mạng và truyền thông. Có hai hình thức mã
hóa đƣợc sử dụng phổ biến là mã hóa đối xứng (symmetric - key cryptography) và mã
hóa bất đối xứng (asymmetric key cryptography).
1.3.1. Mã hóa đối xứng
Thuật toán đối xứng hay còn gọi là thuật toán mã hóa cổ điển. Thuật toán
này còn có nhiều tên gọi khác nhƣ thuật toán khóa bí mật, thuật toán đơn giản, thuật
toán một khóa.
Là thuật toán mà tại đó khóa mã hóa có thể tính toán ra đƣợc từ khóa giải mã.
Trong rất nhiều trƣờng hợp, khóa mã hóa và khóa giải mã là giống nhau.
Ƣu điểm:
- Xử lý nhanh
Nhƣợc điểm:
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
7
- Các phƣơng pháp mã hóa cổ điển đòi hỏi ngƣời mã hóa và ngƣời giải mã
phải cùng chung một khóa. Khi đó khóa phải giữ bí mật tuyệt đối, do vậy ta dễ dàng
xác định đƣợc một khóa nếu biết khóa kia.
- Hệ mã hóa đối xứng không bảo vệ đƣợc sự an toàn nếu có xác suất cao
khóa ngƣời gửi bị lộ. Trong hệ khóa phải đƣợc gửi đi trên kênh an toàn nếu kẻ địch
tấn công trên kênh này có thể phát hiện ra khóa.
- Vấn đề quản lý và phân phối khóa là khó khăn và phức tạp khi sử dụng hệ
mã hóa 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 đề
khóa. Việc thay đổi khóa là rất khó và rất dễ bị lộ.
- Khuynh hƣớng cung cấp khóa dài mà nó phải đƣợc thay đổi thƣờng xuyên
cho mọi ngƣờ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ới sự phát triển của hệ mật mã cổ điển.
1.3.2. Mã hóa bất đối xứng
Để giải quyết vấn đề phân phối và thoả thuận khóa của mật mã khóa đối
xứng, năm 1976 Diffie và Hellman đã đƣa ra khái niệm về hệ mật mã khóa công
khai và một phƣơng pháp trao đổi công khai để tạo ra một khóa bí mật chung mà
tính an toàn đƣợc bảo đảm bởi độ khó của một bài toán toán học cụ thể (là bài toán
tính “logarit rời rạc”). Hệ mật mã khóa công khai hay còn đƣợc gọi là hệ mật mã
phi đối xứng sử dụng một cặp khóa, khóa mã hóa còn gọi là khóa công khai
(publickey) và khóa giải mã đƣợc gọi là khóa bí mật hay khóa riêng (private key).
Trong hệ mật này, khóa mã hóa khác với khóa giải mã. Về mặt toán học thì từ khóa
công rất khó tính đƣợc khóa riêng. Biết đƣợc khóa này không dễ dàng tìm đƣợc
khóa kia. Khóa giải mã đƣợc giữ bí mật trong khi khóa mã hóa đƣợc công bố công
khai. Một ngƣời bất kỳ có thể sử dụng khóa công khai để mã hóa tin tức, nhƣng chỉ
có ngƣời nào có đúng khóa giải mã mới có khả năng xem đƣợc bản rõ.
Ngƣời gửi A sẽ mã hóa thông điệp bằng khóa công của ngƣời nhận và ngƣời
nhận B sẽ giải mã thông điệp với khóa riêng tƣơng ứng của mình.
Quá trình này đƣợc mô tả trong hình 1.2 và 1.3.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
8
Hình 1.2: Mã hóa thông điệp sử dụng khóa công khai P
Hình 1.3: Giải mã thông điệp sử dụng khóa riêng của người nhận
Việc phát minh ra phƣơng pháp mã công khai tạo ra một cuộc “cách mạng”
trong công nghệ an toàn thông tin điện tử. Nhƣng thực tiễn triễn khai cho thấy tốc độ
mã hóa khối dữ liệu lớn bằng các thuật toán mã hóa công khai chậm hơn rất nhiều so
với hệ mã hóa đối xứng. Ví dụ, để đạt đƣợc độ an toàn nhƣ các hệ mã đối xứng mạnh
cùng thời, RSA đòi hỏi thời gian cho việc mã hóa một văn bản lâu hơn gấp hàng ngàn
lần. Do đó, thay bằng việc mã hóa văn bản có kích thƣớc lớn bằng lƣợc đồ khóa công
khai thì văn bản này sẽ đƣợc mã hóa bằng một hệ mã đối xứng có tốc độ cao nhƣ
DES, IDEA,…sau đó khóa đƣợc sử dụng trong hệ mã đối xứng sẽ đƣợc mã hóa sử
dụng mật mã khóa công khai. Phƣơng pháp này rất khả thi trong việc mã và giải mã
những văn bản có kích thƣớc lớn nhƣ đƣợc mô tả trong hình 1.4 và 1.5.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
9
Hình 1.4: Mã hóa thông điệp sử dụng khóa bí mật S để mã thông điệp và
khóa công khai P để mã khóa bí mật S.
Hình 1.5: Giải mã thông điệp sử dụng khóa bí mật S để giải mã thông điệp và
khóa riêng P để giải mã khóa bí mật S.
Ƣu và nhƣợc điểm của hệ mật mã khóa công khai
Vấn đề còn tồn đọng của hệ mật mã khóa đối xứng đƣợc giải quyết nhờ hệ
mật mã khóa công khai. Chính ƣu điểm này đã thu hút nhiều trí tuệ vào việc đề
xuất, đánh giá các hệ mật mã công khai. Nhƣng do bản thân các hệ mật mã khóa
công khai đều dựa vào các giả thiết liên quan đến các bài toán khó nên đa số các hệ
mật mã này đều có tốc độ mã dịch không nhanh lắm. Chính nhƣợc điểm này làm
cho các hệ mật mã khóa công khai khó đƣợc dùng một cách độc lập.
Một vấn đề nữa nảy sinh khi sử dụng các hệ mật mã khóa công khai là việc
xác thực mà trong mô hình hệ mật mã đối xứng không đặt ra. Do các khóa mã công
khai đƣợc công bố một cách công khai trên mạng cho nên việc đảm bảo rằng “khóa
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
10
đƣợc công bố có đúng là của đối tƣợng cần liên lạc hay không?” là một kẽ hở có thể
bị lợi dụng. Vấn đề xác thực này đƣợc giải quyết cũng chính bằng các hệ mật mã
khóa công khai. Nhiều thủ tục xác thực đã đƣợc nghiên cứu và sử dụng nhƣ
Kerberos, X.509… Một ƣu điểm nữa của các hệ mật mã khóa công khai là các ứng
dụng của nó trong lĩnh vực chữ ký số, cùng với các kết quả về hàm băm, thủ tục ký
để bảo đảm tính toàn vẹn của một văn bản đƣợc giải quyết.
1.4. Tiêu chuẩn đánh giá hệ mật mã
Để đánh giá một hệ mật mã ngƣời ta thƣờng đánh giá thông qua các tính chất sau:
Độ an toàn: Một hệ mật đƣợc đƣa vào sử dụng điều đầu tiên phải có độ an
toàn cao. Ƣu điểm của mật mã là có thể đánh giá đƣợc độ an toàn thông qua độ an
toàn tính toán mà không cần phải cài đặt. Một hệ mật đƣợc coi là an toàn nếu để phá
hệ mật mã này phải dùng n phép toán. Mà để giải quyết n phép toán cần thời gian
vô cùng lớn, không thể chấp nhận đƣợc.
Tốc độ mã và giải mã: Khi đánh giá hệ mật mã chúng ta phải chú ý đến tốc
độ mã và giải mã. Hệ mật tốt thì thời gian mã và giải mã nhanh.
Phân phối khóa: Một hệ mật mã phụ thuộc vào khóa, khóa này đƣợc truyền
công khai hay truyền khóa bí mật. Phân phối khóa bí mật thì chi phí sẽ cao hơn so
với các hệ mật có khóa công khai. Vì vậy đây cũng là một tiêu chí khi lựa chọn hệ
mật mã.
1.5. Hệ mật mã RSA
Có nhiều hệ thống khóa công khai đƣợc triển khai rộng rãi nhƣ hệ RSA, hệ
ElGamal sử dụng giao thức trao đổi khóa Diffie-Hellman và nổi lên trong những
năm gần đây là hệ đƣờng cong Elliptic. Trong số các hệ mật mã trên thì hệ RSA là
hệ đƣợc cộng đồng chuẩn quốc tế và công nghiệp chấp nhận rộng rãi trong việc
thực thi mật mã khóa công khai.
Hệ mật mã RSA, do Rivest, Shamir và Adleman tìm ra, đã đƣợc công bố lần
đầu tiên vào tháng 8 năm 1977 trên tạp chí Scientific American. Hệ mật mã RSA
đƣợc sử dụng rộng rãi trong thực tiễn đặc biệt cho mục đích bảo mật và xác thực dữ
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
11
liệu số. Tính bảo mật và an toàn của chúng đƣợc bảo đảm bằng độ phức tạp của một
bài toán số học nổi tiếng là bài toán phân tích số nguyên thành các thừa số nguyên tố.
Hệ mật mã RSA đƣợc sử dụng để cung cấp sự bảo mật và đảm bảo tính xác
thực của dữ liệu số. Hiện nay RSA đƣợc sử dụng trong nhiều hệ thống thƣơng mại.
Các dịch vụ web server và web browser sử dụng nó để đảm bảo an toàn việc truyền
thông web, nó đƣợc sử dụng để đảm bảo bảo mật và xác thực của Email, đảm bảo
an toàn cho các phiên truy nhập từ xa và là bộ phận quan trọng của các hệ thống
thanh toán thẻ tín dụng điện tử.
Tóm lại, RSA thƣờng đƣợc sử dụng trong các ứng dụng cần sự bảo đảm an
toàn và bảo mật dữ liệu số.
1.5.1. Mô tả hệ mật RSA
Hệ mật mã RSA sử dụng các tính toán trong Zn, trong đó n là tích của hai số
nguyên tố phân biệt p, q và (n) = (p-1)(q-1). Mô tả hình thức của hệ mật này nhƣ sau:
Hệ mật mã RSA đƣợc mô tả nhƣ sau:
Cho n = p*q với p, q là số nguyên tố lớn. Đặt P = C = Zn
Chọn b nguyên tố cùng nhau với (n), (n) = (p-1)(q-1)
Ta định nghĩa K = {(n, b, a): a*b
1mod (n)}
Trong đó (n, b) là công khai, a là bí mật
Với mỗi K = (n, a, b), mỗi x ∈ P, y ∈ C, định nghĩa:
Hàm mã hóa:
y = xb mod n
Hàm giải mã:
x = ya mod n
trong đó (x, y
Zn).
Các giá trị n, b công khai còn các giá trị p, q, a giữ bí mật.
Ta hãy kiểm tra xem các phép mã và giải mã có phải là các phép toán nghịch
đảo của nhau hay không.
Vì ab
1(mod (n)) nên ta có ab = t. (n) + 1 với một số nguyên t
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
1 nào đó.
http://www.lrc-tnu.edu.vn/
12
Giả sử x
Zn ;
a. Trƣờng hợp (x,n) =1
Khi đó ta có:
x
(n)
mod n = 1.
ya modn
(xb)a mod n
xt
(n)+1
((x
(n)
mod n
mod n)t ).x mod n
1t .x (mod n)
x (mod n)
b. Trƣờng hợp (x,n)= d>1
d = p hoặc d = q.
Giả sử d = p, khi đó x = hp với 0 < h < q và (h,n) = 1, suy ra:
ya modn
(xb)a mod n
Do (h,n) = 1 nên hab modn
(hab modn)( pab modn) modn
h
Bên cạnh đó,
pabmodn = pabmod(p.q)
pab mod q
p.p
(n)
p.p
(p). (q)
p.(p
Vậy ya modn
mod q
(p)
)
mod q
(q)
mod q
p
h.p modn = h.p = x.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
13
1.5.2. Thực thi hệ RSA
Chọn 2 số nguyên tố lớn p và q
(pq)
Tính n = p*q
Bản rõ m
Tính (n) = (p - 1)(q - 1)
Khóa công khai
(e, n)
Chọn khóa công khai e
(0 < e < (n), gcd (e, (n)) = 1
)
c = me mod n
Bản mã c
Tính khóa bí mật d
d = e-1 mod n
(dùng thuật toán Euclide)
Khóa bí mật
(d, n)
m = cd mod n
Hình 1.6: Sơ đồ biểu diễn thuật toán mã hóa RSA
Bản rõ gốc m
mm
Sau đây là một ví dụ về cách thức thực hiện của hệ RSA (tất nhiên không mật).
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
14
Giả sử Bob chọn p = 101 và q = 113. Khi đó n = 11413 và (n) = 100 x 112
= 11200. Bob chọn ngẫu nhiên một số b và kiểm tra điều kiện UCLN ( (n), b) = 1
bằng thuật toán Euclide. Giả sử Bob chọn b = 3533, khi đó theo thuật toán Euclid
mở rộng: b-1 = 6597 mod 11200.
Bởi vậy, số mũ bí mật để giải mã của Bob là a = 6597.
Bob sẽ công bố n = 11413 và b = 3533 trong một danh bạ khóa công khai.
Bây giờ, giả sử Alice muốn gửi bản rõ x = 9726 tới Bob. Cô ta sẽ tính:
97263533 mod 11413 = 5761
rồi gửi bản mã 5761 trên kênh.
Khi Bob nhận đƣợc bản mã 5761, anh ta sử dụng số mũ bí mật a để tính ra x:
57616597mod 11413 = 9726.
1.5.3. Độ an toàn của hệ RSA
a. Bài toán phân tích số và việc phá hệ mật RSA
Cách tấn công dễ thấy nhất đối với hệ mật RSA là ngƣời thám mã sẽ cố gắng
phân tích n ra các thừa số nguyên tố n = p*q. Nếu thực hiện đƣợc phép phân tích
này thì có thể dễ dàng tính đƣợc (n) = (p - 1).(q - 1) và do đó tìm đƣợc thông tin
cửa sập d tƣơng ứng với thông tin mã hóa E bằng thuật toán Euclude. Nhƣ vậy
chúng ta thấy ngay việc phá hệ mật RSA là dễ hơn bài toán phân tích số nguyên ra
thừa số nguyên tố tuy nhiên cũng chƣa có một kết quả nào chỉ ra rằng bài toán phân
tích số là thực sự khó hơn cho nên ngƣời ta thƣờng thừa nhận rằng bài toán phá hệ
RSA là tƣơng đƣơng với bài toán phân tích số nguyên thành thừa số nguyên tố.
Để đảm bảo tính khó phân tích ra thừa số của n = p*q thì yêu cầu đầu tiên là
p, q là các số nguyên tố lớn và là số nguyên tố “mạnh”. Khái niệm “mạnh” ở đây
chỉ bắt nguồn từ ý nghĩa khó phân tích do vậy nó sẽ đƣợc bổ xung cùng với kết quả
có đƣợc của khả năng phân tích số. Nói một cách khác là khái niệm “mạnh” bao
gồm sự loại trừ các lớp số nguyên tố mà với chúng tồn tại thuật toán phân tích hiệu
quả, ta có thể biết đến một khái niệm sơ khai của tính “mạnh” đó là các số nguyên
tố p mà p - 1 và p + 1 có chứa thừa số nguyên tố lớn.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
15
Vì thế để hệ RSA đƣợc coi là an toàn thì nhất thiết n = p*q phải là một số đủ
lớn để việc phân tích nó sẽ không có khả năng về mặt tính toán. Các thuật toán phân
tích hiện thời có khả năng phân tích các số tới 130 chữ số thập phân. Vì vậy để đảm
bảo an toàn nên chọn các số p và q có khoảng 100 chữ số, khi đó n sẽ có tới 200 chữ
số. Ngoài ra các số p, q cần phải thoả mãn một số yêu cầu cụ thể nữa.
b. Việc tấn công hệ mật RSA khác phương pháp phân tích số.
Một kết quả thú vị là một thuật toán bất kỳ để tính số mũ giải mã d đều có
thể đƣợc dùng nhƣ một chƣơng trình con trong thuật toán xác suất kiêu Las Vegas
để phân tích n.
Nhƣ vậy mặc dù rằng nếu d bị lộ thì việc phân tích n cũng không còn ý nghĩa
theo quan điểm phá hệ mật tuy nhiên kết quả trên dù sao cũng cho ta một thuật toán
phân tích số n khi biết d với xác suất thành công không quá ½ của mỗi lần chọn số
ngẫu nhiên làm đầu vào cho thuật toán.
1.6. Thám mã
1.6.1. Khái niệm
Thám mã là quá trình khôi phục lại bản rõ hoặc khóa khi chỉ có bản mã
tƣơng ứng cho trƣớc (không biết khóa và quy tắc mã/dịch) gọi là thám mã. Ngƣời
làm công tác thám mã đƣợc gọi là ngƣời mã thám (Cryptanalysist) hay gọi là mã
thám viên.
Tổ chức làm công tác thám mã đƣợc gọi là đơn vị mã thám. Mã thám là một
bộ phận không thể thiếu của ngành tình báo điện tử. Hầu hết các quốc gia đều có bộ
phận tình báo điện tử này, nhƣng sự phát triển và hiệu quả của nó lại phụ thuộc vào
trình độ khoa học - công nghệ của từng nƣớc. Nƣớc nào có trình độ khoa học - công
nghệ càng cao thì khả năng của công tác thám mã nói riêng, tình báo điện tử nói
chung càng mạnh.
Mục tiêu của thám mã: Mục tiêu của thám mã (phá mã) là tìm những điểm yếu
hoặc không an toàn tổng phƣơng pháp mật mã hóa.Thám mã có thể đƣợc thực hiện
bởi những kẻ tấn công ác ý, nhằm làm hỏng hệ thống; hoặc bởi những ngƣời thiết kế
ra hệ thống với ý định đánh giá độ an toàn của hệ thống.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
16
Để nghiên cứu thám mã đƣợc các bản mã truyền thống, ngƣời mã thám phải
nghiên cứu các đặc trƣng cơ bản của bản rõ. Nói một cách khác, trong mọi ngôn
ngữ tự nhiên đều có những đặc trƣng bất biến mà mã thám viên cần nắm vững để
phục vụ việc phân tích các bản mã. Đó là quy luật tần số, quy luật trùng lặp, quy
luật văn phong, v.v...
a. Tần số (Frequency)
Ngƣời ta định nghĩa tần số xuất hiện một ký tự, một nhóm ký tự, một từ hay
một vần v.v... trong một văn bản là số lần xuất hiện của ký tự, nhóm ký tự, từ, vần
đó trong văn bản đã cho.
Ngƣời ta có thể tính tần số từ một hoặc nhiều văn bản (thông báo) của một
loại ngôn ngữ nào đó để rút ra những quy luật riêng của ngôn ngữ đó. Có nhiều loại
tần số nhƣ: Tần số từng ký tự (tần số đơn), tần số từng cặp 2 ký tự (tần số bộ đôi).
Ngay tần số bộ đôi cũng có nhiều cách tính khác nhau nhƣ: Tần số bộ đôi thông
thƣờng; Tần số bộ đôi móc xích (concatenate); Tần số bộ k ký tự (k = 1, 2, 3, 4...).
Ngoài ra còn có: tần số từ, tần số vần chữ cái (ví dụ - tion, trong tiếng Anh), tần số
các nhóm nguyên âm, tần số các ký tự đứng đầu từ, tần số ký tự đứng cuối từ
Một điểm cần lƣu ý là mỗi loại ngôn ngữ tự nhiên khác nhau có các tần số
không giống nhau. Ngay trong một ngôn ngữ, các loại văn bản có tính chất văn học
sẽ có các tần số không hoàn toàn giống nhau. Những tính chất đó ngƣời ta gọi là các
đặc trƣng ngôn ngữ.
Ta lƣu ý rằng, các văn bản khác nhau thƣờng có độ dài (số lƣợng các ký tự
trong văn bản đó) khác nhau. Do đó khái niệm tần số nhƣ định nghĩa trên có nhiều
trƣờng hợp rất khó trong thực hành. Vì vậy ngƣời ta đƣa ra khái niệm tần số tƣơng
đối (tần suất - relative frequency). Tần suất của một ký tự x nào đó trong văn bản là
số lần xuất hiện ký tự đó chia cho độ dài của văn bản đó. Còn tần suất bộ đôi móc
xích xy nào đó trong một văn bản là số lần xuất hiện bộ đôi đó có trong văn bản
chia cho độ dài của văn bản trừ đi một. Ví dụ, giả sử văn bản có độ dài n, khi đó số
lƣợng bộ đôi móc xích là n-1 , nếu số lần xuất hiện cặp “nh” là m lần thì tần suất
của cặp “nh” sẽ là mnh / (n-1).
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
17
b. Sự trùng lặp
Là một quy luật của bất cứ ngôn ngữ tự nhiên nào. Đó là đặc trƣng thứ 2 của
ngôn ngữ đƣợc thể hiện trên các văn bản thông báo (sau đây gọi là bản rõ). Ngoài
quy luật tần số thì quy luật trùng lặp rất cần thiết và có thể nói chúng không thể
thiếu đối với công tác thám mã truyền thống.
c. Văn phong (Quy luật hành văn trong văn bản).
Trong thực tế, các loại văn bản khác nhau sẽ có văn phong không giống nhau
do phụ thuộc vào thói quen của từng ngƣời soạn thảo ra văn bản đó. Đây cũng là
quy luật đáng lƣu ý trong việc thám mã. Văn phong đƣợc chia thành các dạng:
- Dạng đầu văn bản (gọi là quy luật đầu điện):
Ví dụ: Công điện số…, báo cáo số…, kính gửi ông…, căn cứ Công văn số…,
phúc đáp Công văn số…
- Dạng thân văn bản (quy luật thân điện): Văn bản thƣờng có chia theo từng
mục hoặc không chia theo mục; Nội dung văn bản có khác nhau tuỳ theo từng loại
nội dung nhƣ ngoại giao, tình báo, quân sự, kinh tế, chính trị v.v...;
- Dạng cuối văn bản (quy luật cuối điện): Đoạn kết thúc một văn bản thƣờng
cũng có những quy luật: Mỗi ngƣời soạn thảo văn bản khác nhau sẽ có quy luật
khác nhau.
Ví dụ, thƣờng chấm hết thì có chữ stop, stopend; câu chào Salam và sau cùng
là tên, chức vụ, cấp bậc của ngƣời gửi thông báo, v.v... Những thông tin này đôi khi
rất quan trọng, giúp nhà mã thám thành công trong nhiệm vụ của mình.
d. Quy luật tình huống
Nhƣ đã đƣợc trình bày ở phần trƣớc, thám mã là tìm mọi biện pháp có thể để
khôi phục lại bản rõ và/hoặc khóa mã từ một số bản mã cho trƣớc. Điều này cho
thấy thám mã là một loại công việc khó khăn và phức tạp, nó vừa mang tính khoa
học lại vừa mang tính nghệ thuật. Rõ ràng, khoa học về mật mã càng phát triển thì
kỹ thuật thám mã càng gặp nhiều khó khăn.
Để chống lại việc thám mã của đối phƣơng, các nhà sản xuất mật mã phải
thiết kế các thuật toán mã hóa và các loại khóa mã sao cho các thông tin về khóa mã
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
18
và bản rõ không lộ rõ trên bản mã. Tuy nhiên, do đặc điểm của bản thân mật mã và
việc phân cấp sử dụng, nên trên thực tế, mật mã luôn chứa đựng những mâu thuẫn
nội tại mà các nhà mã thám vẫn có thể dựa vào đó khai thác, khám phá, đó là:
- Trình độ về mật mã ở các nước khác nhau sẽ khác nhau. Hiện nay, bên
cạnh những nƣớc có công nghệ bảo mật (mật mã) rất hiện đại, vẫn còn không ít
nƣớc vẫn đang sử dụng mật mã ở mức độ trung bình, thậm chí có nƣớc dùng mật
mã truyền thống tƣơng đối đơn giản. Và ngay trong cùng một nƣớc, các lực lƣợng,
ngành khác nhau lại dùng các hệ mã khác nhau. Ví dụ, mật mã dùng trong quân sự
khác mật mã dùng trong ngoại giao, mật mã dùng trong tình báo khác với mật mã
dùng trong ngân hàng, tài chính v.v...
- Thông thường, những nhà lập mã không phải là người sử dụng mật mã.
Các nhà lập mã có trình độ cao trong lĩnh vực mật mã nhƣng những ngƣời sử dụng
mật mã lại không cần nhƣ vậy. Ngƣời sử dụng thƣờng có xu hƣớng muốn đơn giản
hóa công việc của mình, chính vì vậy họ dễ vi phạm các qui tắc đảm bảo an toàn
mật mã.
- Khóa mã không được bảo vệ cẩn thận theo quy định, và một sơ hở nhỏ
cũng đủ tạo khe hở cho các nhà mã thám lấy cắp đƣợc khóa mà mật mã viên không
hề biết. Vì vậy, khóa đó vẫn đƣợc sử dụng và các nhà mã thám khi nhận đƣợc các
bản mã chỉ việc dùng khóa đó mà dịch bình thƣờng.
- Độ dư ngôn ngữ cũng là một quy luật rất quan trọng của ngôn ngữ tự
nhiên. Độ dƣ ngôn ngữ tồn tại trong chính bản mã của nhiều luật mã khác nhau, đặc
biệt là trong hệ mã truyền thống.
- Tiêu chuẩn bản rõ: chính là quy luật bản rõ đƣợc thể hiện qua quy luật tần
số, quy luật trùng lặp.... Đây là một yếu tố trọng yếu giúp cho nhà mã thám thành
công không những đối với mật mã truyền thống mà cả đối với mật mã khóa đối
xứng nói chung (nhƣ mã DES, IDEA, AES v.v...)
* Tiêu chuẩn bản rõ
Tiêu chuẩn bản rõ là một thành phần không thể thiếu đối với công tác thám
mã, đặc biệt là thám mã hiện đại. Vậy tiêu chuẩn bản rõ là gì? Ta biết rằng, các
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
19
ngôn ngữ tự nhiên đều có quy luật chung nhất đó là quy luật tần số và quy luật trùng
lặp. Hai quy luật này đã bị biến mất đối với bản mã. Với phƣơng pháp mã hóa phức
tạp thì hai quy luật này hoàn toàn bị biến mất. Một trong những điều khác nhau cơ
bản của bản rõ và bản mã là ở chỗ đó. Giả sử nhà mã thám nhận đƣợc một (hoặc
một số) bản mã và bằng cách nào đó, họ đã biết đƣợc một vài thông tin về thuật
toán mã hóa (và dịch).
Tuy không biết đƣợc mã/dịch cụ thể nhƣng nhà mã thám có thể biết đƣợc tất
cả khả năng có thể của khóa. Từ đó, ngƣời ta thử cho đầu vào (Input) là bản mã và
“khóa” (dự đoán) lấy trong không gian khóa rồi dịch thử. Kết quả đầu ra (output) sẽ
là một dãy nào đó (có thể đọc đƣợc có nghĩa hoặc cũng có thể không có nghĩa) mà
ta vẫn gọi là “bản rõ”. Nhƣng bản rõ này chƣa thể hiện đƣợc quy luật tần số và
trùng lặp. Nó chỉ thể hiện đƣợc quy luật tần số và trùng lặp nếu khóa mà ta đƣa vào
là đúng hoặc có sai cũng chỉ sai một vài ký tự. Nhƣng làm cách nào để biết đƣợc
quy luật tần số và trùng lặp đƣợc thể hiện trên “bản rõ” mà ta vừa tạo ra (từ khóa và
bản mã ban đầu (gọi là bản mã gốc). Do số liệu khóa đƣa vào là rất lớn nên dùng
mắt thƣờng để quan sát xem “bản rõ” nào thể hiện đƣợc quy luật tần số và trùng lặp
là không khả thi về khía cạnh thời gian tìm kiếm.
Tiêu chuẩn bản rõ giúp ta tự động xác định “bản rõ” nào thể hiện quy luật tần
số và trùng lặp, “bản rõ” nào không. Nhờ tiêu chuẩn bản rõ, nhà mã thám có thể
chia không gian khóa thành hai nhóm, một nhóm cho phép tạo ra đƣợc “bản rõ” có
quy luật tần số và trùng lặp, một nhóm gồm các khóa còn lại. Trong thực tế, nhóm
gồm các khóa cho phép tạo ra “bản rõ” có quy luật (ta gọi là bản rõ có nghĩa) là rất
ít so với nhóm còn lại. Từ đó chúng ta tiến hành kiểm tra tiếp và kết hợp với mắt
thƣờng, chúng ta có thể giải ra đƣợc bản rõ ban đầu (bản rõ gốc) cần tìm và khóa
mà ta mong muốn.
Có nhiều phƣơng pháp khác nhau để tạo ra các Tiêu chuẩn bản rõ. Do không
gian khóa thƣờng rất lớn, nên cần có một tiêu chuẩn bản rõ có tốc độ tính toán càng
nhanh và càng chính xác càng tốt, trong đó tốc độ tính toán đƣợc ƣu tiên số một
1.6.2. Các bước cơ bản để tiến hành thám mã
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
20
Khi nhận đƣợc một số bản mã, các nhà thám mã cần thực hiện một loạt các
bƣớc nghiên cứu nhằm khôi phục đƣợc bản rõ (hoặc khóa) từ các bản mã nhận
đƣợc. Ta tìm hiểu các bƣớc cơ bản nhất đó là:
Bƣớc 1: Phân loại bản mã
Sau khi nhận đƣợc một số bức điện mã, các nhà phân tích mật mã có thể
phân loại xem những bức điện mã có cùng một loại mã pháp, có cùng một loại khóa
mã. Mặc dù chúng ta chƣa biết đƣợc mã pháp (phƣơng pháp mã hóa) của các bức
điện đó, nhƣng chúng vẫn phân loại (phân lớp) đƣợc. Đây là một bƣớc quan trọng
quyết định sự thành công hay thất bại của mã thám nên rất mất nhiều thời gian. Nếu
việc phân loại chính xác thì sẽ thuận lợi cho các bƣớc tiến hành tiếp theo. Ngƣợc
lại, nếu phân loại thiếu chính xác thì sẽ gây khó khăn cho các bƣớc sau đó, thậm chí
thất bại.
Ngƣời ta có nhiều phƣơng pháp thực thi giai đoạn này, một trong số đó là áp
dụng kỹ thuật phân lớp các đối tƣợng. Ý tƣởng của bài toán phân lớp nhƣ sau:
Giả sử ta nhận đƣợc m bản mã M1, M2,..., Mm với m ≥ 2. Mỗi bản mã ta gọi
là một đối tƣợng. Tập hợp m bản mã (các đối tƣợng) ta ký hiệu là G.
Vậy G = {M1, M2,..., Mm}. Ứng với mỗi đối tƣợng ta cần tìm ra các đặc
trƣng tham số. Giả sử đối tƣợng Mi có pi đặc trƣng. Ở đây, để cho đơn giản, ta giả
thiết p1 = p2 = ...= pm= p. Vấn đề đặt ra là hãy phân tập hợp G thành k lớp không
giao nhau mà ta ký hiệu là G1, G2, ..., Gk, k > 1 sao cho:
(i) Gi khác 0 i = 1,k
(ii) Gi 1 Gj
i khác j
(iii) G1 c G2 c...c YGk = G
và sao cho sai sót trong phân lớp là bé nhất có thể đƣợc. Để thực hiện việc phân lớp
các đối tƣợng ta cần đƣa ra một độ đo “khoảng cách” giữa các đối tƣợng. Các đối
tƣợng “gần gũi” nhau sẽ đƣợc gán cho cùng một lớp.
Bƣớc 2 : Xác định mã pháp
Sau khi hoàn thành việc phân lớp (phân loại mã pháp) ở bƣớc 1, chúng ta
tiến hành xác định phƣơng pháp mã dịch ứng với từng lớp cụ thể (cần chú ý rằng,
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
21
thƣờng thì chúng ta tiến hành xác định mã pháp đối với các bản mã có nhiều đặc
điểm nhất theo quan điểm của các nhà thám mã). Đây là một khâu rất quan trọng
của công tác thám mã truyền thống. Tuy nhiên đối với một số hệ mật đối xứng hiện
đại nhƣ mã DES, 3DES, AES, IDEA, PGP... thì bƣớc này coi nhƣ đƣợc bỏ qua bởi
ngay từ đầu bản mã, ngƣời ta đã chỉ ra rằng bản mã đó thuộc loại bản mã pháp nào.
Ở đây chúng ta chỉ trình bày cách thức xác định mã pháp đối với các luật mã truyền
thống (bƣớc này đƣợc bỏ qua đối với những hệ mật mà thuật toán mã hóa - phƣơng
pháp mã - đƣợc công khai hoàn toàn). Bƣớc này bao gồm các công việc sau đây:
a. Tính tần số
Mục đích của việc tính tần số là để phát hiện tính quy luật không ngẫu nhiên
tồn tại trong bản mã. Có rất nhiều loại tần số khác nhau cần tính, mà đối với mỗi mã
pháp có thể tồn tại tính không ngẫu nhiên (có quy luật) đặc thù riêng cho nó. Theo
kinh nghiệm phân tích mà ngƣời ta tiến hành tính tần số loại phù hợp nhất thông
qua đó có thể bộc lộ rõ nhất tính quy luật (không ngẫu nhiên) trong bản mã. Việc
tính tần số thƣờng gồm:
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
22
- Tần số đơn:
Tần số đơn là tần số từng kí tự một trong bản mã.
Sau khi có đƣợc kết quả tính tần số đơn, ta tiến hành sắp xếp lại thứ tự các
ký tự theo tần số từ cao đến thấp.
Cũng có thể lập bảng tần xuất bằng cách chia tần số từng ký tự cho độ dài
bản mã cần tính để xem tần số tƣơng đối của chúng.
- Tần số bộ đôi móc xích (concatenate frequency of pairs)
Tần số bộ đôi móc xích là tần số bộ đôi nhƣng các cặp kề đè lên nhau một ký tự.
Mục đích của việc tính tần số bộ đôi móc xích là để xem quan hệ phụ thuộc
giữa ký tự sau với ký tự kề ngay trƣớc đó nhƣ thế nào, (ta thƣờng gọi là quan hệ
xích Makov cấp 1). Từ đó có thể ƣớc lƣợng đƣợc xác suất xuất hiện một ký tự nào
đó khi biết trƣớc ký tự đứng ngay trƣớc nó.
- Tần số bộ đôi thường:
Tần số bộ đôi thƣờng là tần số bộ đôi rời nhau, ví dụ: cho đoạn văn : Vi ee tj
na m thì tần số bộ đôi thƣờng gồm:
Vi: xuất hiện 1 lần
ee: xuất hiện 1 lần
tj: xuất hiện 1 lần
na: xuất hiện 1 lần
Ký tự cuối cùng đƣợc bỏ qua (chỉ gồm có 4 bộ đôi). Trong khi đó, tần số bộ
đôi móc xích sẽ đƣợc thể hiện là: Vi, ie, ee, et, tj, jn, na, am gồm 8 bộ đôi.
Lưu ý:
+ Số tất cả các bộ đôi móc xích trong
văn bản độ dài n là n – 1
+ Còn số tất cả các “bộ đôi thƣờng” là: [
]
Trong đó ký hiệu [x] là số nguyên lớn nhất nhƣng bé hơn hoặc bằng x.
- Tần số bộ 3, 4, 5...
Tuỳ theo từng trƣờng hợp cụ thể đôi khi chúng ta phải tính tần số bộ 3, bộ 4,
bộ 5…
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
23
b. Tính trùng mã
Tính trùng mã tức là tính tần số trùng lặp của các dãy ký tự liền nhau trong
bản mã. Thƣờng là tính trùng lặp 3 ký tự (bộ 3), 4 ký tự (bộ 4), 5 ký tự (bộ 5)... có
thể xuất hiện trong bản mã và vị trí của chúng trong bản mã đó.
Khi tính trùng mã (các bộ) ta phải quan tâm các tham số sau đây:
- Tần số trùng mã (trùng lặp)
- Độ dài trùng lặp
- Vị trí các trùng lặp
- Khoảng cách giữa các trùng lặp
- Trùng mã trong một bản mã và trong các bản mã khác nhau.
Những tham số trên đây rất có ích trong việc xác định mã pháp.
c. Tần số định kỳ:
Ngoài việc tính tần số đơn, bộ đôi móc xích, bộ đôi thƣờng v.v... và trùng mã
(sự trùng lặp) trong bản mã hoặc các bản mã, trong nhiều trƣờng hợp ngƣời ta phải
tính tần số định kỳ. Giả sử ta có bản mã M độ dài n nào đó. Thƣờng n khá lớn và
càng lớn càng tốt. Bây giờ ta lập bảng k cột (k $ 2 và thƣờng thì k $ 3) và n/k hàng.
Sau đó, ta viết bản mã lần lƣợt trái qua phải và viết từ trên xuống dƣới cho đến hết
thì dừng. Bây giờ ta tiến hành tính tần số đơn theo cột từ cột 1 đến cột k. Nhƣ vậy ta
thƣờng phải tính toán tần số các “định kỳ” khác nhau lần lƣợt k = 3, 4, 5..., 10. Tần
số nhƣ vậy đƣợc gọi là tần số định kỳ. Trong nhiều trƣờng hợp tần số đơn, đôi, bộ 3
của bản mã tƣơng đối san bằng (tức là không vi phạm các tiêu chuẩn 3s và c2)
nhƣng tần số định kỳ lại có quy luật rất rõ.
d. Tần số bộ đôi dọc và bộ đôi dọc đồng tự.
Nếu ta viết hai bản mã lần lƣợt bản mã này dƣới bản mã kia. Ví dụ hai bản
mã M1 = m11, m12 = m1n1 và M2 = m21m22 …m2n2
Ta có M1 = m11m12m13…m1n1
M2 = m21m22m23…m2n1 …m2n2
Ta cắt phần thừa là m2n1+1, …m2n2 (giả sử n1 = n2), và ta kí hiệu độ dài hai bản
mã trùng khớp nhau là n. Ta tiến hành tính tần số từng cặp (m1k …m2k), với k = 1, 2,
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
24
…, n. Ta sẽ có tần số bội đôi và bảng này đƣợc gọi là bảng tần số bộ đôi dọc. Các
phần tử trên đƣờng chéo chính là tần số của các bộ đôi dọc đồng tự.
e. Phân tích kết quả tính các tần số và trùng mã
Bƣớc này dựa vào các kết quả tính các loại tần số, trùng mã để kết luận bản
mã (các bản mã) đó thuộc loại mã pháp nào. Để đánh giá độ chênh lệch tần số hoặc
tính độc lập của các ký tự trong bản mã, ngƣời ta thƣờng dùng các tiêu chuẩn thống
kê toán học, chẳng hạn tiêu chuẩn 3s, tiêu chuẩn c2 hoặc tiêu chuẩn MLR (Most
Likelihood Ratio- tỷ số hợp lý cực đại). Nói chung việc xác định mã pháp là công
việc rất phức tạp, nó phụ thuộc một phần vào trình độ và kinh nghiệm của các mã
thám viên. Có nhiều trƣờng hợp thóang nhìn bản mã ngƣời ta đã dự đoán đƣợc
phƣơng pháp mã nhƣng cũng có rất nhiều trƣờng hợp phải nghiên cứu rất công phu
mà độ rủi ro không phải là không có.
f. Xác định ngôn ngữ đƣợc dùng
Đây cũng là một bƣớc giúp cho việc thám mã đột phá thành công.
Bƣớc 3. Thám mã
Giả sử đã xác định đƣợc mã pháp tại bƣớc thứ 2 trên đây, nay chuyển sang
nghiên cứu, phân tích bản mã (thám mã). Bƣớc này cũng có hai công đoạn:
a. Thám trực tiếp
Nếu mã pháp thuộc loại truyền thống đã biết nhƣ các mã pháp thủ công hoặc
đƣợc mã bằng một máy mã cụ thể nào đó mà ta đã có thuật toán thám thì có thể tiến
hành thám trực tiếp luôn (thực hiện thủ công và sau đó có thể tự động hóa bằng lập
trình trên máy tính).
* Thám mã thủ công
Bằng cách thống kê tần suất các ký tự trong bản mã ta có thể dự đoán ký tự
tƣơng ứng trong bản rõ. Dựa vào đó ta xác định đƣợc khóa k. Tiến hành giải mã
với khóa k vừa tìm đƣợc.
* Thám mã có sự trợ giúp của máy tính
Hệ mã dịch vòng có số khóa ít nên hoàn toàn có thểthám mã bằng cách thử tất
cả các khóa có thể.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
25
b. Xây dựng phƣơng pháp thám mã
Nếu mã pháp thuộc loại mới, công việc yêu cầu phức tạp hơn là phải xây
dựng phƣơng pháp thám thì có hai phƣơng pháp thám là phƣơng pháp phân tích và
phƣơng pháp dự đoán “Từ phỏng chừng”.
Phương pháp phân tích: đƣợc sử dụng trong trƣờng hợp nhà mã thám đã biết
đƣợc cấu trúc khóa mã đã đƣợc sử dụng làm “mầm khóa” (key seed) để mã hóa bản
mã này. Khi đó có nhiều kiểu để xác định khóa có thể, ví dụ: phƣơng pháp “thử sai”, phƣơng pháp “lƣợng sai”, phƣơng pháp “những phần tử tách biệt”, phƣơng
pháp “tuyến tính”. Tóm lại tuỳ theo thuật toán mã hóa của bản mã nhƣ thế nào mà
chọn phƣơng pháp phân tích nào cho hợp lý.
Phương pháp “từ phỏng chừng”: Phƣơng pháp này chủ yếu là dựa vào thông
tin tiên nghiệm về khóa và thông tin về bản rõ mà đối tƣợng sử dụng (quy luật ngôn
ngữ) để dự đoán khóa đƣợc sử dụng. Nội dung của phƣơng pháp này là dự đoán
cụm từ có thể xuất hiện trong bản rõ gốc ứng với bản mã, sau đó tìm cách xác định
khóa đúng. Nếu khóa là đúng thì có thể dịch bản mã để cho ra bản rõ.
Ngoài một số phƣơng pháp truyền thống trên, ngày nay, nhờ tốc độ máy tính
đã đƣợc cải thiện đáng kể, trong những bài toán mà không gian khóa không quá lớn
ngƣời ta còn có thể áp dụng một phƣơng pháp nữa đó là “vét cạn”. Đối với không
gian khóa lớn, đây thật sự là phƣơng pháp kém hiệu quả nếu chúng ta chỉ thực hiện
vét cạn một cách thông thƣờng. Tuy nhiên nếu áp dụng đồng thời các kỹ thuật bổ
trợ thì nó vẫn phát huy đƣợc hiệu quả tốt. Các kỹ thuật hỗ trợ đƣợc nói tới ở đây là
xây dựng một thƣ viện phục vụ việc “vét cạn” bao gồm cơ sở dữ liệu về khóa và các
tiêu chuẩn bản rõ tốt. Trên cơ sở đó tìm cách phân hoạch không gian khóa S thành
hai tập con rời nhau là S1 và S2 sao cho khóa đúng sẽ “chắc chắn” thuộc một trong
hai tập con đó. Từ đó tiến hành sử dụng thuật toán vét cạn trên tập con có chứa khóa
đúng, khi đó việc “vét cạn” trong tập con nhanh chóng thể hiện tính hiệu lực của nó.
Việc này cũng có thể thực hiện ngay đối với một số phƣơng pháp truyền thống đã
có đƣợc những kết quả đáng ngạc nhiên. Khi thám ra bản rõ ta chỉ cần đọc đƣợc lỗ
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
26
chỗ đã là thành công vì lúc đó bằng quy luật ngôn ngữ ta sẽ khôi phục đƣợc bản rõ
gốc nhƣ mong muốn.
Ngày nay, ngƣời ta đã có những công cụ tính toán cực nhanh nhờ công nghệ
cluster. Từ đó ngƣời ta có thể xây dựng mạng tính toán song song với tốc độ tính
toán đạt tới gần 100GF (một trăm tỷ phép tính dấu phảy động trên một giây). Nhƣ
vậy ngƣời ta có phân rã bài toán để thực hiện việc tính toán song song cực kỳ có
hiệu quả, đặc biệt đối với những bài toán có độ phức tạp tính toán lớn.
1.7. Kết luận
Khác với mật mã khóa bí mật, mật mã khóa công khai dùng hai khóa: một
khóa để mã hóa thông điệp và khóa kia để giải mã thông điệp. Khóa mã hóa đƣợc
công khai hoàn toàn, nó giống nhƣ số điện thoại cá nhân, khóa giải mã thì hoàn toàn
đƣợc giữ bí mật, nó đƣợc dùng để giải bản mã đƣợc mã bởi khóa công khai tƣơng
ứng. Hai khóa này có quan hệ với nhau và có thể đƣợc suy ra nhau nhƣng rất khó,
đƣợc coi là không thể.
Hiện nay mật mã khóa công khai đƣợc sử dụng rất rộng rãi và đang có xu
hƣớng ngày càng phát triển. Trong các hệ mật khóa công khai, hệ mật đƣợc sử dụng
phổ biến nhất là RSA. Hệ mật RSA đƣợc sử dụng để cung cấp sự bảo mật và tính
xác thực của dữ liệu số.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
27
CHƢƠNG 2
CÁC PHƢƠNG PHÁP THÁM MÃ HỆ MẬT MÃ KHÓA CÔNG KHAI
2.1. Tính an toàn của hệ mật mã
Tính an toàn của một hệ thống mật mã phụ thuộc vào độ khó của bài toán
thám mã khi sử dụng hệ mật đó.
2.1.1. An toàn vô điều kiện
Giả thiết ngƣời thám mã có đƣợc thông tin về bản mã. Theo quan niện lý
thuyết thông tin, nếu những hiểu biết về bản mã không thu hẹp đƣợc độ bất định về
bản rõ đối với ngƣời thám mã, thì hệ mật mã là an toàn vô điều kiện, hay theo thuật
ngữ của C.Shannon, hệ mật mã là bí mật hoàn toàn. Nhƣ vậy, hệ là an toàn vô điều
kiện, nếu độ bất định về bản rõ khi ngƣời thám mã có đƣợc cả thông tin (về bản mã)
bằng độ bất định về bản rõ trƣớc đó. Tính an toàn vô điều kiện thƣờng đƣợc sử
dụng cho các hệ mật mã khó đối xứng.
2.1.2. An toàn được chứng minh
Một hệ thống mật mã đƣợc xem là có độ an toàn đƣợc chứng minh nếu ta có thể
chứng minh đƣợc bài toán thám mã đối với hệ thống đó “khó tƣơng đƣơng” với một
bài toán khó đã biết, ví dụ bài toán phân tích một số nguyên thành tích các thừa số
nguyên tố, bài toán tìm logarit theo một mô-đun nguyên tố,…(“khó tƣơng đƣơng” có
nghĩa là nếu bào toán này giải đƣợc thì bài toán kia cũng giải đƣợc cùng một độ phức
tạp nhƣ nhau).
2.1.3. An toàn tính toán
Hệ mật mã đƣợc xem là an toàn về mặt tính toán, nếu mọi phƣơng pháp thám
mã đã biết đều đòi hỏi một nguồn năng lực tính toán vƣợt quá mọi khả năng (kể cả
phƣơng tiện thiết bị máy móc) tính toán của một kẻ thám mã. An toàn theo nghĩa
này, nói theo ngôn ngữ của lý thuyết về độ phức tạp tính toán là bao hàm cả khái
niệm an toàn theo nghĩa “đƣợc chứng minh” nói trên.
Tính an toàn theo nghĩa đƣợc tính toán hay chứng minh đƣợc sử dụng nhiều
trong công việc nghiên cứu các hệ thống mật mã hiện đại, đặc biệt là các hệ thống
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
28
mật mã khóa công khai. Các bài toán đó đều có hạt nhân là tính an toàn của các hệ
mật mã cũng góp phần giải quyết các vấn đề an toàn thông tin kể trên.
2.2. Các kiểu thám mã
Bài toán quan trọng nhất của thám mã là phá bỏ tính bí mật, tức là: với
những bản mã có thể dễ dàng thu đƣợc, ngƣời thám mã phải tìm ra đƣợc nội dung
thông tin che dấu bên trong bản mã.
Giả thiết chung ở đây là luôn coi đối phƣơng biết hệ mật đang dùng. Giả
thiết này đƣợc gọi là nguyên lý Kerekhoff. Dĩ nhiên, nếu đối phƣơng không biết hệ
mật đƣợc dùng thì nhiệm vụ của anh ta sẽ khó khăn hơn.Tuy nhiên ta không muốn
độ mật của một hệ mật lại dựa trên một giả thiết không chắc chắn là đối phƣơng
không biết hệ mật đƣợc sử dụng. Do đó, mục tiêu trong việc thiết kế một hệ mật là
phải đạt đƣợc độ mật dƣới giả thiết Kerekhoff.
Việc thám mã có thể quy về việc tìm đƣợc bản rõ hoặc phát hiện khóa mã,
khi biết trƣớc hệ mật mã đƣợc sử dụng. Ngoài việc biết hệ mật mã, ngƣời thám mã
còn cần có thông tin khác để tìm bản rõ và phát hiện khóa. Tuỳ theo thông tin đó là
gì mà ta phân các bài toán thám mã thành các loại: tìm cách xác định khóa bí mật thám mã chỉ biết bản mã, biết bản mã và cả bản rõ, có bản rõ đƣợc chọn trƣớc và có
bản mã đƣợc chọn trƣớc; tìm cách xác định bản rõ - dùng modul n chung, lợi dụng
tính nhân của hàm lập mã.
2.2.1. Tấn công dạng 1: Tìm cách xác định khóa bí mật
Trƣờng hợp 1: Khi thám mã chỉ biết bản mã
Trong trƣờng hợp này, khi biết đƣợc n, ngƣời thám mã sẽ tìm cách tính giá
trị của p, q theo thuật toán phân tích thành thừa số nguyên tố, từ đó chúng sẽ tính
(n) = (p-1).(q-1). Khi đã tính đƣợc (n) c ngƣời thám mã sẽ tính đƣợc khóa bí mật
a theo công thức: a.b
1 (mod (n)). Khi đã tính đƣợc khóa bí mật thì ngƣời thám
mã sẽ giải mã đƣợc bản mã và tìm ra bản rõ.
Giải pháp phòng tránh:
Chọn số nguyên tố p, q lớn, để việc phân tích n thành tích hai thừa số nguyên tố
là khó có thể thực hiện đƣợc trong thời gian thực. thƣờng sinh ra các số lớn (khoảng
100 chữ số) sau đó kiểm tra tính nguyên tố của nó.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
29
Trƣờng hợp 2: Khi thám mã biết bản mã và cả bản rõ
Ngƣời thám mã biết một bản mã Y cùng với bản rõ tƣơng ứng X. Vì đã biết
đƣợc bản rõ rồi nên việc chính của thám mã là phải xác định đƣợc khóa bí mật K’’
đang sử dụng, để giải mã các gói tin đã mã hóa mà nó bắt đƣợc sau này.
Ngƣời thám mã sẽ dựa vào bài toán tính logarit thông thƣờng để tính ra khóa bí
mật K’’ = a theo công thức:
K’’ = logyx(mod n-1).
Từ đây toàn bộ thông tin đƣợc mã hóa bằng khóa K’ đều bị thám mã bắt đƣợc.
Giải pháp phòng tránh:
Sử dụng khóa khác nhau ở mỗi lần mã hóa, để nếu ngƣời thám mã biết đƣợc
khóa giải mã ở lần mã hóa này, thì khi bắt đƣợc các gói tin ở lần mã hóa sau, họ cũng
không thể sử dụng khóa đó để giải mã tiếp đƣợc nữa.
Trƣờng hợp 3: Khi thám mã có bản rõ đƣợc chọn trƣớc
Đây là trƣờng hợp đặc biệt của lựa chọn bản rõ. Không chỉ có thể lựa chọn
bản rõ đã mã hóa, nhƣng họ còn có thể sửa đổi sự lựa chọn cơ bản kết quả của sự
mã hóa lần trƣớc. Trong trƣờng lựa chọn bản mã ngƣời thám mã có thể đã chọn một
bản rõ X, và biết đƣợc bản mã Y tƣơng ứng (khi ngƣời thám mã chiếm đƣợc (tạm
thời) máy lập mã), việc xác định khóa bí mật quay về trƣờng hợp thứ hai. Phƣơng
pháp này tỏ ra có khả năng hơn phƣơng pháp biết bản rõ bởi vì ngƣời phân tích có
thể chọn cụ thể khối bản rõ cho mã hóa, một điều khác có thể là sản lƣợng thông tin
về khóa nhiều hơn.
Giải pháp phòng tránh:
Sử dụng khóa khác nhau ở mỗi lần mã hóa, để nếu ngƣời thám mã biết đƣợc
khóa giải mã ở lần mã hóa này, thì khi bắt đƣợc các gói tin ở lần mã hóa sau, họ cũng
không thể sử dụng khóa đó để giải mã tiếp đƣợc nữa.
Trƣờng hợp 4: Khi thám mã có bản mã đƣợc chọn trƣớc
Ngƣời thám mã có thể chọn một bản mật mã Y, và biết bản rõ tƣơng ứng X.
Trong trƣờng hợp này việc xác định khóa bí mật lại quay trở về trƣờng hợp thứ hai.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
30
Giải pháp phòng tránh:
Sử dụng khóa khác nhau ở mỗi lần mã hóa, để nếu ngƣời thám mã biết đƣợc
khóa giải mã ở lần mã hóa này, thì khi bắt đƣợc các gói tin ở lần mã hóa sau, họ cũng
không thể sử dụng khóa đó để giải mã tiếp đƣợc nữa.
Trong mỗi trƣờng hợp đối tƣợng cần phải xác định chính là khóa đã sử dụng:
Rõ ràng bốn trƣờng hợp tấn công trên đã đƣợc liệt kê theo độ tăng dần của sức
mạnh tấn công và cách tấn công các bản mã đƣợc lựa chọn là thích hợp đối với hệ
mật mã hóa công khai.
2.2.2. Tấn công dạng 2: Tìm cách xác định bản rõ
Dùng modul n chung
Giả sử có hai ngƣời tham gia A và B cùng sử dụng một modul chung n trong
khóa công khai của mình, chẳng hạn A chọn khóa công khai (n, e) và giữ khóa bí
mật d, B chọn khóa công khai (n, a) và giữ khóa bí mật b. Một ngƣời tham gia thứ
ba C gửi một văn bản cần bảo mật x đến cả A và B thì dùng các khóa công khai nói
trên để gửi đến A bản mật mã y = xe mod n và gửi đến B bản mật mã z = xa mod n.
Ta sẽ chứng tỏ rằng, một ngƣời thám mã O có thể dựa vào những thông tin n, e, a,
y, z trên đƣờng công khai mà phát hiện ra bản rõ x nhƣ sau:
(i).
Tính c = e-1 mod a,
(ii).
Sau đó tính h = (ce – 1)/a,
(iii).
Và ta đƣợc x = yc (zh)-1 mod n.
Thực vậy theo định nghĩa trên, ce – 1 chia hết cho a, và tiếp theo ta có:
yc (zh)-1 mod n = xce.(xa(ce – 1)/a)-1 mod n = xce.(xce – 1)-1 mod n =x
Suy ra bản rõ cần tìm.
Nhƣ vậy, trong trƣờng hợp này việc truyền tin bảo mật không còn an toàn nữa.
Giải pháp phòng tránh:
Dùng modul n khác nhau cho mỗi ngƣời tham gia.
Lợi dụng tính nhân của hàm lập mã
Ta chú ý rằng hàm lập mã f(x) = xe mod n có tính nhân (multiplicative
property), nghĩa là f(x.y) = f(x).f(y). Dựa vào tính chất đó, ta thấy rằng nếu y là mật
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
31
mã của bản rõ x, thì y = y.ue mod n sẽ là bản mật mã của bản rõ xu. Do đó, khi lấy
đƣợc bản mật mã y, để phát hiện bản rõ x ngƣời thám mã có thể chọn ngẫu nhiên
một số u rồi tạo ra bản mã y, và nếu ngƣời thám mã có khả năng thám mã theo kiểu
có bản mã lựa chọn, tức có khả năng với y đƣợc chọn tìm ra bản rõ tƣơng ứng là x =
xu, thì bản rõ gốc cần thiết phát hiện sẽ là x= x.u-1 mod n. Tất nhiên, khả năng
ngƣời thám mã có năng lực giải quyết bài toán thám mã theo kiểu có bản mã đã
đƣợc chọn là rất hiếm, nhƣng dẫu sao đây cũng là một trƣờng hợp mà vấn đề bảo
mật dễ bị tấn công, ta không thể không tính đến để tìm cách tránh.
Gải pháp phòng tránh:
Không để thám mã có khả năng thám mã theo kiểu có bản mã đƣợc chọn.
Một điểm đáng chú ý khác là đa số các kỹ thuật thám mã đều dùng phƣơng
pháp thống kê tần suất xuất hiện của các từ, các ký tự trong bản mã. Sau đó thực
hiện việc thử thay thế với các chữ cái có tần suất xuất hiện tƣơng đồng trong ngôn
ngữ tự nhiên. Tại đây chúng ta chỉ xem xét đối với ngôn ngữ thông dụng nhất hiện
nay đó là tiếng Anh. Việc thống kê tần suất xuất hiện của các ký tự trong trƣờng
hợp này đƣợc tiến hành dựa trên các bài báo,sách, tạp chí và các văn bản cùng với
một số loại khác ...
Nhiều kỹ thuật thám mã sử dụng đặc điểm thống kê của tiếng Anh, trong đó
dựa vào tần suất xuất hiện của 26 chữ cái trong văn bản thông thƣờng để tiến hành
phân tích mã. Becker và Piper đã chia 26 chữ cái thành năm nhóm và chỉ ra xác suất
của mỗi nhóm nhƣ sau:
- E, có xác suất khoảng 0.120
- T, A, O, I, N, S, H, R, mỗi chữ cái có xác xuất nằm trong khoảng từ 0.06 đến 0.09
- D, L, mỗi chữ cái có xác xuất xấp xỉ 0.04
- C, U, M, W, F, G, Y, P, B, mỗi chữ cái có xác xuất nằm trong khoảng từ 0.015
đến 0.023
- V, K, J, X, Q, Z, mỗi chữ cái có xác xuất nhỏ hơn 0.01
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
32
Ký tự
Xác suất
Ký tự
Xác suất
Ký tự
Xác suất
A
0.082
J
0.002
S
0.063
B
0.015
K
0.008
T
0.091
C
0.028
L
0.040
U
0.028
D
0.043
M
0.024
V
0.010
E
0.127
N
0.067
W
0.023
F
0.022
O
0.075
X
0.001
G
0.020
P
0.019
Y
0.020
H
0.061
Q
0.001
Z
0.001
I
0.070
R
0.060
Ngoài ra, tần suất xuất hiện của dãy hai hay ba chữ cái liên tiếp đƣợc sắp
theo thứ tự giảm dần nhƣ sau:
Cặp chữ
Tần suất
Cặp chữ
Tần suất
Cặp chữ
Tần suất
TH
10.00
ED
4.12
OF
3.38
HE
9.50
TE
4.04
IT
3.26
IN
7.17
TI
4.00
AL
3.15
ER
6.65
OR
3.98
AS
3.00
RE
5.92
ST
3.81
HA
3.00
ON
5.70
AR
3.54
NG
2.92
AN
5.63
ND
3.52
CO
2.80
EN
4.76
TO
3.50
SE
2.75
AT
4.72
NT
3.44
ME
2.65
ES
4.24
IS
3.43
DE
2.65
2.3. Một số sơ hở dẫn đến tấn công hệ mật RSA
Tính bảo mật của RSA chủ yếu dựa vào việc giữ bí mật số mũ giải mã a và các
thừa số p, q của n. Tuy nhiên, điều kiện an toàn trên của hệ mật chỉ là điều kiện chung.
Trong thực tế khi thiết kế một giao thức hay một kênh bí mật có sử dụng hệ mật RSA
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
33
vẫn tồn tại nhiều sơ hở, những sơ hở đó đã đƣợc thám mã lợi dụng nhằm phá hủy giao
thức, kênh bí mật, phá vỡ tính an toàn của hệ mật.
2.3.1. Biết (n) tìm được p, q
Ta có thể xác định đƣợc p, q và ngƣợc lại. Biết đƣợc p, q ta có thể dễ dàng
tính đƣợc (n).
Nếu biết đƣợc (n) ta có thể tìm đƣợc p, q bằng cách giải hệ phƣơng trình:
p.q = n
p.q = n
(p – 1)(q – 1) = (n)
p + q = n + 1 – (n)
Do đó p, q là nghiệm của phƣơng trình bậc 2:
x2 – (x – (n) + 1)x + n = 0
Bởi vậy nếu ngƣời thám mã biết đƣợc (n) anh ta có thể phân tích đƣợc n và
phá đƣợc hệ mật.
Ngƣợc lại cho trƣớc p, q rõ ràng việc tính (n) đƣợc thực hiện dễ dàng:
(n) = (p – 1)(q – 1)
2.3.2. Biết số mũ giải a
Nếu biết số mũ giải mã a thì coi nhƣ đã làm xong việc thám mã, nên việc tìm
đƣợc p, q cũng không còn ý nghĩa đối với việc thám mã nữa. Tuy nhiên, điều này có
một ý nghĩa quan trọng hơn đó là nếu đối phƣơng biết a thì không chỉ phải thay số
mũ giải mã khác mà còn phải chọn modul n khác, vì khi đó đối phƣơng cũng có thể
biết p, q, do đó biết cách tìm khóa giải mã a bất kỳ, nếu khóa lập mã vẫn giữ modul
n, n = p.q.
Ta sẽ chứng minh rằng biết số mũ giải mã a sẽ tìm đƣợc các thừa số p, q của n.
Do a.b
1 mod (n) nên a.b - 1 = l. (n) = k.
Do (n) là một số chẵn nên ta có thể viết k dƣới dạng k = 2t.r (với r là số lẻ)
và t
1.
Theo định lý Ơle: với a mà (a,n)=1 thì a
g
Z*n thì gk
(n)
modn
1, do đó, ta có:
1 mod n (do k là bội của (n)) và do đó gk/2 là căn bậc hai của 1
theo modul n.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
34
Theo định lý phần dƣ Trung hoa, 1 có 4 căn bậc hai modul n=p.q. Hai căn
bậc hai là
1. Hai căn bậc hai khác là
x (x
1 mod p và x
-1 mod q) (1 < x <
p). Sử dụng một trong hai căn bậc hai không tầm thƣờng này sẽ tìm đƣợc p, q trong
thời gian đa thức bằng cách tính gdc(x-1,n).
x2
1 mod n
(x-1)(x+1)
0 mod n -> (x-1)(x+1) chia hết cho n.
Đặt
(x-1, n) = d1 và (x+1, n) = d2.
Vì
n = p.q và x
x-1
1, 0 < x < n, nên:
0 và 0 < x-1 < n
x+1 n và 0 < x+1< n
Suy ra d1 hoặc d2 phải khác 1 và do n = p.q nên một trong hai giá trị d1 và d2
chính là p hoặc q.
2.3.3. Giao thức công chứng
Giao thức công chứng là giao thức đƣợc thiết kế cho một văn bản sau khi A
ký lên đó, ngƣời khác có thể xác thực đƣợc rằng văn bản này thực sự đƣợc ký bởi A
(nó cũng giống nhƣ việc công chứng của công chứng viên ký chữ ký của mình lên
bảng công chứng).
Để thiết lập giao thức công chứng, Bob phải lựa chọn các tham số RSA: các
số nguyên tố p, q và các số mũ hóa e và khóa giải mã d thỏa mãn e.d
1 mod (n)
trong đó n = p.q. Các giá trị n, e là công khai, còn p, q và d đƣợc Bob giữ bí mật.
Để ký một văn bản M, Bob sử dụng số mũ bí mật d để tính chữ ký S = M d
mod n. Bất cứ ai cũng có thể sử dụng những thông tin công khai của Bob để kiểm
tra xem S có thật sự là chữ ký của Bob trên M hay không bằng cách tính S e mod n
và so sánh với M. Vì chỉ có Bob biết giá trị d, giá trị dùng để tạo ra S. Giao thức
công chứng khẳng định rằng chỉ có một mình Bob mới có thể tạo ra S.
Tuy nhiên Davida và Denning [13] đã chỉ ra rằng: có thể tạo ra chữ ký giả
mạo của giao thức này. Sau đây là một phƣơng thức để thực hiện điều đó.
Bob có khóa bí mật d và khóa công khai e. Giả sử Marvin muốn có đƣợc chữ
ký của Bob trên văn bản M
Zn*. Khi đó Marvin có thể thực hiện theo cách sau đây:
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
35
Lấy một số ngẫu nhiên r Zn*, tính M’ = reM mod n, và đề nghị Bob ký trên
M’. Nếu Bob ký trên S’, trên M’ thì Marvin có thể dễ dàng tính đƣợc chữ ký S của
Bob trên M:
S = S’.r-1 mod n.
Vì S’
(M’)d mod n
(reM)d mod n
r.S mod n
S = r-1.S’ mod n
S tìm đƣợc chính là chữ ký của Bob trên M.
Thật vậy:
Se
(S’)e mod n
(M’)ed/re (mod n)
M’/re (mod n)
M mod n.
Kỹ thuật trên đƣợc gọi là kỹ thuật che khuất (blinding), kỹ thuật này cho
phép Marvin lấy đƣợc một số chữ ký hợp pháp trên một văn bản anh ta muốn, bằng
cách yêu cầu Bob ký trên một văn bản “đƣợc che khuất” (blinding) ngẫu nhiên. Bob
không có thông tin về văn bản mà anh ta đang thực sự ký.
Kết quả của kỹ thuật này dựa trên một thực tế: RSA sử dụng một hàm toán
học (hàm mũ) bảo toàn phép nhân các giá trị đầu vào. Điểm mấu chốt của cách tấn
công này nếu chọn X, M, d và n bất kỳ:
(XM)d
XdMd mod n tức sigk(X.M) = sigk(X). sigk(M)
Vậy để ngăn cản việc tấn công vào giao thức công chứng bằng kỹ thuật che
khuất ta phải hủy bỏ khả năng sử dụng tính bảo toàn của phép nhân mà kẻ định giả
mạo chữ ký. Một trong nhiều cách đó là sử dụng hàm “hash một chiều” trên văn bản
M trƣớc khi ký và kỹ thuật này đƣợc áp dụng trong nhiều ứng dụng thực tế của
RSA (ví dụ nhƣ thanh toán điện tử ẩn danh).
2.3.4. Giao thức số mũ công khai nhỏ
Một tình huống sử dụng RSA khác nhằm giảm thời gian mã hóa hoặc kiẻm
thử chữ ký là dùng số mũ mã hóa nhỏ. Cách này hay đƣợc sử dụng trên mạng có
yêu cầu truyền thông lớn.
Trong giao thức này mỗi ngƣời dùng chọn hai số nguyên tố lớn p, q và công
bố khóa công khai của mình. Chúng ta quan tâm đến trƣờng hợp khi các số
mũ mã hóa ei là giống nhau và là một số nguyên nhỏ. Với một vài ứng dụng, điều
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
36
đó khá hấp dẫn vì ứng dụng với số mũ nhỏ sẽ có thể thực hiện đơn giản và nhanh
hơn. Tuy nhiên tính chất này sẽ làm cho giao thức thất bại nếu một ngƣời mã hóa
cùng một văn bản bằng số mũ ei và gửi cho nhiều ngƣời.
Ví dụ, e = 3 và văn bản M đƣợc mã hóa để gửi cho 3 ngƣời. Khi đó các bản
mã sẽ là:
- C2 = M3 mod n2
- C3 = M3 mod n3
- C4 = M3 mod n4
Nếu n2, n3 và n4 nguyên tố cùng nhau, thì áp dụng định lý phần dƣ Trung hoa
sẽ tính đƣợc M3 duy nhất thuộc khoảng (0, n2n3n4) thoả hệ phƣơng trình trên. Lấy
căn bậc 3 thông thƣờng của M3 sẽ tìm đƣợc M.
Nếu ngƣợc lại, n2 và n3 không nguyên tố cùng nhau, thì USCLN(n2 , n3) sẽ là
p hoặc q chung của hai ngƣời. Khi đó ngƣời này hoàn toàn có thể phá vỡ hệ mật của
ngƣời kia.
Để khắc phục nhƣợc điểm này, văn bản M cần đƣợc gắn thêm một thông tin
ngẫu nhiên trƣớc khi mã hóa để gửi cho mỗi ngƣời. (ví dụ gắn thêm tem thời gian).
Trong ví dụ của chúng ta ở trên, các bản mã mới trong giao thức sẽ là:
C2 = (2|t2|M + t2)3 modn2
C3 = (2|t3|M + t3)3 modn3
C4 = (2|t4|M + t4)3 modn4
Tuy nhiên, Hastad đã chỉ ra rằng cách này có thể không cho đủ các bản rõ
khác nhau để khắc phục nhƣợc điểm vốn có của giao thức số mũ nhỏ. Trong tài liệu
của ông, Hastad đã chỉ ra rằng một hệ phƣơng trình đồng dƣ:
Pi(x) = 0 modni, 1
i
k
có bậc không lớn hơn d có thể giải đƣợc trong thời gian đa thức nếu số phƣơng trình
lớn hơn d(d+1)/2. Vì trong trƣờng hợp này số mũ là 3, nếu văn bản đƣợc điều chỉnh
bằng tem thời gian đƣợc gửi cho ít nhất 7 thành viên trong mạng, văn bản sẽ không
còn là bí mật đối với ngƣời tấn công sau một khoảng thời gian không dài. Tất nhiên,
để tấn công theo cách này thì phải biết tem thời gian. Tuy nhiên, tem thời gian chỉ
gồm một số bit nhỏ so với kích thƣớc của văn bản vì vậy nó có thể đƣợc ƣớc lƣợng
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
37
trƣớc khi áp dụng thuật toán của Hastad. Rõ ràng tính bí mật của hệ thống không
thể tuỳ thuộc vào tính bí mật của một mình tem thời gian.
Thất bại của giao thức đƣợc đề cập đến trong phần này nhấn mạnh một điều
là ngƣời thiết kế giao thức phải quan tâm đến việc tăng thêm các thông tin cho các
bản mã mà bản rõ của nó có quan hệ (trong ví dụ là bằng nhau hoặc sai khác tem
thời gian) hoặc khóa của chúng có liên quan với nhau (nhƣ cùng số mũ với modul
nguyên tố cùng nhau).
2.3.5. Giao thức số mũ bí mật nhỏ
Để giảm thời gian giải mã (hoặc thời gian sinh chữ ký), ngƣời ta muốn sử
dụng một giá trị d nhỏ hơn là giá trị d ngẫu nhiên. Vì việc mũ hóa theo modul mất
một khoảng thời gian tuyến tính với log2d, nên số mũ d nhỏ có thể nâng hiệu quả
thực thi nhanh ít nhất 10 lần (đối với modul 1024 bit). Tuy nhiên, M.Wiener chỉ ra
rằng một số mũ giải mã d nhỏ sẽ dẫn đến sập toàn bộ hệ thống mật mã.
Định lý M.Wiener: Cho n = p.q với q n1.5 thì sẽ không có vấn đề là liệu với d nhỏ nhƣ thế nào thì cách
tấn công ở trên không thể thực hiện đƣợc. Tuy nhiên, giá trị e lớn dẫn đến việc tăng
thời gian mã hóa.
* Sử dụng CRT: Một phƣơng pháp khác là sử dụng định lý phần dƣ Trung
Hoa. Giả sử chọn d sao cho cả dp = d mod(p-1) và dq = d mod(q-1) nhỏ (khoảng 128
bit). Việc giải mã nhanh bản mã C thực hiện nhƣ sau: tính Mp = Cdp mod p và Mq =
Cdq modq. Sau đó sử dụng định lý phần dƣ Trung Hoa để tính giá trị duy nhất M
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
39
Z'n thoả mãn M = Mp modp và M=Mq modq. Kết quả M thoả mãn M = Cdmodn
đƣợc yêu cầu. Vấn đề là mặc dù dp và dq nhỏ, giá trị d mod (n) có thể lớn. Nhƣ thế
cách tấn công theo định lý trên không thực hiện đƣợc.
Chúng ta chú ý rằng với đã biết thì tồn tại cách tấn công cho phép
phân tích n ra các thừa số nguyên tố trong thời gian O(min
d p , d q ) vì vậy dp
và dq không thể chọn quá nhỏ.
Chúng ta không biết phƣơng pháp nào kể trên là an toàn. Điều mà chúng ta
biết là cách tấn công của Wiener là không có hiệu quả với chúng. Một định lý do
Boneh và Durfee cải tiến chỉ ra rằng nếu d< n0,292 thì có thể khôi phục d từ .
Kết quả này chỉ rằng giới hạn của Wiener là chƣa chặt chẽ khi cho rằng giới hạn là
d < n0,25. Đây vẫn còn là một vấn đề mở cho đến thời điểm hiện nay.
2.3.6. Trường hợp các tham số p-1 và q-1 có các ước nguyên tố nhỏ
Trong khi xây dựng hệ mật RSA, nếu ta bất cẩn trong việc chọn các tham số
p và q để p-1 hoặc q-1 có ƣớc nguyên tố nhỏ thì hệ mật mã trở nên mất an toàn. Khi
p-1 hoặc q-1 có ƣớc nguyên tố nhỏ thì ta có thể dùng thuật toán Pollar đƣa ra vào
năm 1974 phân tích N một cách hiệu quả.
Thuật toán đƣợc mô tả nhƣ sau:
Input: N và một cận B
Output: Trả lời:
- Thành công và đƣa ra thừa số của N
- Không thành công
Thuật toán:
1. a=2
2. For j=2 to B do
A= aj mod N
3. d=gcd(a-1, N)
4. If 1d(d+1)/2 và {ti} đã biết, có thể tìm thấy đƣợc X trong thời gian đa thức của k và
logni. Quan hệ với RSA của vấn đề này là số mũ đƣợc chọn trong giao thức không
đƣợc nhỏ.
Lớp thứ hai của các giao thức thất bại là do sơ suất của một vài nguyên tắc
áp dụng trên một lớp rộng rãi các thuật toán mã hóa, nhƣ các ví dụ về những thất
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
43
bại của giao thức entropy nhỏ và công chứng. Trong trƣờng hợp thất bại của giao
thức entropy nhỏ, một nguyên tắc chung là mật mã khóa công khai không nên áp
dụng để bảo vệ các văn bản mà không gian văn bản có entropy thấp đã không đƣợc
giao thức chú ý đến.
Lớp cuối cùng là các giao thức thất bại do ngƣời thiết kế phóng đại khả năng
an toàn mà giao thức có thể cung cấp. Nhất là trong trƣờng hợp khóa đối xứng,
trong đó, từ một đoạn mã ngƣời nhận có thể phát hiện thao tác bản mã đƣợc tính
toán với các giá trị không bí mật do ngƣời gửi đƣa vào. Những ngƣời thiết kế giao
thức cần phải đƣa ra càng chi tiết càng tốt những yêu cầu của họ về mức độ bảo mật
hay xác thực, những điều mong muốn có đƣợc từ giao thức cho trƣớc.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
44
CHƢƠNG 3
THỬ NGHIỆM PHƢƠNG PHÁP THÁM MÃ VỚI HỆ RSA
3.1. Mô tả bài toán tấn công RSA sử dụng modul chung
Tình huống dẫn đến việc sử dụng RSA có số modul chung xảy ra nhƣ sau:
khi trong hệ thống có k ngƣời đăng ký sử dụng RSA, để việc quản lý - phân phối
khóa đƣợc đơn giản, trung tâm sẽ sinh ra 2 số nguyên tố p, q; tính số modul n = p.q;
sinh ra các cặp khóa mã hóa/giải mã {ei, di} sau đó cấp cho ngƣời đăng ký thứ i
trong hệ thống khóa bí mật di tƣơng ứng, cùng các thông tin công khai bao gồm số
modul n và một danh sách đầy đủ khóa công khai {ei} (i=1..k).
Bất kỳ ngƣời nào có thông tin công khai này đều có thể mã hóa văn bản M
để gửi cho ngƣời đăng ký thứ i bằng cách sử dụng thuật toán mã hóa RSA với khóa
mã ei: Y
M ei mod n rồi gửi Y... Hoặc ngƣời đăng ký thứ i có thể ký một văn bản
M bằng cách tính chữ ký Si
M di mod n . Bất cứ ai cũng có thể xác thực rằng M
e
đƣợc ký bởi ngƣời đăng ký thứ i bằng cách tính Si i mod n và so sánh với M.
Tuy nhiên, việc sử dụng số modul chung dẫn đến một số điểm yếu của giao thức.
3.2. Thuật toán tấn công giao thức modul n chung
3.2.1. Kiểu tấn công thứ nhất: Tấn công dựa trên các số mũ mã hóa nguyên tố
cùng nhau
Nhƣ Simmons chỉ ra, nếu một văn bản đƣợc gửi tới hơn một ngƣời đăng ký
có các số mũ mã hóa nguyên tố cùng nhau thì đối phƣơng có thể giải mã đƣợc văn
bản mà không cần biết khóa giải mã. Để chứng minh điều này, hãy xem kết quả của
việc mã hóa văn bản M gửi cho 2 ngƣời có khóa công khai tƣơng ứng ei và ej:
Yi M ei mod n
Yj M
ej
mod n
Vì ei và ej là 2 số nguyên tố cùng nhau, nên có thể tìm đƣợc các số nguyên r
và s bằng thuật toán Euclid, thoả: rei + sej = 1.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
45
Rõ ràng, hoặc r hoặc s phải là số âm và trong trƣờng hợp này ta giả sử r[...]... độ mã và giải mã: Khi đánh giá hệ mật mã chúng ta phải chú ý đến tốc độ mã và giải mã Hệ mật tốt thì thời gian mã và giải mã nhanh Phân phối khóa: Một hệ mật mã phụ thuộc vào khóa, khóa này đƣợc truyền công khai hay truyền khóa bí mật Phân phối khóa bí mật thì chi phí sẽ cao hơn so với các hệ mật có khóa công khai Vì vậy đây cũng là một tiêu chí khi lựa chọn hệ mật mã 1.5 Hệ mật mã RSA Có nhiều hệ. .. đối xứng sử dụng một cặp khóa, khóa mã hóa còn gọi là khóa công khai (publickey) và khóa giải mã đƣợc gọi là khóa bí mật hay khóa riêng (private key) Trong hệ mật này, khóa mã hóa khác với khóa giải mã Về mặt toán học thì từ khóa công rất khó tính đƣợc khóa riêng Biết đƣợc khóa này không dễ dàng tìm đƣợc khóa kia Khóa giải mã đƣợc giữ bí mật trong khi khóa mã hóa đƣợc công bố công khai Một ngƣời bất... RSA Hệ mật RSA đƣợc sử dụng để cung cấp sự bảo mật và tính xác thực của dữ liệu số Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 27 CHƢƠNG 2 CÁC PHƢƠNG PHÁP THÁM MÃ HỆ MẬT MÃ KHÓA CÔNG KHAI 2.1 Tính an toàn của hệ mật mã Tính an toàn của một hệ thống mật mã phụ thuộc vào độ khó của bài toán thám mã khi sử dụng hệ mật đó 2.1.1 An toàn vô điều kiện Giả thiết ngƣời thám mã. .. mật mã khóa đối xứng đƣợc giải quyết nhờ hệ mật mã khóa công khai Chính ƣu điểm này đã thu hút nhiều trí tuệ vào việc đề xuất, đánh giá các hệ mật mã công khai Nhƣng do bản thân các hệ mật mã khóa công khai đều dựa vào các giả thiết liên quan đến các bài toán khó nên đa số các hệ mật mã này đều có tốc độ mã dịch không nhanh lắm Chính nhƣợc điểm này làm cho các hệ mật mã khóa công khai khó đƣợc dùng một. .. tả trong hình 1.4 và 1.5 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 9 Hình 1.4: Mã hóa thông điệp sử dụng khóa bí mật S để mã thông điệp và khóa công khai P để mã khóa bí mật S Hình 1.5: Giải mã thông điệp sử dụng khóa bí mật S để giải mã thông điệp và khóa riêng P để giải mã khóa bí mật S Ƣu và nhƣợc điểm của hệ mật mã khóa công khai Vấn đề còn tồn đọng của hệ mật. .. xứng Để giải quyết vấn đề phân phối và thoả thuận khóa của mật mã khóa đối xứng, năm 1976 Diffie và Hellman đã đƣa ra khái niệm về hệ mật mã khóa công khai và một phƣơng pháp trao đổi công khai để tạo ra một khóa bí mật chung mà tính an toàn đƣợc bảo đảm bởi độ khó của một bài toán toán học cụ thể (là bài toán tính “logarit rời rạc”) Hệ mật mã khóa công khai hay còn đƣợc gọi là hệ mật mã phi đối xứng... nhiều hệ thống khóa công khai đƣợc triển khai rộng rãi nhƣ hệ RSA, hệ ElGamal sử dụng giao thức trao đổi khóa Diffie-Hellman và nổi lên trong những năm gần đây là hệ đƣờng cong Elliptic Trong số các hệ mật mã trên thì hệ RSA là hệ đƣợc cộng đồng chuẩn quốc tế và công nghiệp chấp nhận rộng rãi trong việc thực thi mật mã khóa công khai Hệ mật mã RSA, do Rivest, Shamir và Adleman tìm ra, đã đƣợc công bố lần... đòi hỏi thời gian cho việc mã hóa một văn bản lâu hơn gấp hàng ngàn lần Do đó, thay bằng việc mã hóa văn bản có kích thƣớc lớn bằng lƣợc đồ khóa công khai thì văn bản này sẽ đƣợc mã hóa bằng một hệ mã đối xứng có tốc độ cao nhƣ DES, IDEA,…sau đó khóa đƣợc sử dụng trong hệ mã đối xứng sẽ đƣợc mã hóa sử dụng mật mã khóa công khai Phƣơng pháp này rất khả thi trong việc mã và giải mã những văn bản có kích... sử dụng khóa công khai P Hình 1.3: Giải mã thông điệp sử dụng khóa riêng của người nhận Việc phát minh ra phƣơng pháp mã công khai tạo ra một cuộc “cách mạng” trong công nghệ an toàn thông tin điện tử Nhƣng thực tiễn triễn khai cho thấy tốc độ mã hóa khối dữ liệu lớn bằng các thuật toán mã hóa công khai chậm hơn rất nhiều so với hệ mã hóa đối xứng Ví dụ, để đạt đƣợc độ an toàn nhƣ các hệ mã đối xứng... những nƣớc có công nghệ bảo mật (mật mã) rất hiện đại, vẫn còn không ít nƣớc vẫn đang sử dụng mật mã ở mức độ trung bình, thậm chí có nƣớc dùng mật mã truyền thống tƣơng đối đơn giản Và ngay trong cùng một nƣớc, các lực lƣợng, ngành khác nhau lại dùng các hệ mã khác nhau Ví dụ, mật mã dùng trong quân sự khác mật mã dùng trong ngoại giao, mật mã dùng trong tình báo khác với mật mã dùng trong ngân hàng, ...ii đại học thái nguyên Tr-ờng đại học CÔNG NGHệ THÔNG TIN Và TRUYềN THÔNG V QUC THNH TèM HIU MT S PHNG PHP THM M H MT M KHểA CễNG KHAI NG DNG TRONG BO MT D LIU LUN VN THC S KHOA HC MY TNH... khúa cụng khai khú c dựng mt cỏch c lp Mt na ny sinh s dng cỏc h mt mó khúa cụng khai l vic xỏc thc m mụ hỡnh h mt mó i xng khụng t Do cỏc khúa mó cụng khai c cụng b mt cỏch cụng khai trờn mng... cụng khai hay truyn khúa mt Phõn phi khúa mt thỡ chi phớ s cao hn so vi cỏc h mt cú khúa cụng khai Vỡ vy õy cng l mt tiờu la chn h mt mó 1.5 H mt mó RSA Cú nhiu h thng khúa cụng khai c trin khai