Nghiên cứu các giải thuật mã hóa bảo mật hỗn loạn Nghiên cứu các giải thuật mã hóa bảo mật hỗn loạn Nghiên cứu các giải thuật mã hóa bảo mật hỗn loạn luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
NGHIÊN CỨU CÁC GIẢI THUẬT MÃ HÓA
BẢO MẬT HỖN LOẠN
LUẬN VĂN THẠC SỸ KHOA HỌC
KỸ THUẬT ĐIỆN TỬ
Trang 4L ời mở đầu
Cùng với sự phát triển mạnh mẽ của công nghệ thông tin và viễn thông Các vấn đề về bao rmật được yêu cầu ngày càng đa dạng và phức tạp Rất nhiều kỹ thuật đã được nghiên cứu, ứng dụng trong bảo mật thông tin, an ninh máy tính, an ninh mạng Giữa bảo mật và chống bảo mật là hai mặt của một
vấn đề Những thông tin trao đổi diễn ra hằng ngày đều đa đa dạng về mặt nội dung lẫn hình thức, trong đó có rất nhiều thông tin cần bảo mật cao bởi tính kinh tế, tính chính xác và độ tin cậy của nó Khi một người muốn trao đổi thông tin với một người khác hay một tổ chức nào đó thì yêu cầu quan trọng
là làm sao để đảm bảo thông tin không bị sai lệch hoặc bị lộ do sự xâm nhập
của bên thứ ba Trước các yêu cầu cấp thiết đó, một số giải thuật mã hóa mật
mã đã được xây dựng nhằm đảm bảo tính an toàn dữ liệu tại nơi lưu trữ cũng như khi dữ liệu được truyền đi trên các môi trường truyền tin không đảm bảo
Trong lĩnh vực này, một hướng khá mới đang được nghiên cứu, đưa vào ứng dụng và hứa hẹn mang lại nhiều lợi ích đó là mã hóa mật mã dựa trên
kỹ thuật hỗn loạn Xuất phát từ những vấn đề trên, đề tài luận văn tập trung vào nghiên cứu các giải thuật mã hóa bảo mật hỗn loạn
Trong luận văn đề cập đến các vấn đề tổng quan về hệ mật mã nói chung, mã hóa mật mã đối xứng, bất đối xứng, các giải thuật mã hóa mật mã
hỗn loạn và các vấn đề liên quan cần thiết cho việc hiểu các kỹ thuật mã hóa
mật mã
Luận văn được trình bày gồm 3 chương với nội dung như sau:
Chương 1: Lý thuyết cơ bản về mã hóa mật mã
Chương 2: Mã hóa mật mã dựa trên kỹ thuật số hỗn loạn
Trang 5Chương 3: Tăng tính bảo mật cho hệ thống mã hóa mật mã dòng hỗn
loạn bởi hệ thống đồng bộ đa lớp
Luận văn được hoàn thành với sự hướng dẫn tận tình của TS Hoàng
Mạnh Thắng – giảng viên Viện Điện tử - Viễn thông – Đại học Bách khoa Hà Nội cùng với sự giúp đỡ nhiệt tình của các thầy cô giáo trong khoa Vì thời gian có hạn, trong khi phạm vi đề tài sâu rộng với nhiều giải thuật phức tạp, đồng thời trình độ và kinh nghiệm của bản thân tác giả còn hạn chế Bản luận văn chắc chắn còn có nhiều khiếm khuyết Rất mong nhận được sự đóng góp
của các thầy cô, bạn bè đồng nghiệp nhiều ý kiến bổ sung, đóng góp về nội dung để luận văn được hoàn thiện hơn
Trang 6Chương 1 – Lý thuyết cơ bản về mã hóa mật mã
1.1 Gi ới thiệu
1.1.1 Nh ững bước phát triển của kỹ thuật mã hóa mật mã
Mật mã là kỹ thuật bảo mật làm biến đổi dữ liệu từ hình thức đơn giản,
rõ ràng sang hình thức dữ liệu biến thành mật mã, chỉ những ai có được thông tin giải mã cần thiết mới có thể giải mã và đọc được nội dung dữ liệu Một
bản ghi hoặc dữ liệu đã được mã hóa mật mã gọi là bản tin mật mã (ciphertext), bản ghi hoặc dữ liệu chưa mã hóa mật mã gọi là bản tin gốc (plaintext) Hoạt động trong quá trình chuyển từ dữ liệu mật mã sang bản tin gốc được gọi là giải mã hóa mật mã Mã hóa mật mã ngày nay được sử dụng
với mục đích chính tạo ra các cơ chế truyền tin bảo mật Phân tích mã hóa mật
mã đối lập với mã hóa mật mã bởi nó tìm mọi cách phá mật mã để lấy được các bản tin gốc từ dữ liệu đã được mã hóa mật mã mà không dùng các cơ chế hoặc thuật toán giải mã Nghiên cứu mã hóa mật mã cùng với phân tích mã hóa mật mã tạo ra khoa học mật mã
Mặc dù với nhiều kỹ thuật khoa học hiện đại nhưng mã hóa mật mã vẫn
là môn khoa học cổ điển Một ví dụ thông dụng nhất của mã hóa mật mã cổ điển đã xuất hiện từ lâu là Julius Caesar, người đã tạo ra các bức thư tín được mật mã dùng chủ yếu trong mục đích quân sự, được gọi là “mật mã Caesar” với kỹ thuật mã hóa rất cơ bản: mỗi chữ cái trong bức thư tín được thay thế
bởi chữ cái khác ở vị trí thứ ba trở xuống trong bảng chữ cái Thuật toán mật
mã như vậy là một ví dụ điển hình của kỹ thuật mật mã thay thế từng ký tự trong bản ghi gốc bằng những ký tự chữ cái hoặc ký tự khác tạo ra bản ghi
mật mã Những thuật toán mật mã như vậy đã được sử dụng rộng rãi cho đến khi Al-Kindi – nhà toán học Ả-rập phát triền thành công kỹ thuật phân tích
tần suất vào thế kỷ thứ 9 Kỹ thuật phân tích này dựa trên thực tế của các
Trang 7ngôn ngữ với những chữ cái khác nhau có tần suất xuất hiện khác nhau và
kiểm tra tần suất xuất hiện của các chữ cái có trong bản ghi mật mã để tìm ra các chữ cái có trong bản ghi gốc Để chống lại kỹ thuật phân tích tần suất xuất
hiện các chữ cái, thuật toán mật mã thay thế nhiều ký tự chữ cái đã được tạo
ra vào khoảng thế kỷ thứ 16 và đã loại bỏ hoàn toàn thuật toán mật mã thay thế từng ký tự Một trong những thuật toán nổi tiếng là “mật mã Vigenere”, trong nhiều năm liền thuật toán mật mã này không hề bị phá vỡ cho đến khi
kỹ thuật phân tích tần suất xuất hiện được cải tiến và bổ sung thêm các tính năng mới
Nhiều thuật toán làm giả đa ký tự đã được phát triển và đưa vào sử
dụng trong những thế kỷ 19 và 20, hoàn toàn hoạt động dựa trên các thiết bị máy móc Một ví dụ điển hành là máy Enigma được sử dụng nhiều trong
truyền thông tin qua sóng vô tuyến bởi quân đội Đức trong chiến tranh thế
giới lần thứ 2 Máy Enigma sau đó đã bị phá mã bởi mã Allies do nhà toán học người Anh Alan Turing (được coi là cha đẻ nghành khoa học máy tính
hiện đại)
Hầu hết các thuật toán mã hóa mật mã dù sớm hay muộn đều bị phá vỡ,
từ đó người ta bắt đầu nghiên cứu và tạo ra các nguyên lý thiết kế các kỹ thuật
mã hóa mật mã Luật Kerckhoffs là một trong những luật nổi tiểng đã được sử
dụng tương đối rộng rãi cho đến ngày nay trong mã hóa mật mã: tính bảo mật
của một hệ thống mã hóa mật mã chỉ có một tham số bảo mật duy nhất đó là
khóa Nói cách khác, các nguyên lý của một hệ thống mã hóa mật mã cần phải được bảo mật cho dù mọi thứ có thể công khai nhưng trừ khóa Năm 1949, nhà toán học người Mỹ Claude Shannon đã xuất bản một bài báo có tính chất
như sự khởi nguồn về lý thuyết mã hóa mật mã dựa trên lý thuyết thông tin
Claude Shannon phát triển rằng chỉ có một cách duy nhất để đạt được tính
b ảo mật hoàn hảo chỉ khi mỗi bản ghi mật mã sử dụng một khóa khác nhau
với các yêu cầu, với mỗi cách mã hóa mật mã, số lượng các khóa có thể sử
Trang 8dụng sẽ bằng số lượng các bản ghi gốc có thể giải mã được Các yêu cầu được đưa ra như vậy dường như không thực tế và khó áp dụng được trong mã hóa
mật mã Claude Shannon đã đưa ra một vài nguyên lý thiết kế để đạt được độ
bảo mật cao, tăng khả năng chống lại các phương pháp phá mã Một trong những số đó trở thành nguyên lý cơ bản trong thiết kế các thuật toán mã hóa mật mã ngày nay
Mã hóa mật mã đã có nhiều cải tiến và phát triển mới vào cuối thế kỷ
thứ 19 cùng với sự phát triển của khoa học máy tính và các thiết bị điện tử khác Do đó đã xuất hiện nhiều công nghệ mới tạo ra các thuật toán mã hóa mật mã phức tạp
Một trong số đó là thuật toán mã hóa mật mã xuất hiện năm 1970 được phát minh bởi một nhóm nghiên cứu mã hóa mật mã của IBM, trong đó có Horst Feistel và Don Coppersmith Thuật toán mã hóa mật mã đầu tiên mà họ
đã tạo ra là chuẩn mã hóa mật mã dữ liệu (DES), đã được sử dụng rộng rãi cho đến ngày nay
Năm 1976, một bài báo được xuất bản bởi hai nhà khoa học chuyên về
mật mã người Mỹ là Whitfield Diffie và Martin Hellman trong đó đề cập đến
nội dung mã hóa mật mã khóa công khai và sự liên hệ giữa lý thuyết phức tạp
và mật mã, họ đã tạo ra một bộ mặt mới cho ngành khoa học mật mã
1.1.2 K ỹ thuật mã hóa mật mã hiện đại
Kỹ thuật mã hóa mật mã ngày nay là một nhánh của việc ứng dụng toán
học và khoa học máy tính: những hệ thống mật mã đều sử sụng các chương trình máy tính (hoặc các mạch điệnt tử) với kiến trúc thuật toán dựa trên những công cụ của toán học Mục tiêu của kỹ thuật mật mã hiện đại là tạo ra những tính năng bảo mật sử dụng trong việc truyền tin trên những phương
th ức truyền không bảo mật, ví dụ: điện thoại, sóng vô tuyến, internet,…
Mã hóa m ật mã bất đối xứng sẽ làm cho các chữ ký số của các văn bản
điện tử sẽ có hiệu lực và tính pháp lý tương tự như chữ ký của các văn bản
Trang 9giấy tờ bình thường Chữ ký số cũng có những tính pháp lý trong việc chứng
nhận các văn bản Cùng với sự phát triển của kỹ thuật mã hóa mật mã hiện
đại, rất nhiều các thuộc tính bảo mật đã được tạo ra như khả năng tính toán đa
tác v ụ bảo mật, nhóm đa chữ ký,…
Mọi hệ thống mã hóa mật mã về mặt lý thuyết đều có thể bị phá vỡ bởi
kỹ thuật dò tìm toàn bộ các khóa Một cặp bản tin mật mã – bản tin gốc thường không bao giờ bị nhầm lẫn trong việc xác định khóa được sử dụng trong việc mã hóa mật mã dữ liệu Trong trường hợp cả cặp bản tin mật mã và
bản tin gốc bị nghe trộm, các khóa có thể được dùng trong việc mã hóa mật
mã sẽ được đưa ra dùng để kiểm tra việc giải mã hóa bản tin mật mã thành
bản tin gốc Dù cho việc dò tìm toàn bộ các khóa như vậy có thể thành công, nhưng để có được một kho dữ liệu khóa đủ lớn dùng để giải mật mã từ bản tin
mật mã thành bản tin là điều không thể Ví dụ, nếu một khóa được mã hóa bởi
128 bit (đây là sự so sánh rất nhỏ so với các bộ nhớ máy tính hiện đại) thì số lượng khóa có thể xảy ra và sẽ dùng trong việc dò tìm khóa là 2P
128 P
Như vậy
việc quét tìm toàn bộ các khóa dùng trong mã hóa mật mã cần đến 2P
128 P
các
tiến trình mã hóa và giải mã Giả sử rằng một kẻ tấn công có khoảng hai triệu máy tính và có thể thực hiện được năm triệu tiến trình mã hóa trên một giây (tốc độ xử lý nhanh hơn rất nhiều so với các máy tính hiện tại), như vậy thời gian tính toán sẽ mất khoảng một nghìn tỷ năm Với kỹ thuật dò tìm toàn bộ các khóa có thể dùng trong việc mã hóa mật mã để tìm ra khóa đúng nhất là điều không thể thực hiện được
Kỹ thuật mã hóa mật mã được chia thành hai nhánh chính: mã hóa mật
mã đối xứng và mã hóa mật mã bất đối xứng Mã hóa mật mã đối xứng
thường được xem như có độ bảo mật cao nếu như không tồn tại kỹ thuật phá
mã nào có hiệu quả hơn việc dò tìm toàn bộ khóa Tuy nhiên, sự bảo mật của
kỹ thuật mã hóa mật mã cũng chỉ được an toàn trong vài năm mà không bị tấn công phá mã Mặt khác, các hệ thống mã hóa mật mã bất đối xứng thường
Trang 10được xây dựng dựa trên các vấn đề khó của lý thuyết số học Một vấn đề được
xem là khó khi khả năng tính toán của vấn đề đó không thể thực hiện được
1.2 Mã hóa m ật mã đối xứng
Mã hóa mật mã đối xứng, cũng có tên gọi là mã hóa mật mã khóa bảo
m ật, dựa trên sự giả định rằng hai đối tượng trao đổi thông tin với nhau cùng
sử dụng một khóa bảo mật chung k
1.2.1 Quá trình m ật mã đối xứng
Một dữ liệu mã hóa mật mã đối xứng là một song ánh enc được tham số
hóa bởi khóa bảo mật k và hoạt động trên các bản ghi có độ dài tùy ý Mã hóa
một bản tin gốc p, thành bản tin mật mã c bởi một khóa bảo mật k được xác định như sau:
c = encRkR(p) (1.1)
Giải mã hóa mật mã của một bản tin mật mã là quá trình tính toán ngược
lại của hàm encRkRP
-1 P
Đối với các thuật toán mật mã có độ an toàn, việc tính toán encRk Rvà encRkRP
-1 P
sẽ không thể thực hiện được nếu thiếu khóa k thậm chí nếu có
một số lượng lớn cặp bản tin mật mã – bản tin gốc cùng tồn tại và biết trước Hai dạng thuật toán mã hóa mật mã đối xứng được phân biệt: thuật toán
mã hóa dòng và thuật toán mã hóa khối khối
1.2.2 Hàm băm và mã số xác thực bản tin
Hàm băm mã hóa mật mã là một hàm mà nó sẽ ánh xạ một bản tin có
độ dài không giới hạn sang bản tin có độ dài hữu hạn với các giá trị được rút
ngắn hơn Để hàm băm có độ bảo mật hơn, cần phải tạo ra cơ chế để người nghe trộm không có khả năng tính toán để tìm ra bất kỳ thừa số băm nào cũng như không thể tính toán để tìm ra hai bản tin khác nhau có cùng giá trị hàm băm Các hàm băm được sử dụng như một khối trong các chương trình mã hóa mật mã Giá trị hàm băm của một bản tin sử dụng để tạo ra khả năng có
thể kiểm tra tính toàn vẹn dữ liệu của nó, bởi vì không có các bản tin nào có thể được tạo ra với cùng một giá trị hàm băm Nhưng quá trình truyền tin các
Trang 11giá trị đó phải có độ bảo mật an toàn cao, điều này đặc biệt quan trọng đối với môi trường truyền thông tin không bảo mật Để đảm bảo tính toàn vẹn dữ
liệu, cũng như việc xác thực bản tin khi truyền qua các môi trường truyền tin
có độ bảo mật kém, các mã số xác thực bản tin được sử dụng để giải quyết vấn đề này
Một mã số xác thực bản tin (MAC) là một hàm được tham số hoá với
một khóa bảo mật và bản tin có độ dài không giới hạn được ánh xạ thành bản tin có chiều dài hữu hạn với các giá trị được rút gọn MAC cũng thường được
xem như là khóa của hàm băm Để MAC có độ an toàn bảo mật cao, cũng cần
phải tạo ra cơ chế để không thể thực hiện tính toán và tìm ra được giá trị MAC của các bản tin, nếu không biết khóa bảo mật (thậm trí trong trường hợp
một số lượng lớn các bản tin bị lộ các giá trị MAC)
MAC được sử dụng để tạo ra cơ chế xác thực bản tin và đảm bảo tính toàn vẹn dữ liệu Thực vậy, thông qua việc kiểm tra giá trị MAC để xác minh tính chính xác của bản tin, bên nhận có thể kiểm tra bản tin được gửi đi bởi bên gửi có sử dụng chung khóa bảo mật và bản tin không bị chỉnh sửa bởi bất
kỳ bên nào nếu không biết khóa bảo mật được sử dụng trong quá trình mã hóa
mật mã Một vài MAC có thể được tạo ra dựa trên các hàm băm hoặc thuật toán mã hóa mật mã khối
1.2.3 Thu ật toán mã hóa mật mã khối tiêu chuẩn
Thuật toán mã hóa mật mã khối thực hiện các tiến trình mã hóa mật mã thông qua phép lặp của các hoán vị khóa độc lập, được gọi là chuyển đổi vòng
l ặp Trong thực tế, thuật toán mã hóa mật mã khối là lặp, có nghĩa là việc
chuyển đổi lặp sẽ được sử dụng lặp lại trong nhiều lần Quá trình chuyển đổi vòng lặp được tham số hóa bởi một khóa vòng lặp được dẫn xuất từ khóa bảo
mật bởi quá trình lặp của chức năng phân bố khóa (key scheduling function)
Trang 12Hai thuật toán mã hóa mật mã khối tiêu chuẩn chính: Tiêu chuẩn mã hóa mật mã dữ liệu (DES) và tiêu chuẩn mã hóa mật mã nâng cao (AES)
1.2.3.1 Tiêu chu ẩn mã hóa mật mã dữ liệu (DES)
Phương pháp mã hóa mật mã DES sử dụng giải thuật mã hóa mật mã khối, năm 1976 đã được Cục tiêu chuẩn liên bang Hoa kỳ lựa chọn như là một tiêu chuẩn chuẩn mực dùng trong mã hóa mật mã dữ liệu DES sử dụng khóa 56-bit (thường được biểu diễn dưới dạng 64 bit trong đó có 8 bit dùng để
kiểm tra tính chẵn lẻ) và DES hoạt động ở dạng khối 64-bit DES có cấu trúc
lặp và được sử dụng 16 lần với phép biến đổi trong cùng vòng lặp F được
đứng trước bởi một bit-hoán vị IP và theo sau là một bit-hoán vị FP Mỗi phép biến đổi vòng lặp được tham số hóa bởi một khóa vòng lặp 48-bit kRr -
Rđược dẫn xuất từ khóa bảo mật k thông qua một quá trình phân bố khóa Tóm
lại, một văn bản mật mã c được mã hóa từ một văn bản gốc p theo công thức
sau:
𝑐𝑐 = 𝐹𝐹𝐹𝐹 𝑜𝑜 �𝑂𝑂𝑟𝑟=116 𝐹𝐹𝑘𝑘𝑟𝑟� 𝑜𝑜 𝐼𝐼𝐹𝐹(𝑝𝑝) (1.2) Phép biến đổi vòng lặp tuân theo giải thuật Feistel, các khối được chia
thành hai phần gồm L với 32-bit (phần bên trái) và R (phần bên phải), và F được định nghĩa như sau:
𝐹𝐹𝑘𝑘𝑟𝑟(𝐿𝐿, 𝑅𝑅) = (𝑅𝑅, 𝐿𝐿 𝑓𝑓𝑘𝑘𝑟𝑟(𝑅𝑅)) (1.3)
Trong đó f là hàm được tham số hóa với một khóa 48-bit và sử dụng
với khối 32-bit Cấu trúc này được miêu tả ở hình 1.1
Trang 13Hình 1.1: Biến đổi vòng lặp trong giải thuật Feistel
1.2.3.2 Tiêu chu ẩn mã hóa mật mã nâng cao (AES)
Tiêu chuẩn mã hóa mật mã nâng cao được tạo ra bởi nhà mật mã người
Bỉ Joan Daemen và Vincent Rijment AES được xem là thành tựu lớn về mã hóa mật mã sau quá trình chuẩn hóa kéo dài năm năm và vào năm 2001 Viện công nghệ và tiêu chuẩn liên bang Hoa kỳ đã công bố AES trở thành tiêu chuẩn mã hóa mật mã dự liệu AES là thuật toán mật mã khối dựa trên các
khối 128-bit với việc sử dụng một trong các khóa 128, 192 hoặc 256-bit
AES hoạt động với một mảng 4x4 byte được gọi là các trạng thái
Trạng thái này được khởi tạo bởi giá trị bản ghi mật mã và lưu giữ giá trị cuối cùng của quá trình mã hóa mật mã bản ghi gốc Mỗi vòng lặp AES được bao
gồm 4 bước: AddRoundKey, SubBytes, ShiftRows và MixColumns AES
gồm có 10, 12 hoặc 14 vòng lặp, điều này phụ thuộc vào độ dài của khóa Khóa càng dài số vòng lặp càng nhiều, cùng với bước cuối là AddRoundKey
Bước SubBytes sử dụng AES S-box với từng byte của khối AES S-box được tạo ra từ sự kết hợp giữa phép nhân nghịch đảo hàm 𝐹𝐹2[𝑥𝑥]/(𝑥𝑥8+ 𝑥𝑥4 +
𝑥𝑥3 + 𝑥𝑥 + 1) với phép biến đổi affine khả nghịch 𝐹𝐹28 có tính chất phi tuyến để chống lại các tấn công dựa trên các đặc tính đại số
f
Trang 14Hình 1.2: Trong bước SubBytes, mỗi byte được thay thế bằng một byte theo
bảng mã cố định 8-bit, S; bRijR = S(aRijR)
Bước biến đổi ShiftRows, các hàng được dịch vòng một số vị trí nhất định Đối với AES các hàng đầu được giữ nguyên nhưng các byte cuối cùng trong ba hàng cuối của khối được dịch vòng với các byte khác Mỗi byte của hàng thứ hai được dịch sang trái một vị trí Tương tự, các hàng thứ ba và thứ
tư cũng được dịch hai và ba vị trí Đối với khối có kích thước 128 bits và 192 bits cũng thực hiện dịch tương tư Bằng cách này, mỗi cột đầu ra của bước ShifRows sẽ bao gồm các byte từ những cột của đầu vào Trong trường hợp
khối có kích thước 256 bits, hàng đầu tiên không thay đổi và chỉ dịch vòng đối với các hàng thứ hai, ba và tư tương ứng với 1 byte, 3 byte và 4 byte Sự thay đổi như vậy chỉ xuất hiện duy nhất trong thuật toán mật mã Rijindael khi
sử dụng khối 256 bits, nhưng AES lại không sử dụng các khối có kích thước
256 bits
Hình 1.3: Trong bước ShiftRows, các byte trong mỗi hàng được dịch vòng
trái Số vị trí dịch chuyển tùy thuộc từng hàng
Trang 15Bước biến đổi MixColumms hoạt động theo khối tuần tự từ cột đến cột
Mỗi cột được xem như một hàm đa thức 𝐹𝐹2[𝑥𝑥]/(𝑥𝑥8 + 𝑥𝑥4+ 𝑥𝑥3+ 𝑥𝑥 + 1) được
nhân với modulo (𝑥𝑥4 + 1) và hàm đa thức cố định c(x), cho bởi:
𝑐𝑐(𝑥𝑥) = 3 𝑥𝑥3 + 𝑥𝑥2 + 𝑥𝑥 + 2 (1.4)
Hình 1.4: Trong bước MixColumns, mỗi cột được nhân
với một hệ số cố định c(x)
Vì vậy bước này có thể được xem như là phép nhân ma trận trong
trường hữu hạn Trong phép tính này, mỗi cột được nhân với ma trận biết
trước, đối với khóa 128 bit khóa đó là:
Phép nhân được thực hiện như sau: nhân với 1 không có sự biến đổi
nào diễn ra, nhân với 2 tức là dịch chuyển byte sang bên trái, nhân với 3 dịch
chuyển sang bên trái và sau đó thực hiện phép XOR với giá trị ban đầu chưa
dịch chuyển Sau phép dịch chuyển, hàm XOR với điều kiện 0x11B sẽ được
sử dụng nếu giá trị dịch chuyển lớn hơn 0xFF
Cuối cùng, bước biến đổi AddRoundKey thực hiện kết hợp khóa con
với các khối Khóa con trong mỗi chu trình được tạo ra từ khóa chính với quá
trình tạo khóa con Rijndael; mỗi khóa con có độ dài giống như các khối Quá
Trang 16trình kết hợp được thực hiện bằng cách XOR từng bít của khóa con với khối
dữ liệu
Hình 1.5: Trong bước AddRoundKey, mỗi byte được kết hợp với một byte
trong khóa con của chu trình sử dụng phép toán XOR (⊕)
V ấn đề trao đổi khóa
Như ở phần trên của luận văn đã trình bầy mã hóa mật mã đối xứng đưa ra giải pháp công nghệ để bảo mật, tính toàn vẹn và khả năng xác thực thông qua kênh truyền không an toàn dựa trên giả định rằng hai bên trao đổi thông tin cùng chia sẻ một khóa bảo mật Tuy nhiên vấn đề bảo mật vẫn còn Làm thế nào một khóa bảo mật được trao đổi một cách bảo mật thông tin kênh truyền không an toàn? Kỹ thuật mã hóa mật mã bất đối xứng có giải pháp công nghệ để xử lý vấn đề này
1.3 Mã hóa m ật mã bất đối xứng
Kỹ thuật mã hóa mật mã bất đối xứng, thường được gọi là kỹ thuật mã hóa mật mã khóa công khai, được phát minh ra bởi hai nhà khoa học mật mã người Mỹ Whitfield Diffie và Martin Hellman với giải pháp quan trọng trong
vấn đề trao đổi khóa và chữ ký số Đây là nguyên lý sống còn trong việc sử dụng khóa kép: một khóa công khai pk (ký) được sử dụng cho thuật toán mã
Trang 17hóa mật mã và một khóa công khai sk được sử dụng trong thuật toán giải mật
mã (kiểm tra chữ ký) Khóa công khai được sử dụng rộng rãi để bất cứ ai cũng có thể sử dụng để mã hóa mật mã bản tin (hoặc kiểm tra chữ ký) Mặt khác, khóa riêng được giữ kín để chỉ có duy nhất người có khóa mới thực hiện được giải mật mã bản tin với khóa công khai tương ứng (thực hiện các tiến trình kiểm tra chữ ký bởi khóa công khai tương ứng)
1.3.1 H ệ thống mã hóa mật mã khóa công khai
Một hệ thống mã hóa mật mã khóa công khai bao gồm một cặp hàm số
enc (mã hóa) và dec (giải mã hóa) được tham số hóa bởi một khóa công khai
pk và m ột khóa riêng sk, trong đó 𝑑𝑑𝑑𝑑𝑐𝑐𝑠𝑠𝑘𝑘 = 𝑑𝑑𝑒𝑒𝑐𝑐𝑝𝑝𝑘𝑘−1 Quá trình mã hóa mật mã
bản tin gốc p thành bản tin mật mã c thực hiện thông qua khóa công khai pk:
c=encRpkR(p) (1.5)
Quá trình giả mã hóa mật mã từ bản tin mật mã c thành bản tin gôc p
thực hiện thông qua khóa riêng sk:
P=decRskR(c) (1.6)
Đối với hệ thống mã hóa mật mã khóa công khai để tăng cường tính bảo mật cần phải đảm bảo sao cho không thể thực hiện tính toán được decRskR
nếu không có khóa riêng sk cho dù biết thông tin của khóa công khai pk
Một điều lưu ý rằng hệ thống mã hóa mật mã khóa công khai hoạt động với các bản tin có độ dài cố định Khi một bản tin có độ dài lớn cần mã hóa mật mã, sẽ được sử dụng thuật toán mã hóa mật mã lai ghép: một thuật toán
mã hóa mật mã đối xứng được sử dụng trong quá trình mật mã bản tin với một khóa bí mật k được tạo ra ngẫu nhiên và chính khóa k được mã hóa mật
mã bởi hệ thống mã hóa mật mã khóa công khai, sau đó được đính kèm với bản tin Bên nhận sẽ sử dụng khóa riêng để lấy lại khóa k dùng để giải mật mã bản tin Quá trình mã hóa mật mã lai ghép được sử dụng rộng rãi trong thực tế
Trang 18bởi tính hiệu quả: mã hóa mật mã đối xứng xử lý nhanh hơn nhiều so với mã hóa mật mã bất đối xứng
1.3.2 Ch ữ ký số
Hệ thống mã hóa mật mã khóa công khai được ứng dụng trong chữ số dùng trong các văn bản điện tử Khóa riêng được sử dụng cho chữ ký và khóa công khai được sử dụng dùng để kiểm tra tính hợp lệ, chính xác của chữ ký Quá trình thực hiện chữ ký số bao gồm 2 phần chính ký và kiểm tra chữ ký, tương ứng các phần này được tham số hóa bởi một khóa riêng sk và một khóa công khai pk Tiến trình ký thực hiện với một bản tin đầu vào có độ dài bất kỳ
m và tính toán v ới một chữ ký s Tiến trình kiểm tra chữ ký đối với một bản
tin cùng với chữ ký và kiểm tra tính chính xác của chữ ký đính kèm với bản tin
𝑣𝑣𝑑𝑑𝑣𝑣𝑣𝑣𝑓𝑓𝑝𝑝𝑘𝑘(𝑚𝑚, 𝑠𝑠) = � 𝑡𝑡𝑣𝑣𝑡𝑡𝑑𝑑 𝑣𝑣𝑓𝑓 𝑠𝑠𝑣𝑣𝑠𝑠𝑒𝑒𝑓𝑓𝑓𝑓𝑓𝑓𝑠𝑠𝑑𝑑 𝑣𝑣𝑓𝑓 𝑠𝑠𝑣𝑣𝑠𝑠𝑒𝑒𝑠𝑠𝑘𝑘(𝑚𝑚) = 𝑠𝑠
𝑠𝑠𝑘𝑘(𝑚𝑚) ≠ 𝑠𝑠 (1.7)
Để chữ ký có tính an toàn bảo mật cầm phải đảm bảo việc tính toán
signRskR không th ể thực hiện được nếu thiếu thông tin sk mặc dù đã biết thông
tin của pk
Hệ thống mã hóa mật mã khóa công khai tạo ra chữ ký điện tử thông qua việc xác định signRskR(m)=decRskR(m) và verifRpkR(m,s)=“encRpkR(s)=m” Với mục tiêu tăng cường tính bảo mật và hoạt động với bản tin có độ dài bất kỳ, các tiến trình thực hiện chữ ký số thường ứng dụng hàm băm trước khi sử dụng
decRskR
1.3.3 H ạ tầng khóa công khai (PKI)
Mã hóa mật mã bất đối xứng xử lý vấn đề trao đổi khóa thông qua việc
tạo ra một hệ thống khóa công khai sử dụng rộng rãi bất cứ ai cũng có thể dùng để gửi đi bản tin được mã hóa mật mã Tuy nhiên một vấn đề nữa xuất
Trang 19hiện: một kẻ nghe trộm có thể đưa ra một khóa giả mạo để mọi người sử
dụng Hạ tầng khóa công khai (PKI) đã được tạo ra để giải quyết vấn đề này
PKI là một hệ thống trong đó quyền sở hữu khóa công khai của người dùng được chứng nhận bởi một cơ quan chứng nhận có độ tin cậy cao (cơ quan chính phủ) Cơ quan chứng nhận phát hành và quản lý một tập các
ch ứng chỉ số (hoặc các chứng chỉ khóa công khai) đó là các chứng chỉ văn
bản điện tử trong đó một khóa công khai được gắn liền với một người dùng cụ
thể Một chứng chỉ số bao gồm cả khóa công khai của người dùng và nhận
dạng được cấp phát bởi một cơ quan chứng nhận Khi hai người dùng muốn trao đổi thông tin, trước tiên phải trao đổi các chứng chỉ với nhau Mỗi bên sẽ
thực hiện kiểm tra tính chính xác, hợp lệ của chữ ký khi nhận được các chứng
chỉ thông qua cơ quan chứng nhận khóa công khai Nếu chữ ký được chấp
nhận, chứng chỉ được xem như hợp lệ và hai người dùng có thể bắt đầu trao đổi thông tin với độ bảo mật và an toàn cao
Khóa công khai RSA được tạo ra bởi một module công khai N và là
phép nhân của hai số nguyên tố bí mật p và q và của một số mũ công khai e
với cùng số nguyên tố với hàm Euler N, cụ thể là:
Trang 20Độ bảo mật của hệ thống mã hóa mật mã RSA dựa trên việc tính toán
lấy lại hàm số mũ bí mật d từ khóa công khai (e, N), phải là thừa số của modulus N, trong thực tế không thể thực hiện tính toán được đối với số lượng lớn modulusP
2 P
Vì vậy, cho dù biết được thông tin khóa công khai nhưng không thể giải mật mã được bản tin
Để ứng dụng hiệu quả RSA, thường sử dụng định lý số dư của người Trung quốc (CRT-Chinese Remainder Theorem) Định lý chỉ ra rằng mP
mod q Do đó, mỗi khi tính toán sRp
Rvà sRqR, s có thể lấy lại được từ sRpR và sRqR bằng cách sử dụng bước tái tổ hợp:
s=CRT(sRpR,sRqR) (1.13)
Trang 21Hai phương pháp để tái tổ hợp CRT: một phương pháp từ Gauss và một phương pháp từ Garner Phương pháp tái tổ hợp của Ganer có hiệu quả hơn
mod p RSA-CRT xử lý nhanh hơn gần gấp 4 lần so
với RSA tiêu chuẩn, điều này làm cho RSA-CRT được sử dụng rộng rãi, đặc
biệt đối với mã hóa mật mã nhúng trong văn bản, vì yếu tố thời gian mã hóa
và khóa riêng Phần cơ bản nhất của hệ thống này là nếu biết thông tin chi tiết
của phần khóa riêng thì việc giải mã hóa mật mã sẽ vô cùng đơn giản Nếu không biết khóa riêng, hầu như không thể giải mã hóa mật mã của các bản tin
Tính bảo mật của ElGamal dựa trên các vấn đề của toán học logarit rời rạc Để đánh cắp thông tin và giải mật mã được bản tin cần phải lấy được thông tin về khóa riêng, để thực hiện được điều này cần thực hiện các phép tính logarit rời rạc Nhưng trong thực tế không tồn tại một phương pháp nào
để thực hiện việc tính đó Trong những trường hợp như vậy, mã hóa mật mã
có độ an toàn bảo mật cao
Trang 22Ngày nay thuật toán mã hóa mật mã ElGamal được sử dụng rộng rãi trong nhiều sản phẩm liên quan đến mã hóa mật mã Phần mềm mã nguồn mở GnuPG sử dụng ElGamal như một tiêu chuẩn dùng cho chữ ký số
Quá trình t ạo khóa
Như đã trình bày ở trên, yêu cầu cơ bản đối với một hệ thống mã hóa mật mã cần phải có ít nhất một khóa đối với những thuật toán mã hóa mật mã đối xứng và hai khóa đối với những thuật toán mã hóa mật mã bất đối xứng
Đối với ElGamal chỉ bên nhận bản tin mới cần khởi tạo khóa, các bước
khởi tạo khóa được thực hiện như sau:
1 Tạo nhóm và số nguyên tố
Đầu tiên bên nhân phải tạo ra được một số lượng lớn số nguyên tố p
và tạo ra g từ bội số nhóm 𝑍𝑍𝑝𝑝∗ với các số nguyên tố p
2 Lựa chọn khóa riêng
Bên nhận lựa chọn một số nguyên tố b từ nhóm Z theo cách ngẫu nhiên với điều kiện 1 ≤ 𝑏𝑏 ≤ 𝑝𝑝 − 2 Đây sẽ là số mũ riêng
3 Khóa công khai
Từ các yếu tố trên có thể tính toán ra một phần khóa công khai gP
4 Công bố khóa công khai
Khóa công khai cần phải được công bố và sử dụng trong các hệ
thống server khóa được chỉ định rõng ràng để bên gửi có thể dùng trong quá trình mật mã
Quá trình m ật mã
Trang 23Bản tin M cần được mã hóa mật mã trước khi gửi tới bên nhận, bên gửi
cần có ba tham số khóa công khai (p, g, gP
Để mã hóa mật mã bản tin gốc M, bên gửi cần thực hiện theo các bước
sau:
1 Thực hiện lấy khóa công khai
Bên gửi cần lấy được các phần của khóa công khai (p, g, gP
b
P
) của bên
nhận từ một server khóa có độ tin cậy cao
2 Chuẩn bị bản tin gốc M để mã hóa mật mã
Diễn giải bản tin gốc M dưới dạng các số nguyên tố (mR1R, mR2R,…)
trong khoảng {1,…, p-1} Từng số nguyên tố sẽ được mã hóa mật
mã tuần tự
3 Lựa chọn số mũ ngẫu nhiên
Tại bước này, bên gửi sẽ lựa chọn một số mũ k ngẫu nhiên Yếu tố ngẫu nhiên ở đây rất quan trọng trong khả năng ước đoán số mũ k,
từ đó sẽ tạo ra những thông tin nhạy cảm cần thiết cho kẻ tấn công
để giải mã hóa mật mã bản tin
4 Tính toán khóa công khai
Để truyền thông tin của thừa số mũ ngẫu nhiên k tới bên nhận, bên
gửi cần thực hiện tính toán tham số gP
k
P
mod p và tổ hợp vào bản tin
mã hóa mật mã cần gửi cho bên nhận
Trang 245 Mã hóa mật mã bản tin gốc
Tại bước này, bên gửi thực hiện mã hóa mật mã bản tin gốc M
thành bản tin mã hóa mật mã C Để thực hiện được việc này bên gửi
cần phải thực hiện nhiều lần đối với từng mRiR trong bước thứ 2:
Kết quả của quá trình mã hóa mật mã bản tin C được gửi tới bên nhận
cùng với các khóa công khai gP
k
P
mod p có được từ thừa số mũ riêng ngẫu nhiên
Trường hợp xấu có thể xảy ra trong khi truyền dữ liệu kẻ tấn công có
thể bắt được gói tin và tại bước thứ 2 có thể lấy được một phần khóa công
ElGama có khuyến nghị nên sử dụng một thừ số mũ ngẫu nhiên k cho
mỗi khối bản tin đơn lẻ mRiR Điều này sẽ làm tăng tính bảo mật, cho dù biết
được một khối bản tin mRjR nhưng kẻ tấn công không thể biết được toàn bộ mRi
Rkhác Lý do cho khả năng này là cR1R=mR1R*(gP
Quá trình gi ải mã hóa mật mã
Sau khi nhận được bản tin mã hóa mật mã C và khóa công khai ngẫu nhiên gP
k
P
Bên nhận cần phải sử dụng thuật toán mã hóa mật mã để có thể đọc
được bản tin gốc M, có thể chia thành các bước nhỏ:
Trang 251 Tính toán khóa chia sẻ
Hệ thống mã hóa mật mã ElGama giúp bên gửi xác định khóa bảo
mật chia sẻ mà không cần trao đổi tương tác với bên nhận Khóa bảo
mật chia sẻ là tổ hợp của các thừa số mũ riêng b của bên nhận và
thừa số mũ ngẫu nhiên k được lựa chọn bởi bên gửi Khóa chia sẻ được xác định theo phương trình:
Cuối cùng thực hiện tổ hợp toàn bộ các mRiR thành bản tin gốc M mà
bên nhận có thể đọc được đúng theo bản tin của bên gửi
Như đã trình bày ở trên, hệ thống mã hóa mật mã ElGama được xem như có độ bảo mật cao vì vấn đề khó của toán học logarit rời rạc hiện chưa
giải quyết được ElGama ngăn chặn được các vụ tấn công thông qua cách sử
dụng thừa số mũ mã hóa ngẫu nhiên k
H ệ thống mã hóa mật mã Đường cong Elip (ECC)
ECC là một trong các phương pháp mã hóa mật mã khóa công khai dựa trên cấu trúc đại số của đường cong elip với các trường hữu hạn Những đường cong elip được sử dụng trong các thuật toán thừa số nguyên tố và được ứng dụng trong mã hóa mật mã Khóa nhỏ nhất có độ dài 160 bits
Đường cong elip được sử dụng trong mã hóa mật mã thường được định nghĩa qua hai loại trường hữu hạn cơ bản, trường thuộc tính chẵn và lẻ Với trường thuộc tính lẻ là những ứng dụng của số học trong Fp, với p là số
Trang 26nguyên tố Các thành phần trong trường được biểu diễn dưới dạng các số nguyên trong dải từ 0,1,…p-1 kết hợp với modul số học p
1.4 Các ki ểu tấn công mã hóa mật mã
Tấn công mã hóa mật mã được thiết kế với mục đích phá vỡ tính bảo mật của các thuật toán mã hóa mật mã và chúng được sử dụng để giải mã hóa mật mã mà không cần truy cập tới khóa Đây là một phần của kỹ thuật phân tích mật mã, một trong những kỹ thuật giải mã hóa dữ liệu đã mật mã Kỹ thuật phân tích mật mã và kỹ thuật mã hóa mật mã (kỹ thuật tạo ra các văn
bản ẩn, hoặc mật mã) là các nhánh con của ngành khoa học mật mã
Các kiểu tấn công mật mã cũng dùng để nâng cao tính bảo mật của hệ
thống mã hóa mật mã thông qua việc tìm kiếm các điểm yếu trong các phạm
vi như code, mật mã, giao thức mã hóa mật mã hoặc thuật toán quản lý khóa được sử dụng trong các thuật toán mã hóa mật mã
1.4.1 T ấn công bản tin gốc đã biết (Known plaintext attack)
Kiểu tấn công bản tin gốc đã biết cố gắng phá vỡ một thuật toán mật
mã dựa trên bản tin gốc đã biết và bản tin này được dùng để tạo ra bản tin mật
mã Một cách đơn giản, nếu biết trước phương pháp mã hóa, một phần hoặc
tất cả bản tin gốc ban đầu hoàn toàn có thể suy ra được khóa đã sử dụng để
mã hóa mật mã:
B ản tin gốc + Khóa = Bản tin mật mã
B ản tin mật mã – Bản tin gốc = Khóa
Xét với tình huống sau:
Alice gửi cho Bob một email cùng với file đính kèm là một bức hình
chụp trong kỳ nghỉ Email được mật mã Giả sử rằng Alice cũng gửi bức ảnh trên cho mẹ của cô ấy nhưng không mã hóa mật mã Steve, người đang theo
Trang 27dõi Alice và Bob, bằng cách nào đó đã lấy được một bản sao email mà Alice
gửi cho mẹ với bức ảnh “myholiday.jpg” Nếu bức ảnh có dung lượng 200Kbytes (khoảng 200.000 chữ cái) và Alice chỉ gửi cho Bob với một tin
nhắn cá nhân (khoảng 50 chữ cái) cùng với bức ảnh, như vậy Steve đã biết được 99% nội dung tin trước khi mã hóa, như vậy Steve có nhiều cơ hội để có được khóa mật mã của Alice khi đi sâu và phân tích bản tin mật mã tương ứng
1.4.2 Ch ỉ tấn công duy nhất bản tin mật mã (Ciphertext-only-attack)
Trong kỹ thuật mật mã, COA hay kiểu tấn công bản tin mật mã đã biết
là dạng tấn công trong trường hợp chỉ biết thông tin duy nhất là các bản tin đã
mật mã
Việc phá mã được coi là thành công nếu bản tin gốc tương ứng lấy được có độ chính xác cao cùng với các khóa Khả năng thu nhận được bất kỳ thông tin nào có trong bản tin gốc được xem là một thành công lớn
Trong lịch sử của ngành khoa học mật mã, các thuật toán mật mã trong
thời kỳ đầu sử dụng các phương tiện thô sơ là giấy và bút, thường bị phá vỡ
dù chỉ cần bản tin mật mã Các nhà khoa học mật mã đã phát triển các công nghệ phân tích để phá mật mã, như là phân tích tần xuất suất hiện Thiết bị
mật mã dùng máy móc như Enigma đã làm cho việc phá mã trở lên khó khăn hơn
Mọi thuật toán mã hóa mật mã hiện đại đều cố gắng tạo ra các cơ chế
chống lại các kiểu tấn công chỉ dựa vào bản tin mật mã Quá trình rà soát hiệu chỉnh đối với một tiêu chuẩn thiết kế thuật toán mật mã thường mất nhiều năm cùng với các bài kiểm tra toàn diện với số lượng lớn các bản tin mật mã Tuy nhiên, với các thuật toán mật mã yếu hoặc các thuật toán sử dụng cho người dùng tự phát triển không có sự giám sát chặt chẽ, dẫn đến hệ thống mật
mã vẫn có thể bị tấn công bởi kiểu tấn công COA
Trang 28- Phiên bản đầu của mạng riêng ảo PPTP do Microsoft phát triển sử
dụng cùng một khóa RC4 cho bên gửi và bên nhận Trong mọi trường hợp khi
một dòng mật mã như RC4 được sử dụng hai lần với cùng một khóa, điều này
tạo cơ hội phá mã cho kiểu tấn công chỉ COA
- WEP là giao thức bảo mật đầu tiên sử dụng trong wi-fi, dễ bị phá vỡ với một số kiểu tấn công, điển hình trong số đó COA
1.4.3 Ki ểu tấn công Man-in-the-midle-attack
Man-in-the-midle-attack được viết tắt là MITM, hoặc còn có các tên
gọi khác là bucket-brigade attack hoặc Janus attack, là một dạng nghe lén mà trong đó kẻ tấn công tạo các kết nối độc lập với nạn nhân và thực hiện chuyển
tiếp các bản tin giữa các bên, đồng thời cũng tạo ra sự tin tưởng cho bên gửi
và nhận như đang thực hiện các cuộc trao đổi thông tin trực tiếp với nhau thông qua một kết nối riêng biệt, nhưng trong thực tế toàn bộ cuộc trao đổi này đều bị kiểm soát bởi kẻ tấn công Kẻ tấn công phải có khả năng chặn được tất cả các tin nhắn chuyển qua giữa các bên cũng như có thể chèn thêm thông tin
MITM chỉ có thể thành công khi kẻ tấn công có khả năng giả mạo thành các điểm kết cuối tương ứng trong quá trình truyền tin diễn ra Hầu hết các giao thức mã hóa mật mã đều có một vài dạng chứng thực điểm kết cuối riêng biệt để ngăn chặn các cuộc tấn công MITM và yêu cầu quá trình truyền tin phải thông qua các kênh truyền có độ an toàn bảo mật cao
Ví dụ về kiểu tấn công MITM đối với mã hóa mật mã khóa công khai Giả sử Alice muốn trao đổi thông tin với Bob Mặt khác, Mallory muốn nghe trộm cuộc trao đổi thông tin này, hoặc cũng có thể truyền bản tin không chính xác tới Bob Trước tiên, Alice cần hỏi Bob về khóa công khai của Bob
Nếu Bob gửi khóa công khai cho Alice, nhưng Mallory có khả năng nghe lén được thông tin này, kiểu tấn công MITM bắt đầu được khởi động Mallory
Trang 29chặn không gửi khóa của Bob tới Alice mà thay vào đó là khóa công khai của Mallory, nhưng Alice vẫn tin tưởng đó là khóa do Bob gửi tới Sau đó Alice
mã hóa mật mã bản tin với khóa của Mallory và gửi tới bên nhận là Bob Mallory một lần nữa lại nghe lén, giải mật mã bản tin, lưu trữ một bản sao, sau đó mã hóa mật mã sử dụng khóa công khai của Bob gửi lại cho Bob Khi Bob nhận được bản tin mật mã mới và tin tưởng nhận được từ Alice
1.4.4 Ki ểu tấn công lựa chọn bản tin gốc (Chosen-plaintext-attack)
CPA là mô hình tấn công để phân tích mật mã trong đó CPA có khả năng lựa chọn các bản tin gốc tùy ý được dùng để mã hóa và có được các bản tin mật mã tương ứng Mục đích của kiểu tấn công CPA là thu thập các thông tin có liên quan là nguyên nhân làm giảm độ an toàn bảo mật của chương trình mã hóa mật mã, CPA cũng có thể khám phá ra được khóa bảo mật của thuật toán dùng để mã hóa mật mã Trong mã hóa mật mã hiện đại, CPA trở lên đặc biệt quan trọng đối với các hệ thống mã hóa mật mã công khai, do khóa mật mã được công khai và kẻ tấn công có thể mã hóa mật mã bất kỳ bản tin gốc nào
CPA có hai dạng tấn công:
- Kiểu tấn công Batch-CPA sẽ lựa chọn toàn bộ các bản tin gốc trước khi thực hiện mã hóa mật mã
- Kiểu tấn công Adaptive-CPA sẽ tạo ra một chuỗi các truy vấn tương tác, thực hiện lựa chọn các bản tin gốc tiếp theo dựa trên thông tin từ các quá trình mã hóa mật mã trước đó
Các thuật toán mã hóa mật mã khóa công khai dễ bị tấn công bởi các kiểu tấn công “từ điển” đơn giản, những kẻ tấn công có thể xây dựng một bảng các bản tin thích hợp tường ứng với các bản tin mã hóa mật mã Để tìm các bản tin được giải mật mã từ bản tin mật mã, kẻ tấn công chỉ cần thực hiện
Trang 30việc tìm kiếm các bản tin mật mã có trong bảng Như vậy, để tăng tính an ninh bảo mật của mã hóa mật mã khóa công khai cần phải thực hiện mã hóa
xắc suất (mã hóa ngẫu nhiên) Các thuật toán mã hóa mật mã đối xứng sử
dụng cùng một khóa cho quá trình mật mã và giải mật mã bản tin, cũng dễ trở thành nạn nhân của dạng tấn công CPA
1.4.5 Ki ểu tấn công lựa chọn bản tin mật mã (Chosen ciphertext attack)
CCA thu thập thông tin bằng cách chọn một bản tin mật mã và giải mã hóa mật mã bản tin đó theo một khóa không biết trước Trong quá trình tấn công, CCA có cơ hội thâm nhập vào một hoặc nhiều bản tin mật mã trong hệ thống, từ những mẩu thông tin thu nhận được CCA cố gắng khôi phục và lấy thông tin về khóa bảo mật được sử dụng để giải mật mã
Một số thuật toán mật mã đã bị phá vỡ bởi kiểu tấn công CCA Như hệ
thống mã hóa mật mã ElGamal, phiên bản đầu của RSA sử dụng trong giao
thức SSL đã bị tấn công và để lộ các khóa phiên SSL Kiểu tấn công CCA có quan hệ mật thiết với các thuật toán mã hóa mật mã dòng tự đồng bộ Những nhà thiết kế các card thông minh mã hóa mật mã chống giả mạo cần nắm bắt
rõ kiểu tấn công CCA, bởi rất dễ bị kiểm soát bởi kẻ tấn công có thể đưa ra
một số lượng lớn các bản tin mật mã để thưc hiện lấy thông tin của khóa bảo
mật
Khi một hệ thống mã hóa mật mã dễ bị phá vỡ bởi kiểu tấn công CCA,
cần phải rất thận trọng để tránh khả năng giải mã hóa mật mã lựa chọn các
bản tin mật mã tức là tránh cung cấp các thông tin có thể phỏng đoán để thực hiện giải mật mã Đối với hệ thống RSA sử dụng cơ chế dùng chung khóa để mật mã và giả mật mã nếu không sử dụng hàm băm trong các bản tin rất dễ bị tấn công bởi CCA Để hệ thống mã hóa mật mã trở lên an toàn hơn trước kiểu
tấn công CCA, cần có RSA-OAEP, Cramer-Shoup và nhiều dạng chứng thực
mã hóa mật mã đối xứng
Trang 31CCA cũng giống như các kiểu tấn công khác, có thể có kiểu adaptive
và non-adaptive Đối với kiểu non-adaptive có thể lựa chọn một bản tin mật
mã hoặc nhiều bản tin mật mã để giải mật mã và không sử dụng kết quả bản tin gốc để tìm sự lựa chọn cho các bản tin mật mã sau Đối với kiểu adaptive quá trình giải mật mã dựa vào kết quả của quá trình trước
1.4.6 Ki ểu tấn công cưỡng chế (Brute force attack)
Kiểu tấn công cưỡng chế cố gắng sử dụng tất cả các khóa có thể Thường được sử dụng trong các kiểu tấn công bản tin gốc đã biết hoặc COA
Ví dụ kiểu tấn công cưỡng chế với khóa 4-bit:
Với độ dài khóa hữu hạn và khoảng thời gian cho phép, kiểu tấn công cưỡng chế luôn luôn thành công Các thuật toán mã hóa mật mã có thể bị phá
vỡ bởi kiểu tấn công này sau một thời gian khi CPU tăng tốc độ Mã hóa mật
mã DES đơn có độ dài khóa 56-bit, bất kỳ khoá nào cũng có thể bị phá vỡ sau một vài ngày khi sử dụng phần cứng chuyên biệt để thực hiện phá mã, như Electronic Frontier Foundation’s Deep Crack.3 Triple DES (khóa 168-bit) cũng đã bị phá vỡ và được xem như là một yếu điểm của DES đối với kiểu
Trang 32C hương 2 – Mã hóa mật mã dựa trên kỹ thuật số hỗn loạn
Trong số các ứng dụng có tính thực tế cao của những hệ thống hỗn loạn
là sử dụng chúng trong lĩnh vực mã hóa mật mã hỗn loạn Các hệ phi tuyến tính đóng vai trò chủ đạo trong hoạt động của hỗn loạn, điều này làm cho việc
dự đoán bằng các phương pháp phân tích trở lên khó khăn nếu không có khóa
bí mật (các điều kiện khởi đầu and/or các tham số) Như vậy làm giảm nguy
cơ bị tấn công bởi kiểu tấn công cưỡng chế, cũng như các kiểu tấn công khóa dựa vào thông tin độ dài khóa
Hỗn loạn là một dạng điển hình của hệ thống động phi tuyến tính và chỉ
có duy nhất trong các điều kiện nhất định, ví dụ các giá trị nhất định của các tham số hệ thống và chỉ có trong các hệ thống động được đặc trưng bởi các giá trị liên tục Trong các cách tiếp cận phân tích trạng thái hỗn loạn có thể nghiên cứu được bởi các số mũ Lyapunov cùng với dạng đặc trưng của hệ thống động Hỗ loạn chỉ được tiến hành khi có ít nhất một số mũ Lyapunov dương và tổng của tất cả các số mũ là âm, đó là hệ thống động ổn định nhưng
ngẫu nhiên giống như trạng thái hỗn loạn
So sánh gi ữa mã hóa mật mã hỗn loạn và cổ điển
Mã hóa mật mã cổ điển hoạt động dựa trên các giá trị rời rạc và thời gian rời rạc trong khi đó các điểm quan trọng trong mã hóa mật mã hỗn loạn
là sử dụng các hệ thống giá trị liên tục, mà có thể hoạt động trong thời gian
Trang 33rời rạc hoặc liên tục Để đảm bảo một thiết kế và các phương pháp phân tích phù hợp đối với hệ thống mã hóa mật mã hỗn loạn, một số vấn đề được đưa vào đánh giá
Mã hóa mật mã cổ điển Mã hóa mật mã hỗn loạn
- Các giá tr ị số nguyên trên các
trường hữu hạn
- Các giá tr ị liên tục sử dụng cố định
hoặc biểu diễn điểm thay đổi
- Các phương pháp đại số - Các phương pháp phân tích
- Kỹ thuật số thực hiện bởi số học số
Ví dụ một thuật toán mã hóa khối có thể được viết lại như một hệ thống động thời gian rời rạc:
xRn+1R = F(xRnR) (2.1)
Trong đó điều kiện khởi đầu xR0R là bản tin gốc được mã hóa, và trạng thái cuối xRkR là bản tin mật mã Ánh xạ mật mã có thể biểu diễn bởi một phương trình tương tự, thuộc tính của ánh xạ bao hàm sự hỗn loạn phân tán ảnh hưởng của một chữ số bản tin gốc trên nhiều chữ số bản tin mật mã Nói
Trang 34cách khác, với bất kỳ tập hợp các điều kiện ban đầu của một ánh xạ hỗn loạn
cuối cùng sẽ phân tán trên không gian pha khi khai triển hệ thống
Một điều khác biệt quan trọng giữa mã hóa mật mã và hỗn loạn là các phép biến đổi mã hóa được xác định trên các trường hữu hạn, trong khi hỗn loạn chỉ có ý nghĩa trên các số thực Mặt khác, theo một số nhà khoa học, sự
mở rộng miền của thuật toán mã hóa cổ điển từ một trường hữu hạn thành liên
tục sẽ làm làm phát sinh thêm một ánh xạ hỗn loạn Ví dụ đối với việc mở
rộng miền cho chức năng vòng của thuật toán mã hóa dữ liệu quốc tế (IDEA) thu được ánh xạ và đã đuợc chứng minh là hỗn loạn Các số mũ Lyapunov dương có thể biểu thị đặc điểm hệ thống hỗn loạn nhưng các ánh xạ and/or các hệ thống hỗn loạn thời gian rời rạc được đề xuất sử dụng trong mật mã được xác định trên các tập hợp hữu hạn của số học chính xác hữu hạn Trong các hệ thống như vậy, số mũ Lyapunov lớn nhất bằng 0, bởi vì mọi quỹ đạo đều là tuần hoàn cuối cùng, do vậy các vấn đề ở đây sẽ được ước tính các số
mũ Lyapunov đối với một quỹ đạo điển hình trong một thời gian không vượt quá thời gian chu kỳ của nó
2.2 Mã hóa m ật mã và kỹ thuật hỗn loạn
2
Công nghệ viễn thông đang ngày càng phát triển và đạt được những bước phát triển to lớn cũng như mở rồng và tìm kiếm được nhiều công nghệ mới, bên cạnh đó cũng là những mối đe dọa và hiểm nguy trong việc truyền thông tin liên lạc Đó là cuộc chiến khốc liệt giữa những người muốn bảo vệ tính bảo mật của quá trình truyền tin và có những người muốn đánh cắp các thông tin Giữa các nhà mật mã và phân tích mật mã, mỗi bên đều cố gắng tìm
kiếm mọi phương pháp có thể để có được các sáng kiến tối ưu hơn Việc tìm
kiếm phương pháp truyền tin an toàn, có sự quan tâm hết sức thực tiễn trong
một số lĩnh vực bao gồm việc bảo vệ các kênh truyền thông tin, cơ sở dữ liệu
và phần mềm
Trang 35Trong thập kỷ qua khoa học đã chứng minh khả năng tồn tại của hệ
thống thông tin liên lạc kỹ thuật số với các thiết bị phi tuyến tính và các mạch điện tử, mạch điện kiểu như vậy đã được đặt tên là hỗn loạn bởi vì nó đã được phát hiện về khả năng phát ngẫu nhiên thông qua các hệ thống đơn giản
mà rất nhạy đối với các điều khiện ban đầu Bằng cách này, nếu hai hệ thống hỗn loạn gần như giống nhau nhưng có các trạng thái khởi đầu với một sự sai
lệch rất nhỏ thì trạng thái của hai hệ thống sẽ phân kỳ rẽ nhánh rất nhanh
Sự phát triển của hệ thống an ninh thông tin mới dựa trên các hệ thống
hỗn loạn động đã đại diện cho một lĩnh vực nghiên cứu mới trong truyền tin
và công nghệ thông tin Hiện có rất nhiều bài báo và tạp chí đã thể hiện sự tập trung nguồn lực cũng như thời gian cho hệ thống được đề xuất mới Bản chất
của lý thuyết và kết quả có trong thực tiễn được thực hiện trong lĩnh vực mới này được đặc trưng bởi ý tưởng mã hóa mật mã dựa trên hỗn loạn cũng có
những khả năng hoạt động tương tự như các hệ thống cổ điển dựa trên kỹ thuật tính toán Ngày nay, 2với sự kết nối thông tin và mạng máy tính toàn cầu,
mạng điện thoại2 2di động2, từ đó phát sinh sự 2cần thiết2 2của việc sáng tạo2 2mới2 đòi hỏi vừa 2nhanh và2 2an toàn2 2cho2 2các thuật toán2 2mã hóa2 2và giải mã2 2Sự phát triển của2 2thương mại điện tử2 2và tầm quan trọng của việc bảo mật đã thúc đẩy các nhà khoa học cần tìm ra một phương pháp mã hóa mật mã nhanh và có tính an toàn cao2
2
hệ thống hỗn loạn2 2rất2 2nhạy đối2 2với2 2điều kiện2 2ban đầu2
Trang 36Do đó, các khóa bí mật thường có các tham số hệ thống và điều kiện ban đầu Nhiều nhà nghiên cứu chỉ ra sự tồn tại của mối quan hệ chặt chẽ giữa
sự hỗn loạn và mật mã, nhiều đặc điểm cơ bản của hỗn loạn, như sự pha trộn
và đặc tính của độ nhạy với điều kiện ban đầu có thể được kết nối với đặc tính hỗn loạn và khuếch trong mã hóa mật mã.2 Trong những năm gần đây có rất nhiều trung tâm nghiên cứu quốc tế đang có sự quan tâm giải quyết vấn đề
của việc sử dụng phù hợp các hệ thống động phi tuyến tính với các trạng thái
hỗn loạn trong lược đồ truyền tin bảo mật Những phương pháp cơ bản có thể được phân thành ba loại chính: mã hóa kênh dữ liệu riêng biệt, ghép kênh mã hóa dữ liệu và kết hợp các hình thức trên
2
Các mối quan hệ giữa các hệ thống hỗn loạn và hệ thống mã hóa mật
mã dựa trên mã hóa đối xứng hoặc bất đối xứng:
− Độ nhạy đối với các khóa: một sự thay đổi rất nhỏ của một bit trong khóa, sẽ tạo ra một bản tin mật mã hoàn toàn khác khi cùng đưa vào
một bản tin gốc như nhau
− Độ nhạy đối với bản tin gốc: một sự thay đổi rất nhỏ của một bit trong bản tin gốc, sẽ tạo ra một bản tin mật mã hoàn toàn khác
− Ánh xạ bản tin gốc thành bản tin mật mã ngẫu nhiên: không cần bất
kỳ một kiểu mẫu nào trong bản tin mật mã, nếu hệ thống mã hóa mật mã thực sự tốt
Các hệ thống hỗn loạn có những đặc tính sau:
− Độ nhạy tham số: sự thay đổi nhỏ trong một trong những tham số hệ thống là đủ để tạo thành hai quỹ đạo, bắt đầu từ điểm khởi đầu giống nhau, riêng biệt với tốc độ hàm mũ;
− Độ nhạy với điều kiện khởi đầu: hai quỹ đạo bắt đầu từ hai điểm khác nhau, chia tách các điểm khởi đầu theo từng hàm mũ;
Trang 37− Tính ergodic: các quỹ đạo theo các điểm thuộc hành trình không gian pha thông qua không gian với phân bố đồng đều
Cho đến nay kỹ thuật hỗn loạn đã thực hiện thành công với hệ thống bảo mật tương tự dưới sự nghiên cứu của Pecora và Carroll vào năm 1990 Tuy nhiên việc thực hiện với các hệ thống số vẫn chưa được như mong muốn Nguyên nhân chính là mã hóa mật mã số sử dụng hỗn loạn chưa có kết quả là
do các mạch số với không gian số hữu hạn Hỗn loạn là một hiện tượng trong
đó mọi biến động rất nhỏ trong trạng thái khởi đầu của một hệ thống dẫn đến
sự phân tách theo xu hướng hàm số mũ của các trạng thái tương lai của chính
nó Khi hoạt động với không gian số hữu hạn, hỗn loạn không còn sự phân tách này do xu hướng bị giới hạn của các trạng thái có thể xảy ra
Theo kết quả nghiên cứu mối quan hệ giữa hỗn loạn và mã hóa mật mã, rất nhiều hệ thống mã hóa mật mã dựa trên sự hỗn loạn cho truyền thông end-to-end đã được đưa ra Có hai khả năng để đạt được hệ thống bảo mật thông tin dựa trên các thành phần hỗn loạn động: tương tự và số
2.3 K ỹ thuật mã hóa mật mã dựa trên hỗn loạn
2.3.1 Các h ệ thống truyền tin dựa trên hỗn loạn tương tự
Điểm chính của các hệ thống mã hóa mật mã dựa trên hỗn loạn tương
tự là các mô hình thông tin bảo mật được thiết kế cho các kênh nhiễu Chúng được dựa trên kỹ thuật đồng bộ hỗn loạn Đồng bộ hỗn loạn là một kỹ thuật được phát triển từ những năm 1990 Về mặt lý thuyết, các hệ thống này được
sử dụng để bảo vệ thông tin dựa trên ý tưởng hai hệ thống hỗn loạn có thể đồng bộ với nhau dưới sự điều khiển của một hay nhiều tín hiệu vô hướng, các tín hiệu này thường được gửi đi từ một hệ thống tới hệ thống khác Có nhiều loại đồng bộ hỗn loạn khác nhau như đồng bộ hoàn toàn, đồng bộ suy rộng, đồng bộ xung, đồng bộ pha, đồng bộ xạ ảnh, đồng bộ trễ, đồng bộ do tín