CHƯƠNG I TỔNG QUAN MẬT MÃ HỌC Mật mã học là một ngành có lịch sử từ hàng nghìn năm. Trong suốt quá trình phát triển, lịch sử của mật mã học chính là lịch sử của những phương pháp mật mã học cổ điển. Vào đầu thế kỷ 20, cơ cấu cơ khí và điện cơ xuất hiện như máy Enigma, đã giúp cho việc mã hóa ngày càng phức tạp và hiệu quả hơn. Sự ra đời và phát triển mạnh mẽ của ngành điện tử và máy tính là một bước tiến quan trọng tạo điều kiện cho mật mã học phát triển nhảy vọt và có nhiều ứng dụng trong thực tế.
Chuẩn mật mã DES và các kỹ thuật mật mã khóa công khai là tiền đề cho sự phát triển của mật mã học. Mật mã học đã trở thành công cụ được sử dụng rộng rãi trong trao đổi thông tin và bảo mật mạng máy tính. Hiện nay, mật mã đang được sử dụng rộng rãi để giữ bí mật trong truyền tin.Đặc biệt,đối với lĩnh vực quân sự, chính trị, an ninh quốc phòng thì mật mã là một vấn đề không thể thiếu. Lý do mật mã học được sử dụng phổ biến để đảm bảo an toàn cho thông tin liên lạc đó là nó bảo đảm được các thuộc tính: - Tính bí mật: Chỉ có người nhận đã xác thực mới có thể lấy ra được nội dung của thông tin trong thông điệp đã được mã hóa.
Nói cách khác, nội dung của thông điệp không bị lộ bất kỳ một thông tin nào. - Toàn vẹn: Người nhận cần có khả năng xác định được thông tin có bị thay đổi trong quá trình truyền thông tin hay không. - Xác thực: Người nhận cần phải xác định người gửi và kiểm tra xem người gửi đó có thực sự gửi thông tin đi hay không. - Chống chối bỏ: Người gửi không thểchối bỏ việc mình gửi thông tin đi.
- Chống lặp lại: Bên thứ 3 không được phép copy lại văn bản và gửi nhiều lần đến người nhận mà người gửi không hề hay biết. Bản tin ban đầu được chuyển đổi thành bản tin mã hóa gọi là sự mã hóa, sự chuyển đổi ngược lại từ bản tin mã hóa thành bản tin ban đầu được gọi là giải mã. Bản tin ban đầu được gọi là bản rõ, bản tin được mã hóa sẽ trở thành bản mã. Toàn bộ cơ chế bí mật đó được gọi là mật mã.
Mật mã được chia làm hai loại chính là mật mã khóa bí mật (mật mã đối xứng) và mật mã hóa công khai (mật mã phi đối xứng). TIEU LUAN MOI download : skknchat@gmail. Mật mã khóa bí mật 1. Giới thiệu về mật mã khóa bí mật và các khái niệm có liên quan Mật mã khóa bí mật còn được gọi là mật mã khóa đối xứng.
Đây là phương pháp mã hóa sử dụng cặp khóa đối xứng, người gửi và người nhận sẽ dùng chung một khóa để mã hóa và giải mã thông điệp. Trước khi mã hóa thông điệp gửi đi, bên gửi và bên nhận phải có khóa chung và hai bên phải thống nhất thuật toán để mã hóa và giải mã. Để đảm bảo tính bí mật trong truyền thông thì hai bên tham gia phải giữ kín và không để lộ thông tin về khóa bí mật.Mật mã khóa bí mật Độ an toàn của thuật toán này phụ thuộc vào khóa, nếu khóa dùng chung bị lộ thì bất kỳ người nào cũng có thể mã hóa và giải mã thông điệp trong hệ thống mã hóa. Ứng dụng: Thuật toán này được sử dụng trong môi trường như trong cùng một văn phòng vì khi đó khóa dễ dàng được chuyển đi, có thể dùng để mã hóa thông tin khi lưu trữ trên đĩa nhớ.
Một vài thuật toán sử dụng trong mật mã khóa đối xứng 1. Triple DES 3DES (Triple DES) là thuật toán mã hóa khối trong đó khối thông tin 64 bit sẽ được lần lượt mã hóa 3 lần bằng thuật toán mã hóa DES với 3 khóa khác nhau. Do đó, chiều dài khóa mã hóa sẽ lớn hơn và độ an toàn sẽ cao hơn so với DES do 3DES dùng 3 khóa khác nhau để mã hóa dữ liệu. Bộ xử lý thực hiện các bước sau [1]: - Khóa đầu tiên dùng để mã hóa dữ liệu.
TIEU LUAN MOI download : skknchat@gmail.com 12 - Khóa thứ hai sẽ dùng để giải mã dữ liệu vừa được mã hóa. - Cuối cùng, khóa thứ ba sẽ mã hóa lần thứ hai. Toàn bộ quá trình xử lý của 3DES tạo thành một thuật giải có độ an toàn cao. Nhưng bởi vì đây là một thuật giải phức tạp nên thời gian thực hiện sẽ lâu hơn gấp 3 lần so với phương pháp mã hóa DES.
AES Là thuật toán mã hóa khối. AES làm việc với khối dữ liệu 128 bit và khóa độ dài 128, 192 hoặc 256 bit. Hầu hết các phép toán trong thuật toán AES đều được thực hiện trong một trường hữu hạn của các byte. Mỗi khối dữ liệu gồm 128 bit đầu vào được chia thành 16 byte (mỗi byte 8 bit),có thể xếp thành 4 cột, mỗi cột 4 phần tử hay là một ma trận 4x4 của các byte, ma trận này được gọi là ma trận trạng thái.
Trong quá trình thực hiện thuật toán các toán tử tác động để biến đổi ma trận trạng thái này [2]. Ưu nhược điểm của mật mã khóa bí mật - Ưu điểm: Tốc độ mã hóa rất nhanh. - Nhược điểm: Hai bên bắt buộc phải tiến hành thống nhất với nhau về khóa bí mật thì mới có thể truyền tin an toàn. Việc phân phối khóa mật tới những người tham gia vào quá trình truyền tin thông qua các kênh an toàn có thể bị lộ khóa, nơi phân phối khóa có thể bị tấn công dẫn tới việc khó đảm bảo an toàn về khóa.
Khi trao đổi thông tin với nhiều đối tác, mỗi đối tác tham gia sử dụng một khóa mật thì việc quản lý một số lượng lớn khóa mật là điều rất khó khăn. Bên nhận có thể làm giả thông báo nhận được từ bên gửi. Các hạn chế của mật mã khóa đối xứng sẽ được giải quyết bằng mật mã khóa côngkhai. Mật mã khóa công khai 1.
Khái niệm Mật mã khóa công khai còn được gọi là mật mã phi đối xứng. Mật mã khóa công khai 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 bí mật trước đó. Trong mật mã khóa TIEU LUAN MOI download : skknchat@gmail.com 13 công khai 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 (Public Key)/khóa riêng (Private Key) [2]. Khóa riêng phải được giữ bí mật còn khóa công khai được phổ biến công khai.
Khóa công khai dùng để mã hóa còn khóa riêng dùng để giải mã, nếu chỉ biết khóa công khai thì không thể tìm ra khóa bí mật. Việc sử dụng mật mã khóa công khai cung cấp cho ta những ứng dụng quan trọng trong việc bảo vệ thông tin: a. Bảo vệ tính bí mật của thông tin Giả sử Bob muốn gửi cho Alice một thông điệp M, Bob sẽ phải thực hiện các bước sau: - Mã hóa thông điệp M bằng khóa công khai của Alice - Gửi bản mã thông điệp cho Alice Khi Alice nhận được thông điệp đã được mã hóa của Bob, Alice sẽ dùng khóa riêng của mình để giải mã thông điệp đó. Mật mã khóa công khai Phương pháp này cung cấp tính bí mật vì chỉ có Alice mới có khóa bí mật để giải mã thành công bản mã mà Bob đã gửi.
Tuy nhiên, phương pháp này lại không cung cấp bất kỳ quá trình xác thực nào để khảng định bản mã mà Alice nhận là do Bob gửi vì khóa công khai của Alice ai cũng biết. Xác thực thông tin Bob muốn mọi người biết tài liệu M là của chính Bob gửi, Bob có thể sử dụng khóa riêng của mình để ký lên tài liệu M. TIEU LUAN MOI download : skknchat@gmail.com 14 Khi Alice nhận được tài liệu, Alice sẽ kiểm tra chữ ký có trong tài liệu M bằng khóa công khai của Bob và Alice biết chắc chắn được rằng tài liệu này là do Bob ký vì chỉ có Bob mới có khóa riêng dùng để ký lên tài liệu. Phương pháp này giúp người sử dụng có thể xác thực được nguồn gốc của tài liệu, tuy nhiên tính bí mật của tài liệu không được bảo vệ.
Do đó, người không được quyền xem tài liệu vẫn có thể xem được nó. Bảo vệ tính bí mật và xác thực thông tin Để đảm bảo thông tin vừa bí mật, vừa xác thực, cần phải thực hiện mã hóa hai lần. - Trước tiên, Bob phải ký thông điệp bằng khóa riêng của mình (nhằm đảm bảo tính xác thực). - Sau đó, Bob sử dụng khóa công khai của Alice để mã hóa tiếp thông báo vừa được mã hóa (nhằm đảm bảo tính bí mật).
Cuối cùng, Bob gửi bản mã đến Alice, Alice nhận được sẽ giải mã theo thứ tự ngược lại để lấy được bản rõ. Các thuật toán sử dụng trong mật mã khóa công khai 1. RSA Thuật toán RSA được Ron Rivest, Adi Shamir và Len Adleman mô tả lần đầu tiên vào năm 1977 tại Học viện Công nghệ Massachusetts (MIT). RSA là một thuật toán mã hóa khóa công khai.
RSA là thuật toán khởi đầu của lĩnh vực mật mã trong việc sử dụng khóa công khai và phù hợp để tạo ra chữ ký điện tử. RSA đang được sử dụng phổ biến trong thương mại điện tử và với độ dài khóa đủ lớn thì nó có thể được đảm bảo an toàn. Độ an toàn của hệ thống RSA dựa trên 2 vấn đề của toán học: bài toán phân tích ra thừa số nguyên tố và bài toán RSA. RSA có tốc độ thực hiện chậm hơn so với AES và các thuật toán mã hóa đối xứng khác.
Trên thực tế, người ta sử dụng một thuật toán mã hóa đối xứng để mã hóa văn bản cần gửi còn RSA chỉ sử dụng để mã hóa khóa để giải mã. Phương thức trao đổi khóa Diffie-Hellnman Trao đổi khóa Diffie–Hellman (D-H) là một phương pháp trao đổi khóa được phát minh sớm nhất trong mật mã học. Phương pháp trao đổi khóa Diffie–Hellman cho phép người và thực thể giao tiếp thiết lập một khóa bí mật chung để mã hóa dữ liệu sử dụng trên kênh truyền thông không an toàn mà không cần có sự thỏa thuận trước về khóa bí mật giữa hai bên. Khóa bí mật tạo TIEU LUAN MOI download : skknchat@gmail.com 15 ra sẽ được sử dụng để mã hóa dữ liệu với phương pháp mã hóa khóa đối xứng[2].
Các thuật toán mã hóa khóa công khai cũng không được đảm bảo an toàn tốt hơn các thuật toán khóa bí mật.