Để cài đặt các thuật toán chúng tôi đã sử dụng kiểu nguyên lớn size byte (size≤200) từ [1], với size đƣợc chọn linh hoạt bởi ngƣời sử dụng (ở đây chọn size = 25). Bản rõ đƣợc chia thành các khối với độ dài 25-30 ký tự (ứng với size =25). Việc mã hóa đƣợc tiến hành theo từng khối. Chƣơng trình đƣợc viết bằng ngôn ngữ VC++ 6.0 cho thuật toán truyền thống và thuật toán cải tiến 3.4. Kết quả thử nghiệm dƣới đây cho thấy thuật toán cải tiến nhanh hơn khoảng 1000 lần so với thuật toán truyền thống.
Phép so sánh Độ dài bản rõ (ký tự) Số ký tự khác nhau
Thời gian mã hóa (Đơn vị tính toán 0.001 giây)
Thời gian giải mã (Đơn vị tính toán 0.001 giây) Phƣơng pháp truyền thống Phƣơng pháp cải tiến 3.4.1 Phƣơng pháp truyền thống Phƣơng pháp cải tiến 3.4.1 1 1018 102 300000,78 0.003 300000,20 0,2 2 1304 128 680000,83 0.003 680000,56 0,028 3 4418 136 1700000,23 0,017 1700000,03 2000 4 8856 136 - 0,027 - 2000,13 5 22240 144 - 0,061 - 2400,29 6 32233 144 - 0,081 - 2700,15 7 232409 256 - 7000,579 - 8000,266 Bảng 4.2. Kết quả thử nghiệm
Trong các kết quả trên, bản rõ trong dòng thứ 7 là Đề thi tuyển sinh đại học năm 2010 môn Hóa học. Các ô để trống trong các dòng từ 4 đến 7 là do không có kết quả vì thời gian chạy máy quá lâu.
KẾT LUẬN
Luận văn đã trình bày cơ sở toán học cho phƣơng pháp mã hóa số học bằng việc định nghĩa phép chiếu thu nhỏ đồng dạng và phép biến đổi ngƣợc. Qua đó, quá trình mã hóa đƣợc mô tả bằng các phép chiếu thu nhỏ đồng dạng, quá trình giải mã đƣợc diễn tả bằng các phép biến đổi ngƣợc. Thông qua hai phép chiếu, việc chứng minh tính đúng đắn của thuật toán cũng đƣợc trình bày chặt chẽ, giúp cho việc tìm hiểu, nghiên cứu thuật toán trở nên dễ dàng hơn. Mặc dù phƣơng pháp này đơn giản về mặt toán học nhƣng đòi hỏi phải thực hiện các phép nhân, chia với số nguyên lớn làm tốc độ tính toán chậm nên khó áp dụng vào thực tế. Luận văn đã đề xuất một phƣơng án cải tiến bằng cách chọn giá trị cho miền cơ sở [0,D] và các miền phân bố có dạng 2k
để thay thế các phép nhân, chia trong thuật toán truyền thống bằng các phép dịch chuyển bit nhằm nâng cao tốc độ tính toán. Từ đó làm cho phƣơng pháp mã hóa và giải mã thực hiện nhanh hơn, giúp cho việc ứng dụng phƣơng pháp này vào thực tế trở nên khả thi hơn. Luận văn cũng đã cài đặt phân mềm cho phƣơng pháp cải tiến bằng ngôn ngữ Visual C++ 6.0 Ngoài ra dựa vào ý tƣởng của lƣợc đồ mã hóa RAC luận văn cũng đƣa ra một mô hình cải tiến nhằm nâng cao độ bảo mật cho phƣơng pháp.
Có thể nhận thấy tốc độ tính toán, độ bảo mật và độ dài bản mã phụ thuộc vào các yếu tố: miền phân bố, độ dài số nguyên sử dụng trong mã hóa, kích thƣớc các khối và khóa. Việc nghiên cứu để xác định các giá trị hợp lý cho các yếu tố trên nhằm tăng tốc độ tính toán, giảm độ dài bản mã và tăng độ bảo mật hiện đang đƣợc nhiều ngƣời quan tâm.
TÀI LIỆU THAM KHẢO
Tiếng Việt
1. Phạm Văn Ất, Nguyễn Văn Long, Nguyễn Hiếu Cƣờng, Đỗ Văn Tuấn, Cao Thị Luyên, Trần Đăng Hiên (2010), “Đề xuất thuật toán xử lý số nguyên lớn và ứng dụng trong các hệ mật mã khóa công khai”, Kỷ yếu hội thảo quốc gia lần thứ XII Một số vấn đề chọn lọc của Công nghệ thông tin và Truyền thông, Đồng Nai - 8/2009, tr. 107-118 2. Phạm Văn Ất (1999), Kỹ thuật lập trình C, NXB Khoa học và Kỹ thuật.
3. Phạm Văn Ất (2000), C++ & lập trình hướng đối tượng, NXB Khoa học và Kỹ thuật.
4. Phạm Văn Ất (2005), Lập trình Windows dùng ngôn ngữ C và các hàm API của Windows, NXB GTVT.
5. Phan Đình Diệu (2006), Lý thuyết mật mã và An toàn thông tin, NXB ĐHQG HN. 6. Hà Huy Khoái, Phạm Huy Điển (2003), Số học thuật toán: Cở sở lý thuyết và tính toán
thực hành, NXB ĐHQG HN.
7. Hà Huy Khoái, Phạm Huy Điển (2004), Mã hoã thông tin: Cơ sở toán học và ứng
dụng, NXB ĐHQG HN.
8. PGS. TS. Trịnh Nhật Tiến (2009), Bài giảng cao học: An ninh Cơ sở dữ liệu, ĐH Công nghệ, ĐHQG HN.
9. PGS. TS. Trịnh Nhật Tiến (2008), Giáo trình: An toàn dữ liệu, ĐH Công nghê, ĐHQG HN.
Tiếng Anh
10. Bo Mi, Xiaofeng Liao, Yong Chen (2008), “A novel chaotic encryption scheme based on arithmetic coding”, Chaos, Solitions and Fractals – ScienceDirect.
11. Hyungjin Kim, Jiangtao Wen, John D. Villasenor (2007), “Secure Arithmetic Coding”, IEEE Transactions on signal processing vol. 55.
12. Hai Mei, Zhang Jian-jun, NI Xing-fang (2004), "An improved Arithmetic Coding Algorithm" Journal of Shanhai University.
13. Howard, P.G and Jeffrey Scott Vitter (1991), "Practical Implementations of Arithmetic Coding", International Conference on Advances in Communication and Control (Comcon 3), Victoria, British Columbia, Canada.
14. Howard, P.G and Jeffrey Scott Vitter (1992), "Arithmetic coding for data compression", IEEE.
15. Marco Grangetto, Enrico Magli, Gabriella Olmo (2006), “Multimedia Selective Encryption by Means of Randomized Arithmetic Coding”, IEEE Transactions on multimedia, vol. 8
16. Ranjan Bose, Saumitr Pathak (2006), “A novel Compression and Encryption Scheme
using variable Model Arithmetic Coding and Coupled Chaotic System”, IEEE
Transtactions on circuits and systems.
17. Rissanen J.J (1976), "Generalized kraft inequality and arithmetic coding", IBM J. Res. Develop.
18. Rissanen J.J (1979), "Arithmetic codings as number representations", Acta Polytech. Scand. Math.
19. Rissanen J.J and Langdon G.G, (1979) "Arithmetic coding", IBM J. Res. Dev.
20. Witten I.H, Radford M. Neal, and John G. Cleary, (1987) "Arithmetic coding for data compression", Communications of the ACM, No.6, Vol.30.