Mã hóa bảo mật trong Winmax Viễn thông là một lĩnh vực phát triển mạnh mẽ, không chỉ gia tăng về mặt dịch vụ mà vấn đề công...
Trang 1KHOA ĐIỆN TỬ -o0o -
NĂM 2012
MÃ HÓA BẢO MẬT TRONG WIMAX
Nhóm sinh viên thực hiện
Chủ nhiệm đề tài : Trương Văn Dương
Cộng tác viên : Hoàng Công Thá
Nguyễn Thị Ngọc Anh
Trang 2LỜI NÓI ĐẦU
Viễn thông là một lĩnh vực phát triển mạnh mẽ, không chỉ gia tăng về mặt
dịch vụ mà vấn đề công nghệ cũng được quan tâm nhằm đáp ứng nhu cầu ngày
càng cao của người sử dụng, đặc biệt là vấn đề bảo mật thông tin của người sử
dụng trong môi trường truyền dẫn không dây wireless Thông tin không dây
(wireless-hay còn được gọi là vô tuyến) đang có mặt tại khắp mọi nơi và phát
triển một cách nhanh chóng, các hệ thống thông tin di động tế bào sử dụng công
nghệ GSM và CDMA đang dần thay thế các hệ thống mạng điện thoại cố định
hữu tuyến.Các hệ thống mạng LAN không dây- còn được biết với tên thông
dụng hơn là Wi-fi cũng đang hiện hữu trên rất nhiều tòa nhà văn phòng, các khu
vui chơi giải trí Trong vài năm gần đây một hệ thống mạng MAN không dây
(Wireless MAN) thường được nhắc nhiều đến như là một giải pháp thay thế và
bổ sung cho công nghệ XDSL là Wimax Wimax còn được gọi là Tiêu chuẩn
IEEE 802.16, nó đáp ứng được nhiều yêu cầu kỹ thuật và dịch vụ khắt khe mà
các công nghệ truy nhập không dây thế hệ trước nó (như Wi-fi và Bluetooth)
chưa đạt được như bán kính phủ sóng rộng hơn, băng thông truyền dẫn lớn hơn,
số khách hàng có thể sử dụng đồng thời nhiều hơn, tính bảo mật tốt
hơn,…Wimax là công nghệ sử dụng truyền dẫn trong môi trường vô tuyến, tín
hiệu sẽ được phát quảng bá trên một khoảng không gian nhất định nên dễ bị xen
nhiễu, lấy cắp hoặc thay đổi thông tin do vậy việc bảo mật trong công nghệ này
cần được quan tâm tìm hiểu, đánh giá và phân tích trên nhiều khía cạnh Đề tài:
“Mã hóa bảo mật trong Wimax” dưới đây là một phần trong vấn đề bảo mật
trong hệ thống Wimax Đề tài này bao gồm như sau:
điểm của hệ thống, một số chuẩn hóa dùng trong hệ thống Wimax
Công nghệ Wimax vẫn đang được nghiên cứu và phát triển Bảo mật là một
vấn đề tương đối khó cùng với khả năng hiểu biết hạn chế của nhóm về vấn đề
mã hóa bảo mật, do đó không tránh được những sai sót trong bài làm Mong
được sự đóng góp ý kiến của mọi người quan tâm đến vấn đề bảo mật
Trang 3CHƯƠNG I : GIỚI THIỆU VỀ WIMAX 1.1 Giới thiệu về công nghệ Wimax
Wimax (World Interoperability for Microware Access) – Khả năng khai thác mạng trên toàn cầu đối với mạng truy nhập vi ba Đây là một kỹ thuật cho phép ứng dụng để truy nhập cho một khu vực đô thị rộng lớn Ban đầu chuẩn 802.16 được tổ chức IEEE đưa ra nhằm giải quyết các vấn đề kết nối cuối cùng trong một mạng không dây đô thị WMAN hoạt động trong tầm nhìn thẳng (Line of Sight) với khoảng cách từ 30 tới 50 km Nó được thiết kế để thực hiện đường trục lưu lượng cho các nhà cung cấp dịch vụ Internet không dây, kết nối các điểm nóng WiFi, các hộ gia đình và các doanh nghiệp….đảm bảo QoS cho các dịch vụ thoại, video, hội nghị truyền hình thời gian thực và các dịch vụ khác với tốc độ
hỗ trợ lên tới 280 Mbit/s mỗi trạm gốc Chuẩn IEEE 802.16-2004 hỗ trợ thêm các hoạt động không trong tầm nhìn thẳng tại tần số hoạt động từ 2 tới 11 GHz với các kết nối dạng mesh (lưới) cho cả người dùng cố định và khả chuyển Chuẩn mới nhất IEEE 802.16e, được giới thiệu vào ngày 28/2/2006 bổ sung thêm khả năng hỗ trợ người dùng di động hoạt động trong băng tần từ 2 tới 6 GHz với phạm vi phủ sóng từ 2-5 km Chuẩn này đang được hy vọng là sẽ mang lại dịch vụ băng rộng thực sự cho những người dùng thường xuyên di động với các thiết bị như laptop, PDA tích hợp công nghệ Wimax [3]
Thực tế WiMax hoạt động tương tự WiFi nhưng ở tốc độ cao và khoảng cách lớn hơn rất nhiều cùng với một số lượng lớn người dùng Một hệ thống WiMax gồm 2 phần [5][35]:
• Trạm phát: giống như các trạm BTS trong mạng thông tin di động với công suất lớn có thể phủ sóng một vùng rộng tới 8000km2
• Trạm thu: có thể là các anten nhỏ như các Card mạng cắm vào hoặc được thiết lập sẵn trên Mainboard bên trong các máy tính, theo cách mà WiFi vẫn dung
Trang 4Hình 1.1 Mô hình truyền thông của mạng Wimax.Các trạm phát BTS được kết nối tới mạng Internet thông qua các đường truyền tốc độ cao dành riêng hoặc có thể được nối tới một BTS khác như một trạm trung chuyển bằng đường truyền thẳng (line of sight), và chính vì vậy WiMax có thể phủ sóng đến những vùng rất xa Các anten thu/phát có thể trao đổi thông tin với nhau qua các tia sóng truyền thẳng hoặc các tia phản xạ
1.1.1 Một số đặc điểm của Wimax
Wimax đã được tiêu chuẩn hoá theo chuẩn IEEE 802.16 Hệ thống Wimax là
hệ thống đa truy cập không dây sử dụng công nghệ OFDMA có các đặc điểm sau:
• Khoảng cách giữa trạm thu và phát có thể từ 30Km tới 50Km
• Tốc độ truyền có thể thay đổi, có thể lên tới 70Mbit/s
Trang 5• Hoạt động trong cả hai môi trường truyền dẫn: đường truyền tầm nhìn thẳng LOS và đường truyền bị che khuất NLOS
• Dải tần làm việc từ 2-11GHz và từ 10-66GHz
• Độ rộng băng tần của WiMax từ 5MHz đến trên 20MHz được chia thành nhiều băng con 1,75MHz Mỗi băng con này được chia nhỏ hơn nữa nhờ công nghệ OFDM, cho phép nhiều thuê bao có thể truy cập đồng thời một hay nhiều kênh một cách linh hoạt để đảm bảo tối ưu hiệu quả sử dụng băng tần
• Cho phép sử dụng cả hai công nghệ TDD và FDD cho việc phân chia truyền dẫn của hướng lên (uplink) và hướng xuống (downlink) Trong cơ chế TDD, khung đường xuống và đường lên chia sẻ một tần số nhưng tách biệt về mặt thời gian Trong FDD, truyền tải các khung đường xuống và đường lên diễn
ra cùng một thời điểm, nhưng tại các tần số khác nhau
Về cấu trúc phân lớp, hệ thống WiMax được phân chia thành 4 lớp : Lớp con hội tụ (Convergence) làm nhiệm vụ giao diện giữa lớp đa truy nhập và các lớp trên, lớp điều khiển đa truy nhập (MAC layer), lớp truyền dẫn (Transmission) và lớp vật lý (Physical)
Hình 1.2 Mô hình phân lớp của hệ thống Wimax
1.1.2 Cấu hình mạng trong Wimax
Công nghệ Wimax hỗ trợ mạng PMP và một dạng của cấu hình mạng phân tán là mạng lưới MESH
1.1.2.1 Cấu hình mạng điểm – đa điểm
Trang 6PMP là một mạng truy nhập với một hoặc nhiều BS có công suất lớn và
nhiều SS nhỏ hơn Người dùng có thể ngay lập tức truy nhập mạng chỉ sau khi lắp đặt thiết bị người dùng SS có thể sử dụng các anten tính hướng đến các BS,
ở các BS có thể có nhiều anten có hướng tác dụng theo mọi hướng hay một cung Với cấu hình này trạm gốc BS là điểm trung tâm cho các trạm thuê bao SS Ở hướng DL có thể là quảng bá, đa điểm hay đơn điểm Kết nối của một SS đến BS được đặc trưng qua nhận dạng kết nối CID
Hình 1.3 Cấu hình mạng điểm – đa điểm
1.1.2.2 Cấu hình mắt lưới MESH
Với cấu hình này SS có thể liên lạc trực tiếp với nhau Trạm gốc Mesh BS kết nối với một mạng ở bên ngoài mạng MESH [5] Kiểu MESH khác PMP là trong kiểu PMP các SS chỉ liên hệ với BS và tất cả lưu lượng đi qua BS trong khi trong kiểu MESH tất cả các node có thể liên lạc với mỗi node khác một cách trực tiếp hoặc bằng định tuyến nhiều bước thông qua các SS khác
Một hệ thống với truy nhập đến một kết nối backhaul được gọi là Mesh BS, trong khi các hệ thống còn lại được gọi là Mesh SS Dù cho MESH có một hệ thống được gọi là Mesh BS, hệ thống này cũng phải phối hợp quảng bá với các node khác
Trang 7Hình 1.4 Cấu hình mắt lưới Mesh
1.2 Giới thiệu về các chuẩn Wimax
Wimax là một công nghệ truy nhập không dây băng rộng mà hỗ trợ truy nhập
cố định, lưu trú, xách tay và di động Để có thể phù hợp với các kiểu truy nhập khác nhau, hai phiên bản chuẩn dùng Wimax đã được đưa ra Phiên bản đầu tiên IEEE 802.16d-2004 sử dụng OFDM, tối ưu hóa truy nhập cố định và lưu trú
Phiên bản hai IEEE 802.16e-2005 sử dụng SOFDMA hỗ trợ khả năng xách tay
và tính di động
1.2.1 Chuẩn IEEE 802.16d-2004
Chuẩn IEEE 802.16d-2004 được IEEE đưa ra vào tháng 7 năm 2004 Chuẩn IEEE 802.16d-2004 hỗ trợ truyền thông LOS trong dải băng từ 11-66GHz và NLOS trong dải băng từ 2-11GHz Chuẩn này cũng tập trung hỗ trợ các ứng
dụng cố định và lưu trú Hai kĩ thuật điều chế đa sóng mang hỗ trợ cho
802.16d-2004 là OFDM 256 sóng mang và OFDMA 2048 sóng mang
Các đặc tính của WiMAX dựa trên 802.16d-2004 phù hợp với các ứng dụng
cố định, trong đó sử dụng các anten hướng tính, bởi vì OFDM ít phức tạp hơn so với SOFDMA Do đó, các mạng 802.16-2004 có thể được triển khai nhanh hơn, với chi phí thấp hơn
1.2.2 Chuẩn IEEE 802.16e-2005
Trang 8Chuẩn IEEE 802.16e-2005 được IEEE thông qua vào tháng 12 năm 2005 Chuẩn IEEE 802.16e-2005 hỗ trợ SOFDMA cho phép thay đổi số lượng sóng mang, bổ sung cho các chế độ OFDM và OFDMA Sóng mang phân bổ để thiết
kế sao cho ảnh hưởng nhiễu ít nhất tới các thiết bị người dùng bằng các anten đẳng hướng Hơn nữa, IEEE 802.16e-2005 còn muốn cung cấp hỗ trợ cho
MIMO,và AAS cũng như hard và soft handoff Nó cũng cái thiện được khả năng tiết kiệm nguồn cho các thiết bị mobile và tăng cường bảo mật hơn
OFDMA đưa ra đặc tính của 802.16e như linh hoạt hơn khi quản lý các thiết
bị người dùng khác nhau với nhiều kiểu anten và các yếu tố định dạng khác nhau 802.16e đưa ra các yếu tố cần thiết khi hỗ trợ các thuê bao di động đó là việc giảm được nhiễu cho các thiết bị người dùng nhờ các anten đẳng hướng và cải thiện khả năng truyền NLOS Các kênh phụ xác định các kênh con để có thể gán cho các thuê bao khác nhau tuỳ thuộc vào các trạng thái kênh và các yêu cầu dữ liệu của chúng Điều này tạo điều kiện để nhà khai thác linh hoạt hơn trong việc quản lý băng thông và công suất phát, và dẫn đến việc sử dụng tài nguyên hiệu quả hơn
1.2.3 Một số chuẩn 802.16 khác
a Chuẩn IEEE 802.16f
Chuẩn IEEE802.16f cung cấp chế độ quản lí tham khảo cho các mạng
802.16-2004 cơ bản Chế độ này bao gồm một hệ quản lí mạng-NMS(Network Management System), các node mạng, cơ sở dữ liệu luồng dịch vụ BS và các node quản lí được lựa chọn theo yêu cầu của thông tin quản lí và cung cấp tới các NMS thông qua các giao thức quản lí, như SNMP(Simple Network Management Protocol) qua kết nối quản lí thứ 2 đã định nghĩa trong 802.16-2004 IEEE802.16f dựa trên các SNMP phiên bản 2, và có thể hướng về các SNMP phiên bản 1, và hiện này đang lựa chọn hỗ trợ SNMP phiên bản 3
b Chuẩn IEEE 802.16i
Mục đích của 802.16i là cung cấp cải tiến di động trong MIB 802.16 trong tầng MAC, tầng PHY và các quá trình liên quan tới quản lí Nó sử dụng phương
Trang 9pháp luận giao thức trung bình (Protocol-neutral Methodology) cho việc quản lí mạng để xác định chế độ tài nguyên và liên hệ thiết lập giải pháp cho quản lí các thiết bị trong mạng di động 802.16 đa nhà cung cấp
c Chuẩn IEEE 802.16g
Mục đích của 802.16g là tạo ra các quá trình và triển khai dịch vụ của
802.16-2004 và 802.16-2005, cung cấp hệ thống quản lí mạng để quản lí tương thích và hiệu quả tài nguyên, tính di động và phổ của mạng và mặt bằng quản lí chuẩn cho các thiết bị 802.16 cố định và di động Hiện nay thì chuẩn IEEE 802.16 vẫn đang phát triển
d Ngoài các chuẩn đó còn có các chuẩn sau cũng đang được phát triển đó là : chuẩn IEEE 802.16k , chuẩn IEEE 802.16h, chuẩn IEEE 802.16j…
1.3 Lớp con bảo mật trong Wimax
Lớp con bảo mật được định nghĩa trong IEEE 802.16e, và hiệu chỉnh cho các hoạt động của 802.16-2004, có một số hố bảo mật (như việc nhận thực của BS)
và các yêu cầu bảo mật cho các dịch vụ di động không giống như cho các dịch vụ
cố định Lớp con này bao gồm hai giao thức thành phần sau[10][13] :
• Giao thức đóng gói dữ liệu (Data Encapsulation Protocol): Giao thức này
dùng cho việc bảo mật gói dữ liệu truyền qua mạng BWA cố định Giao thức này định nghĩa tạo một tập hợp các bộ mật mã phù hợp, như kết hợp giữa mã hóa dữ liệu và thuật toán nhận thực, và quy luật áp dụng thuật toán cho tải tin PDU của lớp MAC
Giao thức quản lí khóa (Key Management Protocol): Giao thức này cung cấp
phân phối khóa bảo mật dữ liệu từ BS tới SS.Qua giao thức quản lí khóa thì SS
và BS được đồng bộ về khóa dữ liệu Thêm vào đó, BS cũng sử dụng giao thức
để truy nhập với điều kiện bắt buộc tới các mạng dịch vụ 802.16e triển khai định nghĩa được PKM phiên bảo 2 với các đặc tính mở rộng
Trang 10CHƯƠNG II : CÁC PHƯƠNG PHÁP MÃ HÓA BẢO MẬT TRONG
WIMAX 2.1 Giới thiệu về mã hóa bảo mật
Cụm từ “Crytology”-mật mã, được xuất phát từ các từ Hi Lạp “krypto’s”- tạm dịch là “hidden” - bị ẩn, dấu và từ “lo’gos”- tạm dịch là “word”- từ Do đó, cụm
từ “Cryptology” theo nghĩa chuẩn nhất là “hidden word” - từ bị ẩn Nghĩa này đã đưa ra mục đích đầu tiên của mật mã, cụ thể là làm ẩn nghĩa chính của từ và bảo
vệ tính an toàn của từ và bảo mật kèm theo
Hệ thống mã hóa chỉ ra: ”một tập các thuật toán mật mã cùng với các quá trình quản lí khóa mà hỗ trợ việc sử dụng các thuật toán này tùy theo hoàn cảnh ứng dụng” Các hệ thống mã hóa có thể hoặc không sử dụng các tham số bí mật (ví dụ như: các khóa mật mã,…) Do đó, nếu các tham số bí mật được sử dụng thì chúng có thể hoặc không được chia sẻ cho các đối tượng tham gia Vì thế, có thể phân tách thành ít nhất 3 loại hệ thống mật mã Đó là :
• Hệ mật mã hóa không sử dụng khóa: Một hệ mật mã không sử dụng khóa
là một hệ mật mã mà không sử dụng các tham số bí mật
• Hệ mật mã hóa khóa bí mật: Một hệ mật mã khóa bí mật là hệ mà sử dụng các tham số bí mật và chia sẻ các tham số đó giữa các đối tượng tham gia
• Hệ mật mã hóa khóa công khai: Một hệ mật mã khóa công khai là hệ mà
sử dụng các tham số bí mật và không chia sẻ các tham số đó giữa các đối tượng
tham gia
2.2 Các phương pháp mã hóa bảo mật
2.2.1 Mã hóa không dùng khóa
Trang 11các cấu trúc đại số thì ta có thể tính được nghiệm của hàm mũ, nhưng ta không thể biết được thuật toán được sử dụng để tính nghiệm của hàm Logarit
Theo cách nói thông thường thì hàm f: X ->Y là hàm một chiều nếu tính toán theo chiều X->Y thì dễ nhưng khó tính theo chiều ngược lại Và ta có định nghĩa
hàm một chiều như sau :
Một hàm f: X->Y là hàm một chiều nếu f(x) có thể tính được nghiệm với mọi x
Є X, nhưng hàm f -1 (y) thì không thể tính được nghiệm với y Є R Y
Hàm này được gọi là hàm mũ rời rạc dựa trên g Nó được định nghĩa là một
đẳng cấu từ nhóm cộng (Zp-1 , + ) tới nhóm nhân (Z p * , ) Nghĩa là Expp,g (x+ y) =
Expp,g(x) (.) Exp p,g (y) Bởi vì, Exp p.g là một song ánh, nó có hàm ngược được định nghĩa như sau:
Logp,g : Z * → Z p-1
x → log g x
Trang 12Hàm này được gọi là hàm logarit rời rạc Với mỗi x Є Z *
n đã biết Trong thực tế, có thể biểu diễn giá trị mà các gốc bình phương module
trong Z n * và hệ số n là các giá trị tính được Do đó, hàm bình phương module
giống như hàm một chiều Nhưng, hàm bình phương module (không khuôn dạng chung) không là hàm đơn ánh cũng không là hàm toàn ánh Tuy nhiên, nó có thể
là hàm đơn ánh hoặc toàn ánh (sẽ là song ánh) nếu domain và dải đều bị hạn chế
(ví dụ như, tập các thặng dư bậc 2 hoặc các bình phương module n, …) với n là
số nguyên Blum Khi đó hàm :
Trang 13Hình 2.2: Bộ tạo bít ngẫu nhiên Tính ngẫu nhiên là một trong những thành phần cơ bản nhất và là điều kiện trước tiên của tính bảo mật trong một hệ thống bảo mật Hiện nay, sự hình thành bảo mật và các giá trị ngẫu nhiên không đoán trước được (ví dụ như, các bít ngẫu nhiên hoặc các số ngẫu nhiên, …) là phần trọng tâm của hầu hết các vấn đề liên quan tới hệ thống mật mã Ví dụ, khi xem xét hệ mật mã khóa bí mật, ta phải biết
số lượng khóa bí mật được sử dụng Ta cần phải có một bit ngẫu nhiên cho mọi bit khác mà ta muốn mã hóa.Còn khi xem xét mã hóa công khai thì ta cần biết số lượng bit ngẫu nhiên để tạo các cặp khóa công khai
Một bộ tạo bit ngẫu nhiên là một thiết bị hoặc thuật toán mà đầu ra là một chuỗi các bit ngẫu nhiên và độc lập thống kê với nhau
Các bộ tạo bít ngẫu nhiên có thể dựa trên phần cứng hoặc phần mềm Trước tiên, ta cùng tìm hiểu về bộ tạo bit ngẫu nhiên dựa trên phần cứng, khai thác tính ngẫu nhiên của việc xuất hiện các phương pháp và hiện tượng vật lí Một số phương pháp và hiện tượng như sau:
• Khoảng thời gian giữa các hạt phóng xạ trong quá trình phân rã phóng xạ
• Tạp âm nhiệt từ điện trở và diode bán dẫn
• Tần số không ổn định trong máy dao động tần số chạy
• Giá trị của một tụ bán dẫn cách điện kim loại là độ tích điện trong một chu
sử dụng để phục vụ cho các nguồn mang tính ngẫu nhiên
Trang 14Việc thiết kế bộ tạo bít ngẫu nhiên dựa trên phần mềm là khó hơn so với thực hiện trên phần cứng Một số phương pháp dựa trên các bộ tạo bít ngẫu nhiên dựa trên phần mềm là:
• Hệ thống đồng hồ
• Khoảng thời gian giữa phím gõ và di chuyển chuột
• Nội dung đầu vào/ đầu ra của bộ đệm
• Đầu vào cung cấp bởi người sử dụng
• Giá trị các biến hoạt động của hệ thống, cũng như tải trọng của hệ thống hoặc thống kê mạng
Có thể phán đoán rằng chiến lược tốt nhât cho việc đáp ứng yêu cầu của các bit ngẫu nhiên không thể đoán được trong tình trạng thiếu một nguồn tin cậy đơn
là cách để tìm được đầu vào ngẫu nhiên từ một lượng lớn của các nguồn mà không tương quan tới nhau, và kết hợp chúng bằng một hàm trộn mạnh Một hàm trộn mạnh, là một sự kết hợp của hai hoặc nhiều đầu vào và tìm một đầu ra mà bit đầu ra phải là một hàm phi tuyến phức của tất cả các bit đầu vào khác biệt hẳn Trung bình cứ thay đổi một bit đầu vào sẽ thay đổi một nửa số bit đầu ra Nhưng bởi vì quan hệ này là phức tạp và phi tuyến nên không riêng bit đầu ra nào được dám chắc sẽ thay đổi khi một số thành phần bit đầu vào đã thay đổi Một ví dụ đơn thuần như, một hàm mà cộng thêm vào 232 Các hàm trộn mạnh (với hơn 2 đầu vào) có thể được xây dựng để sử dụng trong các hệ thống mật mã khác, các hàm Hash mật mã hoặc các hệ mật mã đối xứng
2.2.2 Mã hóa khóa bí mật
Mã hóa khóa bí mật, hay cũng được biết đến là mã hóa đối xứng đã được sử dụng từ rất lâu từ đơn giản đến những phương thức phức tạp hơn Mật mã đối xứng, hay mật mã khóa bí mật gồm có các dạng mật mã mà trong đó sử dụng một khóa duy nhất cho cả hai quá trình mã hóa và giải mã văn bản Một trong những phương pháp mã hóa đơn giản nhất đó là phương pháp mã hóa thường được biết đến bằng cái tên mật mã Caesar
Mã hóa khóa bí mật gồm 5 phần chính đó là:
Trang 15Văn bản gốc : Đây là một bản tin hay một loại dữ liệu có thể hiểu được
một cách thông thường, được xem như là đầu vào của giải thuật
Thuật toán mã hóa : Thuật toán mã hóa biểu diễn các phép thay thế và
biến đổi khác nhau trên văn bản gốc
Khóa bí mật : Khóa bí mật cũng là đầu vào của thuật toán mã hóa Khóa có
giá trị độc lập với văn bản gốc cũng như với thuật toán Thuật toán sẽ tính toán được đầu ra dựa vào việc sử dụng một khóa xác định Những thay thế và biến đổi chính xác được biểu diễn bởi thuật toán sẽ phụ thuộc vào khóa
Văn bản mật mã: Đây là bản tin đã xáo trộn nội dung được tạo ra với tư
cách như là đầu ra Nó phụ thuộc vào văn bản gốc và khóa bí mật Với một bản tin được đưa ra, hai khóa khác nau sẽ tạo ra hai văn bản mật mã khác nhau Văn bản mật mã nhìn bên ngoài sẽ như là một luồng dữ liệu ngẫu nhiên không thể xác định được nội dung, khi cố định
Thuật toán giải mã: Về cơ bản thì đây cũng là một thuật toán mã hóa
nhưng hoạt động theo chiều ngược lại Nó được thực hiện với văn bản mã hóa và khóa bí mật và sẽ tạo lại văn bản gốc ban đầu
Hình 2.3 : Mô hình đơn giản của mã hóa thông thường
2.2.2.1 Mật mã Caesar
Một trong những mật mã hóa ra đời sớm nhất là mật mã Caesar, được tạo ra bởi Julius Caecar trong cuộc chiến tranh Gallic, vào thế kỷ thứ nhất trước công
Trang 16nguyên Trong loại mật mã hóa này, mỗi chữ cái từ A đến W được mã hóa bằng cách chúng sẽ được thể hiện bằng chữ cái xuất hiện sau nó 3 vị trí trong bảng chữ cái Ba chữ cái X, Y, Z tương ứng được biểu diễn bởi A, B, và C Mặc dù Caesar
sử dụng phương pháp dịch đi 3 nhưng điều này cũng có thể thực hiện với bất kì con số nào nằm trong khoảng từ 1 đến 25
Trong hình 2.4 biểu diễn hai vòng tròn đồng tâm, vòng bên ngoài quay tự do
Nếu ta bắt đầu từ chữ cái A bên ngoài A, dịch đi 2 chữ cái thì kết quả thu được sẽ
là C sẽ bên ngoài A… Bao gồm cả dịch 0, thì có tất cả 26 cách phép dịch
Hình 2.4 : “Máy” để thực hiện mã hóa Caesar
Do chỉ có 26 khóa nên mật mã Caesar có thể bị tổn thương dễ dàng Khóa có thể được xác định chỉ từ một cặp chữ cái tương ứng từ bản tin gốc và bản tin mã hóa Cách đơn giản nhất để tìm được khóa đó là cả các thử tất trường hợp dịch, chỉ có 26 khóa nên rất dễ dàng Mỗi chữ cái có thể được dịch đi tối đa lên đến 25
vị trí nên để có thể phá được mã này, chúng ta có thể liệt kê toàn bộ các bản tin
có thể có và chọn ra bản tin có nội dung phù hợp nhất
2.2.2.2 Mật mã Affine
Vì mật mã Caesar chỉ có thể đưa ra được 25 cách biến đổi bản tin nhất định, nên đây là phương pháp mã hóa không thực sự an toàn Mật mã Affine là trường hợp suy rộng của mật mã Caesar, và nó tốt hơn về khả năng bảo mật Mật mã Affine áp dụng phép nhân và phép cộng vào mỗi chữ cái, sử dụng hàm sau :
y = (ax + b) mod m
Trang 17Trong đó x là giá trị số của chữ cái trong bản tin chưa mã hóa, m là số chữ
cái trong bảng chữ cái bản tin chưa mã hóa, a và b là các số bí mật, và y là kết quả thu được của phép biến đổi y có thể được giải mã trở lại x bằng các sử dụng biểu thức:
x = inverse (a)(y-b) mod m
inverse(a) là giá trị mà nếu nó được nhân với kết quả a mod m sẽ cho ta kết
quả là 1
((a * inverse(a)) mod m = 1.)
Ví dụ : Giả sử bản tin được mã hóa bằng hàm y = (11x+4) mod 26 Để mã hóa
bản tin MONEY Các giá trị số tương ứng với bản tin gốc MONEY là 12,14,13,4
và 24 Áp dụng vào hàm cho mỗi giá trị, ta thu được lần lượt tương ứng y = 6, 2,
17, 22, 28 ( M: y = (11*12 + 4) MOD 26 = 6 ) Và các chữ cái tương ứng là
GCRWI, đó là bản tin đã được mã hóa
Để giải mã, ta biến đổi hàm số y thành x = inverse (a) (y-b) mod m Ta có x =
inverse (11)( (y-4) mod 26 Mà inverse (11) mod 26 = 19, do đó x = 19 (y – 4)
mod 26 Áp dụng với bản tin mã hóa GCRWI ta thu được các giá trị x = 12, 14,
13, 4, 24 Các chữ cái tương ứng là MONEY
2.2.2.3 Mật mã thay thế
Mã hóa thay thế là một trong những phương pháp mã hóa mà bảng chữ cái đã
mã hóa là sự sắp xếp lại của bảng chữ cái chưa mã hóa Mặc dù việc có một số lượng lớn các khóa là yêu cầu cần thiết cho bảo mật, nhưng điều đó không có nghĩa là hệ thống mã hóa là đủ mạnh Mã hóa thay thế, mặc dù có 26! khả năng thay đổi vị trí sắp xếp, thực tế lại không có khả năng bảo mật cao và có thể bị phá một cách dễ dàng bằng cách sử dụng tần suất xuất hiện của các chữ cái Mã hóa thay thế là phương pháp tốt để mã hóa các bản tin cần mã hóa về hình thức bề ngoài và dễ dàng phá
Ví dụ ta sử dụng từ khóa “the cows go moo in the field” Bảng chữ cái chưa
mã hóa và bảng chữ cái đã được mã hóa được đưa ra như sau:
Trang 18Vì người nhận biết được cụm từ khóa, nên họ có thể dễ dàng giải mã đuợc bản tin mã hóa bằng cách liệt kê ngược lại từ các chữ cái trong bảng chữ cái đã
mã hóa sang các chữ cái trong bảng chữ cái chưa mã hóa Từ đó sẽ thu được bản tin giải mã : meetmeatfiveoclock
Tuy nhiên việc sử dụng phương pháp mã hóa này cũng có nhiều điểm không thuận lợi Vấn đề chính của phương pháp mã hóa thay thế chính là tần suất xuất hiện của các chữ cái không được che giấu một chút nào Nếu bản tin được mã hóa LOOQLOTQWMUOAEFAEN được phân chia ra, người ta có thể xác định được tần suất xuất hiện của mỗi chữ cái và so sánh chúng với tần suất xuất hiện của các chữ cái trong tiếng Anh: ‘O’ được sử dụng 4 lần trong bản tin mã hóa, L,Q,A và A xuất hiện mỗi chữ cái 2 lần 9 chữ cái có tần suất xuất hiện nhiều nhất trong tiếng Anh là E, T, A, O, N, I, S, R và H Từ đó có thể suy đoán được bản tin mã hóa
2.2.2.4 Các mã hoán vị
Ý tưởng đằng sau mật mã hoán vị là tạo ra một sự thay đổi vị trí của các chữ cái trong bản tin gốc, điều này sẽ làm xuất hiện bản tin mã hóa Mã hóa hoán vị không có tính bảo mật cao bởi vì chúng không thay đổi các chữ cái trong bản tin
Trang 19trở thành phương pháp mã hóa bảo mật hơn Một ví dụ của mã hoán vị là mã rail fence
• Mã Rail fence: là một hoán vị theo cột hết sức đơn giản, lấy một chuỗi và
chia nhỏ các chữ cái thành hai nhóm theo đường zigzag như dưới đây:
Bản tin gốc : WHEN-DRINKING-WATER-REMEMBER-ITS-SOURCE Zig : W E D I K N W T R E E B R T S U C Zag: H N R N I G A E R M M E I S O R E
WEDIKNWTREEBRTSUCHNRNIGAERMMEIORE
• Mật mã Scytale: Vào thế kỉ thứ 4 trước công nguyên, một thiết bị tên là
Scytale được sử dụng để mã hóa các bản tin của quân đội và chính phủ Spartan Thiết bị bao gồm một trụ gỗ với một dải giấy cuộn quanh nó Khi giấy được bỏ
đi, nó đơn giản chỉ là một dãy các chữ cái hỗn độn, nhưng trong khi cuốn xung quanh trụ gỗ, bản tin sẽ trở nên rõ ràng Scytale lấy ý tưởng từ mã hóa rail fence
và mở rộng nó bằng cách sử dụng một khóa có độ dài xác định để hỗ trợ việc che giấu bản tin
Ví dụ văn bản gốc là When drinking water, remember its source, độ dài là 34,
ta chọn độ dài khóa là 4 Chia bản tin độ dài 34 ra các khóa độ dài 4, ta được 8 còn dư 2 Do đó ta làm tròn độ dài mỗi hàng của Scytale lên 9 và thêm vào bản tin 2 chữ cái Z
Trang 20Điều không thuận lợi cho phương pháp này là với những bản tin nhỏ, văn bản
mã hóa có thể dễ dàng bị phát hiện bằng cách thử các giá trị khóa khác nhau Mã Rail fence không có tính thực tế cao, do việc thiết kế đơn giản và bất kỳ người nào cũng có thể bẻ gãy Ngược lại mã Scytale thực tế lại rất hữu dụng cho việc đưa những bản tin nhanh cần thiết để giải mã bằng tay Vấn đề chính của cả hai loại mã này là các chữ cái không thay đổi, do đó đếm tần suất xuất hiện của các chữ cái có thể giúp khôi phục bản tin gốc
2.2.2.5 Mật mã Hill
Một loại mật mã khác cũng liên quan đến việc chuyển đổi các chữ cái đó là mật mã Hill, được phát triển bởi nhà toán học Lester Hill vào năm 1929 [11] Mật mã Hill là một ví dụ của mật mã khối Mật mã khối là một loại mật mã mà các nhóm các chữ cái được mã hóa cùng với nhau theo các khối có độ dài bằng nhau
Để mã hóa một bản tin sử dụng mật mã Hill, người gửi và người nhận trước
hết phải thống nhất về ma trận khóa A cỡ n× n A phải là ma trận khả nghịch
Trang 21Bản tin gốc sau đó sẽ được mã hóa theo các khối có kích thước n Ví dụ ta xét ma
trận 2×2 và bản tin sẽ được mã hóa theo các khối 2 kí tự
Ma trận A: , bản tin MISSISSIPI
Khối đầu tiên MI được tính toán tương ứng: (M~12,I~ 8)
Hai chữ cái đầu tiên của bản tin mã hóa tương ứng với 2, 8 là CI Lặp lại bước này cho toàn bộ bản tin Nếu không có đủ chữ cái cho khối 2 chữ thì ta chèn thêm vào một vài chữ cái, như Z… Bản tin MI SS IS SI PP IK sẽ được mã hóa thành CI KK GE UW ER OY
Giải mã mật mã Hill: Để giải mã một bản tin, trước hết ta tính ma trận nghịch đảo của ma trận khóa A
Sau đó nhân ma trận nghịch đảo với từng cặp chữ cái trong bản tin đã được
mã hóa (theo mod 26) để khôi phục lại bản tin gốc Ma trận nghịch đảo tính được :
Bản tin đã mã hóa : CIKKGEWEROY
Phía nhận sẽ tính : để giải mã bản tin Hai chữ cái đầu tương ứng với 12, 8 là M và I Lặp lại phép tính như trên ta sẽ giải mã ra được toàn bộ bản tin [23]
2.2.2.6 Mật mã Vigenère
Mật mã Vigenere có lẽ là mật mã nổi tiếng nhất trong số các mật mã đa chữ cái có thể tính toán bằng tay, được sáng tạo bởi Blaise de Vigenere, nhà ngoại giao người Pháp ở thế kỉ 16
Trang 22Mật mã đa thay thế chữ cái tương tự với mật mã thay thế đơn chữ cái ngoại trừ một vấn đề là các chữ cái được mã hóa được thay đổi một cách liên tục trong quá trình mã hóa bản tin Điều này làm cho loại mật mã này giảm được nguy cơ
bị xâm hại bằng cách sử dụng tần suất xuất hiện của các chữ cái Mật mã Vigenère sử dụng bảng chữ của Vigenere để thực hiện mã hóa
Hình 2.5 : The Vigenère Square
Có hai phiên bản khác nhau của mã hóa Vigenère, phương pháp khóa tự động
và phương pháp từ khóa
Phương pháp khóa tự động: Để mã hóa một bản tin sử dụng phương pháp khóa tự động Vigenere, nguời gửi và người nhận trước hết phải thống nhất với nhau về khóa bí mật Khóa này là một chữ cái đơn, sẽ được thêm vào đầu của bản tin để tạo khóa Người gửi sẽ mã hóa bản tin bằng cách viết bản tin gốc trên một dòng và viết khóa ở dòng dưới Người gửi sẽ sử dụng bản tin chưa mã hóa
Trang 23và khóa để chọn hàng và cột trong bảng Vigenere Hàng được chọn là hàng mà chữ cái gốc là ở cột đầu tiên và cột được chọn là cột mã chữ cái khóa nằm trên hàng đầu tiên Một chữ cái mã hóa sẽ là chữ cái mà xuất hiện trong bảng Vigenere tại vị trí giao giữa hàng và cột Ví dụ, để tìm chữ cái mã hóa, vị trí đầu tiên trong hàng tương ứng với vị trí chữ cái T Cột sẽ tương ứng với chữ cái L Chữ cái nằm ở vị trí giao giữa hàng và cột này là chữ cái mã hóa, trong trường hợp này là E Tiếp tục làm như vậy với mỗi cặp chữ cái sẽ tạo được bản tin được
mã hóa Để giải mã ta làm ngược lại Ví dụ, với khóa chính là L :
có thể thực hiện được trong khoảng thời gian ngắn Tuy nhiên ý tưởng của phương pháp này có thể được sử dụng để tạo ra một loại mã có độ bảo mật cao hơn
• Phương pháp từ khóa: Phương pháp này tương tự như phương pháp khóa
tự động, nhưng thay vì sử dụng một chữ cái riêng lẻ làm khóa, nó sử dụng một cụm từ khóa Từ khóa có thể có độ dài bất kì nào lớn hơn 1, nó sẽ cung cấp một
số lượng vô hạn các khóa Để tạo khóa, người gửi viết keyword lặp lại trên một dòng ở phía dưới bản tin gốc Cặp chữ cái khóa-bản tin gốc trên mỗi cột và hàng
sẽ được mã hóa sử dụng bảng Vigenere tương tự như phương pháp khóa tự động.Ví dụ với khóa là từ khóa PUCK ta sẽ viết thành PUCKP UCKPU CKPUC…
Đánh giá độ bảo mật: Mật mã Vigenere sử dụng từ khóa có độ bảo mật cao
hơn so với phuơng pháp khóa tự động, nhưng nó vẫn dễ bị xâm hại Từ khóa
Trang 24càng dài thì mã hóa càng bảo mật Ví dụ, nếu từ khóa dài bằng bản tin mã hóa, thì mã hóa này là không thể bị bẻ gãy nếu một khóa mới được sử dụng cho mỗi bản tin Thực tế với mỗi khóa khác nhau có thể nhận được các bản tin khác, do
đó nếu sử dụng nhiều khóa, thì không có cách nào có thể xách định chính xác được bản tin Ví dụ bản tin mã hóa JTLOM FJRCS XM , nếu sử dụng khóa là hfikeniaoitz thì ta sẽ thu được bản tin gốc là CODE IS BROKEN, còn nếu sử dụng khóa hfikenrnaygi thì ta sẽ thu được CODE IS SECURE [23]
2.2.2.7 One - time pad
Mật mã One-time pad (OTP) đã được kiểm nghiệm rằng đây là loại mật mã tuyệt đối bảo mật, không thể bị bẻ gãy trong thực tế Và người ta đã chứng minh rằng bất kì một loại mật mã không thể bị bẻ gãy hay tuyệt đối bảo mật thì phải được thực hiện theo nguyên lý của one-time pad OTP được phát minh vào năm
1918 do Gilbert S Vernam (1890-1960), một nhà mật mã học của công ty AT&T Mật mã Vernam là một ví dụ nổi tiếng của OTP Mật mã này rất đơn giản: 1 luồng bit bao gồm bản tin chưa mã hóa, và một luồng bít ngẫu nhiên bí mật có cùng độ dài với bản tin gốc, coi như là khóa Để mã hóa bản tin với khóa, thực hiện cộng XOR từng cặp bit khóa và bản tin một cách tuần tự để thu được bit mã hóa Nếu khóa thực sự là ngẫu nhiên thì không người tấn công nào có một
cơ sở nào để có thể đoán được bản tin gốc khi chỉ có trong tay bản tin mã hóa mà
ko có thông tin gì về bản tin gốc
Trang 250010110 0 010 11011100101011: Khôi phục lại bản tin gốc ban đầu
Vấn đề đặt ra là nếu loại mã này đạt được tính bảo mật hoàn hảo thì tại sao nó không được sử dụng một cách rộng rãi trên toàn cầu và tại sao con người vẫn sử dụng các hệ thống mà vẫn có khả năng bị bẻ gãy Ở đây ta thấy rằng, một điểm quan trọng cần phải xem xét là các vấn đề liên quan đến việc sử dụng mã hóa đối với dữ liệu lưu trữ có xu hướng rất khác so với các vấn đề liên quan đến việc sử dụng mã hóa để bảo vệ các cuộc truyền thông Một điều quan trọng cũng cần phải nhận thấy rằng, chúng ta thường tập trung vào truyền thông, bởi vì trường hợp này được cho là đáng để ý hơn trong việc quản lý
Khóa giải mã giống với khóa mã hóa trong khi thuật toán giải mã bao gồm việc loại bỏ đi các kí tự khóa để tạo ra văn bản gốc Các hệ thống truyền thông ngày nay phải đối mặt với một vấn đề rất khó khăn Vì dãy bit được tạo ngẫu nhiên nên với người gửi và người nhận việc tạo ra một khóa giống như vậy là không thể Do đó một trong số họ phải tạo ra khóa và sau đó gửi bí mật cho người kia Nếu khóa được đảm bảo tính bí mật thì nó là cần thiết cho việc bảo vệ trong suốt quá trình truyền dẫn
Nếu cuộc truyền thông chỉ có một đường truyền thì họ cần phải có một dãy ngẫu nhiên one-time pad khác để bảo vệ dữ liệu truyền Một cách rõ ràng nguyên nhân kiểu này dẫn đên những yêu cầu không thể thực hiện được việc tạo ra các dãy ngẫu nhiên vô hạn, mỗi dãy tạo ra được sử dụng để bảo vệ một dãy khác trong quá trình truyền dẫn từ người này đến người kia, gây tốn kém Do đó one-time pad chỉ được sử dụng trong truyền thông khi giữa cuộc truyền thông này còn có một phương tiện thông tin chuyển đổi đảm bảo khác One-time pad thường được sử dụng cho các liên kết cần mức độ bảo mật cao nhất, như đường hotline Moscow – Washington chẳng hạn
Trang 26được tạo ra Thuật toán là theo thứ tự vì nó yêu cầu những thay đổi lần lượt của các trạng thái dựa vào chuỗi khóa Do đó quá trình thực hiện có thể đòi hỏi rất nhiều phép tính toán Thuật toán này được công bố rộng rãi và được thực hiện bởi nhiều nhà lập trình Thuật toán mã hóa này được sử dụng theo chuẩn IEEE 802.11 trong WEP (giao thức mã hóa không dây) sử dụng một khóa 20 và 1 khóa
128 bit
Đặc điểm của RC4:
• RC4 sử dụng khóa có độ dài thay đổi các byte từ 1 đến 256 để tạo một bảng trạng thái 256 byte Bảng trạng thái được sử dụng cho việc tạo ra chuỗi byte giả ngẫu nhiên và sau đó tạo ra một luồng giả ngẫu nhiên, mà luồng này được XOR với bản tin gốc để tạo ra bản tin mã hóa Mỗi thành phần trong bảng trạng thái được tráo đổi ít nhất một lần
• Khóa RC4 thường được giới hạn 40 bit, bởi vì sự giới hạn của đầu ra nhưng đôi khi cũng được sử dụng với 128 bit Nó có khả năng sử dụng các khóa
từ 1 dến 2048 bit RC4 được sử dụng trong các gói phần mềm thương mại như là Lotus Notes và Oracle Secure SQL
• Thuật toán RC4 làm việc theo hai giai đoạn, thiết lập khóa và mã hóa Thiết lập khóa là giai đoạn đầu tiên và cũng là khó khăn nhất của thuật toán Trong quá trình tạo khóa N bit, khóa mã hóa được sử dụng để tạo một biến mã hóa sử dụng hai mảng , trạng thái và khóa, và N phép kết hợp Các phép kết hợp này bao gồm tráo đổi byte, phép modulo (chia lấy dư ) …
RC4 là loại mã hóa có tốc độ nhanh, tốc độ của nó nhanh hơn DES đến 10 lần, các khóa của RC4 được sử dụng chỉ một lần, và khó có thể biết được các giá trị trong bảng trạng thái cũng như là vị trí nào trong bảng được sử dụng để chọn từng giá trị của chuỗi Tuy nhiên thuật toán RC4 dễ bị tổn thương khi có các cuộc tấn công phân tích bảng trạng thái Một trong số 256 khóa có thể là khóa yếu
Trang 272.2.2.9 DES
Vào năm 1972, tổ chức NIST, sau này được biết đến dưới tên gọi National Bureau of Standards, đã đưa ra yêu cầu đề xuất một thuật toán mã hóa có thể được sử dụng để bảo vệ thông tin Họ muốn một thuật toán rất bảo mật, rẻ, dễ dàng hiểu được và có khà năng thích ứng với nhiều ứng dụng khác nhau, có thể được sử dụng bởi các tổ chức khác nhau cũng như là dùng công khai Lúc này IBM đã đưa ra thuật toán Lucifer Thuật toán này được chuyển đến tổ chức NSA (National Security Agency) để đánh giá độ bảo mật của nó NSA thực hiện một
số thay đổi đối với thuật toán với một thay đổi quan trọng nhất là thay thế khóa
128 bit thành khóa 56 bit Nhiều người đã nghi ngờ việc thay đổi của NSA làm cho thuật toán yếu đi và thêm vào đó một bí mật nào đó để các nhân viên đặc vụ của họ có thể giải mã và mã hóa các bản tin mà ko cần dùng đến khóa Để xóa bỏ
đi những hoài nghi, NIST đã tiếp nhận thuật toán thay đổi đó như là một tiêu chuẩn liên bang vào tháng 11/1976 Và tên thuật toán được chuyển thành DES (Data Encryption Standard) và được công bố vào tháng 1/1977
DES là mã hóa khối với độ lớn khối 64bit Nó sử dụng các khóa 56 bit, nhưng
nó giống như một khối 64 bit, trong đó các bit vị trí thứ 8, 16, 24… là các bit kiểm tra chẵn lẻ, được sắp xếp vào mỗi khối 8 bit để kiểm tra lỗi của khóa Điều này khiến DES vẫn có thể bị bẻ khóa với cả những máy tính hiện đại và những phần cứng đặc biệt Tuy nhiên DES vẫn đủ mạnh để khiến cho hầu hết các hacker hoạt động độc lập cũng như là các cá nhân khó có thể phá được, nhưng nó
dễ dàng bị bẻ gãy bởi chính phủ, các tổ chức tội phạm hay các công ty lớn với những phần cứng đặc biệt DES dần dần trở nên yếu và không nên được sử dụng trong các ứng dụng mới Và hệ quả tất yếu là vào năm 2004 NIST đã rút lui khỏi chuẩn DES
Một phiên bản biến đổi khác của DES đó là 3DES, dựa trên cơ sở là sử dụng DES lần (thông thường trong một chuỗi mã hóa-giải mã-mã hóa với ba khóa khác nhau, không liên quan đến nhau) 3DES được cho rằng là mạnh hơn nhiều
so với DES, tuy nhiên nó lại chậm hơn so với các phương pháp mã khối mới
Trang 28Tuy nhiên, thậm chí dù DES dường như ít được ưa thích sử dụng trong các ứng dụng mới ngày nay, nhưng vẫn có nhiều lý do để xem xét và đánh giá tính quan trọng của nó Đó là mật mã khối đầu tiên được triển khai một cách rộng rãi trong các khu vực công cộng Do đó nó đóng một vai trò quan trọng trong việc tạo ra các phương pháp mã hóa bảo mật được phép công khai Thậm chí ngày nay DES còn không được xem là giải pháp thực tế nữa, nhưng nó vẫn thường được sử dụng để mô tả những kỹ thuật phân tích và giải mã các phương pháp mã hóa mới
2.2.2.10 AES
Vào năm 1997, NIST đã tiến hành lựa chọn một thuật toán mã hóa đối xứng
để sử dụng bảo vệ những thông tin nhạy cảm thuộc liên bang Năm 1998, NIST
đã thông báo chấp nhận 15 thuật toán ứng cử và kêu gọi sự giúp đỡ của cộng đồng nghiên cứu mật mã học trong việc phân tích các thuật toán này Dựa vào những phân tích này, năm 1999, danh sách cuối cùng còn lại 5 thuật toán, MARS, RC6, Rijndael, Serpent and Twofish Tháng 10/2000, một trong số 5 thuật toán này đã được lựa chọn như là một chuẩn của tương lai, đó là : phiên bản được chỉnh sửa của Rijndael
Rijndael là tên kết hợp của hai nhà phát minh người Bỉ, Joan Daemen và Vincent Rijmen; đây là một loại mật mã khối Nó dùng một khối đầu vào thường
có độ lớn 128 bit và tạo ra đầu ra tương ứng một khối cùng kích cỡ Sự chuyển đổi yêu cầu một đầu vào thứ 2, đó là khóa bí mật Một đặc điểm quan trọng là khóa có thể có kích thước bất kì, phụ thuộc vào mục đích sử dụng, và AES thường sử dụng 3 loại khóa khác nhau đó là 128, 192 và 256 bit, kí hiệu AES-
128, AES-192, AES-256
Một vấn đề quan trọng đó là đánh giá khả năng của AES trước các cuộc tấn công trên thực tế NIST đã tiến hành đánh giá và cho rằng kích thước khóa nhỏ nhất của AES 128 bit thì thành công của các cuộc tấn công bằng phương pháp brute-force cùng với công nghệ ngày nay dường như là không khả thi NIST dự kiến AES sẽ được sử dụng rộng rãi trong các ứng dụng trong thực tế Theo đánh
Trang 29giá của NIST, thuật toán AES, hay Rijdael rất phù hợp với những môi trường hạn chế về bộ nhớ cho cả hai hoạt động mã hóa và giải mã Nó yêu cầu bộ nhớ RAM
và ROM rất nhỏ
2.2.3 Mã hóa khóa công khai
Nhược điểm của hệ mật đối xứng là yêu cầu phải có thông tin về khóa giữa bên gửi và bên nhận qua một kênh an toàn, trước khi gửi một bản tin an toàn trước khi gửi một bản mã bất kì Trên thực tế điều này rất khó đảm bảo an toàn cho khóa bí mật, vì họ có thể ở cách xa nhau và chỉ có thể liên lạc với nhau bằng thư tín điện tử (email) Vì vậy họ khó có thể tạo một kênh bảo mật an toàn cho khóa bí mật được
Ý tưởng xây dựng một hệ mật mã hóa công khai hay bất đối xứng là tìm ra một hệ mật có khả năng tính toán để xác định dk khi biết ek (dk là luật giải mã, ek
là luật mã hóa) Nếu thực hiện được như vậy quy tắc mã ek có thể được công khai bằng cách công bố nó trong một danh bạ Bởi vậy nên có thuật ngữ mã hóa công khai hay mã hóa bất đối xứng
Ưu điểm của hệ mã hóa bất đối xứng là ở chỗ không những chỉ có một người
mà bất cứ ai cũng có thể gửi bản tin đã được mã hóa cho phía nhận bằng cách dùng mật mã công khai ek Nhưng chỉ có người nhận A mới là người duy nhất có thể giải mã được bản mã bằng cách sử dụng luật giải bí mật dk của mình Ý tưởng
về một hệ mật khóa bất đối xứng được Difie và Hellman đưa ra vào năm 1976 Còn việc hiện thực hóa nó thì do Rivest, Shamir và Adleman đưa ra lần đầu tiên vào năm 1977 họ đã tạo nên hệ mật nổi tiếng RSA Kể từ đó đã công bố một số
hệ mật dựa trên các bài toán khác nhau.Sau đây ta sẽ tìm hiểu một số phương pháp mã hóa bất đối xứng hay mật mã công
2.2.3.1 Mã RSA
Hệ thống khoá công cộng đầu tiên được thực hiện vào năm 1977 bởi Rivest, Shamir và Adleman được biết đến với tên gọi là hệ thống mật mã RSA RSA dựa trên hàm cửa sập một chiều Lược đồ RSA được chấp nhận một cách rộng rãi để thực hiện mục đích tiếp cận mật mã mã hóa bất đối xứng Hàm cửa sập một chiều
Trang 30là một hàm có đặc tính một chiều (tức là hàm có thể dễ dàng tính theo chiều thuận,nhưng lại rất khó khăn để tìm ra hàm ngược) và nó trở nên dễ tính ngược nếu biết một cửa sập nhất định
Hình 2.6: Mật mã hóa/ Giải mật mã hệ thống RSA
Đặc điểm:
Quá trình phát triển: năm 1983 hệ số n gồm 69 chữ số và nó thành công trong suốt thập kỉ 80, đến 1989 là 106 chữ số, phương pháp này tạo bởi Lenstra và Manasse Tháng 4 năm 1994 gồm 129 tạo bởi Atkins, Graff và Lenstra gọi là RSA-129, các mã RSA như RSA -100, RSA -110, …,RSA -500 là danh sách các
mã RSA được công khai trên internet
Hạn chế:
Có bốn khả năng tiếp cận để tấn công vào thuật toán RSA là:
• Brute force: Tức là thử tất cả các loại khóa bí mật có thể
Trang 31• Mathematical attacks: Sử dụng một vài giá trị gần đúng trong tất cả các giá trị tương đương để cố gắng phân tích tích của hai số nguyên
• Timming attacks: Điều này phụ thuộc vào thời gian chạy thuật toán giải
Kẻ tấn công có thể giải mã được bản mã bằng cách thử tất cả các hệ số n Do
đó, để hệ thống mật mã RSA được an toàn thì phải đảm bảo n=p.q phải đủ lớn để khó có thể tính toán được ra nó như hiện nay n có thể là một số có 200 số thập phân
MIPS-year Thuật toán
Trang 32Bảng 2.2: Quá trình phân tích thừa số
Hệ thống mật mã mã hóa bất đối xứng được ứng dụng rộng rãi nhất là RSA Mức độ khó của việc tấn công RSA là dựa vào độ khó của việc tìm ra hệ số nguyên tố
Trang 33hóa Sau đó với xác suất cao của một trong bốn căn bậc hai với dư thừa này, thì người thu có thể dễ dàng lựa chọn giá trị biểu diễn đúng bản tin bản rõ
Rabin đã phát triển hệ mật mã hóa bất đối xứng dựa vào độ phức tạp của việc tính toán modul bình phương của một số nguyên Lý thuyết hệ mật Rabin có ý nghĩa quan trọng trong việc đưa ra chứng minh độ an toàn cho hệ thống mật mã
mã hóa bất đối xứng Thuật toán mã hóa trong hệ mật Rabin đặc biệt hiệu quả và
vì vậy nó thích hợp với các ứng dụng cố định như mật mã được thực hiện bởi thiết bị cầm tay
Một điều thú vị đối với hệ mật Rabin là được an toàn trước sự tấn công vào lựa chọn bản rõ Tuy nhiên hệ thống Rabin lại mất hoàn toàn độ an toàn trước sự tấn công vào lựa chọn bản mã cũng giống như mã RSA có khả năng tấn công vảo bản mã nhưng thuật toán giải mã khó hơn
2.2.3.3 Hệ mật El Gamal
Năm 1976 Diffie và Hellman giới thiệu hệ thống mật mã khóa công cộng với mục đích trao đổi khóa bí mật giữa 2 thực thể qua một kênh công cộng Ban đầu giao thức trao đổi khóa Diffie-Hellman có thể được sử dụng cả mã hóa và giải
mã dữ liệu hoặc bản tin kí số và kiểm tra chữ kí số Đến năm 1985 Taher El Gamal đã tìm ra một cách chuyển đổi giao thức trao đổi khóa Diffie-Hellman thành hệ thống khóa công cộng chính thức (được dùng để mật mã và giải mã các bản tin như bản tin chữ kí số và kiểm tra chữ kí số)
Hệ mật El Gamal được công bố lần đầu tiên vào năm 1985
Hệ mật El Gamal phát triển hệ thống mã hóa công khai dựa vào tính khó giải của bài toán logarit rời rạc trên các trường hữu hạn Năm 1991 chính phủ Mỹ đã chọn tiêu chuẩn chữ kí số dựa vào lược đồ khóa công cộng El Gamal
El Gamal là một thuật toán mã hóa bất đối xứng là dạng cơ bản của chuẩn chữ
kí số DSS-Digital Signature Standard Kích thước của khóa El Gamal xấp xĩ như
Trang 34RSA, nhưng tính bảo mật được tin tưởng hơn dựa vào độ khó của bài toán logarit rời rạc
2.2.3.4 Hệ mật Mekle-Hellman
Hệ mật Mekle-Hellman được mô tả lần đầu tiên bởi Mekle và Hellman vào năm 1978 Tính bảo mật của hệ mật Mekle-Hellman dựa vào tính khó giải của bài toán tổng hợp các bài toán con Mặc dù hệ mật này, và một vài ứng dụng khác của nó đã bị phá vỡ rất sớm vào năm 1980 Đầu những năm 1980, hệ mật xếp ba lô (knapsack) Mekle-Hellman đã bị phá vỡ bởi Shamir, Shamir có thể sử dụng một thuật toán lập trình số nguyên của Lenstra để phá vỡ hệ thống
2.2.3.5 Hệ mật Mc Elice
Hệ mật Mc Elice sử dụng nguyên lý thiết kế giống như hệ mật Hellman Lược đồ Mc Eliece dựa vào mã sửa lỗi Ý tưởng của lược đồ này là đầu tiên lựa chọn một loại mã đặc biệt với thuật toán giải mã đã biết, sau đó nguỵ trang mã này như một mã tuyến tính nói chung Trong hệ thống này, bài toán NP được dùng để giải mã một mã sửa lỗi tuyến tính nói chung Mã sửa lỗi là mã có thể sửa được một số lỗi xuất hiện trong quá trình truyền dẫn dữ liệu qua một kênh nhiễu Tuy nhiên, đối với nhiều lớp đặc biệt của một số mã, thuật toán đa thức thời gian được thực hiện, một loại trong các loại mã đó là mã Goppa được
Mekle-sử dụng như chuẩn của hệ mật Mc Elice Hệ mật MC Elice dựa vào lý thuyết đại
số và dựa trên bài toán giải mã cho các mã tuyến tính
2.2.3.6 Mật mã đường cong Ellip
Năm 1985, Neal Koblitz và Victor Miller đã độc lập đưa ra khái niệm về mật
mã đường cong Ellip Nó dựa trên bài toán logarit rời rạc
Hầu hết các chuẩn hóa và sản phẩm sử dụng mật mã bất đối xứng cho mã hóa
và chữ kí số sử dụng RSA Như chúng ta đã biết những năm gần đây,độ dài khóa bảo mật RSA được tăng lên, điều này cũng đồng thời làm cho việc xử lý chậm chạp hơn với các ứng dụng sử dụng RSA Gánh nặng này được chia ra, đặc biệt
Trang 35là đối với lĩnh vực thương mại điện tử nơi mà quản lý số lượng các phiên giao dịch rất lớn Nguyên lý hấp dẫn của ECC so với RSA đó là nó cung cấp độ bảo mật ngang nhau cho một kích thước khóa nhỏ hơn rất nhiều, do đó làm giảm được mào đầu sử lý So sánh kích thước khóa trong điều kiện của kết quả tính toán cho việc giải mã:
bits)
RSA/DSA (modulus size in bits)
Bảng 2.3: Bảng so sánh kích thước khóa một số loại mã
DSA: Digital signature Algorith
2.2.3.7 Các hàm băm và tính toàn vẹn dữ liệu
Định nghĩa hàm băm: Hàm băm là một hàm H có ít nhất hai tính chất sau:
• Tính chất nén: H sẽ ánh xạ một đầu vào X có độ dài bit hữu hạn tùy ý tới
một đầu ra H(x) có độ dài bít n hữu hạn
Trang 36• Tính chất dễ dùng tính toán: Với H cho trước và một đầu vào x có thể dễ
bí mật, nên một vài phương pháp yêu cầu bảo vệ giá trị băm
Các hàm băm đóng vai trò cơ bản trong mật mã hiện đại Hàm băm sẽ tạo ra một đầu ra từ các bản tin đầu vào Đầu ra này được định nghĩa là mã hàm băm (kết quả băm, giá trị băm ) hay chính xác hơn hàm băm h sẽ tạo ra ánh xạ các xâu bit có độ dài n cố định
Ý tưởng cơ bản của việc sử dụng các hàm băm trong mật mã là sử dụng chúng như một ảnh biểu diễn rút gọn (đôi khi còn gọi là vết, dấu tay số hay tóm lược thông báo) của xâu vào
Các hàm băm được dùng cho các sơ đồ chữ kí số kết hợp với việc đảm bảo tính toàn vẹn của dữ liệu, khi đó bản tin trước hết được băm và rồi giá trị băm (được xem như đại diện cho bản tin cho bản) sẽ được thay cho vị trí bản tin gốc Một lớp các hàm băm được gọi là các mã xác thực thông báo (MAC: Message Authentication Codes ) sẽ cho phép xác thực thông báo bằng kĩ thuật đối xứng (mật mã cổ điển)
Các thuật toán MAC sử dụng 2 đầu vào (bao gồm bản tin và một khóa bí mật)
để tạo ra một đầu ra có kích cỡ cố định (n bit) với ý đồ đảm bảo rằng nếu không biết khóa thì việc tạo ra cùng một đầu ra là không khả thi MAC có thể được dùng để đảm bảo tính toàn vẹn của dữ liệu, xác thực tính nguyên bản của số liệu Một ứng dụng điển hình của hàm băm (không dùng khóa ) để đảm bảo tính toàn vẹn của dữ liệu được mô tả như sau:
Trang 37Giá trị băm của một bản tin riêng x sẽ được tính ở thời điểm T1 (tính toàn vẹn của giá trị hàm băm này (chứ không phải bản tin) sẽ được bảo vệ Thời điểm T2
phép kiểm tra sau sẽ tiến hành kiểm tra xem liệu thông báo có bị sửa đổi hay không, tức là xem số liệu bản tin x’ có giống bản tin gốc hay không Giá trị băm của x’ sẽ được tính toán và so sánh với giá trị băm đã được bảo vệ, nếu chúng bằng nhau thì bên thu sẽ chấp nhận rằng x=x’ nghĩa là bản tin không bị sửa đổi Ứng dụng này thường được gọi là mã phát hiện sự sửa đổi MDC-Manipulation Detection Codes)
Mục đích của một hàm băm là để tạo ra “ fingerprint-dấu tay” của một file, một bản tin hoặc khối dữ liệu khác Để hữu ích đối với nhận thực bản tin, một hàm Hash phải có những đặc điểm sau
1 H có thể được đặt tới khối dữ liệu có kích thước bất kì
2 H tạo đầu ra có độ dài cố định
3 H x( )được tính dễ dàng với bất kì x nào bởi cả phần cứng và phần mềm
4 Với bất kì giá trị h thì rất khó khăn để tìm ra x dựa vào H x( ) =h, đôi khi người ta còn gọi tính chất này là thuộc tính một chiều
5 Với khối x bất kì, rất khó tính toán để tìm ra một giá trị y≠ xsao cho ( ) ( )
H y =H x , đôi khi gọi tính chất này là tính khó tìm nghịch ảnh thứ hai hay tính khó va chạm yếu (weak collision resistance)
6 Hàm băm khó có khả năng tính toán để tìm ra một cặp bất kì (x,y) với x≠y thoả mãn H x( ) =H y( )đặc điểm này gọi là tính khó va chạm hay khó va chạm mạnh (strong collision resistance)
Tất cả các hàm băm đều sử dụng một nguyên lý chung Đầu vào (bản tin, file,…) được quan sát bởi một chuỗi tuần tự các khối n bit Đầu vào xử lý từng khối một tại một thời điểm trong một khuôn dạng lập đi lập lại để tạo ra một hàm băm n bit
Trang 382.2.3.8 MD4 và MD5
MD4 và MD5 là các thuật toán phân loại bản tin (message digest) được phát triển bởi Ron Rivest được sử dụng cho các ứng dụng chữ kí số, nơi mà một bản tin được nén lại thành một loại (digest) và sau đó được mã hóa bởi một khóa riêng MD4 và MD5 được thiết kế cho các hệ thống máy tính 32 bit MD4 được phát triển vào năm 1990, và hiện nay được đánh giá là không còn tính an toàn MD5 được mô tả bởi phòng thí nghiệm RSA được đưa ra năm 1991 như “MD4 với dây an toàn” và mặc dù chậm hơn MD4 nhưng nó được xem là vẫn an toàn Với MD4, một bản tin bản rõ được chèn thêm để đảm bảo độ dài của nó cộng thêm 448 bit có thể chia được cho 512 Một số nhị phân 64 bit biểu diễn độ dài bản tin ban đầu, sau đó được cộng thêm thành khối 512 bit sử dụng chức năng nén lặp, mỗi khối được xử lý trong bốn vòng khác nhau trong khi MD4 sử dụng
3 vòng lặp
2.2.3.9 SHA và SHA-1
Thuật toán băm bảo mật SHA (Secure Hash Algorith) được phát triển Viện quốc gia tiêu chuẩn và công nghệ Tuy nhiên thuật toán này đã trở nên kém bảo mật và thuật toán ban đầu được sửa lại và công bố vào năm 1994 với tên SHA-1 Trái ngược với MD5, SHA-1 tạo ra một tệp bản tin 160 bit và được xem là an toàn hơn, mặc dù chậm hơn trong thực hiện.Nó thực hiện với độ dài bản bản rõ lên đến 264 bit
2.3 Xu hướng phát triển của mã hóa bảo mật
Trang 39để tạo ra chữ kí số Lược đồ chữ kí số dựa vào hệ thống khóa như RSA hoặc El Gamal, nguyên lý cơ bản rất đơn giản Mỗi người sử dụng có một khóa riêng và chỉ duy nhất họ mới có thể sử dụng nó để chấp thuận nhận dạng chúng Tuy nhiên có một mã hóa bất đối xứng tương ứng mà bất kì ai biết được khóa này có thể kiểm tra khóa riêng tương ứng đã được sử dụng nhưng không thể xác định được khóa riêng Khóa riêng được sử dụng phải được chấp thuận đưa cho bên nhận để đảm bảo cả nội dung và nguồn gốc của bản tin Chữ kí được tạo ra từ giá trị băm (tương ứng với bản tin) bằng cách sử dụng các thuật toán bất đối xứng với khóa riêng, vì thế chỉ những người sở hữu khóa riêng mới có thể tạo ra chữ
kí
Dưới đây là lược đồ của chữ kí số:
Hình 2.7: Lược đồ chữ kí số Giao dịch điện tử an toàn (SET)
Giao thức SET được phát triển bởi ngân hàng MasterCard và Visa giống như phương pháp bảo đảm an toàn trong các phiên giao dịch bằng thẻ ngân hàng qua
Trang 40các hệ thống mạng mở Nó dựa vào thuật toán DES và Triple DES để mã hóa khối dữ liệu lớn và RSA cho mã hóa mã hóa bất đối xứng của khóa bí mật và số thẻ ngân hàng SET được đánh giá là cực kì an toàn
được điều khiển Trong một hệ thống Pay TV thông thường, mỗi chương trình được mã hóa với khóa duy nhất của mình ưu tiên cho việc truyền dẫn Sau đó người ta sẽ phải trả tiền cho một chương trình cụ thể đó để biết được khóa này
Rõ ràng là điều này sẽ dẫn đến một vấn đề là quản lý khóa như thế nào, cụ thể là làm sao để chuyển khóa đến đúng người xem Một giải pháp chung cho vấn đề này là để cung cấp cho mỗi thuê bao một thẻ Smart Card mà trong đó có chứa khóa bí mật duy nhất của thuê bao đó, sử dụng một thuật toán mã hóa bất đối xứng ( hay mã hóa công khai) Thẻ Smart card này sau đó đặt vào trong một đầu đọc hoặc là một phần của TV, hoặc là phần đi kèm được cung cấp bởi nhà quản
lý mạng Khi một thuê bao trả tiền cho một chương trình cụ thể, khóa đối xứng
sử dụng để mã hóa chương trình đó được mã hóa với khóa công khai của thuê bao và truyền đi Loại hệ thống này sử dụng phương pháp khóa hai tầng với sự lai hóa giữa thuật toán đối xứng và thuật toán bất đối xứng
2.3.2 Xu hướng của mã hóa bảo mật trong tương lai
Trên thế giới ngày nay, việc bảo vệ dữ liệu có tính chất nhạy cảm là một trong những mối quan tâm hàng đầu cho các tổ chức cũng như người tiêu dùng Từ đó
ta nhận thấy mã hóa là phương pháp đáng tin cậy nhất để bảo vệ dữ liệu Hiện nay việc sử dụng mã hóa đang lớn mạnh nhanh chóng, được phát triển trong các vùng công nghiệp lớn hơn và thông qua sự tăng lên của một loạt các ứng dụng Chỉ đưa ra một cách đơn giản, mật mã và mã hóa trở thành một trong những công nghệ hấp dẫn nhất trong ngành công nghiệp bảo mật IT – thử thách hiện nay để đảm bảo rằng các tổ chức IT được trang bị đầy đủ để xử lý sự thay đổi này và đang đặt ra nền móng ngày nay để đáp ứng những nhu cầu trong tương lai
Bước cuối cùng của bảo mật đối với dữ liệu cá nhân: Vì các doanh nghiệp hoạt động nhằm mục đích đáp ứng các tiêu chuẩn bảo mật dữ liệu nghiêm ngặt đối với việc thanh toán qua thẻ (PCI DSS), do đó, điều đầu tiên là cần phải bảo
vệ dữ liệu thẻ tín dụng vốn rất nhạy cảm của khách hàng, mà trước hết là trong tư