Áp dụng các nguyên tắc sáng tạo trong mật mã hóa
i Hc Quc Gia TP.HCM i Hc Khoa Hc T Nhiên C TÀI: ÁP DNG CÁC NGUYÊN TC SÁNG TO TRONG MT MÃ HÓA GVHD: GS.TSKH.Hoàng Kiếm Người thực hiện: Thái Huệ Nghi Mã số: 1211047 Học viên cao học khóa 22/2012 TP.HCM 2012 1 Mục lục ÁP DỤNG CÁC NGUYÊN TẮC SÁNG TẠO TRONG MẬT MÃ HÓA 0 Phần I: Giới thiệu về mật mã học 4 1. Mật mã học cổ điển: 4 2. Mật mã học hiện đại: 4 2.1. Lý thuyết Shannon: 4 2.2. Tiêu chuẩn mật mã: 5 2.3. Các tiêu chuẩn đánh giá một hệ thống mã hóa: 5 2.4. Các kỹ thuật trong mã hóa: 6 Phần II: 40 nguyên tắc sáng tạo trong nghiên cứu khoa học 9 1. Nguyên lý phân nhỏ: 9 2. Nguyên lý “tách riêng”: 9 3. Nguyên lý phẩm chất cục bộ: 9 4. Nguyên lý phản đối xứng: 10 5. Nguyên lý kết hợp: 10 6. Nguyên lý vạn năng: 10 7. Nguyên lý “chứa trong”: 10 8. Nguyên lý phản trọng lượng: 10 9. Nguyên lý gây ứng suất sơ bộ: 10 10. Nguyên lý thực hiện sơ bộ: 10 11. Nguyên lý dự phòng: 11 12. Nguyên lý đẳng thế: 11 13. Nguyên lý đảo ngược: 11 14. Nguyên lý cầu (tròn) hóa: 11 15. Nguyên lý linh động: 11 16. Nguyên lý giải “thiếu” hoặc “thừa”: 11 17. Nguyên lý chuyển sang chiều khác: 12 18. Nguyên lý sử dụng các dao động cơ học: 12 19. Nguyên lý tác động theo chu kỳ: 12 2 20. Nguyên lý liên tục tác động có ích: 12 21. Nguyên lý “vượt nhanh”: 12 22. Nguyên lý biến hại thành lợi: 13 23. Nguyên lý quan hệ phản hồi: 13 24. Nguyên lý sử dụng trung gian: 13 25. Nguyên lý tự phục vụ: 13 26. Nguyên lý sao chép (copy) 13 27. Nguyên lý “rẻ” thay cho “đắt”: 13 28. Thay thế sơ đồ cơ học: 14 29. Sử dụng các kết cấu khí và lỏng: 14 30. Sử dụng vỏ dẻo và màng mỏng: 14 31. Sử dụng các vật liệu nhiều lỗ: 14 32. Nguyên lý thay đổi màu sắc: 14 33. Nguyên lý đồng nhất: 15 34. Nguyên lý phân hủy hoặc tái sinh các phần: 15 35. Thay đổi các thông số hoá lý của đối tượng: 15 36. Sử dụng chuyển pha: 15 37. Sử dụng sự nở nhiệt: 15 38. Sử dụng các chất oxy hoá mạnh: 15 39. Thay đổi độ trơ: 16 40. Sử dụng các vật liệu hợp thành (composite): 16 Phần 3: Áp dụng các nguyên tắc sáng tạo trong mã hóa 16 1. Nguyên lý phân nhỏ: 16 2. Nguyên lý “tách riêng”: 16 3. Nguyên lý phẩm chất cục bộ: 16 4. Nguyên lý kết hợp: 17 5. Nguyên lý thực hiện sơ bộ: 18 6. Nguyên lý đảo ngược: 18 7. Nguyên lý cầu (tròn) hóa: 19 3 8. Nguyên lý linh động: 20 9. Nguyên lý giải “thiếu” hoặc “thừa”: 21 10. Nguyên lý chuyển sang chiều khác: 22 11. Nguyên lý tác động theo chu kỳ: 22 12. Nguyên lý liên tục tác động có ích: 23 13. Nguyên lý quan hệ phản hồi: 23 14. Nguyên lý sử dụng trung gian: 23 15. Nguyên lý “rẻ” thay cho “đắt”: 24 Tài liệu tham khảo: 25 1. Tài liệu Internet: 25 2. Tài liệu văn bản: 26 4 Phần I: Giới thiệu về mật mã học Mật mã học cổ điển 1. Mật mã học là một trong những ngành học ra đời từ rất sớm và có lịch sử hàng ngàn năm. Những bằng chứng sớm nhất về sử dụng mật mã học có thể nói là xuất phát từ thời Ai Cập cổ đại với những chữ tượng hình kì lạ, khơi gợi lên nhiều điều bí ẩn, thú vị. Trong giáo hội, kinh thánh, người ta áp dụng mã hóa để ám chỉ các nhân vật giáo phái hay người trong đế chế một cách bí mật nhằm mục đích truyền đạo và che mắt chính quyền. Người Hy Lạp cổ đại và người La Mã là một trong những người đầu tiên sử dụng các kỹ thuật mật mã (chẳng hạn như gậy mật mã, mật mã Caesar), mà ngày nay ta xếp nó vào lớp mã hóa cổ điển. Mã hóa thực sự đóng vai trò quan trọng, đặc biệt trong quân đội và các vấn đề liên quan đến bí mật quốc gia, khi đó việc bảo mật thông tin thực sự mang ý nghĩa sống còn. Ngay từ thời trung cổ, các vấn đề liên quan đến mã hóa cũng ảnh hưởng không ít đến các sự kiện lịch sử như vụ án xử tử nữ hoàng Mary I của Scotland, vụ án xử tử Mata Hari…Mật mã học thời kì bấy giờ không phát triển nhiều ở phương Đông nhưng lại phát triển mạnh mẽ ở các nước phương Tây, đặc biệt kể từ thế kỷ 19 trở về sau, mã hóa đã phát triển một cách có hệ thống. Đi đôi với sự phát triển của các kỹ thuật mã hóa là các kỹ thuật phá mã với nhiều công trình được công bố như phân tích mật mã đơn ký tự của Charles Babbage, công trình của Auguste Kerckhoffs,…Trong thế chiến thứ II, các hệ thống mật mã cơ khí và điện tử được sử dụng rộng rãi và người Đức đã chế tạo ra máy Enigma để mã hóa thông điệp dùng trong quân sự . Tuy nhiên, với các kỹ thuật thống kê của William F. Friedman, Marian Rejewski và các cộng sự đã tiếp tục nghiên cức và bước đầu thành công trong việc phá mã hệ thống Enigma… Mật mã học hiện đại 2. 2.1. Lý thuyết Shannon Nhiều người cho rằng kỷ nguyên của mật mã học hiện đại 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ố Lý thuyết về 5 truyền thông trong các hệ thống bảo mật 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 of Communication - Lý thuyết toán học trong truyền thông - cùng với tác giả Warren Weaver. 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 tin học và truyền thông đã thiết lập một nền tảng lý thuyết cơ bản cho mật mã học và thám mã học. Với ảnh hưởng đó, mật mã học gần như bị thâu tóm bởi chính phủ NSA, và rất ít công trình được tiếp tục công bố cho đến giữa thập niên 1970. 2.2. Tiêu chuẩn mật mã Thời kỳ giữa thập niên 1970 được chứng kiến hai tiến bộ lớn trong lĩnh vực mật mã học, đó là sự công bố đề xuất Tiêu chuẩn mật mã hóa dữ liệu (Data Encryption Standard) ở nước Mỹ vào ngày 17/3/1975. Với đề cử của Cục Tiêu chuẩn Quốc Gia (NIST), bản đề xuất DES được công ty IBM đệ trình đã trở thành chuẩn mã hóa công khai đầu tiên được áp dụng rộng rãi trong công chúng như một tiện ích cho các tổ chức thương mại, nhà băng, và các tổ chức tài chính lớn. Tuy nhiên, các kỹ thuật phá mã phát triển đã cho thấy những điểm yếu của phương pháp và vì vậy DES không thật sự đủ an toàn. Vì thế mà đến năm 2001, sự kiện lớn thứ 2 đã diễn ra: DES được chính thức thay thế bởi AES(viết tắt của Advanced Encryption Standard - Tiêu chuẩn mã hóa tiên tiến) sau một cuộc thi được tổ chức công khai bởi NIST. Do nguy cơ bị tấn công cao nếu dùng DES nguyên thủy, người ta đã tìm cách tăng độ an toàn cho DES bằng biến thế Triple-DES và nó vẫn được chấp nhận như 1 tiêu chuẩn của nhiều quốc gia và các tổ chức trên thế giới 2.3. Các tiêu chuẩn đánh giá một hệ thống mã hóa Tính bí mật (Secrect): thông tin được bảo mật tuyệt đối, kẻ xấu không thể biết được Tính toàn vẹn thông tin (Interity): thông tin sau khi mã hóa và gửi đến nơi phải đảm bảo còn nguyên vẹn, không bị thay đổi, đánh tráo hay chấp vá bởi kẻ xấu trên đường truyền Tính xác thực (Authentication): phải chứng thực được người đang thực hiện là người chủ thực sự. 6 Tính chống thoái thác trách nhiệm (Non- repudiation): làm sao để người đã thực hiện không thể chối bỏ trách nhiệm của mình trên thông tin mà họ đã tác động 2.4. Các kỹ thuật trong mã hóa 2.4.1. Mã hóa đối xứng Trong mật mã học, các thuật toán khóa đối xứng là một lớp các thuật toán mật mã hóa trong đó các khóa dùng cho việc mật mã hóa và giải mã có quan hệ rõ ràng với nhau (có thể dễ dàng tìm được một khóa nếu biết khóa kia). Khóa dùng để mã hóa có liên hệ một cách rõ ràng với khóa dùng để giải mã có nghĩa chúng có thể hoàn toàn giống nhau, hoặc chỉ khác nhau nhờ một biến đổi đơn giản giữa hai khóa. Trên thực tế, các khóa này đại diện cho một bí mật được phân hưởng bởi hai bên hoặc nhiều hơn và được sử dụng để giữ gìn sự bí mật trong kênh truyền thông tin. Khóa bí mật còn gọi là đơn khóa hay khóa cá nhân. Về tốc độ, nếu so sánh với mã hóa bất đối xứng có chất lượng tương đương thì mã hóa đối xứng thực sự nhanh và đơn giản hơn nhiều. Tuy nhiên, việc bảo mật chìa khóa và trao đổi khóa giữa 2 bên bằng một kênh truyền hoàn toàn bí mật thực sự là một điều khó khăn. Các chuẩn áp dụng mã hóa đối xứng như: DES, Triple-DES, AES, RC6… Nhìn chung, các phương pháp đều sử dụng mã hóa khối và thực hiện nhiều chu kỳ mã hóa liên tiếp nhau với nhiều thao tác kết hợp cộng với tập chìa khóa được tạo ra theo cách thực xoay vòng. Sự tác động có tính chu kỳ và kết hợp lẫn nhau này khiến cho phương pháp đạt được độ phức tạp cần thiết tương ứng với một mức độ an toàn nào đó Các kiểu tấn công đối với mã hóa đối xứng: Tấn công biết trước văn bản (known-plaintext attacks) Tấn công lựa chọn văn bản (chosen plaintext attacks) Thám mã vi phân (differential cryptanalysis) Thám mã tuyến tính (linear cryptanalysis) 7 2.4.2. Mã hóa bất đối xứng Mã hóa bất đối xứng hay còn gọi là mật mã hóa khóa công khai là một dạng mật mã hóa cho phép người sử dụng trao đổi các thông tin mật mà không cần phải trao đổi các khóa chung bí mật trước đó. Điều này được thực hiện bằng cách sử dụng một cặp khóa có quan hệ toán học với nhau là khóa công khai và khóa cá nhân (hay khóa bí mật). Mục đích sử dụng mã hóa khóa công khai là để: mã hóa, tạo chữ ký số hay thỏa thuận khóa để trao đổi thông tin bí mật giữa 2 bên. Do tính chất công khai một phần nên các kỹ thuật mật mã hóa khóa công khai thường đòi hỏi khối lượng tính toán nhiều hơn các kỹ thuật mã hóa khóa đối xứng nhưng những lợi điểm mà chúng mang lại khiến cho chúng được áp dụng trong nhiều ứng dụng. Thuật toán mật mã hóa khóa công khai được thiết kế đầu tiên bởi James H. Ellis, Clifford Cocks, và Malcolm Williamson tại GCHQ (Anh) vào đầu thập kỷ 1970. Thuật toán sau này được phát triển và biết đến dưới tên Diffie-Hellman, và là một trường hợp đặc biệt của RSA. Đến năm 1977, Rivest, Shamir và Adleman đã cùng nhau tìm ra thuật toán đầu tiên cho mã hóa khóa công khai. Công trình này được công bố vào năm 1978 và thuật toán được đặt tên là RSA. 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ạo chữ 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ố. Ứng dụng: Bảo mật thông tin: một văn bản được mã hóa bằng khóa công khai của một người sử dụng thì chỉ có thể giải mã với khóa bí mật của người đó. Tạo chữ ký số khóa công khai để nhận thực Các ứng dụng khác như: tiền điện tử, thỏa thuận khóa Điểm yếu và các hình thức tấn công đối với mã hóa bất đối xứng: Điểm yếu: do phương pháp áp dụng toán học để xây dựng cặp khóa và do đó không thể đảm bảo an toàn tuyệt đối với các tấn công dựa trên bản chất toán học Các kiểu tấn công: 8 Tấn công dựa trên việc đo đạc chính xác thời gian mà hệ thống phần cứng thực hiện mã hóa Tấn công dạng kẻ đứng giữa (man in middle): kẻ tấn công lợi dụng việc phân phối khóa để thay đổi khóa công khai 2.4.3. Mã hóa một chiều (hàm băm mật mã) Khác với hai hình thức mã hóa đã đề cập, mã hóa một chiều đúng như tên gọi của nó: không thể khôi phục lại văn bản ban đầu từ văn bản đã mã hóa. Mã hóa 1 chiều được biết đến với khái niệm hàm băm mật mã học (Cryptographic hash function) là một dạng mã hóa đặc biệt, trong đó hàm băm phải thỏa mãn một số tính chất bảo mật nhất định để phù hợp với việc sử dụng trong nhiều ứng dụng bảo mật thông tin đa dạng, chẳng hạn như chứng thực (authentication) và kiểm tra tính nguyên vẹn của thông điệp (message integrity). Cách thức hoạt động: hàm băm nhận đầu vào là một xâu ký tự (hay thông điệp) có độ dài tùy ý và tạo ra kết quả là một xâu ký tự có độ dài cố định, gọi là “message digest”. Thành phần quan trọng nhất của phương pháp chính là hàm băm mật mã, làm sao để thỏa mãn nguyên tắc các văn bản khác nhau phải băm ra một kết quả khác nhau (tính duy nhất) và và việc tìm lại văn bản trước khi băm phải không thể thực hiện được (tính một chiều). Các hàm băm thông dụng: MD5 và SHA-1. Các tính chất của hàm băm: An toàn đối với tấn công “tiền ảnh”: cho trước thông điệp đã băm y, rất khó tìm lại thông điệp x sao cho H(x) = y. An toàn đối với tấn công “tiền ảnh thứ 2”: cho trước x và y=H(x), rất khó tìm được giá trị x’ ≠ x sao cho H(x’) = H(x) An toàn đối với hiện tượng đụng độ: rất khó tìm được hai giá trị phân biệt x và x’ sao cho H(x’) = H(x) Ứng dụng của hàm băm mật mã: 9 Điểm khó của hàm băm mật mã là yếu tố có vẻ “ngẫu nhiên” đối với kết quả sau khi băm. Vì vậy người ta thường sử dụng kết hợp thông tin ngẫu nhiên để tăng độ bảo mật. Ứng dụng: chữ ký điện tử (certification), định danh chứng thực người dùng (authentication), sử dụng trong liên lạc an toàn (IPSec, SSL/TLS), kiểm tra tính toàn vẹn của phần mềm/dữ liệu, đối sánh CSDL… Phần II: 40 nguyên tắc sáng tạo trong nghiên cứu khoa học Nguyên lý phân nhỏ 1. - Chia nhỏ đối tượng thành các phần độc lập, nhờ đó có thể giải quyết từng phần một cách dễ dàng - Làm đối tượng trở nên tháo lắp được - Tăng mức độ phân nhỏ của đối tượng, làm giảm sự phức tạp của đối tượng - Nguyên lý phân nhỏ thường được sử dụng kết hợp với các nguyên tắc như: nguyên tắc tách riêng, nguyên tắc phẩm chất cục bộ, nguyên tắc kết hợp, nguyên tắc vạn năng,… Nguyên lý “tách riêng” 2. Tách phần gây “phiền phức” (tính chất “phiền phức”) hay ngược lại tách phần duy nhất “cần thiết” (tính chất “cần thiết”) ra khỏi đối tượng. Nguyên lý phẩm chất cục bộ 3. - Chuyển đối tượng (hay môi trường bên ngoài, tác động bên ngoài) có cấu trúc đồng nhất thành không đồng nhất. - Các phần khác nhau của đối tượng phải có các chức năng khác nhau. - Mỗi phần của đối tượng phải ở trong những điều kiện thích hợp nhất đối với công việc. - Nguyên lý phẩm chất cục bộ phản ánh nguyên tắc từ đơn giản đến phức tạp, từ đơn điệu sang đa dạng. [...]... tượng các phần , các chất , phụ gia trung hoà - Thực hiện quá trình trong chân không 40 Sử dụng các vật liệu hợp thành (composite) Chuyển từ các vật liệu đồng nhất sang sử dụng những vật liệu hợp thành (composite) Hay nói chung sử dụng các vật liệu mới Phần 3: Áp dụng các nguyên tắc sáng tạo trong mã hóa 1 Nguyên lý phân nhỏ Trong mã hóa, tách văn bản thành các ký tự độc lập Khi đó, việc mã hóa văn... private key trong cặp tương ứng, x là ký tự trong văn bản gốc, y là ký tự trong văn bản đã mã, E(x) là hàm mã, D(y) là hàm giải mã] 2) Cặp khóa trong mã hóa bất đối xứng ban đầu chỉ dùng trong mã hóa với mục đích là làm cho việc mã hóa trở nên thuận tiện hơn, không cần phải trao đổi khóa bí mật Khóa công cộng dùng để mã hóa còn khóa bí mật thì dùng để giải mã Tuy nhiên, một ý tưởng sáng tạo đã hình... khóa chính dưới dạng ma trận , nhờ đó có thể áp dụng các phép toán biến đổi trên ma trận trong quá trình mã hóa 11 Nguyên lý tác động theo chu kỳ Nguyên lý tác động theo chu kỳ được ứng dụng rất nhiều trong mã hóa và các vấn đề liên quan: hàm băm, mã hóa đối xứng, mã hóa bất đối xứng…Mục đích là làm cho quá trình mã hóa đạt đến độ phức tạp đủ an toàn để kẻ tấn công khó mà tìm ra quy luật giải mã (trong. .. bảng mã là bảng chữ cái tiếng anh) Mã hóa dùng 1 khóa: chọn k = 3 (nghĩa là kí tự a được thay bằng kí tự cách a 3 đơn vị trong bảng mã) Mã hóa dùng phương pháp Vigenere: chọn K = {1,2,3} => m= 3 17 2) Kết hợp nhiều cách thức mã hóa khác nhau trong cùng một quy trình mã hóa để tăng độ an toàn Ví dụ như dùng phương pháp thay thế kết hợp phương pháp hoán vị để cùng mã hóa cho mỗi ký tự (hoăc mỗi khối) trong. .. thác các thuộc tính đó để tìm ra khóa bí mật 3 Nguyên lý phẩm chất cục bộ Mã hóa đối xứng (MHĐX) và mã hóa bất đối xứng (MHBĐX) là 2 dạng mã hóa được sử dụng phổ biến nhất MHĐX có ưu điểm là tốc độ mã hóa nhanh , đơn giản, tuy nhiên lại 16 khó khăn trong việc thiết lập kênh an toàn tuyệt đối để trao đổi khóa Trong khi đó, với MHBĐX, vấn đề khóa trở nên vô cùng dễ dàng vì mỗi người tự làm chủ cặp khóa... mã (trong mã hóa) hoặc làm cho sự sai khác dù nhỏ cũng có thể lan truyền tạo ra sai khác lớn để các văn bản khác nhau sau khi băm ra “chắc chắn” (hoặc khả năng giống nhau là vô cùng thấp) sẽ khác nhau (trong hàm băm mật mã) Dưới đây là một số phân tích cụ thể: 1) Trong mã hóa DES, quy trình mã hóa bao gồm nhiều chu kỳ mã hóa liên tiếp nhau; mỗi chu kỳ gồm nhiều thao tác mã hóa và sử dụng khóa con khác... mình, khóa mã được công khai để mã hóa tài liệu còn khóa giải mã thì chỉ người chủ cặp khóa mới biết Vì tính chất công khai một phần khóa mà thuật toán cho MHBĐX đòi hỏi độ phức tạp cao và cho thời gian mã hóa lâu Vì vậy người ta kết hợp hai cách này theo nguyên tắc cục bộ để tận dụng ưu điểm của cả hai: đối với văn bản cần mã (thường kích thước rất lớn) thì dùng MHĐX, còn việc trao đổi khóa bí mật thì... tròn trong là dãy kí tự đã thay đổi theo từ khóa (dãy 0) Khi ta muốn 1 ký tự ở vòng tròn ngoài được mã bằng kí tự tương ứng của vòng tròn trong theo bước dịch k thì xoay vòng tròn trong đi k ô (so với thứ tự của dãy 0) (Hình 1) 19 Hình 1- Phương pháp mã hóa dùng nhiều bảng chữ cái của Anberti 8 Nguyên lý linh động Nguyên lý linh động được cụ thể hóa bằng các tình huống trong các nguyên lý khác như: nguyên. .. bản Trong các phương thức mã hóa công khai chuẩn quốc tế như DES, 3-DES, AES…, người ta cũng áp dụng cách kết hợp nhiều phương thức + thực hiện mã hóa lặp đi lặp lại nhiều lần theo chu trình để tăng độ an toàn 3) Thay vì mã hóa từng bit (stream ciphers), người ta có thể kết hợp nhiều bit thành một khối để tiến hành mã hóa trên từng khối như một đơn vị mã hóa (gọi là block cipher) Vd: DES, AES, 3-DES Mã. .. - Sử dụng các trường kết hợp với các hạt sắt từ 29 Sử dụng các kết cấu khí và lỏng Thay cho các phần của đối tượng ở thể rắn, sử dụng các chất khí và lỏng: nạp khí, nạp chất lỏng, đệm không khí, thủy tĩnh, thủy phản lực 30 Sử dụng vỏ dẻo và màng mỏng - Sử dụng các vỏ dẻo và màng mỏng thay cho các kết cấu khối - Cách ly đối tượng với môi trường bên ngoài bằng các vỏ dẻo và màng mỏng 31 Sử dụng các vật . 2.4. Các kỹ thuật trong mã hóa 2.4.1. Mã hóa đối xứng Trong mật mã học, các thuật toán khóa đối xứng là một lớp các thuật toán mật mã hóa trong đó các khóa dùng cho việc mật mã hóa và giải mã. sử dụng các vật liệu mới. Phần 3: Áp dụng các nguyên tắc sáng tạo trong mã hóa Nguyên lý phân nhỏ 1. Trong mã hóa, tách văn bản thành các ký tự độc lập. Khi đó, việc mã hóa văn bản chỉ là mã. ÁP DỤNG CÁC NGUYÊN TẮC SÁNG TẠO TRONG MẬT MÃ HÓA 0 Phần I: Giới thiệu về mật mã học 4 1. Mật mã học cổ điển: 4 2. Mật mã học hiện đại: 4 2.1. Lý thuyết Shannon: 4 2.2. Tiêu chuẩn mật mã: