Công nghệ mạng máy tính đã mang lại những lợi ích to lớn.Chúng được áp dụng trong hầu hết các công việc trong mọi lĩnh vực như : chính trị,quân sự, quốc phòng… Trong mật mã học, mật mã h
Trang 1MỤC LỤC
MỤC LỤC 1
LỜI CẢM ƠN 3
TÓM TẮT NỘI DUNG 5
LỜI MỞ ĐẦU 6
CHƯƠNG 1: LỊCH SỬ NGÀNH KHOA HỌC MẬT MÃ 10
I GIỚI THIỆU CHUNG 10
1 Khoa học mật mã (Cryptology) 10
2 Khái niệm liên quan khoa học mật mã 10
3 Hệ thống mã hóa (cryptosystem) 11
II CÁC TÍNH CHẤT CƠ BẢN CỦA QUÁ TRÌNH BẢO MẬT VÀ MÃ HÓA 12
III LỊCH SỬ NGÀNH KHOA HỌC MẬT MÃ 12
1 Mật mã học cổ điển: từ trước công nguyên cho tới năm 1949 13
2 Mật mã học hiện đại: từ 1949 đến nay 21
IV ỨNG DỤNG CỦA KHOA HỌC MẬT MÃ 26
CHƯƠNG 2: CÁC PHƯƠNG PHÁP MẬT MÃ VÀ MỘT SỐ THUẬT TOÁN CỔ ĐIỂN PHỔ BIẾN 28
I MÃ HÓA ĐỐI XỨNG 28
1 Các khái niệm cơ bản 28
2 Mã hóa đối xứng 28
3 Mô hình mã hóa đối xứng 29
II MÃ HÓA BẤT ĐỐI XỨNG ( MÃ HÓA KHÓA CÔNG KHAI ) 36
1 Các khái niệm 36
2 Mô hình mã hóa bất đối xứng 37
3 Khóa công khai 38
4 Quản lý khóa: 40
5 Các dịch vụ an ninh và mã hóa khóa công khai: 41
6 Kết hợp thuật toán mã hóa đối xứng và bất đối xứng: 41
III GIỚI THIỆU MẬT MÃ CỔ ĐIỂN 42
1 Mã hóa chuyển dịch: 42
2 Thay thế: 44
IV PHƯƠNG PHÁP MẬT MÃ HIỆN ĐẠI 46
V MỘT SỐ THUẬT TOÁN CỔ ĐIỂN PHỔ BIẾN 47
Trang 21 Mã Ceasar 47
2 Mật mã Monoalphabetic 50
3 Mật mã Hill 53
4 Mật mã Playfair 56
5 Mật mã Polyalphabetic 59
CHƯƠNG III MẬT MÃ VIGENÈRE 60
I LỊCH SỬ: 60
II ĐỊNH NGHĨA: 61
III TÍNH CHẤT: 62
IV PHƯƠNG PHÁP MÃ HÓA VÀ GIẢI MÃ VIGENÈRE (KHI CÓ KHÓA CHO TRƯỚC): 63
1 Mã hóa: 63
2 Giải mã: 64
3 Chương trình mã hóa: 65
V PHÂN TÍCH MÃ VIGENÈRE TRONG TRƯỜNG HỢP KHÔNG CÓ KHÓA CHO TRƯỚC 65
1 Những đặc trưng thống kê: 65
2 Những đặc trưng thống kê của bản mã: Tần số đơn, bộ đôi, trùng lặp .69
3 Thống kê của bản mã được mã bởi khóa giả ngẫu nhiên, không có chu kỳ 73
4 Các tấn công phân tích mã Vigenère 77
VI KẾT LUẬN CHƯƠNG 79
CHƯƠNG V DEMO VÀ KẾT LUẬN 81
I GIỚI THIỆU CHƯƠNG TRÌNH 81
II CHƯƠNG TRÌNH CÀI ĐẶT. 81
1 Giao diện chương trình 81
2 Sơ đồ chức năng mã hóa Vigenère: 85
3 Viết code chương trình 86
4 Nhận xét, đánh giá, đề xuất: 88
Trang 3DANH MỤC BẢNG, HÌNH
Bảng 2.1 Các kiểu tấn công vào các thông điệp mã hóa 33
Bảng 2.2 Thời gian cần để dò tìm khóa theo thuật toán vét cạn 35
Hình 1.1: Sơ đồ mã hóa vã giải mã một thông điệp 11
Hình 1.2: Chữ tượng hình của Ai Cập 14
Hình 1.3: Gậy mật mã 16
Hình 1.4: Máy Engima được Phát xít Đức sử dụng rộng rãi 19
Hình 1.5: Máy SIGABA 20
Hình 2.1 Mô hình mã hóa quy ước đơn giản 29
Hình 2.2 Mô hình mã hóa qui ước 31
Hình 2.3 Quan hệ tần suất của các ký tự xuất hiện trong văn bản tiếng Anh 52
Hình 3.1 Ma trận cơ bản của phương pháp mã hóa Vigenère 64
Hình 5.2 Giao diện chương trình khi đã nhập đủ thông tin cần mã hóa 82
Hình 5.3 Thông điệp sau khi mã hóa 82
Hình 5.4 Kết quả sau khi giải mã 83
Hình 5.5 Chương trình tự loại bỏ ký tự không đúng 84
Hình 5.6 Báo lỗi nhập key 84
Trang 4Em xin gửi lời cảm ơn tới thầy giáo: Thạc sĩ Nguyễn Nam Hưng, người trựctiếp hướng dẫn và tận tình giúp đỡ em trong suốt thời gian làm đồ án tốt nghiệp.Tuy đã cố gắng hết sức thực hiện đồ án này nhưng chắc rằng không tránh khỏinhững thiếu sót Em rất mong nhận được sự thông cảm và góp ý của quý thầy cô.
Em xin chân thành cảm ơn!
Hà Nội, tháng 12 năm 2011
Sinh viênTrịnh Khắc Hải
Trang 5TÓM TẮT NỘI DUNG
Mục tiêu của đồ án đặt ra là nghiên cứu mật mã cổ điển với hai tính chất đặctrưng là thay thế và hoán vị, đặc biệt là mật mã Vigenère, là một trong nhữngphương pháp mã hóa điển hình sử dụng đa bảng ký tự (Poly Alphabetic) Từ nhữngnghiên cứu này sẽ mong muốn chỉ ra được những điểm yếu cố hữu trong thuật toán
mã hóa cổ điển và cũng làm nổi bật lên các đặc tính quan trọng của các hình thức
mã hóa hiện đại
Mật mã vigenère là một phương pháp mã hóa văn bản chữ cái bằng cách sửdụng một loạt các thuật toán mật mã Caesar khác nhau dựa trên các ký tự của từkhóa Nó là một hình thức đơn giản của phương pháp mã hóa thay thế
Thuật toán mã hóa Vigenère đã được tái phát minh nhiều lần Phương phápnày ban đầu được mô tả bởi Giovan Battista Bellaso trong cuốn sách năm 1553 Lacifra del Sig Giovan Battista Bellaso của mình; tuy nhiên, đề án sau đó có tính chấtBlaise de Vigenère trong thế kỷ 19, và bây giờ được biết rộng rãi đến như là “mật
mã Vigenère ”
Trước hết ta đi tìm hiểu về lịch sử ngành khoa học mật mã, một vài hệ mật mãđối xứng và bất đối xứng, các phương pháp mã hóa cổ điển như mã affine, mãCaesar, mật mã Hill, Rail Fence Đặc biệt đi sâu vào tìm hiểu mật mã Vigenère đểlàm rõ hơn độ an toàn của mật mã này so với các mật mã trên Đồng thời, làm rõthêm tính chất của hệ mã hóa Vigenère và cách thức mã hóa và giải mã khi có khóacho trước Cách phá mã khi không có khóa cho trước Cuối cùng là chương trình
mô tả về toàn bộ cách mã hóa, giải mã khi có khóa
Trang 6LỜI MỞ ĐẦU
Từ trước Công Nguyên con người đã phải quan tâm tới việc làm thế nào đểđảm bảo an toàn bí mật cho các tài liệu, văn bản quan trọng, đặc biệt là trong lĩnhvực quân sự, ngoại giao Ngày nay, với sự phát triển mạnh mẽ của công nghệ thôngtin việc ứng dụng các công nghệ mạng máy tính trở nên vô cùng phổ cập và cầnthiết Sự ra đời và tiến bộ vượt bậc của nó là bước ngoặt trong lịch sử phát triển của
xã hội, đưa thế giới từ kỷ nguyên công nghiệp sang kỷ nguyên thông tin và pháttriển kinh tế tri thức Công nghệ mạng máy tính đã mang lại những lợi ích to lớn.Chúng được áp dụng trong hầu hết các công việc trong mọi lĩnh vực như : chính trị,quân sự, quốc phòng…
Trong mật mã học, mật mã học cổ điển là một dạng của mật mã học đã được
sử dụng trong lịch sử phát triển của loài người nhưng ngày nay đã trở nên lạc hậu
do các phương thức mã hóa này quá đơn giản và những kẻ tấn công có thể dễ dàng
bẻ khóa thông qua nhiều phương thức như tấn công vét cạn (ví dụ như dùng máytính thử hết mọi trường hợp) hay dựa trên tấn công thống kê (dựa trên tần suất xuấthiện của các chữ cái)
Nói chung, mật mã học cổ điển hoạt động trên cơ sở bảng chữ cái (chẳng hạncác ký tự từ "A" tới "Z" trong tiếng Anh), và chúng được thực hiện bằng tay haymột số máy móc cơ khí đơn giản Ngược lại, các mô hình mã hóa hiện đại sử dụngcác máy tính hay các công nghệ số hóa khác, và hoạt động mã hóa dựa trên việcthay thế các bit hay byte Các phương thức mã hóa cổ điển thông thường dễ bị tổnthương (phá mã) bởi các tấn công văn bản mã hóa, đôi khi thậm chí kẻ tấn côngkhông cần biết các chi tiết cụ thể của hệ thống mã hóa, bằng cách sử dụng các công
cụ như phân tích tần suất Đôi khi người ta cũng cho rằng các phương thức mã hóanhư cách thức mã hóa của cỗ máy Enigma thuộc về các phương thức mã hóa cổđiển mặc dù cách thức mã hóa này đã sử dụng các thiết bị và công nghệ hiện đạinhất vào thời điểm đó (trong thời kỳ của Thế chiến II)
Trang 7Các phương thức mã hóa cổ điển chủ yếu dựa trên mật mã hóa hoán vị và mật mã hóa thay thế Trong mật mã hóa thay thế, các ký tự (hoặc nhóm ký tự) được
thay thế một cách có quy luật trong toàn bộ thông điệp bằng các ký tự khác (hoặc
nhóm ký tự), chẳng hạn câu I am Mr Enigma from được thay bằng câu This is morning star, sau đó các ký tự còn lại trong bảng chữ cái được thay thế theo một
quy luật nào đó xác định trước Trong phương thức mật mã hóa hoán vị thì các ký
tự được giữ không đổi, nhưng trật tự của chúng trong bản tin lại thay đổi theo mộtquy luật nào đó Có các thuật toán phức tạp để thực hiện việc mật mã hóa bằng cách
tổ hợp hai phương thức trên để tạo ra sản phẩm mã hóa; các phương thức mã hóakhối hiện đại như DES hay AES thực hiện việc lặp đi lặp lại một số bước thay thế
và hoán vị
Ngày nay, với sự phát triển mạnh mẽ của công nghệ thông tin việc ứng dụngcác công nghệ mạng máy tính trở nên vô cùng phổ cập và cần thiết Sự ra đời vàtiến bộ vượt bậc của nó là bước ngoặt trong lịch sử phát triển của xã hội, đưa thếgiới từ kỷ nguyên công nghiệp sang kỷ nguyên thông tin và phát triển kinh tế trithức Công nghệ mạng máy tính đã mang lại những lợi ích to lớn Chúng được ápdụng trong hầu hết các công việc trong mọi lĩnh vực như : chính trị, quân sự, quốcphòng…
Sự xuất hiện mạng Internet cho phép mọi người có thể truy cập, chia sẽ vàkhai thác thông tin một cách dễ dàng và hiệu quả Các công nghệ E-mail cho phépmọi người có thể gửi thư cho người khác cũng như nhận thư ngay trên máy tính củamình Gần đây có công nghệ E-business cho phép thực hiện các hoạt động thươngmại trên mạng máy tính.Việc ứng dụng các mạng cục bộ trong các tổ chức, công tyhay trong một quốc gia là rất phong phú.Các hệ thống chuyển tiền của các ngânhàng hàng ngày có thể chuyển hàng tỷ đôla qua hệ thống của mình.Các thông tin vềkinh tế, chính trị, khoa học xã hội được trao đổi rông rãi
Tuy nhiên lại nảy sinh vấn đề về an toàn thông tin Đó cùng là một quátrình tiến triển hợp logic: khi những vui thích ban đầu về một siêu xa lộ thôngtin, bạn nhất định nhận thấy rằng không chỉ cho phép bạn truy nhập vào nhiều
Trang 8nơi trên thế giới, Internet còn cho phép nhiều người không mời mà tự ý ghéthăm máy tính của bạn.
Thực vậy, Internet có những kỹ thuật tuyệt vời cho phép mọi người truynhập, khai thác, chia sẻ thông tin.Những nó cũng là nguy cơ chính dẫn đến thông tincủa bạn bị hư hỏng hoặc phá huỷ hoàn toàn
Có những thông tin vô cùng quan trọng mà việc bị mất hay bị làm sai lệch cóthể ảnh hưởng đến các tổ chức, các công ty hay cả một quốc gia Các thông tin về
an ninh quốc gia, bí mật kinh doanh hay các thông tin tài chính là mục tiêu của các
tổ chức tình báo nước ngoài về chính trị hay công nghiệp hoặc kẻ cắp nói chung.Bọn chúng có thể làm mọi việc có thể để có được những thông tin quý giá này Thửtưởng tượng nếu có kẻ xâm nhập được vào hệ thống chuyển tiền của các ngân hàngthì ngân hàng đó sẽ chịu những thiệt hại to lớn như mất tiền có thể dẫn tới bị phásản Chưa kể nếu hệ thông thông tin an ninh quốc gia bị đe doạ thì hậu quả khôngthể lường trước được
Theo số liệu của CERT(Computer Emegency Response Team - “Đội cấp cứumáy tính”), số lượng các vụ tấn công trên Internet được thông báo cho tổ chức này
là ít hơn 200 vào năm 1989, khoảng 400 vào năm 1991, 1400 vào năm 1993, và
2241 vào năm 1994 Những vụ tấn công này nhằm vào tất cả các máy tính có mặttrên Internet, các máy tính của tất cả các công ty lớn như AT&T, IBM, các trườngđại học, các cơ quan nhà nước, các tổ chức quân sự, nhà băng Một số vụ tấn công
có quy mô khổng lồ (có tới 100.000 máy tính bị tấn công).Hơn nữa, những con sốnày chỉ là phần nổi của tảng băng Một phần rất lớn các vụ tấn công không đượcthông báo, vì nhiều lý do, trong đó có thể kể đến nỗi lo bị mất uy tín, hoặc đơn giảnnhững người quản trị hệ thống không hề hay biết những cuộc tấn công nhằm vào hệthống của họ
Không chỉ số lượng các cuộc tấn công tăng lên nhanh chóng, mà các phươngpháp tấn công cũng liên tục được hoàn thiện Điều đó một phần do các nhân viênquản trị hệ thống được kết nối với Internet ngày càng đề cao cảnh giác Cũng theoCERT, những cuộc tấn công thời kỳ 1988-1989 chủ yếu đoán tên người sử dụng-
Trang 9mật khẩu (UserID-password) hoặc sử dụng một số lỗi của các chương trình và hệđiều hành (security hole) làm vô hiệu hệ thống bảo vệ, tuy nhiên các cuộc tấn côngvào thời gian gần đây bao gồm cả các thao tác như giả mạo địa chỉ IP, theo dõithông tin truyền qua mạng, chiếm các phiên làm việc từ xa (telnet hoặc rlogin).
Để vừa bảo đảm tính bảo mật của thông tin lại không làm giảm sự phát triểncủa việc trao đổi thông tin quảng bá trên toàn cầu thì một giải pháp tốt nhất là mãhoá thông tin Có thể hiểu sơ lược mã hoá thông tin là che đi thông tin của mình làmcho kẻ tấn công nếu chặn được thông báo trên đường truyền thì cũng không thể đọcđược và phải có một giao thức giữa người gửi và người nhận để có thể trao đổithông tin, đó là các cơ chế mã và giải mã thông tin
Ngày nay thì việc mã hoá đã trở nên phổ cập Các công ty phần mềm lớn trênthế giới đều có nghiên cứu và xây dựng các công cụ, thuật toán mã hoá để áp dụngcho thực tế Mỗi quốc gia hay tổ chức đều có những cơ chế mã hoá riêng để bảo vệ
hệ thống thông tin của mình
Trong phần nghiên cứu này, chúng ta sẽ nghiên cứu về mật mã cổ điển vàđặc biệt là mật mã vigenère, là một trong những phương pháp mã hóa điển hình
Mật mã vigenère là một phương pháp mã hóa văn bản chữ cái bằng cách sửdụng một loạt các thuật toán mật mã Caesar khác nhau dựa trên các ký tự của từkhóa Nó là một hình thức đơn giản của phương pháp mã hóa thay thế
Thuật toán mã hóa Vigenère đã được tái phát minh nhiều lần Phương phápnày ban đầu được mô tả bởi Giovan Battista Bellaso trong cuốn sách năm 1553 Lacifra del Sig Giovan Battista Bellaso của mình; tuy nhiên, đề án sau đó có tính chấtBlaise de Vigenère trong thế kỷ 19, và bây giờ được biết rộng rãi đến như là “mật
mã Vigenère ”
Mật mã này được biết đến nhiều vì nó rất dễ dàng để hiểu và thực hiện, nóthường xuyên đưa ra cho những người mới bắt đầu để phá vỡ; mật mã này đã được
mô tả như là: “phép thuật toán mã hóa không thể đọc được” Do đó, nhiều người đã
cố gắng thực hiện các chương trình mã hóa mà dựa trên thuật toán mã hóa cơ bảnVigenère, chỉ để được phá vỡ chúng
Trang 10Khoa học mật mã là ngành khoa học ứng dụng toán học vào việc biến đổithông tin thành một dạng khác với mục đích che dấu nội dung, ý nghĩa thông tin cần
mã hóa Đây là một ngành quan trọng và có nhiều ứng dụng trong đời sống xã hội.Ngày nay, các ứng dụng mã hóa và bảo mật thông tin đang được sử dụng ngày càngphổ biến hơn trong các lĩnh vực khác nhau trên thế giới, từ các lĩnh vực an ninh,quân sự, quốc phòng…, cho đến các lĩnh vực dân sự như thương mại điện tử, ngânhàng…
2 Khái niệm liên quan khoa học mật mã
+ Encrypt (encipher, encryption): mã hóa – đó là quá trình biến đổi thông tin
từ dạng ban đầu - có thể hiểu được thành dạng không thể hiểu được, với mục đíchgiữ bí mật thông tin đó
+ Decrypt (decipher, decryption): giải mã – đó là quá trình ngược lại với mã
hóa, khôi phục lại thông tin ban đầu từ thông tin đã được mã hóa
+ Plain text/message: là dữ liệu gốc (chưa được mã hóa).
+ Cipher text/message: là dữ liệu đã được mã hóa
Trang 11+ Cipher (hay cypher): là thuật toán dùng để thực hiện quá trình mã hóa hay
2 Tập đích C là tập hữu hạn tất cả các mẩu tin có thể có sau khi mã hóa.
3 Tập khóa K là tập hữu hạn các khóa có thể được sử dụng.
4 E và D lần lượt là tập mã hóa và giải mã với mỗi khóa k € K, tồn tại luật
mã hóa ek € E và luật giải mã dk € D tương ứng Luật mã hóa ek : P → C và luật giải mã dk : C→ P là hai ánh xạ thỏa mãn dk(ek(x))= x x € P.
Thường thì không gian các bản rõ và không gian các bản mã là các văn bảnđược tạo thành từ một bộ chữ cái A nào đó Đó có thể là bộ chữ cái tiếng Anh, bộ
mã ASCII, bộ mã unicode hoặc đơn giản hơn là các bít 0 và 1
Tính chất 4 là tính chất quan trọng của một hệ thống mã hóa Tính chất này
đảm bảo một mẩu tin x € P được mã hóa bằng luật mã hóa ek € E có thể được giải
mã chính xác bằng thuật giải mã dk € D.
Trong một hệ mật bất kỳ ta luôn có |C| ≥ |P| vì mỗi quy tắc mã hóa là mộtđơn ánh Khi |C| = |P| thì mỗi hàm mã hóa là một hoán vị
Trang 12II CÁC TÍNH CHẤT CƠ BẢN CỦA QUÁ TRÌNH BẢO MẬT VÀ MÃ HÓA
- Tính bí mật (confidentiality/privacy): tính chất này đảm bảo thông tin chỉ
được hiểu bởi những ai biết chìa khóa bí mật
- Tính toàn vẹn (integrity): tính chất này đảm bảo thông tin không thể bị thay
đổi mà không bị phát hiện Tính chất này không đảm bảo thông tin không bị thayđổi, nhưng một khi nó bị nghe lén hoặc thay đổi thì người nhận được thông tin cóthể biết được là thông tin đã bị nghe lén hoặc thay đổi Các hàm một chiều (one-way function) như MD5, SHA-1, MAC được dùng để đảm bảo tính toàn vẹn chothông tin
- Tính xác thực (authentication): người gửi (hoặc người nhận) có thể chứng
minh đúng họ Người ta có thể dụng một password, một challenge dựa trên mộtthuật toán mã hóa hoặc một bí mật chia sẻ giữa hai người để xác thực Sự xác thựcnày có thể thực hiện một chiều (one-way) hoặc hai chiều (multual authentication)
- Tính không chối bỏ (non-repudiation): người gửi hoặc nhận sau này không
thể chối bỏ việc đã gửi hoặc nhận thông tin Thông thường điều này được thực hiệnthông qua một chữ ký điện tử (electronic signature)
- Tính nhận dạng (identification): người dùng của một hệ thống, một tài
nguyên sở hữu một chứng minh thư (identity) như là một chìa khóa ban đầu(primary key) identity này sẽ xác định những chức năng của người dùng, giới hạncho phép của người dùng cũng như các thuộc tính liên quan
III LỊCH SỬ NGÀNH KHOA HỌC MẬT MÃ
Ngành khoa học mật mã là một ngành có lịch sử từ hàng nghìn năm nay.Trong phần lớn thời gian phát triển của mình (ngoại trừ vài thập kỷ trở lại đây),Lịch sử ngành khoa học mật mã chính là lịch sử của những phương pháp mật mãhọc cổ điển - các phương pháp mật mã hóa với bút và giấy, đôi khi có hỗ trợ từnhững dụng cụ cơ khí đơn giản
Vào đầu thế kỷ XX, sự xuất hiện của các cơ cấu cơ khí và điện cơ, chẳng hạnnhư máy Enigma, đã cung cấp những cơ chế phức tạp và hiệu quả hơn cho việc mật
mã hóa
Trang 13Sự ra đời và phát triển mạnh mẽ của ngành điện tử và máy tính trong nhữngthập kỷ gần đây đã tạo điều kiện để mật mã học phát triển nhảy vọt lên một tầm caomới.Sự phát triển của mật mã học luôn luôn đi kèm với sự phát triển của các kỹthuật phá mã Một vài sự kiện đáng ghi nhớ bao gồm:
+ Phát hiện ra bức điện Zimmermann khiến Hoa Kỳ tham gia Thế chiến 1 + Việc phá mã thành công hệ thống mật mã của Đức Quốc xã góp phần làmđẩy nhanh thời điểm kết thúc thế chiến II
Cho tới đầu thập kỷ 1970, các kỹ thuật liên quan tới khoa học mật mã hầu nhưchỉ nằm trong tay các chính phủ Hai sự kiện đã khiến cho khoa học mật mã trở nênthích hợp cho mọi người, đó là: sự xuất hiện của tiêu chuẩn mật mã hóa DES và sự
ra đời của các kỹ thuật mật mã hóa khóa công khai
Mặc dù Khoa học mật mã có lịch sử lâu dài khoảng 4500 năm Các cổ vật củangành khảo cổ học đã cho thấy điều này Tuy vậy có thể chia lịch sử mật mã họcthành hai thời kỳ sau:
1 Mật mã học cổ điển: từ trước công nguyên cho tới năm 1949.
Những bằng chứng sớm nhất về sử dụng mật mã học là các chữ tượng hìnhkhông tiêu chuẩn tìm thấy trên các bức tượng Ai Cập cổ đại, các bia mộ của họ(cách đây khoảng 4500) Các tài liệu viết tay khác cũng cho thấy các phương pháp
mã hóa đơn giản đầu tiên mà loài người đã sử dụng là của người Ba Tư cổ và người
Do Thái cổ
Những ký hiệu tỏ ra không phải để phục vụ mục đích truyền thông tin bí mật
mà có vẻ như là nhằm mục đích gợi nên những điều thần bí, trí tò mò hoặc thậm chí
để tạo sự thích thú cho người xem
Trang 14Hình 1.2: Chữ tượng hình của Ai Cập
Người Trung Quốc cổ đại đã sử dụng tính chất tượng hình trong ngôn ngữ của
họ để ám chỉ ý nghĩa của từ Các thông điệp thường được chuyển thành chữ tượnghình để tránh không cho ai biết được thông tin riêng tư nhưng không được sử dụngnhiều trong công cuộc xâm lược của Trung Quốc
Tại Ấn Độ văn bản bí mật được phát triển cao hơn nhiều, và những ngườithống trị sử dụng mã số bí mật để giao tiếp với một mạng lưới gián điệp trải rộngkhắp đất nước Mật mã của Ấn Độ cổ xưa chủ yếu là sự thay thế đơn giản cho chữcái thường dựa trên ngữ âm học Một số mật mã này đã được nói hoặc được sửdụng như ngôn ngữ ký hiệu
Mật mã Atbash là một trong những mật mã cổ xưa nhất mà con người đã từngbiết đến Mật mã này ra đời từ năm 500 trước Công nguyên và đến bây giờ vẫnđược dùng như một ví dụ về cách cơ bản thay thế Là một dạng thức phổ biến trongtài liệu được mã hoá của người Do Thái, mật mã Atbash là một loại mật mã thay thếđơn giản dựa trên bảng chữ cái Hebrew gồm hai mươi hai kí tự chữ cái Trong mật
mã Atbash, chữ cái đầu tiên được thay thế bằng chữ cái cuối cùng, chữ cái thứ haiđược thay thế bằng chữ cái kế tiếp chữ cái cuối cùng và cứ như vậy
Bảng mã Atbash cho bảng chữ cái Latinh:
Bảng chữ cái thường: abcdefghijklmnopqrstuvwxyz
Trang 15Bảng chữ cái mật mã: ZYXWVUTSRQPONMLKJIHGFEDCBA
Atbash là mã thay thế rất đơn giản, có thể áp dụng cho mọi bảng chữ cái
Ví dụ: Atbash "hold"="slow", "holy"="slob", "horn"="slim", "zoo"="all" Vìchỉ có một khóa, Atbash là mã đơn giản và rất yếu, nó đã bị thay thế bằng các loạimật mã khác phức tạp và mạnh mẽ hơn trong lịch sử mật mã học
Mật mã học từ lâu đã được sử dụng trong các tác phẩm tôn giáo để che giấuthông tin với chính quyền hoặc nền văn hóa thống trị Ví dụ tiêu biểu nhất là "số chỉ
kẻ thù của Chúa" (tiếng Anh: Number of the Beast) xuất hiện trong kinh Tân Ướccủa Cơ đốc giáo Ở đây, số 666 có thể là cách mã hóa để chỉ đến Đế chế La Mãhoặc là đến hoàng đế Nero của đế chế này Việc không đề cập trực tiếp sẽ đỡ gâyrắc rối khi cuốn sách bị chính quyền chú ý Đối với Cơ đốc giáo chính thống thìviệc che dấu này kết thúc khi Constantine cải đạo và chấp nhận đạo Cơ đốc là tôngiáo chính thống của đế chế
Người Hy Lạp cổ đại đã biết sử dụng các kỹ thuật mật mã : Mật mã Scrytalehình 1.2 hay còn gọi là gậy mật mã ra đời từ năm 487 trước Công nguyên, là mộtcông cụ dùng cho một phép mã hóa hoán vị, nó gồm một băng giấy da quấn quanhmột cây gậy hình trụ Thông điệp được viết lên băng giấy theo hàng dọc, khi mởbăng giấy ra, nó đã được mã hóa.Thế kỷ năm trước Công Nguyên, người Hy Lạp cổđại đặc biệt là người Sparta được cho là đã sử dụng gậy mật mã trong các chiến dịchquân sự để gửi tin nhắn bí mật giữa các chiến binh Hy Lạp
Người nhận sử dụng một cây gậy có cùng đường kính với gậy mã hóa để giải
mã thông điệp Kiểu mã hóa này có lợi thế là nhanh và rất ít sai lầm tuy nhiên nó dễdàng bị phá vỡ
Trang 16Hình 1.3: Gậy mật mã
Trong mật mã học, mật mã Caesar còn gọi là mật mã dịch chuyển, là mộttrong những mật mã đơn giản và được biết đến nhiều nhất Mật mã này được sángtạo vào năm 50-60 trước Công nguyên bởi Julius Caesar là một lãnh tụ quân sự vàchính trị của La Mã Theo đó, mỗi ký tự trong văn bản được thay thế bằng một ký
tự cách nó một đoạn trong bảng chữ cái để tạo thành bảng mã Caesar đã mã hóacác thông báo và chỉ những người trong nhóm của ông mới biết được quy tắc giải
mã Những người khác sẽ khó có cách nào biết được
Trong suốt thời Trung cổ, mật mã đã bắt đầu tiến bộ Tất cả các chính quyềnthống trị ở các nước Tây Âu đều sử dụng mật mã học dưới nhiều hình thức khácnhau Mật mã được sử dụng phổ biến để giữ liên lạc với các đại sứ Những cải tiếnlớn đầu tiên trong ngành mật mã học là được tạo ra ở Italia Vào năm 1452, Venice
đã sáng lập một tổ chức với mục đích duy nhất là giải quyết những vấn đề liên quanđến mật mã học Họ có ba thư ký giải quyết và tạo ra các thuật toán mã hóa để sửdụng cho chính quyền
Nguyên do xuất phát có thể là từ việc phân tích bản kinh Qur’an, do nhu cầutôn giáo, mà kỹ thuật phân tích tần suất đã được phát minh để phá vỡ các hệ thốngmật mã đơn ký tự vào khoảng năm 1000 Đây chính là kỹ thuật phá mã cơ bản nhấtđược sử dụng, mãi cho tới tận thời điểm của thế chiến thứ II Về nguyên tắc, mọi kỹthuật mật mã đều không chống lại được kỹ thuật phân tích mã (cryptanalytictechnique) cho tới khi kỹ thuật mật mã đa ký tự được Alberti sáng tạo (năm 1465)
Trang 17Mật mã học ngày càng trở nên quan trọng dưới tác động của những thay đổi,cạnh tranh trong chính trị và tôn giáo Chẳng hạn tại châu Âu, trong và sau thời kỳPhục hưng, các công dân của các thành bang thuộc Ý, gồm cả các thành bang thuộcgiáo phận và Công giáo La Mã, đã sử dụng và phát triển rộng rãi các kỹ thuật mật
mã Tuy nhiên rất ít trong số này tiếp thu được công trình của Alberti (công trìnhcủa họ không phản ảnh sự hiểu biết hoặc tri thức về kỹ thuật tân tiến của Alberti)Ngoài các nước ở Trung Đông và châu Âu, mật mã học hầu như không đượcphát triển Tại Nhật Bản, mãi cho tới 1510, mật mã học vẫn chưa được sử dụng vàcác kỹ thuật tiên tiến chỉ được biết đến sau khi nước này mở cửa với phương Tây(thập kỷ 1860)
Tuy mật mã học có một lịch sử dài và phức tạp, mãi cho đến thế kỷ 19 nó mớiđược phát triển một cách có hệ thống, không chỉ còn là những tiếp cận nhất thời, vô
tổ chức Những ví dụ về phân tích mã bao gồm công trình của Charles Babbagetrong kỷ nguyên của Chiến tranh Krim (Crimean War) về toán phân tích mật mãđơn ký tự Công trình của ông, tuy hơi muộn màng, đã được Friedrich Kasiski,người Phổ, khôi phục và công bố Tại thời điểm này, để hiểu được mật mã học,người ta thường phải dựa vào những kinh nghiệm từng trải (rules of thumb) Trongthập niên 1840, Edgar Allan Poe đã xây dựng một số phương pháp có hệ thống đểgiải mật mã Cụ thể là, ông đã bày tỏ khả năng của mình trong tờ báo hằng tuầnAlexander's Weekly (Express) Messenger ở Philadelphia, mời mọi người đệ trìnhcác phương pháp mã hóa của họ, và ông là người đứng ra giải Sự thành công củaông gây chấn động với công chúng trong vài tháng Sau này ông có viết một luậnvăn về các phương pháp mật mã hóa và chúng trở thành những công cụ rất có lợi,được áp dụng vào việc giải mã của Đức trong Thế chiến II
Trong thời gian trước và tới thời điểm của Thế chiến II, nhiều phương pháptoán học đã hình thành (đáng chú ý là ứng dụng của William F Friedman dùng kỹthuật thống kê để phân tích mật mã, và thành công bước đầu của Marian Rejewskitrong việc bẻ gãy mật mã của hệ thống Enigma của Quân đội Đức) Sau Thế chiến
II trở đi, cả hai ngành, mật mã học và phân tích mã, ngày càng sử dụng nhiều các cơ
Trang 18sở toán học Tuy thế, chỉ đến khi máy tính và các phương tiện truyền thông Internettrở nên phổ biến, người ta mới có thể mang tính hữu dụng của mật mã học vào trongnhững thói quen sử dụng hằng ngày của mọi người, thay vì chỉ được dùng bởi cácchính quyền quốc gia hay các hoạt động kinh doanh lớn trước đó.
Trong thế chiến II, các hệ thống mật mã cơ khí và cơ điện tử được sử dụngrộng rãi mặc dù các hệ thống thủ công vẫn được dùng tại những nơi không đủ điềukiện Các kỹ thuật phân tích mật mã đã có những đột phá trong thời kỳ này, tất cảđều diễn ra trong bí mật
Người Đức đã sử dụng rộng rãi một hệ thống máy rôto cơ điện tử, dưới nhiềuhình thức khác nhau, có tên gọi là máy Enigma Vào tháng 12 năm 1932, MarianRejewski, một nhà toán học tại Cục mật mã Ba Lan (tiếng Ba Lan: Biuro Szyfrów),
đã dựng lại hệ thống này dựa trên toán học và một số thông tin có được từ các tàiliệu do đại úy Gustave Bertrand của tình báo quân sự Pháp cung cấp Đây có thể coi
là đột phá lớn nhất trong lịch sử phân tích mật mã trong suốt một nghìn năm trở lại.Rejewski cùng với các đồng sự của mình là Jerzy Różycki và Henryk Zygalski đãtiếp tục nghiên cứu và bắt nhịp với những tiến hóa trong các thành phần của hệthống cũng như các thủ tục mật mã hóa Cùng với những tiến triển của tình hìnhchính trị, nguồn tài chính của Ba Lan trở nên cạn kiệt và nguy cơ của cuộc chiếntranh trở nên gần kề, vào ngày 25 tháng 7 năm 1939 tại Warszawa, cục mật mã BaLan, dưới chỉ đạo của bộ tham mưu, đã trao cho đại diện tình báo Pháp và Anhnhững thông tin bí mật về hệ thống Enigma
Ngay sau khi Thế chiến II bắt đầu (ngày 1 tháng 9 năm 1939), các thành viênchủ chốt của cục mật mã Ba Lan được sơ tán về phía tây nam; và đến ngày 17 tháng
9, khi quân đội Liên Xô tiến vào Ba Lan, thì họ lại được chuyển sang Romania Từđây, họ tới Paris (Pháp) Tại PC Bruno, ở gần Paris, họ tiếp tục phân tích Enigma vàhợp tác với các nhà mật mã học của Anh tại Bletchley Park lúc này đã tiến bộ kịpthời Những người Anh, trong đó bao gồm những tên tuổi lớn của ngành mật mãhọc như Gordon Welchaman và Alan Turing, người sáng lập khái niệm khoa họcđiện toán hiện đại, đã góp công lớn trong việc phát triển các kỹ thuật phá mã hệ
Trang 19thống mây Enigma.
Hình 1.4: Mây Engima được Phât xít Đức sử dụng rộng rêi
Câc nhă mật mê học của Hải quđn Mỹ (với sự hợp tâc của câc nhă mật mê họcAnh vă Hă Lan sau 1940) đê xđm nhập được văo một số hệ thống mật mê của Hảiquđn Nhđt Việc xđm nhập văo hệ thống JN-25 trong số chúng đê mang lại chiếnthắng vẻ vang cho Mỹ trong trận Midway SIS, một nhóm trong quđn đội Mỹ, đêthănh công trong việc xđm nhập hệ thống mật mê ngoại giao tối mật của Nhật (mộtmây cơ điện dùng "bộ chuyển mạch dịch bước" (stepping switch) được người Mỹgọi lă Purple) ngay cả trước khi thế chiến II bắt đầu Người Mỹ đặt tín cho những
bí mật mă họ tìm được từ việc phâ mê, có thể đặc biệt lă từ việc phâ mê mây Purple,với câi tín "Magic" Người Anh sau năy đặt tín cho những bí mật mă họ tìm ratrong việc phâ mê, đặc biệt lă từ luồng thông điệp được mê hóa bởi câc mâyEnigma, lă "Ultra"
Quđn đội Đức cũng cho triển khai một số thử nghiệm cơ học sử dụng thuậttoân mật mê dùng một lần (one-time pad) Bletchley Park gọi chúng lă mê Fish, vẵng Max Newman cùng đồng nghiệp của mình đê thiết kế ra một mây tính điện tử
số khả lập trình (programmable digital electronic computer) đầu tiín lă mâyColossus để giúp việc phâ mê của họ Bộ ngoại giao Đức bắt đầu sử dụng thuật toânmật mê dùng một lần văo năm 1919, một số luồng giao thông của nó đê bị người tađọc được trong Thế chiến II, một phần do kết quả của việc khâm phâ ra một số tăi
Trang 20liệu chủ chốt tại Nam Mỹ, do sự bất cẩn của những người đưa thư của Đức khônghủy thông điệp một cách cẩn thận.
Bộ Ngoại giao của Nhật cũng cục bộ xây dựng một hệ thống dựa trên nguyên
lý của "bộ điện cơ chuyển mạch dịch bước" (được Mỹ gọi là Purple), và đồng thờicũng sử dụng một số máy tương tự để trang bị cho một số tòa đại sứ Nhật Bản Một
trong số chúng được người Mỹ gọi là "Máy-M" (M-machine), và một cái nữa được
gọi là "Red" Tất cả những máy này đều ít nhiều đã bị phía Đồng Minh phá mã.SIGABA được miêu tả trong Bằng sáng chế của Mỹ 6.175.625, đệ trình năm
1944 song mãi đến năm 2001 mới được phát hành
Các máy mật mã mà phe Đồng minh sử dụng trong thế chiến II, bao gồm cảmáy TypeX của Anh và máy SIGABA của Mỹ, đều là những thiết kế cơ điện dùngrôto trên tinh thần tương tự như máy Enigma, song với nhiều nâng cấp lớn Không
có hệ thống nào bị phá mã trong quá trình của cuộc chiến tranh Người Ba Lan sửdụng máy Lacida, song do tính thiếu an ninh, máy không tiếp tục được dùng Cácphân đội trên mặt trận chỉ sử dụng máy M-209 và các máy thuộc họ M-94 ít bảo anhơn Đầu tiên, các nhân viên mật vụ trong Cơ quan đặc vụ của Anh (SpecialOperations Executive - SOE) sử dụng "mật mã thơ" (các bài thơ mà họ ghi nhớ lànhững chìa khóa), song ở những thời kỳ sau trong cuộc chiến, họ bắt đầu chuyểnsang dùng các hình thức của mật mã dùng một lần (one-time pad)
Hình 1.5: Máy SIGABA
Trang 212 Mật mã học hiện đại: từ 1949 đến nay
Kỷ nguyên của mật mã học hiện đại được bắt đầu với Claude Shannon, ngườiđược coi là cha đẻ của mật mã toán học Năm 1949 ông đã công bố bài Lý thuyết vềtruyền thông trong các hệ thống bảo mật (Communication Theory ofSecrecySystems) trên tập san Bell System Technical Journal - Tập san kỹ thuật của
hệ thống Bell - và một thời gian ngắn sau đó, trong cuốn Mathematical Theory ofCommunication - Lý thuyết toán học trong truyền thông - cùng với tác giả WarrenWeaver Những công trình này, cùng với những công trình nghiên cứu khác của ông
về lý thuyết về tin học và truyền thông (information and communication theory), đãthiết lập một nền tảng lý thuyết cơ bản cho mật mã học và phá mã Với ảnh hưởng
đó, mật mã học hầu như bị thâu tóm bởi các cơ quan truyền thông mật của chínhphủ, chẳng hạn như NSA Rất ít các công trình được tiếp tục công bố, cho đến thời
kỳ giữa thập niên 1970
Thời kỳ giữa thập niên kỷ 1970 được chứng kiến hai tiến bộ công trình lớn(công khai) Đầu tiên là sự công bố đề xuất Tiêu chuẩn mật mã hóa dữ liệu (DataEncryption Standard) trong "Công báo Liên bang" (Federal Register) ở nước Mỹvào ngày 17 tháng 3 năm 1975 Với đề cử của Cục Tiêu chuẩn Quốc gia (NationalBureau of Standards - NBS) (hiện là NIST), bản đề xuất DES được công ty IBM(International Business Machines) đệ trình trở thành một trong những cố gắng trongviệc xây dựng các công cụ tiện ích cho thương mại, như cho các nhà băng và chocác tổ chức tài chính lớn Sau những chỉ đạo và thay đổi của NSA, vào năm 1977,
nó đã được chấp thuận và được phát hành dưới cái tên Bản Công bố về Tiêu chuẩn
Xử lý Thông tin của Liên bang (Federal Information Processing StandardPublication - FIPS) (phiên bản hiện nay là FIPS 46-3) DES là phương thức mật mãcông khai đầu tiên được một cơ quan quốc gia như NSA "tôn sùng" Sự phát hànhbản đặc tả của nó bởi NBS đã khuyến khích sự quan tâm chú ý của công chúngcũng như của các tổ chức nghiên cứu về mật mã học
Vào cuối những năm 1960, IBM thiết lập một dự án nghiên cứu mật mã máytính đứng đầu bởi Horst Feistel Dự án được hoàn thành vào năm 1971 với sự phát
Trang 22triển của một thuật toán có tên là LUCIFER (Sao Mai) và được bán cho Lloyd ởLuân Đôn để sử dụng trong một hệ thống phân phối dùng tiền mặt, cũng được pháttriển bởi IBM LUCIFER là một mật mã khối Feistel hoạt động trên các khối 64-bit,
sử dụng mã khóa 128-bit Do triển vọng từ các kết quả đưa ra bởi dự án LUCIFER,IBM bắt tay vào phát triển sản phẩm mã hóa thương mại mà thực sự lý tưởng nếu
nó có thể thi hành được trên một con chip Đứng đầu nhóm phát triển này là WalterTuchman và Carl Meyer Nhóm gồm không chỉ các nghiên cứu viên mà gồm cả cácchuyên gia tư vấn và kỹ thuật viên đến từ NSA Kết quả đạt được đầu tiên của nỗlực này là một phiên bản của LUCIFER chỉnh sửa nhằm ứng phó tốt hơn nữa vớicác nỗ lực bẻ mã, đồng thời rút gọn kích thước khóa mã xuống 56 bit cho vừa vớimột con chip.Năm 1973, NBS đề ra yêu cầu về chuẩn mật mã quốc gia IBM đã đệtrình các kết quả của dự án Tuchman-Meyer Kết quả nghiên cứu của dự án này trởthành thuật toán tốt nhất và được thông qua vào năm 1977 với tên gọi DataEncryption Standard - DES
Trước khi trở thành chuẩn, DES đề xuất đã phải gánh chịu những phê phángay gắt và đến nay vẫn chưa dừng lại Hai lĩnh vực được nêu ra và bàn luận Một là,chiều dài khóa mã trong thuật toán nguyên bản LUCIFER của IBM là 128 bit,nhưng DES rút gọn đáng kể chỉ có 56 bit, bỏ đi đến 72 bit Các nhà phê bình e rằngkhóa mã như thế quá ngắn để trụ vững trước các tấn công brute-force Lĩnh vực cònbăn khoăn thứ hai là tiêu chuẩn thiết kế cấu trúc bên trong của DES, các hộp S,phân biệt với nhau Do vậy, người dùng không thể chắc chắn được về cấu trúc bêntrong của DES có tránh được các điểm yếu hay không Gần đây, các phương phápphân tích mã khác nhau dường như đã chứng minh DES có cấu trúc bên trong rấtchắc chắn Hơn nữa, theo các thành viên của IBM, các đề xuất thay đổi trong quátrình sản xuất đã dẫn đến các thay đổi nội dung thiết kế của các hộp S, theo gợi ýcủa NSA, và gỡ bỏ được các điểm yếu nhận thấy được qua những lần thử nghiệm
Dù sao thì DES cũng đã là một sản phẩm thuật toán được sử dụng rộng rãi,đặc biệt là trong các ứng dụng tài chính Vào năm 1994, NIST một lần nữa xác nhậnlại rằng DES được sử dụng trong toàn liên bang thêm 5 năm nữa NIST đã khuyến
Trang 23cáo rằng việc sử dụng DES cho các ứng dụng là hoàn toàn khác với việc bảo vệthuần tuý các thông tin mật Năm 1999, NIST phát hành phiên bản chuẩn mới (FIPSPUB 46-3) cho biết rằng chỉ nên sử dụng DES cho các hệ thống kế thừa và nên sửdụng 3DES (về mặt bản chất là nó đòi hỏi lặp lại DES ba lần liên tiếp, và sử dụnghai mật khóa khác nhau để đưa ra ciphertext) 3DES có hai sức hút chính, nó sẽ làkiểu mật hoá được sử dụng rộng rãi trong những năm tiếp theo Thứ nhất với chiềudài khoá 168 bit, nó vượt trên DES trong việc chống lại các tấn công brute-force.Thứ hai, bản chất của thuật toán mã hoá trong 3DES cũng giống như trong DES.Thuật toán này đã trải qua các thử nghiệm ngặt nghèo trong một thời gian dài vàkhông tìm thấy một cách tấn công phân tích mã nào trên thuật toán này đạt đượchiệu quả cao hơn so với tấn công brute-force đã được phát hiện Vì vậy, có thể hoàntoàn tin rằng 3DES đề kháng tốt với phân tích mã Nếu chỉ phải quan tâm đến vấn
đề an ninh, thì 3DES sẽ thích hợp là một thuật toán mật hoá chuẩn cho vài thập kỷtiếp theo
Nhược điểm quan trọng của 3DES là thuật toán khá chậm chạp DES vào giữanhững năm 1970 được thiết kế cho thi hành phần cứng, nó không có mã phần mềmhiệu quả 3DES, có số vòng nhiều hơn gấp ba lần so với DES nên cũng chậm tươngứng Một nhược điểm thứ hai là cả DES và 3DES đều sử dụng kích thước khối 64bit Với các lý do về an ninh và hiệu quả, người ta mong đợi một kích thước khốilớn hơn Do các nhược điểm này, 3DES đã không trở thành một ứng viên cho sửdụng dài hạn Để thay thế, vào năm 1977, NIST ra lời kêu gọi về một chuẩn mã hoácải tiến (Advanced Encryption Standard - AES), là loại mật mã mà cần có tính bảomật bằng hoặc tốt hơn hơn 3DES nhưng hiệu quả phải được cải thiện đáng kể.Thêm nữa, NIST chỉ ra rằng AES phải là một mật mã khối đối xứng với chiều dàikhối 128 bit và có hỗ trợ chiều dài khoá đến 128, 192, thậm chí là 256 bit
Ở vòng đánh giá tiêu chuẩn thứ nhất, có 15 thuật toán đề nghị được chấp nhận.Vòng hai hẹp hơn chỉ còn 5 thuật toán NIST hoàn thành tiến trình đánh giá của họ
và công bố chuẩn cuối cùng (FIPS PUB 197) vào tháng 11 năm 2001 NIST đãchọn Rijndael làm thuật toán AES đề nghị Hai nhà nghiên cứu đã phát triển và đệ
Trang 24trình Rijndael làm AES đều là các nhà phân tích mã đến từ Bỉ: tiến sỹ Joan Daemen
và tiến sỹ Vincent Rijmen
Cuối cùng, AES được gắn cho mục đích thay thế 3DES, nhưng tiến trình này
sẽ còn phải mất nhiều năm NIST lường trước rằng 3DES là thuật toán sẽ còn tiếptục được chấp nhận (chính phủ Mỹ còn sử dụng) trong tương lai gần
Tiến triển thứ hai, vào năm 1976, có lẽ còn đột phá hơn nữa, vì tiến triển này
đã thay đổi nền tảng cơ bản trong cách làm việc của các hệ thống mật mã hóa Đóchính là công bố của bài viết phương hướng mới trong mật mã học (New Directions
in Cryptography) của Whitfield Diffie và Martin Hellman Bài viết giới thiệu mộtphương pháp hoàn toàn mới về cách thức phân phối các khóa mật mã Đây là mộtbước tiến khá xa trong việc giải quyết một vấn đề cơ bản trong mật mã học, vấn đềphân phối khóa, và nó được gọi là trao đổi khóa Diffie-Hellman (Diffie-Hellmankey exchange) Bài viết còn kích thích sự phát triển gần như tức thời của một lớpcác thuật toán mật mã hóa mới, các thuật toán chìa khóa bất đối xứng (asymmetrickey algorithms)
Trước thời kỳ này, hầu hết các thuật toán mật mã hóa hiện đại đều là nhữngthuật toán khóa đối xứng (symmetric key algorithms), trong đó cả người gửi vàngười nhận phải dùng chung một khóa, tức khóa dùng trong thuật toán mật mã, và
cả hai người đều phải giữ bí mật về khóa này.Vì vậy khóa cần được trao đổi bằngmột phương pháp an toàn khác (không dùng mật mã) như gặp nhau trực tiếp haythông qua một người đưa thư tin cậy Vì vậy quá trình phân phối khóa trong thực tếgặp rất nhiều khó khăn, đặc biệt là khi số lượng người sử dụng rất lớn Mật mã hóakhóa công khai đã giải quyết được vấn đề này vì nó cho phép người dùng gửi thôngtin mật trên đường truyền không an toàn mà không cần thỏa thuận khóa từ trước.Năm 1874, William Stanley Jevons xuất bản một cuốn sách mô tả mối quan hệgiữa các hàm một chiều với mật mã học đồng thời đi sâu vào bài toán phân tích rathừa số nguyên tố (sử dụng trong thuật toán RSA) Tháng 7 năm 1996, một nhànghiên cứu đã bình luận về cuốn sách trên như sau:
Trang 25Trong cuốn The Principles of Science: A Treatise on Logic and ScientificMethod xuất bản năm 1890, William S Jevons đã phát hiện nhiều phép toán rất dễthực hiện theo một chiều nhưng rất khó theo chiều ngược lại Một ví dụ đã chứng tỏ
mã hóa rất dễ dàng trong khi giải mã thì không Vẫn trong phần nói trên ở chương 7(Giới thiệu về phép tính ngược) tác giả đề cập đến nguyên lý: ta có thể dễ dàngnhân các số tự nhiên nhưng phân tích kết quả ra thừa số nguyên tố thì không hề đơngiản Đây chính là nguyên tắc cơ bản của thuật toánmật mã hóa khóa công khaiRSAmặc dù tác giả không phải là người phát minh ra mật mã hóa khóa công khai
Thuật toán RSA được phát triển bởi Ron Rivest, Adi Shamir, và Len Adlemantại MIT vào năm 1977 và công bố năm 1978 Kể từ đó, phương thức mã hóa khóacông khai của Rivest-Shamir-Adleman (RSA) trở nên thịnh hành, được chấp nhậnthi hành rộng rãi và đa năng RSA sử dụng phép toán tính hàm mũ môđun (môđunđược tính bằng tích số của 2 số nguyên tố lớn) để mã hóa và giải mã cũng như tạochữ ký số An toàn của thuật toán được đảm bảo với điều kiện là không tồn tại kỹthuật hiệu quả để phân tích một số rất lớn thành thừa số nguyên tố
Trước đó, vào năm 1973, Clifford Cocks, một nhà toán học người Anh làmviệc tại GCHQ, đã mô tả một thuật toán tương tự Với khả năng tính toán tại thờiđiểm đó thì thuật toán này không khả thi và chưa bao giờ được thực nghiệm Tuynhiên, phát minh này chỉ được công bố vào năm 1997 vì được xếp vào loại tuyệtmật
Kể từ thập kỷ 1970, đã có rất nhiều thuật toán mã hóa, tạo chữ ký số, thỏathuận khóa được phát triển Các thuật toán như ElGamal (mật mã) do Netscape pháttriển hay DSA do NSA và NIST cũng dựa trên các bài toán lôgarit rời rạc tương tựnhư RSA Vào giữa thập kỷ 1980, Neal Koblitz bắt đầu cho một dòng thuật toánmới: mật mã đường cong elliptic và cũng tạo ra nhiều thuật toán tương tự Mặc dù
cơ sở toán học của dòng thuật toán này phức tạp hơn nhưng lại giúp làm giảm khốilượng tính toán đặc biệt khi khóa có độ dài lớn
Trang 26IV ỨNG DỤNG CỦA KHOA HỌC MẬT MÃ
Ngày nay khó có thể tìm thấy các ứng dụng trên máy tính lại không sử dụngtới các thuật toán và các giao thức mật mã học Từ các ứng dụng cho các máy tính
cá nhân cho tới các chương trình hệ thống như các hệ điều hành hoặc các ứng dụngmạng như Yahoo Messenger hoặc các hệ cơ sở dữ liệu có sử dụng các thuật toán mãhóa mật khẩu người dùng bằng một hệ mã hoặc một hàm băm nào đó Đặc biệt với
sự phát triển mạnh mẽ của thương mại điện tử các mô hình chữ ký điện tử ngàycàng đóng vai trò tích cực cho một môi trường an toàn cho người dùng Tuy vậychúng ta vẫn có thể chia các lĩnh vực ứng dụng của mật mã học thành các lĩnh vựcnhỏ sau:
+ Bảo mật(Confidentiality): che dấu nội dung của các thông điệp được trao đổitrong một phiên truyền thông hoặc giao dich hoặc các thông điệp trên một hệ thốngmáy tính(các file,các dữ liệu trong một cơ sở dữ liệu …)
+ Xác thực hóa(Authentication): đảm bảo nguồn gốc của một thôngđiệp,người dùng
+ Toàn vẹn(Integrity):đảm bảo chỉ có các tổ chức đã được xác thực hóa mới
có thể thay đổi các tài sản của hệ thống cũng như các thông tin trên đường truyền+ Dịch vụ không thể chối từ (Non-Repudiation):Các bên đã được xác thựckhông thể phủ nhận việc tham gia vào một giao dich hợp lệ
+ Ngoài ra còn các dịch vụ quan trong khác chẳng hạn như chữ ký điện tử,dịch
vụ chứng thực danh tính(Identification)cho phép thay thế hình thức xác thực hóangười dùng dựa trên các mật khẩu bằng các kỹ thuật mạnh hơn hoặc dịch vụ thươngmại điệntử cho phép tiến hành các giao dịch an toàn trên các kênh truyền thôngkhông an toàn như Internet
Thứ nhất, mật mã là công cụ rất quan trọng, được sử dụng ở mọi nơi Chúng tadùng mật mã hàng ngày mà lại không biết Khi vào GMail địa chỉ mà ta sử dụng bắtđầu bằng HTTPS thay vì HTTP Chữ S trong HTTPS là viết tắt của Secure, hiểunôm na rằng HTTPS là phiên bản an toàn hơn so với HTTP, và sự an toàn này lànhờ vào bộ giao thức mật mã mang tên Secure Socket Layer, phiên bản mới hơn gọi
Trang 27là Transport Layer Security Nhờ có SSL/TLS mà ta có thể an tâm giao dịch màkhông sợ thông tin giao dịch của mình bị đánh cắp hoặc chỉnh sửa trong quá trìnhtruyền từ máy tính của bạn lên đến máy chủ Nói cách khác, không có mật mã thìkhông có thương mại điện tử.
SSL/TLS được dùng chủ yếu để bảo vệ thế giới web, mà Internet thì đâu chỉ
có web Mật mã còn có thể được sử dụng để đảm bảo an toàn cho email Email cóhai vấn đề cần phải giải quyết Thứ nhất, làm thế nào để đảm bảo tính riêng tư, ví dụchị A viết thư cho anh B, thì chỉ có anh B đọc được thư đó, không ai khác đọc được
cả Thứ hai, làm thế nào để hiện thực hóa vấn đề chữ ký trong thư từ thông thường,nói cách khác làm sao để anh B biết chắc là thư đang đọc đến từ chị A, không bị aisửa chữa giả mạo gì cả, và sau này chị A cũng không thể chối là chị không phải làtác giả của lá thư đó? Đây chính là yêu cầu bắt buộc của khái niệm chữ ký điện tử
mà chúng ta thường nghe Tương tự như SSL/TLS, PGP/OpenPGP là tiêu chuẩnphổ biến nhất để bảo vệ email thông qua các thành tựu của mật mã học
Đôi khi gặp phải vấn đề xác thực người dùng, và lúc đó bạn sẽ cần phải sửdụng mật mã để xây dựng nên một cơ chế quản lý mật khẩu và xác thực người dùngmột cách an toàn Thay vì lưu mật mã trực tiếp xuống cơ sở dữ liệu, nhiều lập trìnhviên đã biết sử dụng các thuật toán băm một chiều để bảo vệ mật khẩu
Người ta còn dùng mật mã để bảo vệ các giao thức mạng không dây
Trang 28CHƯƠNG 2: CÁC PHƯƠNG PHÁP MẬT MÃ VÀ MỘT SỐ
THUẬT TOÁN CỔ ĐIỂN PHỔ BIẾN
I MÃ HÓA ĐỐI XỨNG
1 Các khái niệm cơ bản
Khái niệm: Mã hóa đối xứng là hình thức mật mã trong đó mã hóa và giải mã
được thi hành cùng một khóa, cùng một thuật toán mã hóa và giải mã Mã hóa đốixứng còn được gọi là mã hóa qui ước hay mã hóa khóa đơn
Mọi thuật toán mã cổ điển đều là mã hoá đối xứng, vì ở đó thông tin về khóađược chia sẻ giữa người gửi và người nhận Mã đối xứng là kiểu duy nhất trước khiphát minh ra khoá mã công khai (còn được gọi là mã không đối xứng) vào nhữngnăm 1970 Hiện nay các mã đối xứng và công khai tiếp tục phát triển và hoàn thiện
Mã công khai ra đời hỗ trợ mã đối xứng chứ không thay thế nó, do đó mã đối xứngđến nay vẫn được sử dụng rộng rãi
2 Mã hóa đối xứng
Mã hóa đối xứng còn được gọi là mã hóa qui ước hay mã hóa khóa đơn,
là kiểu mã hóa được sử dụng trước sự phát triển của khóa-công-khai trong nhữngnăm 1970 Nó vẫn còn được sử dụng rất lâu sau đó dưới hai dạng mã hóa Phần Itrình bày một số phương pháp mã hóa đối xứng Trong chương này, chúng ta bắtđầu với một mô hình chung cho quá trình mã hóa đối xứng, cho phép ta hiểu ngữcảnh mà trong đó các thuật toán được áp dụng Tiếp theo, ta sẽ khảo sát một tập khá
đa dạng các thuật toán được sử dụng trước kỷ nguyên máy tính Cuối chương, một
phương pháp phi máy tính cũngđược trình bày để tham khảo, steganography.
Chương 3 sẽ nghiên cứu DES, một kỹ thuật mã hóa đối xứng từngđượcáp dụngrộng rãi nhất
Trước khi bắt đầu, chúng ta định nghĩa vài thuật ngữ Một thông điệp
gốc,”bản rõ”, ta gọi là plaintext Chừng nào thông điệp gốccòn ở dạngmã hóa, ta gọi là ”bản mờ”ciphertext Quá trình chuyển đổi từ plaintext sang ciphertext ta gọi
là mã hóa Phục hồi trở lại văn bản ban đầu, ta gọi là giải mã Các lược đồ sử dụng
Trang 29để triển khai mã hóa trong khuôn khổ nghiên cứu gọi là mã đồ Kết quả của mã đồ gọi là mật mã Các kỹ thuật sử dụng nhằm giải mã một thông điệp, mà không có một chút tri thức chi tiết nào khi bắt đầu, gọi là dò mã Dò mã là thuật ngữ chuyên môn gọi là ”bẻ mã” Các lĩnh vực liên quan đến mã hóa và giải mã, gọi là khoa học mật mã.
Hình 2.1 Mô hình mã hóa quy ước đơn giản
3 Mô hình mã hóa đối xứng
Một hình thức mã hoá đối xứng điển hình có năm bộ phận hợp thành (hình 2.1):
Plaintext:Bản rõ, đọc được hoặc làdữ liệu đầu vào cho thuật toán mã hoá Thuật toán mã hóa:Thi hành các thay thế và dịch chuyển một cách có hệ
thống trên plaintext
Mật khóa: Khóa bí mật, cũng là đầu vào của thuật toán mã hóa Mật khóa
mang một giá trị độc lập với plaintext và thuật toán Thuật toán sẽ cho kết quả khácnhau tùy thuộc vào nội dung mậtkhóa đã sử dụng Phép thay thế, chuyển dịch đúngđắn của thuật toán tùy thuộc vào mật khóa
Ciphertext:Bản mờ, là tài liệu đã được biến đổi,là đầu ra của thuật toán mã
hoá Nội dung của nóphụ thuộc vào plaintext và mật khóa Cho trước một thông điệp,hai mật khóa khác nhau sẽ đưa ra hai ciphertext khác nhau Ciphertext là một thôngđiệp mang một dáng vẻ ngẫu nhiên, thấy được nhưng không thể hiểu nội dung
Thuật toán giải mã: Mang bản chất ngược lại với quá trình thi hành của
thuật toán mã hóa Nó nhận ciphertext và mật khóa,phục hồi trở lại văn bản gốc
Trang 30Có hai đòi hỏi an ninh trong sử dụng mã hóa qui ước:
Chúng ta cần một thuật toán mã hóa mạnh Ít nhất, thuật toán mong muốn
phải bảo đảm được rằng:cho dù kẻ biết được thuật toán và kể cả khi hắn đã truycậpđược một hay nhiều đoạn ciphertext cũng không thể giải mã hay tìm được mậtkhóa Đòi hỏi này còn được phát biểu đanh thép hơn: Địch thủ không thể giải mãđược ciphertext, không thể khám phá ra mật khóa kể cả khi hắn có chiếm được một
số ciphertext cùng với một số plaintext đã sinh ra ciphertext
Người gửi và người nhận phải nhận có được các bản sao mật khóa một cách an toàn và phải giữ chúng bí mật Nếu kẻ nào đó khám phá được mật khóa
và biết thuật toán, tất cả giao dịch sử dụng khóa này sẽ bị phơi bày
Chúng ta giả thiết rằng không thể giải mã một thông điệp mà chỉdựa trênciphertext cộng với các kiến thức về thuật toán mã hóa và giải mã Nói cách khác,chúng ta không cần giữ bí mật thuật toán, mà chỉ cần giữ bí mật đối với mật khóa.Đặc điểm này của mã hóa đối xứng làm cho nó được sử dụng rộng rãi Thực tế,không cần giữ kín thuật toán, có nghĩa rằng, các nhà sản xuất có thể được phép pháttriển các chip thi hành thuật toán mã hóa và giải mã với giá thành thấp Các chipnày đượccung cấp rộng rãi và phối hợp với các sản phẩm khác Với việc sử dụng
mã hóa đối xứng, nguyên tắc bảo mật là duy trì bí mật củamật khóa
Hãy tiếp cận gần hơn nữa vào bản chất của từng thành phần trong mô hình
mã hóa đối xứng, qua hình 2.2 Một nguồn trong hệ thống, cung cấp một plaintext
X, vớiX = [X1, X2, , XM] M phần tử của X là các ký tự trong một bảng chữ cái
hữu hạn nào đó, chẳng hạn, nguồn này dùngbảng chữ cái tiếng Anh với 26 chữ hoa.Ngày nay, bảng chữ cái nhị phân {0, 1} thường được sử dụng Để mã hóa, một mật
khóa K, có dạng K = [K1, K2, , KJ] được sinh ra Nếu khóa này được sinh ra bởi
nguồn phát thông điệp, thì nó cũng phải đượcgiao tới đích bằng một kênh bảo mậtnào đó Một sự lựa chọn khác là, một bên tin cậy thứ ba sẽ sinh mật khóa và giao nócho cả hai bên giao dịch là nguồn và đích một cách bí mật
Lấy thông điệp X và mật khóa K làm đầu vào, thuật toán mã hóa thiết lập
ciphertext,Y, màY = [Y1, Y2, , YN] Chúng ta có thể viết quá trình mã hóa này theo dạng Y = E(K, X)
Trang 31Hình 2.2 Mô hình mã hóa qui ước
Ký hiệu này biểu thị rằng, Y được tạo ra bằng cách sử dụng thuật toán mãhóa E là hàm nhận các đối số gồm plaintext X và mật khóa K.Ởđầu kia, người nhậnmong muốn, với việc sở hữu mật khóa, họ đủ khả năng nghịch đảo quá trình mã hóa
để nhận lại được thông điệp gốc
X =D(K , X)
Một kẻ bẻ mã, nếu có chiếm được Y – nhưng không biết K hay X – sẽ cốmọi cách để có được K hay X, hoặc cả hai Giả sử, hắn biết thuật toán mã hóa (E)
và giải mã (D); vàgiả sử, hắn chỉ quan tâm đến mỗi thông điệp này, thì mọi cố gắng
sẽ dành cho việc khôi phục X bằng cách tạo ra một plaintext dự đoán, X Nhưngthường không dừng lại ở đó, hắn cũng rất quan tâm đến khả năng đọc được cácthông điệp sau này nữa, nên hắn sẽ cố gắng phục hồi cho được mật khóa, và có thể
y sẽ tạo ra được một khóa dự đoán, K
3.1 Kỹ thuật mật mã
Các hệ thống mã hóa bao giờ cũng đặc trưng bởi ba yếu tố độc lập:
Phương pháp biến đổi plaintext sang ciphertext: Tất cả các thuật toán
mã hóa đều dựa trên hai nguyên tắc cơ bản: thay thế, mỗi phần tử của plaintext (bit,
ký tự, hay nhóm các bit hoặc nhóm các ký tự) được ánh xạ đến phần tử khác; và,hoán vị, các phần tử trong plaintext được sắp xếp lại Yêu cầu cơ bản là không mấtthông tin (tức là, tất cả các hành động đều phục hồi được) Hầu hết các hệ thống,
Trang 32thường gọi là các hệ thống sản xuất, bao gồm nhiều giai đoạn thay thế và hoán vị.
Số mật khóa sử dụng: Nếu cả người gửi và người nhận sử dụng cùng
một mật khóa, thì hệ thống gọi là mã hóa đối xứng, khóa đơn, mật khóa, hay mã hóaqui ước Nếu người gửi và người nhận dùng các khóa khác nhau, thì hệ thống đượcgọi là bất đối xứng, hai khóa, hay mã hóa khóa-công-khai
Cách thức gia công plaintext: Một tiến trình mã hóakhối (block cipher)
thì đầu vào cho mỗi lần thực hiện gồm một khối các phần tử, và cũng đưa ra mộtkhối mật mã tương ứng Một tiến trình mã hóa luồng (stream cipher) có đầu vào liêntục, xử lý mỗi lần một phần tử và cũng tương ứngkết xuất một phần tử
3.2 Phân tích giải mã
Nói chung, mục tiêu tấn công vào hệ thống mã hóa là cố chiếm được mậtkhóa, từ đó dễ dàng phục hồi plaintext Có hai phương pháp chung để tấn công một
hệ thống mã hóa quy ước:
Phân tích mã: Các tấn công giải mã dựa trên cấu trúc tự nhiên của thuật
toán, cộng với một số kiến thức nào đó về các tính chất chung của plaintext hay dựatrên các cặp plaintext-ciphertext mẫu Kiểu tấn công này khai thác đặc trưng củathuật toán để cố suy luận plaintext cụ thể hay suy luận ra mật khóa đang dùng
Tấn công thô bạo brute-force: Kẻ tấn công thử tất cả các khả năng có
thể của mật khóa trên từng phần của ciphertext cho đến khi hắn đạt được điều gì đó
có thể nhận thức được Trung bình, để thành công, một nửa số khả năng khóa phảiđược thử
Nếu một trong hai cách tấn công trên thành công trong việc suy luận mậtkhóa, thì hậu quả tất yếu là: tất cả các phần còn lại của thông điệp và những thôngđiệp tương lai vẫn dùng mật khóa đó sẽ lộ diện.Trước hết, chúng ta xem xét vấn đềphân tich mã, rồi sẽ thảo luận các tấn công brute-force
Trang 33Bảng 2.1 Các kiểu tấn công vào các thông điệp mã hóa
Kiểu tấn công Thông tin cần để bẻ mã
Chỉ biết ciphertext Thuật toán mã hóa
Ciphertext thường gặp chọn bởi kẻ bẻ mã, cùng với plaintext
đã được giải mã tương ứng
Bảng 2.1 tóm tắt các kiểu tấn công bẻ mã dựa trên một lượng thông tin thu được
bởi kẻ phá mã Khóbẻ mãnhất là khichỉ có ciphertext Trong một số trường hợp, kể
cả thuật toán cũng không biết, nhưng chúng ta vẫn cứ giả thiết rằng đối phương biếtthuật toán mã hóa đã dùng Một khả năng tấn công trong các tình huống này làphương pháp brute-force, thử tất cả khả năng của mật khóa Nếu kích thước khóarất lớn, kiểu tấn công này sẽ không thực tế Do đó, đối phương phải dựa vào phântích ciphertext, thông thường là áp dụng các hình thức kiểm tra thống kê cho nó Để
sử dụng phương pháp này, đối phương phải có một vài ý tưởngmơ hồ về plaintextđang bị che giấu, chẳng hạn như biết thông điệp có dạng tiếng Anh, hay Pháp, mộttập tin EXE, một tập tin nguồn Java, một tập tin tài chính v.v…
Trang 34Chống lại tấn công chỉ có ciphertext là dễ dàng nhất, bởi vì đối phương có ít
thông tin nhất Tuy nhiên trong nhiều trường hợp, kẻbẻ mã có nhiều thông tin hơnthế Kẻ giải mã có thể đãbiết được một hay nhiều thông điệp dạng plaintext cùngvới các bản mã hóa tương ứng của chúng Hoặc, kẻ giải mã có thể biết chút ít vềkhuôn dạng thông điệp Chẳng hạn, một tập tin được mã hóa dưới dạng Postscriptthì luôn bắt đầu với cùng một khuôn mẫu, hoặc cũng rất có thể là một header tiêuchuẩn, hay một băng quảng cáo cho một giao dịch ngân hàng điện tử và, v.v… Tất
cả các ví dụ loại này gọi là tấn côngđã biết plaintext Với kiến thức này, kẻ giải mã
rất có thể suy luận mật khóa dựa trên cơ sở của phương pháp mã hóa plaintext đang
sử dụng
Quan hệ mật thiết với tấn công đã biết plaintext, là một kiểu gọi là tấn công
từ chắc chắn Nếu kẻ phân tích mã làm việc với một bài văn xuôi chung chung, hắn
ta có thể biết chút kiến thức nào đó trong thông điệp Rồi bằng cách này hay cáchkhác, vài phần của thông điệp cũng có thể bị hé lộ Ví dụ, nếu toàn bộ tập tin tàichính được truyền đi, đối phương có thể biết chắc chắn vị trí sắp đặt của các từ khóatrong header của tập tin Hoặc như trong một ví dụ khác, mã nguồn của một chươngtrình phát triển bởi công ty X, rất có thể nó bao gồm các phát biểu về tác quyền ởmột số vị trí tiêu chuẩn
Nếu kẻ giải mã xâm nhập được vào hệ thống nguồn để chèn vào hệ thống
một thông điệp mà hắn ta đã chuẩn bị sẵn, thì một tấn công plaintext-lựa chọn là có
thể xảy ra Một ví dụ về thủđoạn này là giải mã vi sai, sẽ được giới thiệu đến trongChương 3 Một cách tổng quát, nếu kẻ giải mã có khả năng lựa chọn thông điệp vàgài nó vào văn bản mã hóa, thì sau đó, tội phạm có thể lấy nó làm mẫu phân tích vàkhám phá ra cấu trúc của mật khóa
Bảng 2.1 liệt kê hai kiểu tấn công khác nữa là ciphertext-lựa chọn và văn bản-lựa chọn Chúng ít được sử dụng nhưng không có nghĩa là không có thể.
Chỉ những thuật toán yếu kém là không chịu đựng được tấn công chỉ ciphertext Thông thường, một thuật toán mã hóa được thiết kế để chống lại tấn công đã biết-plaintext
Trang 35có-Hai khái niệm nữa cũng đáng chú ý vào lúc này Một phương thức mã hóa là
an toàn tuyệt đối nếu ciphertext được sinh ra bởi phương thức không chứa đầy đủ
thông tin để xác định tính duy nhất tương ứng đối với plaintext, không cần biết baonhiêu ciphertext được sinh ra Tức là, không cầnquan tâm đến thời gian mà đốiphương có, không thể giải mã ciphertext, đơn giản bởi vì các thông tin hắn mong
muốn không có mặt ở đó Loại trừ một phương thức gọi là đệm một lần (one-time
pad), không có một phương thức nào là an toàn tuyệt đối Cho nên, tất cả ngườidùng thuật toán mã hóa đều phấn đấu vì một thuật toán nào đó mà nóđạt được mộthoặc cả hai tiêu chí dưới đây:
Chi phí phá mã vượt quá giá trị của thông tin mã hóa
Thời gian đòi hỏi cho phá mã vượt quá thời gian có ích của thông tin
Một phương thức mã hóa được nói là an toàn tính toán nếu đạt được một
hoặc cả hai tiêu chí nêu trên Sự cản trở bẻ mãlà dựa trên việc rất khó xác định đượcnhững nỗ lực cần có để giải mã thành công
Bảng 2.2 Thời gian cần để dò tìm khóa theo thuật toán vét cạn
Kích thước
khóa (bit)
Số lượng khóa tốiđa
Thời gian cầncho máy
5,4 × 1018năm
168 2168= 3,7 ×
1050
2167µs = 5,9 × 1036năm
Trang 36trong Phần II rằng, người bẻ mã các mật mã khóa-công-khai sẽ tiến hành từ các giảthuyết khác nhau của các tính chất toán trên cặp khóa, từ đó có thể suy luận từ khóanày ra khóa kia.
Một tấn công thô bạo brute-force bao gồm việc thử mọi khóa có thể cho
đến khi thu được bản dịch đọc được từ ciphertext Trung bình, nửa số khóa phảiđược thử Bảng 2.2 trình bày lượng thời gian cần thiết cho một số không gian khóakhác nhau Các kết quả minh họa bốn kích thước khóa nhị phân Kích thước khóa
56 bit được dùng cho thuật toán DES (Data Encryption Standard), khóa 168 bit cho3DES Kích thước nhỏ nhất cho AES(Advanced Encryption Standard) là 128 bit
Các kết quả cũng minh họa cho cái gọi là các mã thay thế mà nósử dụng một khóa
trong 26-ký tự (sẽ bàn đến sau), trong đó, tất cả các hoán vị có thể từ 26 ký tự sẽđáp ứng như các khóa Với mỗi kích thước khóa, các kết quả minh họa đều giả thiếtrằng: sẽ mất 1 s để thực thi một bước giải mã, là một thời gian hợp lý để ước tínhđối với các cỗ máy giải mã ngày nay Bằng việc sử dụng các tổ chức vi xử lý songsong, rất có thể tốc độ xử lý giải mã được rút ngắn đáng kể Cột cuối cùng của bảng2.2 xem xét các kết quả đối với một hệ thống có thể xử lý 1 triệu khóa trên một mili
giây Như bạn thấy, ở cấp độ thi hành này, DES không còn được coi là an toàn tính toán nữa.
II MÃ HÓA BẤT ĐỐI XỨNG ( MÃ HÓA KHÓA CÔNG KHAI )
1 Các khái niệm
Nếu như vấn đề khó khăn đặt ra đối với các phương pháp mã hóa quy ướcchính là bài toán trao đổi mã khóa thì ngược lại, các phương pháp mã hóa bất đốixứnggiúp cho việc trao đổi mã khóa trở nên dễ dàng hơn Nội dung của khóa côngkhai (public key) không cần phải giữ bí mật như đối với khóa bí mật trong cácphương pháp mã hóa quy ước Sử dụng khóa công khai, chúng ta có thể thiết lậpmột quy trình an toàn để truy đổi khóa bí mật được sử dụng trong hệ thống mã hóaquy ước
Khái niệm: Mã hoá bất đối xứng là một dạng hệ thống mật hoá trong đó mã
hoá và giải mã được thực hiện với các khoá khác nhau, một công khai và một giành
Trang 37riêng Nó còn được gọi là mã hoá khoá công khai.
Mã hoá bất đối xứng biến đổi plaintext thành ciphertext bằng một trong haikhoá qua thuật toán mã hoá
Sử dụng khoá kia của cặp và thuật toán giải mã, plaintext có thể được phục hồitrở lại từ ciphertext
Mã hoá bất đối xứng có thể được sử dụng bảo đảm tính tin cậy, chứng thựchoặc cả hai
Hệ thống mật hoá khoá công khai phổ biến nhất là RSA Ngoài ra còn có:McEliece, ElGamal, Chor-Rivest, các đường cong Elliptic
2 Mô hình mã hóa bất đối xứng
Ban đầu, sự an toàn của hệ thống mật mã phụ thuộc vào bí mật của thuật toán
mã hóa Cuối cùng, tuy nhiên, các nhà sản xuất mật mã đã bắt đầu phát triển thiết bị
mã hóa trong đó các thuật toán mã hóa có thể được tiết lộ, tuy nhiên, sự bảo mật vẫncòn nguyên vẹn nhờ vào khóa bí mật Khi an ninh của hệ thống mã hóa phụ thuộchoàn toàn vào khóa bí mật, khóa bắt buộc phải được truyền đi bằng kênh được bảo
vệ Nói chung, hầu hết các thiết bị mã hóa thực hiện một khóa bí mật mà chỉ đượcbiết đến cho người gửi và người nhận
Nếu một số cá nhân muốn gửi một thông tin an toàn, mã hóa đối xứng thựchiện sắp xếp yêu cầu ban đầu cho các cá nhân để chia sẻ một khóa bí mật duy nhất.Đầu tiên khóa bí mật phải được chấp nhận của người dung; sau đó khóa phải đượcphân phối cho các cá nhân thông qua một số phương tiện an toàn để chắc chắn khóađảm bảo bí mật và toàn vẹn thông tin quan trọng Kiến thức của khóa mã hóa ngụ ýkiến thức của khóa giải mã và ngược lại Để thiết lập kênh an toàn, nếu nó cần thiết
để cung cấp khóa bí mật tới các cá nhân sử dụng một phương tiện bảo vệ như làchuyển phát nhanh Tất nhiên, sự vận chuyển của khóa trong cách này là rủi ro,phền hà, chậm và tốn kém Trong bài viết của họ “Các chỉ dẫn mới trong Mã Hóa,”Diffie và Hellman(1976) đề xuất một hệ thống mật mã mới trong đó các khóa mãhóa và giải mã quan trọng như nhau nhưng khác nhau: một là được làm công khai,trong khi khóa khác được giữ kín Đây là loại hệ thống mã hóa được gọi là không
Trang 38đối xưng, vì nó cung cấp mã hóa chỉ trong một hướng- một cặp khóa thứ hai cầnđược giao tiếp theo một hướng khác Một khi khóa có thuật toán liên quan đến nhauđược tính toán, không có cách nào để tìm ra khóa bí mật từ khóa công khai Mã hóacông khai không đối xứng cho phép hai người dùng giao tiếp an toàn trên một kênh
mà không cần bất kỳ khóa nào sắp xếp trước
Theo định nghĩa, một mật mã khóa công khai có tài sản kiến thức của cácthuật toán mã hóa và khóa giải mã không bao hàm kiến thức của khóa giải mã hayngược lại vì nó không phải cách tính toán khả thi để lấy một khóa từ khóa khác.Trong thuật ngữ toán học, điều này hàm ý rằng giải thuật giải mã phải là một chứcnăng một chiều Tuy nhiên, người nhận hợp pháp với khóa giải mã riêng cần khôngchỉ là một chức năng giải mã thông điệp, còn ngụ ý rằng giải thuật giải mã khôngchỉ là một chức năng một chiều nhưng cũng là một cửa đóng một chức năng mộtchiều Dang tính toán sự không khả thi phụ thuộc vào trạng thái của giải thuật côngnghệ máy tính, một cửa bẫy một chiều giải mã chuyển đổi ngày nay có thể bị mấttrạng thái một chiều trong nhiều năm
3 Khóa công khai
Trong một hệ thống mã hóa khóa công khai, sự riêng tư đạt được mà khôngcần khóa bí mật mã hóa bởi vì nó không được sử dụng để mã hóa Thay vì chấpnhận trên một khóa cụ thể trước khi truyền qua một kênh an ninh,người gửi vàngười nhận đưa ra hai khóa khác biệt: Một khóa Pub(công khai) và một khóaPriv(riêng) Bất cứ thứ gì mã hóa với một trong các khóa có thể được giải mã bằngcác khóa khác
Từ khi, thực tế nói, không ai có thể lấy được khóa giải mã, Priv, từ khóa mãhóa, Pub, khóa mã hóa có thể trong khu vực công khai; để ví dụ, nó có thể đượccông khai trong một tệp tin công khai như sổ danh bạ ĐIều đó là lí do cho cái tên
hệ thống mã hóa khóa công khai Bất kỳ ai muốn gửi thông tin tới một cụ thể nên
mã hóa cơ bản thông điệp với người mà được lên danh sách khóa mã hóa Pub, vàsau đó gửi thông điệp an ninh trên các kênh không bảo mật CHỉ người dự định nhật
mà biết mã giải mã chính Priv, cái mà giữ bí mật, mới có thể giải mã thông điệp
Trang 39Mật mã khóa công khai cung cấp các giải pháp cho hai vấn đề (Diffie, 1988):
1 Nếu hai người muốn trao đổi thông qua hệ thống mã hóa, khóa phải phân phối bằng các phương tiện an toàn, chẳng hạn như chuyển phát nhanh tin đáng tin cậy Đây là một vấn đề chủ chốt
2 Vấn đề khác là thông điệp xác thực và chữ ký số/ Trong một thông điệptrao đổi giữa hai người, nó không phải là để chứng minh rằng người nhận thực sự
đã nhận được thông điệp, mà nó đến từ một người cụ thể, hoặc người đó không gửithông điệp cho mình và cho nó xuất hiện như nó được đến từ một người gửi
Martin Hellman, người mà, trong năm 1976, đã phát triển các thỏa thuân khóacấp số nhân; trong cùng năm đó, Martin E.Hellman, và Lenonard Adleman(1977)
đã phá triển hệ thống khóa công khai dự trên gói sản xuất các số nguyên tố lơntrong tháng năm 1977, và Taher ElGamal đã trình bày khái niệm chữ ký số củamình tại hội nghị Crypto ‘84
Thuật toán cơ sở khóa công khai RSA sức mạnh của nó trên những khó khăncủa sản suất các con số lơn và khi giấy RSA được viết, nó được khuyến cáo rằngcác só nguyên tố nên là một số 40 chữ số Tuy nhiên, do những tiến bộ trong tínhtoán trong nhiều năm trước, các con số được sử dụng trong hệ thống RSA đã đượctăng lên 100 chữ số(332 bit) và tới 200 số(664 bit) Một số nhà sản xuất có các chipkhóa công khai mà dùng các số với 308 chữ số(1024 bít) Hệ thông RSA chạy rấtchậm so với các hệ thống mã hóa như AES hay phương pháp mã hóa dòng, và nóđòi hỏi các khóa rất lớn, 664 bít, so với 128 bit trong AES và trong khoảng 180 bittrong phương pháp mã hóa dòng Để sử dụng các hệ thống khóa công khai trong hệthông mật mã đòi hỏi các chip có thể thực hiện các tính toán tốc độ cao; đó là vì saocác hệ thông khóa công khai bị hạn chế cho khóa điều khiển và các ứng dụng chữ
ký Hầu như tất car các hệ thông mã hóa khóa công khai còn tồn tại và các chữ ký/thông điệp xác thực sử dụng lũy thừa đối với các sản phẩm của các số nguyên tố, và
do đó, có khả năng đưa ra các tính toán số học lớn
Một thuật toán mã hóa lũy thừa là một kỹ thuật mà quá trình mã hóa và giải
mã liên quan đến việc nâng cao thô và quyền hạn cụ thể các tin nhắn mã
Trang 40Diffie-Hellman, Pohlig-Diffie-Hellman, RSA, ElGamal, và một số khác đều là các thuật toán mãhóa lũy thừa, từng thực hiện một cách hơi khác nhau Bằng định nghĩa, một phươngpháp mã hóa khóa công khai là môt hệ thống mã hóa một chiều, vì vậy, từ chínhquan điểm này, rang tất cả các thuật toán mã hóa lũy thừa là hệ thống mã hóa côngkhai Tuy nhiên, từ các điểm rằng khóa mã hóa có thể được thực hiện công khai,không phải tất cả các thuật toán mã hóa lũy thùa là công khai Để tốt cho việc traođổi, phân biệt này sẽ được giữ, luật thuật toán mã hóa lũy thừa có thể được tạo côngkhai
4 Quản lý khóa:
Mạng mã hóa thông thường sử dụng mật mã mã hóa đối xứng thường có mộtKey Distribution Center(KDC)(khóa phân phối trung tâm) để phân phối hoặc tải cáckhóa vào mỗi đơn vị mật mã Các khóa bí mật này sau đó được gửi bằng cách sửdụng một kênh an toàn như một sự chuyển phát nhanh, nhưng không có cách nào đểbiết nếu chuyển phát nhanh đã bị xâm nhập các khóa cho một người xâm nhậpmuốn đọc các thông điệp trong mạng Sự bảo vệ có thể tang nếu các khóa được tảivào thiết bị trước khi nó được triển khai, tuy nhiên, nó rất khó và bất tiện để mangthiết bị đến KDC để thay đổi các khóa Vấn đề bị trùng hợp nếu một khóa mới chomỗi ngày- hay cho mỗi phiên – được mong muốn
Có ba cách để gửi thông tin về khóa bí mật phải cần cho giải mã thông điệp:
1 Khó bí mật trước khi chia sẻ: Các khóa bí mật được cài đặt sẵn vào cả haibên của các hệ thống mật mã, và nó chỉ cần thiết để xác định trong những khóa bímật được sử dụng giải mã thông tin Nói chung, mọi khóa bí mật được tải được kếthợp với một tên, do đó, chỉ có tên liên quan đến khóa cần phải gửi cho người nhận
2 Vận chuyển và các khóa gói: Một khóa bí mật có thể được gửi bằng khóa
sử dụng giải thuật khóa công khai hoặc bằng cách gói khóa sử dụng thuật toán đốixứng Các giải thuật khóa vận chuyện là thuật toán mã hóa khóa công khai cụ thể để
mã hóa và giải mã các khóa Bọc các thuật toán khóa đối xứng là các giải thuật toánđặc biệt cho bao bọc, mã hóa và giải mã các khóa đối xứng Cả hai bên cần đượcchia sẻ một khóa khóa mã hóa mà được sử dụng để gói(mã hóa) khóa mà sẽ được sử