1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu các giải thuật mã hóa bảo mật hỗn loạn

74 20 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 74
Dung lượng 1,18 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

TRƯỜ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 4

L ờ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 5

Chươ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 6

Chươ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 7

ngô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 8

dụ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 9

giấ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 11

giá 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 12

Hai 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 13

Hì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 14

Hì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 15

Bướ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 16

trì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 17

hó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 18

bở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 19

hiệ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 21

Hai 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 22

Ngà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 23

Bả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 24

5 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 25

1 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 26

nguyê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 27

dõ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 29

chặ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 30

việ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 31

CCA 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 32

C 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 33

rờ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 34

cá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 35

Trong 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 36

Do đó, 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

Ngày đăng: 14/02/2021, 09:55

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w