Tải bản đầy đủ (.pdf) (74 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.16 MB, 74 trang )

..

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------

LƯƠNG VIẾT MINH

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Ử

Hà Nội - 2011


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

Mục lục
Lời mở đầu.................................................................................................... 3
T
3

3T

Chương 1 – Lý thuyết cơ bản về mã hóa mật mã ....................................... 5
T
3

T


3

1.1. Giới thiệu ........................................................................................... 5
T
3

3T

3T

3T

1.1.1. Những bước phát triển của kỹ thuật mã hóa mật mã ..................... 5
T
3

3T

3T

T
3

1.1.2. Kỹ thuật mã hóa mật mã hiện đại ................................................. 7
T
3

3T

3T


T
3

1.2. Mã hóa mật mã đối xứng.................................................................... 9
T
3

3T

3T

T
3

1.2.1. Quá trình mật mã đối xứng ........................................................... 9
T
3

3T

3T

T
3

1.2.2. Hàm băm và mã số xác thực bản tin ............................................. 9
T
3


3T

3T

T
3

1.2.3. Thuật tốn mã hóa mật mã khối tiêu chuẩn ................................. 10
T
3

3T

3T

T
3

1.2.3.1. Tiêu chuẩn mã hóa mật mã dữ liệu (DES) ........................... 11
3T

3T

3T

T
3

1.2.3.2. Tiêu chuẩn mã hóa mật mã nâng cao (AES) ........................ 12
3T


3T

3T

T
3

1.3. Mã hóa mật mã bất đối xứng ............................................................ 15
T
3

3T

3T

T
3

1.3.1. Hệ thống mã hóa mật mã khóa công khai ................................... 16
T
3

3T

3T

T
3


1.3.2. Chữ ký số ................................................................................... 17
T
3

3T

3T

3T

1.3.3. Hạ tầng khóa cơng khai (PKI) .................................................... 17
T
3

3T

3T

T
3

1.3.4. Hệ thống mã hóa mật mã RSA ................................................... 18
T
3

3T

3T

T

3

1.3.5. Những hệ thống mã hóa mật mã khóa cơng khai khác ................ 20
T
3

3T

3T

T
3

1.4. Các kiểu tấn cơng mã hóa mật mã .................................................... 25
T
3

3T

3T

T
3

1.4.1. Tấn công bản tin gốc đã biết (Known plaintext attack) ............... 25
T
3

3T


3T

T
3

1.4.2. Chỉ tấn công duy nhất bản tin mật mã (Ciphertext-only-attack) ..26
T
3

3T

3T

T
3

1.4.3. Kiểu tấn công Man-in-the-midle-attack ...................................... 27
T
3

3T

3T

T
3

1.4.4. Kiểu tấn công lựa chọn bản tin gốc (Chosen-plaintext-attack) .... 28
T
3


3T

3T

T
3

1.4.5. Kiểu tấn công lựa chọn bản tin mật mã (Chosen ciphertext
attack).. ...................................................................................... .29
T
3

3T

3T

3T

1.4.6. Kiểu tấn công cưỡng chế (Brute force attack) ............................. 30
T
3

3T

3T

T
3


Chương 2 – Mã hóa mật mã dựa trên kỹ thuật số hỗn loạn .................... 31
T
3

T
3

2.1. Giới thiệu ......................................................................................... 31
T
3

3T

3T

3T

2.2. Mã hóa mật mã và kỹ thuật hỗn loạn ................................................ 33
T
3

3T

3T

T
3

1



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

2.3. Kỹ thuật mã hóa mật mã dựa trên hỗn loạn ...................................... 36
T
3

3T

3T

T
3

2.3.1. Các hệ thống truyền tin dựa trên hỗn loạn tương tự .................... 36
T
3

3T

3T

T
3

2.3.2. Mã hóa mật mã số ...................................................................... 37
T
3

3T


3T

T
3

2.4. Các thuật tốn mã hóa mật mã hỗn loạn ........................................... 39
T
3

3T

3T

T
3

2.4.1. Phương pháp Baptista ................................................................. 39
T
3

3T

3T

T
3

2.4.2. Hệ thống mã hóa mật mã hỗn loạn rời rạc sử dụng khóa ngồi ... 42
T

3

3T

3T

T
3

2.4.3. Thuật tốn mã hóa mật mã dịng hỗn loạn .................................. 45
T
3

3T

3T

T
3

2.4.4. Thuật tốn mã hóa mật mã khối hỗn loạn ................................... 47
T
3

3T

3T

T
3


2.5. Hoạt động của hệ thống mã hóa mật mã hỗn loạn ............................ 49
T
3

3T

3T

T
3

2.5.1. Độ nhạy đối với thay đổi nhỏ của tham số hoặc điều kiện ban
đầu...... ........................................................................................ 49
T
3

3T

3T

3T

2.5.2. Sự khuyếch tán ........................................................................... 50
T
3

3T

3T


3T

2.5.3. Những đánh giá về mã hóa mật mã hỗn loạn .............................. 51
T
3

3T

3T

T
3

2.6. Nhận xét........................................................................................... 52
T
3

3T

3T

3T

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 .............................................................. 54
T
3

T

3

3.1.
T
3

Giới thiệu .......................................................................................... 54

T
3

3T

3T

3.2. Hệ thống đồng bộ đa lớp cho truyền tin an toàn ............................... 55
T
3

3T

3T

T
3

3.2.1. Cấu trúc của hệ thống mã hóa mật mã dịng hỗn loạn đề cuất ..... 55
T
3


3T

3T

T
3

3.2.2. Lược đồ mới của thiết bị tạo khóa dịng ...................................... 56
T
3

3T

3T

T
3

3.3. Mơ phỏng ......................................................................................... 57
T
3

3T

3T

3T

3.4. Nhận xét........................................................................................... 62
T

3

3T

3T

3T

Kết luận....................................................................................................... 64
T
3

3T

Tài liệu tham khảo ..................................................................................... 65
T
3

3T

Phụ lục ........................................................................................................ 66
T
3

3T

Phụ lục 1. Cấu trúc hệ thống mô phỏng ..................................................... 66
T
3


T
3

Phụ lục 2. Hệ thống hỗn loạn A1 ............................................................... 66
T
3

T
3

Phụ lục 3. Hệ thống hỗn loạn A2 ............................................................... 68
T
3

T
3

Phụ lục 4. Hệ thống hỗn loạn B1 ............................................................... 70
T
3

T
3

Phụ lục 5. Hệ thống hỗn loạn B2 ............................................................... 71
T
3

T
3


2


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

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ì 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 tồ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


3


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

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. Hồ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.

4


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

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 tố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à tố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

5


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

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 tố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 tố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 qn độ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 tố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à tố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 hồ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ử

6



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

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 tố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 tốn mã hóa
mật mã phức tạp.
Một trong số đó là thuật tố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 tố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 tố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 tố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


7


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

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 tố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 tồ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 tồ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à 2128. Như vậy
P

P

việc qt tìm tồn bộ các khóa dùng trong mã hóa mật mã cần đến 2128 các
P

P


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 tốn sẽ mất khoảng một nghìn tỷ năm. Với kỹ thuật dị tìm tồ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 tồ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 tồ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

8


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

đượ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 tốn của vấn đề đó khơng thể thực hiện được.
Mã hóa mật mã đối xứng

1.2.

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. Q 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 = enc k (p)
R

R

(1.1)

Giải mã hóa mật mã của một bản tin mật mã là q trình tính tốn ngược
lại của hàm enc k -1. Đối với các thuật toán mật mã có độ an tồn, việc tính tốn
R

RP

P

enc k và enc k-1 sẽ không thể thực hiện được nếu thiếu khóa k thậm chí nếu có
R

R

R

RP

P

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 tốn mã hóa mật mã đối xứng được phân biệt: thuật tốn

mã hóa dịng và thuật tố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 tốn để tìm ra bất kỳ thừa số băm nào cũng
như khơng thể tính tố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 tồ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

9


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

giá trị đó phải có độ bảo mật an tồ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ố hố 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 tồ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 tố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

tồ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 q 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
tốn mã hóa mật mã khối.
1.2.3. Thuật tốn mã hóa mật mã khối tiêu chuẩn
Thuật tố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 hốn vị khóa độc lập, được gọi là chuyển đổi vịng
lặp. Trong thực tế, thuật tố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. Q 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 q trình lặp của chức năng phân bố khóa (key scheduling function).

10


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

Hai thuật tố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-hố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 k r R


được dẫn xuất từ khóa bảo mật k thơng qua một q trình phân bố khóa. Tóm

R

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:
16
𝑐𝑐 = 𝐹𝐹𝐹𝐹 𝑜𝑜 �𝑂𝑂𝑟𝑟=1
𝐹𝐹𝑘𝑘𝑟𝑟 � 𝑜𝑜 𝐼𝐼𝐼𝐼 (𝑝𝑝)

(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

11


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


f

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 q 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 tố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 q 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ố.

12


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

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; b ij = S(a ij ).
R


R

R

R

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.

13


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

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à:
2
�1
1
3

3
2
1
1

1
3
2
1

1
1�
3
2

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 q
trình tạo khóa con Rijndael; mỗi khóa con có độ dài giống như các khối. Quá

14


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

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 tố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 tồn vẹn và khả năng xác thực
thông qua kênh truyền không an tồ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 tồ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ã

15


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

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
−1
pk và một khóa riêng sk, trong đó 𝑑𝑑𝑑𝑑𝑑𝑑𝑠𝑠𝑠𝑠 = 𝑒𝑒𝑒𝑒𝑒𝑒𝑝𝑝𝑝𝑝
. Q 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=enc pk (p)
R

R


(1.5)

Q 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=dec sk (c)
R

R

(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 tốn được dec sk
R

R

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 tốn mã hóa mật mã lai ghép: một thuật tố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. Q trình mã hóa mật mã lai ghép được sử dụng rộng rãi trong thực tế

16



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

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 tố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 tồn bảo mật cầm phải đảm bảo việc tính tốn
sign sk khơng thể thực hiện được nếu thiếu thông tin sk mặc dù đã biết thơng
R

R

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 sign sk (m)=dec sk (m) và verif pk (m,s)=“enc pk (s)=m”. Với mục

R

R

R

R

R

R

R

R

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
dec sk .
R

R

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

17



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

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.
1.3.4. Hệ thống mã hóa mật mã RSA
Khi nguyên lý mã khóa mật mã khóa cơng khai được đề cập lần đầu
tiên vào năm 1976, tại thời điểm này chưa có giải pháp thực tế nào được đưa
ra cũng như hệ thống mã hóa mật mã khóa cơng khai, chữ ký số. Hệ thống mã
hóa mật mã khóa cơng khai đầu tiên được phát minh ra sau đó bởi các nhà
mật mã tại Viện công nghệ Massachusetts: Ron Rivest, Adi Shamir và
Leonard Adleman. Hệ thống mã hóa mật mã đó được biết đến với tên RSA
(tạo bởi các chữ cái đầu của các tác giả), hiện đang được sử dụng rộng rãi
nhất trong hệ thống mã hóa mật mã khóa cơng khai.
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à:


18


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

𝜑𝜑 (𝑁𝑁) = (𝑝𝑝 − 1). (𝑞𝑞 − 1)

(1.8)

Khóa riêng RSA được tạo ra bởi module công khai N và số mũ bí mật d
được xác định bởi nghịch đảo của e modulo 𝜑𝜑(𝑁𝑁).

Chữ ký số RSA s của bản tin ms=md mod N
P

(1.9)

P

Việc kiểm tra tính hợp lệ của chữ ký là quá trình ngược lại mà có thể
được thực hiện cơng khai vì theo định lý Euler, chúng ta có:
m=se mod N
P

P

(1.10)

Độ bảo mật của hệ thống mã hóa mật mã RSA dựa trên việc tính tố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 tốn được đối với số lượng
lớn modulus2. Vì vậy, cho dù biết được thơng tin khóa cơng khai nhưng
P

P

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 md mod
P

P

N có thể tính được từ md mod p và md mod q. Do vậy, RSA-CRT được tính
P

P

P

P

bởi hai hàm số mũ:
𝑠𝑠𝑝𝑝 = 𝑚𝑚𝑑𝑑𝑝𝑝 𝑚𝑚𝑚𝑚𝑚𝑚 𝑝𝑝



𝑠𝑠𝑞𝑞 = 𝑚𝑚𝑑𝑑𝑞𝑞 𝑚𝑚𝑚𝑚𝑚𝑚 𝑞𝑞


(1.11)

(1.12)

Trong đó: d p =d mod (p-1) và d q =d mod (q-1). Theo định lý Fermat
R

R

R

R

nhỏ, chúng ta có s p =md mod p và s q =md mod q. Do đó, mỗi khi tính tốn s p
R

R

P

P

R

R

P

P


R

và s q , s có thể lấy lại được từ s p và s q bằng cách sử dụng bước tái tổ hợp:

R

R

R

R

R

R

R

s=CRT(s p ,s q )
R

19

R

R

R

(1.13)



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

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
và được xác định:
CRT(s p ,s q )=s q +q.(i q .(s p -s q ) mod p)
R

R

R

R

R

R

R

R

R

R

R


R

(1.14)

Trong đó i q =q-1 mod p. RSA-CRT xử lý nhanh hơn gần gấp 4 lần so
R

R

P

P

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
mật được xem trọng.
1.3.5. Những hệ thống mã hóa mật mã khóa cơng khai khác
Hệ thống mã hóa mật mã ElGamal
Taher Elgamal lần đầu tiên đưa ra hệ thống mã hóa mật mã ElGamal
trong một bài báo được xuất bản tại CRYPTO’84, một hội thảo chuyên sâu về
mã hóa mật mã.
Thuật tốn đưa ra có mối liên hệ với các thuật tốn của hệ thống mã
hóa mật mã khóa cơng khai. Do vậy mà khóa được chia thành khóa cơng khai
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 tố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 tồn bảo mật cao.

20


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

Ngày nay thuật tố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ố.
Q trình tạo khóa
Như đã trình bày ở trên, 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 tốn mã hóa mật mã
đối xứng và hai khóa đối với những thuật tố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 tốn ra một phần khóa cơng khai gb
P


P

mod p. khóa cơng khai của bên nhận trong hệ thống mã hóa mật mã
ElGamal gồm 3 tham số (p, g, gb) và khóa riêng b.
P

P

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 q trình mật mã.
Quá trình mật mã

21


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

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, gb) từ một server khóa hoặc nhận
P

P

thơng qua thư điện tử khơng mật mã. Việc nhận khóa cơng khai như vậy được
thực hiện thơng qua mơi trường truyền thơng tin khơng an tồn, chỉ có một
tham số bảo mật b, được gửi đi trong tham số gb. Hệ thống mã hóa mật mã
P


P

ElGamal dựa vào nguyên lý có độ bảo mật cao của việc khơng thể tính tốn
được phép tốn logarit rời rạc.
Để 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, gb) của bên
P

P

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ố (m 1 , m 2 ,…)
R

R

R

R

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 tố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 tốn tham số gk mod p và tổ hợp vào bản tin
P

mã hóa mật mã cần gửi cho bên nhận.

22

P


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

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 m i trong bước thứ 2:
R

R

c i =m 1 *(gb)k
R

R

R


R

P

P

(1.15)

P

P

Bản tin mã hóa mật mã C là tập hợp của các c i với 0R

R

Kết quả của q 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 gk mod p có được từ thừa số mũ riêng ngẫu
P

P

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
khai gb của bên nhận từ một server khóa. Cho dù như vậy kẻ tấn cơng vẫn
P

P


không thể lấy được tham số gb*k bởi vấp phải vấn đề khó của phép tính logarit
P

P

rời rạc.
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ẻ m i . Điều này sẽ làm tăng tính bảo mật, cho dù biết
R

R

được một khối bản tin m j nhưng kẻ tấn cơng khơng thể biết được tồn bộ m i
R

R

R

khác. Lý do cho khả năng này là c 1 =m 1 *(gb)k mod p và c 2 =m 2 *(gb)k mod p,

R

R

R

R


R

P

P

P

P

R

R

R

R

P

P

P

P

nếu chỉ có thơng tin m 1 bị lộ, m 2 của bản tin tiếp theo có thể được tính tốn
R

R


R

R

theo cơng thức sau:
𝑚𝑚1
𝑚𝑚2

Q trình giải mã hóa mật mã

=

𝑐𝑐1
𝑐𝑐2

(1.16)

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 gk. Bên nhận cần phải sử dụng thuật tốn mã hóa mật mã để có thể đọc
P

P

được bản tin gốc M, có thể chia thành các bước nhỏ:

23


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


1. Tính tố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:
(gk)p-1-b=(gk)-b=b-bk
P

P

P

P

P

P

P

P

(1.17)

P

P


2. Giải mã hóa mật mã
Đối với từng phần của bản tin mã hóa mật mã c i bên nhận cần thực
R

R

hiện tính tốn theo phương trình:
m i =(gk)-b*c i mod p
R

R

P

P

P

P

R

(1.18)

R

Cuối cùng thực hiện tổ hợp toàn bộ các m i thành bản tin gốc M mà
R

R


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 F p , với p là số
R

24

R


×