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
Trang 1LỜ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
Trang 2ĐỊNH NGHĨA, VIẾT TẮT
Advanced Encryption Standard (AES)
Asymmetric key cryptography
Authentication
Tiêu chuẩn tiên tiến
Mã hóa bất đối xứng Tính xác thực
Thám mã Mật mã Mật mã học Data Encryption Standard (DES)
Most Likelihood Ratio (MLR) Tỷ số hợp lý cực đại
Plain text
Private key
Public key
Bản rõ Khóa bí mật Khóa công khai Relative frequency
Rivest, Shamir, & Adleman (RSA)
Tần số tương đối
Symmetric - key cryptography Mã hóa đối xứng
Trang 3MỤC LỤC
LỜI CẢM ƠN i
ĐỊNH NGHĨA, VIẾT TẮT ii
MỤC LỤC iii
DANH MỤC HÌNH VẼ v
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
2.1 Tính an toàn của hệ mật mã 27
Trang 42.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 41
CHƯƠNG 3: THỬ NGHIỆM PHƯƠNG PHÁP THÁM MÃ VỚI HỆ RSA 43
3.1 Mô tả bài toán tấn công RSA sử dụng modul chung 43
3.2 Thuật toán tấn công giao thức modul n chung 43
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 43
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 44
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 46
3.3 Thử nghiệm chương trình 47
3.3.1 Cơ sở lý thuyết 47
3.2.2 Thuật toán 48
3.3.3 Đánh giá kết quả Error! Bookmark not defined. 3.3.4 Thử nghiệm 50
3.4 Kết luận 59
KẾT LUẬN 60
TÀI LIỆU THAM KHẢO 61
Trang 5DANH 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 49
Hình 3.2: Giao diện chính của chương trình thám mã RSA 51
Hình 3.3: Nhập các tham số RSA 52
Hình 3.4: Tính khóa bí mật d1, d2 53
Hình 3.5: Mã hóa 54
Hình 3.6: Mã hóa thông điệp 55
Hình 3.7: Thám mã tìm ra khóa bí mật d1 56
Hình 3.8: Giải mã tìm ra bản rõ theo khóa d1 57
Hình 3.9: Giải mã tìm ra thông điệp 58
Trang 6LỜ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ế
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 đã
Trang 7chọ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
Trang 8CHƯƠ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ã
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
Trang 9(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.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ã
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)
Trang 101.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)
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:
- 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
Trang 11- 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
Trang 12- 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
Trang 13Hì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
Trang 14Hì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 đượ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ể
Trang 15bị 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ữ 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ố
Trang 16Hệ 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 = yamod 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 1 nào đó
Trang 17Giả sử d = p, khi đó x = hp với 0 < h < q và (h,n) = 1, suy ra:
ya modn (xb)a mod n (hab modn)( pab modn) modn
Trang 181.5.2 Thực thi hệ RSA
Hình 1.6: Sơ đồ biểu diễn thuật toán mã hóa RSA
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) 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
Chọn khóa công khai e
(0 < e < (n), gcd (e, (n)) = 1
)
Khóa công khai (e, n)
Trang 19bằ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
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
Trang 20bả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
Để 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 để
Trang 21phụ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)
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
Trang 22quy 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ã
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à:
Trang 23- 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 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ơ
Trang 24bả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ã
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à:
Trang 25Bướ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:
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, 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
Trang 26đạ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:
Trang 27- 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
Trang 28b 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õ
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,
Trang 29…, 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ó
* 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ể
Trang 30b 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ỗ
Trang 31chỗ đã 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ố
Trang 32CHƯƠ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
Trang 33mậ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ó