Chương trình nguồn được viết bởi ngôn ngữ C, gồm 1 file Vigenere.c. Gồm có 4 phần:
Phần 1: Mã hóa một bản rõ khi có khóa cho trước Phần 2: Thám mã một bản mã khi có khóa cho trước Phần 3: Thám mã khi chưa biết khóa
Phần 4: Thoát khỏi chương trình.
4.2 Kết luận:
Như vậy các chữ mã khác nhau có thể cho cùng một chữ của bản rõ. Suy ra tần suất của các chữ cái là phẳng, nghĩa là tần suất xuất hiện các chữ trên bản mã tương đối đều nhau. Tuy nhiên chưa mất hoàn toàn, do độ dài của khoá có hạn, nên có thể tạo nên chu kỳ vòng lặp. Kẻ thám mã bắt đầu từ tần suất của chữ để xem có phải đây là mã đơn chữ
cái hay không. Giả sửđây là mã đa chữ vần chữ cái, khi đó ta xác định số chữ cái trong từ
khoá và lần tìm từng chữ. Như vậy cần tăng độ dài từ khoá để tăng số chữ cái dùng khi mã để “là” tần suất của các chữ. Rõ ràng rằng, nếu độ dài của khóa mã mà bằng độ dài của bản thông báo cần mã thì mã pháp trở nên bền vững, thêm vào đó nếu khóa mã không phải là một dãy các từ khóa có quy luật mà là một dãy giả ngẫu nhiên thì người ta đã chứng minh được loại mã pháp này cho đến nay được đánh giá là mã pháp không thể phá vở. Vì vậy, hệ mã hóa Vigenere vẫn được sử dụng phổ biến rộng rãi cho việc mã hóa những dữ liệu được truyền qua hệ thống điện tín.
Các thuật ngữ
1. Hệ mật mã là tập hợp các thuật toán và các thủ tục kết hợp để che dấu thông tin cũng như làm rõ nó.
2. Mật mã học nghiên cứu mật mã bởi các nhà mật mã học, người viết mật mã và các nhà phân tích mã.
3. Mã hóa là quá trình chuyển thông tin có thểđọc gọi là bản rõ thành thông tin không thểđọc được gọi là bản mã.
4. Giải mã là quá trình chuyển ngược lại thông tin được mã hóa thành bản rõ ( khi cho trước khóa mã).
5. Thuật toán mã hóa là các thủ tục tính toán sử dụng để che dấu và làm rõ thông tin, Thuât toán càng phức tạp thì bản mã càng an toàn.
6.Một Khóa là một giá trị làm cho thuật toán mã hóa chạy theo cách riêng biệt và sinh ra bản rõ riêng biệt tùy theo khóa. Khóa càng lớn thì bản mã kết quả càng an toàn. Kích thước của khóa được đo bằng bit. Phạm vi các giá trị có thể có của khóa được gọi là không gian khóa.
7. Phân tích mã là quá trình hay nghệ thuật phân tích hệ mật mã khi không cho trước bất kỳ một thông tin gì về khóa mã, thậm chí kể cả thuật toán mã hóa cũng không cho trước. 8. Kẻ tấn công là một người hay một hệ thống thực hiện phân tích mã để làm hại hệ
thống. Những kẻ tấn công là những kẻ thọc mũi vào chuyện của người khác, các tay hacker, những kẻ nghe trộm hay những tên đáng ngờ khác và họ làm những việc gọi là cracking.
Danh sách tham khảo
1] Nguyễn Hoàng Cường, Lý thuyết mật mã và ứng dụng, tr.15- tr.16 [2] PGS.TS. Trịnh Nhật Tiến, An toàn dữ liệu, tr.53- tr.56
[3] Alfred J. Menezes, Paul C.vanOorschot, Scott A.Vanstone: Handbook of APPLIED CRYPTOGRAPHY, chapter 1.
[4] Douglas R. Stinson, Cryptography: Theory and Practice, “Chapter 1: Classical Cryptography”.
[5] Friedman, W.F. and Callimahos, L.D. (1985) [1956]. Military Cryptanalytics, Part I – Volume 2. Reprinted by Aegean Park Press. ISBN 0-89412-074-3.
[6] Friedman, W.F.. The index of coincidence and its applications in cryptology. Department of Ciphers. Publ 22. Geneva, Illinois, USA: Riverbank Laboratories. OCLC 55786052. The original application ignored normalization.
[7] Kahn, David (1996) [1967]. The Codebreakers - The Story of Secret Writing. New York: Macmillan. ISBN 0-684-83130-9
[8] Mark Stamp, Richard M. Low: APPLIED CRYPTANALYSIS- Breaking Ciphers in the Real World ( Wiley-interscience publication 2007)
[9] http://www.tuoitre.org/tinhoc/htmls/tinhoc_firewall1.htm ,”nhu cầu bảo vệ thông tin” [10] http://www.economicexpert.com/a/Vigenere:cipher.htm
[11] http://mathdemos.gcsu.edu/mathdemos/vigenere/vigenere.html