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

Xây dựng một hệ mật mã lai ghép dựa trên bài toán Logarit rời rạc

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.4 MB, 26 trang )

HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG

--------------------------------------

NGUYỄN THỊ THÙY DƢƠNG

XÂY DỰNG MỘT HỆ MẬT LAI
GHÉP DỰA TRÊN BÀI TOÁN
LOGARIT RỜI RẠC

CHUYÊN NGÀNH: KỸ THUẬT VIỄN THÔNG
Mã số: 60.52.02.08

TÓM TẮT LUẬN VĂN THẠC SĨ

HÀ NỘI – 2016


Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG

Người hướng dẫn khoa học: TS. NGÔ ĐỨC THIỆN

Phản biện 1: ........................................................................................

Phản biện 2: ........................................................................................

Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học
viện Công nghệ Bưu chính Viễn thông
Vào lúc :…. giờ ….. ngày ……tháng …… năm …………


Có thể tìm hiểu luận văn tại
-Thư viện của Học viện Công nghệ Bưu chính Viễn thông


-1-

MỞ ĐẦU
1. Tính cấp thiết của đề tài
Hệ thống khoá bí mật hay mật mã cổ điển là phương pháp mã
hoá đơn giản nhất xuất hiện đầu tiên trong lịch sử ngành mã hoá.
Phương pháp này sử dụng các thuật toán đơn giản, dễ hiểu nhưng khó
khăn trong việc quản lý lưu trữ và thiết lập phân phối khoá, với các
hệ mật như: DES, AES,...
Từ năm 1976 mật mã hiện đại hay hệ thống mật mã công khai
ra đời đã khắc phục được những nhược điểm nàyvới các hệ mật như:
RSA, ElGamal, Pohlig-Hellman…
Khi thiết kế mật mã thì vấn đề đảm bảo độ vững chắc của thuật
toán là một vấn đề quan trọng nhất.Đánh giá độ bền vững của thuật
toán là một trong các vấn đề lâu nhất và khó nhất.
Nhận thấy tính thiết thực của bài toán này và được sự gợi ý của
giảng viên hướng dẫn, tôi đã chọn đề tài: “Xây dựng một hệ mật mã
lai ghép dựa trên bài toán Logarit rời rạc” để làm đề tài cho luận
văn tốt nghiệp của mình.
2. Tổng quan về vấn đề nghiên cứu
Mật mã khóa công khai (hay khóa không đối xứng) là phương
pháp mã hóa bảo mật thông tin số với khóa mã hóa được công khai
trên mạng. Hệ mật này ra đời đã đáp ứng được nhiều dịch vụ bảo mật
hiện đại như thương mại điện tử, chữ ký số. Hiện nay trên thế giới có
khá nhiều hệ mật mã khối khóa công khai, tuy nhiên các thuật toán
mã hóa công khai cho đến nay thường được xây dựng theo một trong

các bài toán một chiều cơ bản [1], [8] đó là: Bài toán logarit rời rạc;
Bài toán phân tích thừa số; Bài toán xếp ba lô; Bài toán mã sửa sai;
Bài toán trên đường cong elliptic; Bài toán hàm cửa sập…
Bài toán logarit rời rạc và bài toán phân tích thừa số, là hai bài
toán được sử dụng nhiểu trong thực tế. Trong đó, một số thủ tục trao
đổi khóa như thủ tục Diffie – Hellman, các hệ mật như Omura –
Massey, ElGamal, Pohlig-Hellman đều sử dụng bài toán logarit rời
rạc. Và hệ mật nổi tiếng RSA xây dựng trên bài toán phân tích thừa
số.
Cho đến nay, mặc dù đã có một số thuật toán giải bài toán
logarit rời rạc [6], [7], [9], tuy nhiên các thuật giải này chỉ hiệu quả
với một số trường hợp nhất định, chưa có thuật giải tổng quát hiệu


-2quả nào. Do đó, có thể nói cho đến nay độ khó của bài toán logarit
rời rạc vẫn có thể được sử dụng cho các hệ mật khóa công khai.
Ở Việt Nam cũng có các nghiên cứu xây dựng các hệ mật và
cũng có những kết quả đáng quan tâm [3] [4], [5]... Các nghiên cứu
này đề cập đến lý thuyết và từng khía cạnh riêng lẻ của chủ đề này.
Việc nghiên cứu áp dụng các thuật toán sẵn có để phát triển các hệ
mật lai ghép cũng là một hướng nghiên cứu góp phần vào quá trình
phát triển của ngành mật mã Việt Nam nói chung.
3. Mục đích nghiên cứu
Mục đích nghiên cứu của luận văn đó là nghiên cứu các hệ
mật, nghiên cứu bài toán Logarit rời rạc và các hệ mật trên bài toán
này. Trên cơ sở đó xây dựng một hệ mật khóa bí mật lai ghép sử
dụng hai phương pháp xử lý là mũ hóa rời rạc (phép toán logarith rời
rạc là phép toán ngược) và phép hoán vị.
4. Đối tượng và phạm vi nghiên cứu
 Đối tượng nghiên cứu: Mật mã khóa bí mật và khóa công

khai.
 Phạm vi nghiên cứu: Áp dụng hệ mật Pohlig – Hellman làm
hàm mã hóa và sơ đồ Feisteltrong một hệ mật lai ghép.
5. Phương pháp nghiên cứu
Phương pháp nghiên cứu của đề tài là tổng hợp các kiến thức
về mật mã học, lý thuyết số, số học modulo; kết hợp với việc tính
toán và mô phỏng trên máy tính.
6. Bố cục luận văn
Bản luận văn này bao gồm phần mở đầu, 3 chương nội dung và
phần kết luận.
Chương I: Tổng quan về mật mã học.Trình bày những vấn đề
cơ bản về lý thuyết mật mã, khái niệm mật mã khóa bí mật, mật mã
khóa công khai, hàm băm và chữ ký số..
Chương II: Bài toán Logarit rời rạc và một số hệ mật liên
quan.Trình bày các nghiên cứu về cơ sở toán học, bài toán logarit
một số phương pháp giải và các hệ mật liên quan.
Chương III: Xây dựng hệ mật lai ghép.Trình bày về lược đồ
Feistel và hệ mật Pohlig Hellman từ đó đề xuất hệ mật lai ghép trên
cơ sở áp dụng bài toán logarit và đánh giá hiệu quả của hệ mật được
đề xuất.


-3-

CHƢƠNG 1: TỔNG QUAN VỀ MẬT MÃ HỌC
1.1. GIỚI THIỆU CHƢƠNG
Trong chương này sẽ giới thiệu tổng quan về lịch sử ra đời và
quá trình phát triển của của mật mãgắn liền với quá trình phát triển
của khoa học kỹ thuật, công nghệ. Từ các kỹ thuật che dấu thông tin
đơn giản đến việc xây dựng nên các hệ mật khóa bí mật, các hệ mật

khóa công khai.
1.2. LỊCH SỬ RA ĐỜI
Cùng với sự phát triển không ngừng nghỉ của khoa học kỹ
thuật và xã hội, nhu cầu về đảm bảo an toàn thông tin liên lạc áp
dụng ngày càng nhiều và được nâng cao trong mọi hoạt động của xã
hội.
Mật mã hóa cổ điển là cách viết bí mật chỉ cần bút và giấy, hai
phương pháp chính thực hiện mật mã cổ điển là phương pháp: hoán
vị, thay thế.Với sự ra đời của máy tính kỹ thuật số và điện tử học thì
các mật mã cực kỳ phức tạp đã có thể được thực hiện.
Các nghiên cứu rộng rãi có tính học thuật về mật mã hóa hiện
đại chỉ được bắt đầu trong cộng đồng mở kể từ những năm thập niên
1970 với các chi tiết kỹ thuật của DES và sự phát minh ra RSA.
Năm 1976, WhitfieldDiffie và MartinHellman công bố một hệ
thống mật mã hóa khóa bất đối xứng trong đó nêu ra phương pháp
trao đổi khóa công khai.
Kể từ thập kỷ 1970, đã có rất nhiều thuật toán mã hóa, tạo chữ
ký số, thỏa thuận khóa… được phát triển.
Vào giữa thập kỷ 1980, NealKoblitz bắt đầu cho một dòng
thuật toán mới: mật mã đường cong elliptic và cũng tạo ra nhiều thuật
toán tương tự.
1.1. Khái quát về mật mã học
Mật mã học là một bộ phận của khoa học mật mã
(Cryptology),được chia thành 2 bộ phận chính [1]:
+ Mật mã học (Cryptography): là một lĩnh vực liên quan với các
kỹ thuật ngôn ngữ và toán học để đảm bảo an toàn thông tin, cụ thể là
trong thông tin liên lạc, chia ra 3 nội dung:
 Mật mã khóa bí mật (Khóa đối xứng): (Private-key
Cryptography)



-4-



Mật mã khóa công khai (khóa bất đối xứng): (Public-key
Cryptography)
 Hàm băm, xác thực và chữ ký số
+ Phân tích mật mã (Cryptonalys): là khoa học nghiên cứu cách
phá các hệ mật, một số phương pháp tấn công điển hình như:
 Phương pháp tấn công tổng lực (tìm khóa vét cạn)
 Phương pháp thống kê
 Phương pháp phân tích cấu trúc…
Khoa học mật mã

Mậtmãhọc

Mật mã khóa
bí mật

Phân tích mã

Mật mãkhóa
công khai

Hàm băm, xác
thực, chữ ký số

Hình 1.1.Các lĩnh vực của khoa học mật mã
Các phương pháp xử lý thông tin số trong các hệ thống mật

mã bao gồm:
 Mật mã khóa bí mật (khóa đối xứng)
Với hệ mật này, việc mã hóa và giải mã sử dụng chung một
khóa, do đó hai bên liên lạc phải thống nhất và bảo mật khóa trước
khi truyền tin.



Mật mã khóa công khai (khóa không đối xứng)
Thông thường mỗi bên liên lạc tự tạo cho mình một cặp khóa
công khai và bí mật, khóa công khai dùng để mã hóa bản tin và khóa
này được công khai trên mạng, còn khóa bí mật dùng để giải mã (chỉ
có bên nhận tin lưu trữ).
 Mật mã dòng: Trong các hệ mật mã dòng quá trình xử lý
thông tin thực hiện trên từng bit.


-5-

 Mật mã khối: Trong các hệ mật mã khối quá trình xử lý
thông tin được thực hiện theo các khối bit có độ dài xác định.
1.4. CÁC YÊU CẦU CHÍNH CỦA MẬT MÃ HIỆN ĐẠI
 Tính bí mật(confidentiality): Tàisảncủa hệ thống chỉ được
truy cập bởi những người có th mquyền. Tính bí mật có thể đượcbảo
vệ nhờ việc kiểm soát truy nhập hoặc nhờ các thuật toán mã hóa dữ
liệu.
 Tínhtoànv n dữ liệu (data integrity): đảm bảo khả năng phát
hiện sự sửa đổi trái phép thông tin.
 Xác thực (authentication): có mối liên hệ với định danh
(identification). Nên nó được thực hiện xác thực trên cả thực thể (hai

đối tượng trong một phiên liên lạc sẽ định danh lẫn nhau) và bản thân
thông tin
 Đảm bảo chống sự từ chối (non-repudiation): ngăn ngừa
một thực thể từ chối (phủ nhận) một cam kết hay hành động trước đó.
1.5. CÁC HỆ MẬT KHÓA BÍ MẬT
Các toán tử sử dụng trong mật mã khóa bí mật:
 Phép hoán vị.
 Phép thay thế.
 Các phép toán số học: dịch vòng, XOR, …
Hệ mật mã được định nghĩa là một bộ năm (P, C, K, E, D),
trong đó:
1. P (Plaintext) là tập hữu hạn các các bản rõ có thể
2. C (Ciphertext) tập hữu hạn các bản mã có thể
3. K (Key) là tập hữu hạn các khoá có thể
4. E (Encrytion) là tập các hàm lập mã
5. D (Decrytion) là tập các hàm giải mã. Với mỗi k ∈K, có một
- Hàm lập mã: ∈
- Và một hàm giải mã
∈ ,
- Sao cho: ( ( ))



-6Thám

Bản rõ M
Nguồn
tin

Bản mã C


Bộ mã
hóa

Bản mã C

Kênh mở
(Không an toàn)

Bản rõ M

Bộ giải


Nhận
tin

KD

KE
K

Kênh an toàn

Nguồn
khóa

Hình 1.2.Sơ đồ khối chức năng hệ mật khoá bí mật
1.5.1. Các hệ mật thay thế
1.5.1.1. Các hệ mật thay thế đơn biểu

Khi khoá đã được chọn thì mỗi ký tự của bản rõ được ánh xạ
đến một kí tự duy nhất của bản mã. Do mỗi cách mã hoá như vậy sẽ
tương ứng với một hoán vị của bảng chữ và hoán vị đó chính là khoá
của mã đã cho. Như vậy độ dài khoá ở đây là 26 và số khoá có thể có
là 26!.
 Mã dịch vòng:
Giả sử:
với
, ta định nghĩa:
Mã hóa:
Giải mã:
 Mã thay thế
Cho
. chứa mọi hoán vị có thể của 26 kí hiệu 0,1,
…, 25. Mỗi khóa là một phép hoán vị .
Khi độ dài bản rõ đủ lớn, có thể sử dụng phương pháp thống kê
để thám mã. Nó là hệ mã đơn biểu và ghi nhớ khóa khó khăn.
 Mã Affine
Trường hợp đặc biệt khác của mã thay thế là mã Affine.
Nhận xét: Do khoảng trống xuất hiện nhiều trong văn bản, nên
khi mã hóa nên mã hóa cả khoảng trống để giảm số lần xuất hiện.
 Mật mã cũi lợn
Sử dụng các hình tượng khác nhau không nằm trong bảng ký tự


-7thay thế cho các ký tự.
1.5.1.2. Hệ mật mã thay thế đa biểu
Yếu điểm của các mã phương pháp đơn biểu là phân bố tần
suất của chúng phản ánh phân bố của bảng chữ cái cơ sở.
Một hướng khác làm tăng độ an toàn cho mã trên bảng chữ là

sử dụng nhiều bảng chữ để mã hoá. Làm như vậy để trải băng tần
suất xuất hiện chữ trong bản mã.
 Mật mã Hill
Là một hệ mật thay thế đa biểu khác được gọi là mật mã Hill.
Mật mã này do LesterS.Hill đưa ra năm 1929.
 Hệ mật Vigenère
Sử dụng phép tương ứng
mô tả ở
trên, ta gắn cho mỗi khoá K một chuỗi ký tự có độ dài , được gọi là
từ khoá. Mật mã Vigenère sẽ mã hoá đồng thời ký tự: mỗi phần tử
của bản rõ tương đương với ký tự.
Nhận xét:Ta thấy rằng, số các từ khoá có thể với độ dài
trong mật mã Vigenere là 26 . Bởi vậy, thậm chí với khá nhỏ,
phương pháp tìm kiến vét cạn cũng yêu cầu thời gian khá lớn. Ví dụ,
với = 6 thì không gian khoá cũng có kích thước lớn hơn 3.108
khoá.
1.5.1.3. Các hệ mật thay thế không tuần hoàn
Phép thế lý tưởng sẽ dùng hiều bảng chữ cái để không nhận
diện được phân bố và không có mẫu trong suốt đối với việc lựa chọn
một bảng chữ cái tại một điểm cụ thể. Điều gì sẽ xảy ra nếu một văn
bản được mã bằng số bảng không hạn chế.
 Hệ mật khoá chạy
Lý tưởng nhất là ta có khoá dài như bản tin. Vigenere đề xuất
khoá tự động sinh cho bằng độ dài bản tin như sau.
 Hệ mật Vernam (OTP)
One-TimePad (OTP), được phát minh năm 1917 bởi
GilbertVernam, một kỹ sư làm việc ở BellLabs thuộc AT&T. Khi
côngtrình CommunicationTheoryofSecrecySystems củaClaudeShann
on được công bố rộng rãi đã đặt nền móng cho lý thuyết mật mã hiện
đại khi lần đầu tiên đưa ra định nghĩa toán học của khái niệm an toàn

và chứng minh được OTP an toàn theo định nghĩa đó.


-81.5.2. Các hệ mật hoán vị
Ta đã xét MTT, ở đó các chữ của bản rõ được thay thế bằng
bảng chữ các chữ khác của bản mã. Bây giờ chúng ta xét đến loại mã
khác, mã hoán vị (MHV), các chữ trong bản rõ không được thay thế
bằng các chữ khác mã chỉ thay đổi vị trí, tức là việc mã hoá chỉ dịch
chuyển vị trí tương đối giữa các chữ trong bản rõ.
1.5.3. Hệ mật mã tích
Một phát minh khác do Shannon đưa ra trong bài báo của mình
năm 1949 là ý tưởng kết hợp các hệ mật bằng cách tạo tích của
chúng. Ý tưởng này có tầm quan trọng to lớn trong việc thiết kế các
hệ mật hiện nay (chu n mã dữ liệu - DES).
1.5.4. Hệ mã dòng
Trong các hệ mật nghiên cứu ở trên, các phần tử liên tiếp của
bản rõ đều được mã hoá bằng cùng một khoá . Tức xâu bản mã
nhận được có dạng:
( ) ( )
Các hệ mật thuộc dạng này thường được gọi là các mã khối.
1.5.5. Chuẩn mã dữ liệu DES
Mô tả đầy đủ của DES được nêu trong Công bố số 46 về các
chu n xử lý thông tin Liên bang (Mỹ) vào 15.1.1977. DES mã hoá
một xâu bit của bản rõ độ dài 64 bằng một khoá 54 bit. Bản mã
nhận được cũng là một xâu bit có độ dài 64. Trước hết ta mô tả ở
mức cao về hệ thống.
1.5.6. Ưu nhược điểm của mật mã khóa bí mật
1.5.6.1. Ưu điểm
 Mật mã khóa bí mật có mô hình đơn giản, tức là các yêu cầu
về phần cứng không phức tạp, dễ dàng tạo ra thuật toán mã hóa.

 Mật mã khóa bí mật có tính hiệu quả do tốc độ mã hóa và
giải mã cao, thông thường tốc độ mã
(số bit đầu ra mã hóa
bằng với số bit đầu vào) thời gian tính toán nhanh.
Từ các ưu điểm này cho thấy mật mã cổ điển dễ sử dụng cho
các dịch vụ nhạy cảm với độ trễ và các dịch vụ di động.
1.5.6.2. Nhược điểm
 Với mật mã khóa bí mật phải dùng kênh an toàn để truyền
khóa, việc tạo khóa và giữ bí mật khóa phức tạp. Khi làm việc trên


-9mạng nếu dùng mật mã khóa bí mật sẽ phải tạo và lưu trữ số lượng
khóa nhiều, điều này dẫn đến việc thiết lập kênh an toàn khó khăn
hơn và chi phí sẽ cao hơn.
 Do các thuật toán là song ánh (dùng chung) nên thám mã có
thể suy luận và suy ra bản mã ban đầu.
 Nếu sử dụng mật mã khóa bí mật sẽ khó xây dựng các dịch
vụ an toàn khác như các dịch vụ: đảm bảo tính toàn v n của dữ liệu,
xác thực và chữ ký số.
 Việc gửi thông tin cùng khóa với số lượng lớn là khó khăn.
Các nhược điểm này sẽ được khắc phục bằng cách sử dụng cả
các hệ mật khóa công khai.
1.6. HỆ MẬT KHÓA CÔNG KHAI
Thám

Bản rõ M

Người
gửi A


Bản mã C

Bộ mã
hóa

Khóa công khai
của B (KCB)

Bản mã C

Kênh mở
(Không an toàn)

Bản rõ M

Bộ giải


Người
nhận B

Khóa bí mật
của B (KRB)

Hình 1.3.Sơ đồ khối chức năng hệ mật khóa công khai
- Khoá công khai của B (Lấy trên kênh mở)
- Khoá bí mật của B
Phép mã hoá là ánh xạ 1:1
(
)

Giải mã:
(
)
(
)
Một số thuật toán bất đối xứng thông dụng là: RSA, ElGamal,
DiffieHellman...


-101.6.1. Ưu và nhược điểm của hệ mật mã khoá công khai
1.6.1.1. Ưu điểm:
- Đơn giản trong việc bảo vệ, lưu trữ và sinh khóa.
- Dễ tạo các dịch vụ an toàn khác, là tiền đề cho sự ra đời của
chữ ký điện tử và các phương pháp chứng thực điện tử.
1.6.2.2. Nhược điểm:
- Do bản thân các hệ mật mã khoá công khai đều dựa vào các
giả thiết liên quan đến các bài toán khó, phức tạp (với trường số lớn
thì phần cứng phức tạp) nên đa số các hệ mật mã này đều có tốc độ
mã dịch không nhanh.
- Một vấn đề nữa nảy sinh khi sử dụng các hệ mật mã khóa
công khai là việc xác thực, do các khoá mã công khai được công bố
một cách công khai trên mạng (không sử dụng kênh an toàn) cho nên
việc đảm bảo rằng “khoá được công bố có đúng là của đối tượng cần
liên lạc hay không?” là một kẽ hở có thể bị lợi dụng.
- Hiệu quả không cao.
1.7. HÀM BĂM
1.7.1. Định nghĩa
Hàm băm là các thuật toán không sử dụng khóa để mã hóa (ở
đây ta dùng thuật ngữ “băm” thay cho “mã hóa”), nó có nhiệm vụ
“lọc” (băm) thông điệp được đưa vào theo một thuật toán một

chiều nào đó, rồi đưa ra một bản băm – văn bản đại diện – có kích
thước cố định.
1.7.1.1. Tính chất của hàm băm
Việc đưa hàm băm vào dùng trong sơ đồ chữ ký số không
làm giảm sự an toàn của sơ đồ chữ ký số vì nó là bản tóm lược thông
báo – bản đại diện cho thông điệp - được ký chứ không phải là thông
điệp gốc.
Tính chất 1: Hàm băm h là không va chạm yếu
Hàm phải thỏa mãn tính không va chạm yếu: Hàm băm h là
không va chạm yếu nếu khi cho trước một bức điện x, không thể tiến
hành về mặt tính toán để tìm ra một bức điện
mà h(x’) = h(x).
Tính chất 2:Hàm băm h là không va chạm mạnh.


-11Hàm băm là không va chạm mạnh nếu không có khả năng
tính toán để tìm ra hai bức thông điệp x và x’mà
và h(x) =
h(x’).
Tính chất 3: Hàm băm là hàm một chiều:Hàm băm là một
chiều nếu khi cho trước một bản tóm lược thông báo thì không thể
thực hiện về mặt tính toán để tìm ra thông điệp ban đầu sao cho
h(x) = z .
1.7.1.2. Phân loại hàm băm
Hàm băm được phân ra thành 2 loại chính:
- Các hàm băm không khóa MDC.
- Các hàm băm có khóa MAC.
1.8. CHỮ KÝ SỐ
Để chứng thực nguồn gốc của một tài liệu người ta thường ký
trực tiếp lên tài liệu đó và đây gọi là chữ ký tay. Tuy nhiên ngày nay

cùng với sự phát triển của thương mại điện tử, việc sử dụng chữ ký
tay trực tiếp đôi khi trở thành rào cản đối và không phù hợp với các
giao dịch điện tử.
Chữ ký số phải có khả năng chứng thực cho tài liệu số. Để làm
điều này người ta sử dụng hàm băm để tạo ra chữ ký số có độ dài
thích hợp và thỏa mãn điều kiện chữ ký số được “ký” trên từng bít
của tài liệu số là đại diện đặc chưng duy nhất cho tài liệu gốc.
1.9. KẾT LUẬN CHƢƠNG
Trong nội dung chương 1, luận văn đã tập trung tìm hiểu các
vấn đề chung nhất về các hệ mật mã và hàm băm: phân tích cách thức
mã hóa và giải mã của các hệ mã khóa bí mật và khóa công khai từ
đó thấy được ưu nhược điểm của từng hệ mật mã; đưa ra khái niệm
tổng quan về hàm băm và chữ ký số, yêu cầu với hệ mật mã hiện đại.


-12CHƢƠNG 2: BÀI TOÁN LOGARIT RỜI RẠC VÀ MỘT SỐ
HỆ MẬT LIÊN QUAN
2.1. GIỚI THIỆU CHƢƠNG
Các hệ mật khóa công khai được xây dựng dựa trên các bài
toán một chiều (5 bài toán cơ bản), các bài toán này khi tính thuận
thì dễ nhưng tính theo chiều ngược lại thì rất khó. Bài toán logarit
rời rạc là một bài toán điển hình được dùng để xây dựng một số hệ
mật mã. Một trong những hệ mật này được áp dụng để xây dựng một
hệ mật mã lai ghép ở chương 3.
2.2. CƠ SỞ TOÁN HỌC
2.2.1. Số nguyên
Tập số nguyên
*
+
 Định nghĩa 2.1: Cho

∈ , là ước của
sao cho
. Ký hiệu .
 Định nghĩa 2.2: là ước chung của và nếu
 Định nghĩa 2.3: (ước chung lớn nhất - UCLN):
Số nguyên dương d là UCLN của các số nguyên
hiệu
(
)) nếu:
 d là ước chung của a và b.
 Nếu
c|a và c|b thì c|d.
 Định nghĩa 2.4 (bội chung nhỏ nhất - BCNN):
Số nguyên dương d là BCNN của hai số nguyên
(
) nếu:
hiệu


.
 Nếu
a|c và b|c thì d|c.

nếu





.


a và b (Ký

a và b (Ký

2.2.2. Các số nguyên MODULO N
 Định nghĩa 2.8: Cho là số nguyên dương, hai số nguyên
và được gọi là đồng dư với nhau theo modulo (được ký hiệu là
) nếu: (
).
 Định nghĩa 2.9: Các số nguyên modulo (ký hiệu ) là tập
+, các phép cộng, trừ, nhân trong
các số nguyên *
được thực hiện theo modulo n.


-132.2.3. Nhóm nhân
 Định nghĩa 2.12: [1] Nhóm nhân của

* ∈
+, trong trường hợp là số nguyên tố thì
(
)
*
+.
Các thặng dƣ bậc hai [1]:
 Định nghĩa 2.16: Phần tử ∈
được gọi là thặng dư bậc
2 theo modulo n nếu


. Gọi là tập các thặng
dư bậc 2 và ̅̅̅̅ là tập các thặng dư không bậc 2.
2.2.4. Vành
 Định nghĩa 2.17: [6] Một vành (
) được xác định là
một bộ với hai toán tử kí hiệu là (cộng), (nhân), thỏa mãn các
tiên đề sau:
(i)
(
) là một nhóm Abelian
(
) (
)
(ii)
, với mọi
∈ .
(iii) Với
, ta có:
, cho mọi ∈ .
(
) (
) (
)
(iv) Tính phân phối,
)
(
) (
và (
), với mọi
∈ .

2.2.5. Trường
 Định nghĩa 2.19: [6] Một trường là một vành giao hoán
trong đó tất cả các yếu tố khác có tính nghịch đảo.
2.3. BÀI TOÁN LOGARIT RỜI RẠC VÀ MỘT SỐ PHƢƠNG
PHÁP GIẢI
2.3.1. Bài toán logarit trên trƣờng số thực R
Bài toán thuận:
∈ , việc tính toán hàm mũ này có
thể được thực hiện dễ dàng bằng thuật toán nhân và bình phương.
Bài toán ngược:
, việc tính toán hàm ngược
logarit này sẽ khó khăn hơn nhiều so với hàm thuận.
2.3.2. Bài toán logarit rời rạc
Về mặt lý thuyết thì bài toán logarit rời rạc trên trường hữu hạn
và bài toán logarit rời rạc trên đường cong Elliptic trên trường hữu
hạn có thể coi là cùng một ý tưởng và chỉ khác nhau về mặt kỹ thuật
toán học mà thôi.
2.3.2.1. Định nghĩa bài toán logarit rời rạc
Giả sử là một nhóm cyclic hữu hạn có cấp . Gọi là phần tử
sinh của và là một phần tử khác thuộc . Khi đó logarit rời rạc của


-14theo cơ sở , được ký hiệu là
với
sao cho

, là một số nguyên duy nhất
.

2.3.2.2. Tóm tắt bài toán Logarit trên trường hữu hạn GF(p)

( )
Bài toán thuận:

Bài toán ngược:

( ) * +
2.3.3. Một số thuật toán giải bài toán logarit rời rạc
2.3.3.1. Thuật toán vét cạn
Đây là thuật toán tự nhiên nhất và kém hiệu quả nhất để tính
Logarit rời rạc. Người ta sẽ thử tất cả các khả năng xem khả năng nào
là nghiệm đúng của bài toán cần giải nhất [6].
2.3.3.2. Thuật toán bước đi lớn bước đi nhỏ (Baby-stepGiant-Step)
Giả sử
[√ ]với là cấp của .
Thuật toán bước đi lớn bước đi nhỏ là sự thoả hiệp giữa thời
gian và bộ nhớ của phương pháp vét cạn và dựa trên quan sát sau là
nếu    x thì chúng có thể viết x  im  j với 0  i , j  m . Từ đó

 x   im j hay  (  m ) i   j . Vậy nên người ta có thể lập bảng
j
( j ,  ) với 0  j < m.
2.3.3.3. Thuật toán  của Pollard
Đây là thuật toán ngẫu nhiên với cùng thời gian chạy như trong
thuật toán bước đi lớn bước đi nhỏ nhưng không cần đến không gian
lưu trữ nhiều.
Thuật toán này được thực hiện giống như hình chữ với điểm
xuất phát là chân chữ này và vòng tròn phía trên chính là khi thuật
toán rơi vào chu trình. Chính vì vậy mà nó được gọi là thuật toán 
do Pollard nghĩ ra.
2.3.3.4. Thuật toán Pohlig-Hellman

Thuật toán này tận dụng lợi thế của phân rã của cấp n của
nhóm G. Giả sử phân rã của n  p1e p2 e ... pr e là phân rã nguyên tố
của n. Nếu x  log   thì cách tiếp cận này xác định xi  x mod pi e
với 1  i  r và sau đó sử dụng thuật toán Gauss làm việc với định lý
phần dư Trung Hoa để tìm ra x mod n .
1

2

r

i


-15Khi biết trước phân rã của n thì thời gian chạy của thuật toán
Pohlig-Hellman sẽ là O (  r ei (log n  p i ) các phép toán nhóm.
i 1

Thuật toán này chỉ thực sự hiệu quả khi ước lượng nguyên tố
tương đối nhỏ hay là số nguyên mịn.

của

2.3.3.5. Thuật toán tính chỉ số (Index-Calculus)
Thuật toán tính chỉ số là thuật toán mạnh nhất được biết, khi
đem tấn công bài toán logarit rời rạc. Không phải nhóm nào cũng áp
dụng được thuật toán tính chỉ số nhưng nếu áp dụng được thì nó cho
chúng ta thời gian chạy là hàm tiểu mũ.
(a) Tính chỉ số trên GF(p)
Đối với trường GF(p) với số nguyên tố thì cơ sở phân tích

được chọn sẽ là t số nguyên tố đầu tiên.
(b) Tính chỉ số trên GF(2n)
Các phần tử của trường hữu hạn
được biểu diễn thành các
đa thức trên , - có bậc cao nhất là n – 1 với phép nhân được thực
hiện modulo một đa thức bất khả quy ( ) có bậc n trên , -.
2.4. MỘT SỐ HỆ MẬT XÂY DỰNG TRÊN BÀI TOÁN
LOGARIT RỜI RẠC
2.4.1. Hệ mật Pohlig-Hellman
Bài toán logarit rời rạc là bài toán khó, trong khi bài toán lũy
thừa rời rạc lại không khó (có thể tính bằng thuật toán nhân và bình
phương).
Thuật toán mã hóa Pohlig-Hellman sử dụng lũy thừa modulo.
Đối với thuật toán mã hóa giá trị
được chọn là một nguyên
tố lớn.
Thuật toán mã hóa Pohlig-Hellman nên được dùng như thuật
toán mã hóa khóa bí mật thông thường vì d rất dễ dàng xác định từ e
và p. Thậm chí nếu p được giữ bí mật, nó có thể được suy ra từ các
khối bản mã.
2.4.2. Hệ mật Omura-Massey
Áp dụng bài toán logarit rời rạc vào hệ mật Omura – Massey.
*

Cho Z p với

là số nguyên tố, trước khi tiến hành trao đổi tin

tức B nhận khóa công khai


từ mạng.


-162.4.3. Hệ mật ElGamal
Thuật toán ElGamal là một thay thế cho RSA để mã hóa khóa
công khai:
1) Độ bảo mật của RSA phụ thuộc vào khó khăn của việc phân
tích các số nguyên tố lớn.
2) Độ bảo mật của thuật toán ElGamal phụ thuộc vào khó khăn
trong việc tính toán các bản ghi rời rạc trong một modulo nguyên tố
lớn.
2.5. KẾT LUẬN CHƢƠNG
Trong chương 2, luận văn tập trung tìm hiểu các vấn đề chung
nhất về các bài toán cơ bản trong mật mã hoá công khai. Đưa ra và
phân tích một số phương pháp giải bài toán logarit rời rạc và áp dụng
vào xây dựng một số hệ mật.
Logarit rời rạc là bài toán khó (chưa biết một thuật toán hiệu
quả nào), với: Kích thước khóa nhỏ; Sự an toàn phía trước hoàn hảo
(giao thức trao đổi khóa dựa trên bài toán logarit rời rạc có thể đạt
được sự an toàn phía trước hoàn hảo), do đó ngăn ngừa được kẻ thù
giải mã thông tin đã qua; Thuật toán đa dạng: các lược đồ dựa trên
logarit rời rạc cung cấp một sự thay thế cho bài toán phân tích có
nguồn gốc từ RSA và các thuật toán bảo mật khác mà phụ thuộc vào
độ khó của bài toán phân tích thừa số. Để xây dựng nhiều hệ mật có
độ bảo mật cao.


-17CHƢƠNG 3: XÂY DỰNG MỘT HỆ MẬT LAI GHÉP
3.1. GIỚI THIỆU CHƢƠNG
Xây dựng một hệ mật lai ghép sử dụng hệ mật PohligHellman

dựa trên bài toán logarit rời rạc kết hợp với sơ đồ Feistel và đánh
giá tính khuếch tán của hệ này.
3.2. LƢỢC ĐỒ FEISTEL
Trong mật mã cổ điển, việc sử dụng riêng các phép hoán vị
hoặc thay thế đều không đảm bảo độ mật cần thiết. Nhà mã hóa
HorstFeistel của IBM đã đề nghị về việc xây dựng một loại mật mã
khối, đồng thời sử dụng liên tiếp toán tử chuyển vị và toán tử thay
thế, để nhận được độ an toàn cao hơn so với bất kỳ loại mật mã nào
chỉ ứng dụng riêng biệt các toán tử, được ứng dụng đầu tiên trong
Luciphercipher.
3.2.1. Mô hình mã Feistel
Giả thiết mật mã khối biến đổi bit văn bản rõ thành khối văn
bản mã có cùng độ dài. Số lượng các khối khác nhau sẽ là 2n. Bản rõ
và các bản mã được chia thành nửa trái và nửa phải:
(
)
(
)
Thuật toán mã hóa trong một vòng như sau:
{

(
)
là một khóa con cho vòng thứ . Khóa con này được sinh ra
từ khóa ban đầu theo một thuật toán sinh khóa con (keyschedule):
là một hàm mã hóa dùng chung cho tất cả các vòng. Hàm
đóng vai trò như là phép thay thế còn việc hoán đổi các nửa trái phải
có vai trò hoán vị.



-18Bản rõ
LE0

Bản rõ
LD16 = LE0 RD16 = RE0

RE0
K1
F

F

K1
LE1

RE1

LD15 = RE1 RD15 = LE1

K2
F

F

K2
LE2

RE2

LD14 = RE2 RD14 = LE2


LE14

RE14

LD2 = RE14 RD2 = LE14
K15

F

F

K15
LE15

LD1 = RE15 RD1 = LE15

RE15
K16

F

F

RE16

K16
LE16

Bản mã

a)

LD0 = RE16 RD0 = LE16
Bản mã
b)

Hình 3.2. Mã hóa (a) và giải mã (b) Feistel 16 vòng


-193.2.2. Ưu và nhược điểm của mật mã Feistel
3.2.2.1. Ưu điểm
 Quá trình mã hóa và giải mã tương tự nhau, chỉ khác ở thứ tự
khóa con, điều này sẽ tiết kiệm được nửa tài nguyên khi thực
hiện thuật toán trên phần cứng.
 Hàm có thể chọn với độ khó bất kỳ, vì không phải tìm hàm
nghịch.
3.2.2.2. Nhược điểm
 Vì mỗi vòng mã chỉ thực hiện biến đổi nửa khối dữ liệu, nên
cần số vòng mã hóa lớn để đảm bảo độ an toàn, điều này làm
giảm đáng kể tốc độ mã.
 Ngoài ra xây dựng trên cơ sở mạng Feistel tồn tại lớp khóa
tương đương, nên làm không gian khóa giảm đi một nửa.
3.3. XÂY DỰNG MỘT HỆ MẬT MÃ KHỐI LAI GHÉP
Trong phần này sẽ trình bày một hệ mật khóa bí mật, sử dụng
sơ đồ Feistel là lược đồ mã hóa và hàm mà hóa trong sơ đồ Feistel sử
dụng hệ mật Pohlig- Hellman.
Hệ mật mã khối này sẽ mã hóa 64 bit dữ liệu bản rõ đầu vào và
cho ra 64 bit mã hóa, khóa bí mật có độ dài 128 bit.
Sơ đồ khối chung của hệ mật như hình vẽ sau:
Bản rõ M

(64 bit)

Mã hóa

Bản mã C
(64 bit)

Khóa bí mật
K (128 bit)
Hình 3.3. Sơ đồ khối của hệ mật
Trong sơ đồ xây dựng hệ mật, lược đồ Feistel cần bằng được sử
dụng làm nền cho hệ mật PoligHellman. Sơ đồ này sẽ mã hóa cho
chuỗi bit dài 64 bit.
Thuật toán tiến hành theo 3 giai đoạn:
1) Với bản rõ cho trước một xâu bit
sẽ được xây dựng
bằng cách hoán vị các bit của theo phép hoán vị ban đầu IP:
( )
trong đó gồm 32 bit đầu và
là 32 bit cuối.
2) Sau đó thực hiện 4 vòng mã hóa theo thuật toán sau:


-20{

(
)
Áp dụng hoán vị ngược
cho xâu bit
, ta được bản mã

(
). Các bảng hoán vị
và hoán vị ngược
tính
theo hệ mật DES.


Bản rõ M (64 bit)
IP
L0(32 bit)

Hoán vị
ban đầu

R0(32 bit)

e1
f

L1(32 bit)

m1

R1(32 bit)

e2
f

L2(32 bit)


m2

R2(32 bit)

e3
f

L3(32 bit)

m3

R3(32 bit)

e4
f

L4(32 bit)

m4

R4(32 bit)
IP-1

Hoán vị
đảo

Bản mã C (64 bit)

Hình 3.5. Sơ đồ mã hóa của hệ mật



-21Các khóa con tại các vòng mã hóa được trích chọn từ khóa
ban đầu (128 bit). Cách đơn giản nhất là chia 128 bit khóa thành 4
khối 32 bit tương ứng với 4 khóa
và , như mô tả trong
hình 3.5.
3.4. ĐÁNH GIÁ TÍNH KHUẾCH TÁN CỦA HỆ MẬT LAI
GHÉP
Các phần mô phỏng tính toán độ khuếch tán của hệ mật dưới
đây được thực hiện bằng phần mềm Matlab V.8.1. Tiến hành tính
toán độ khuếch tán khi thay đổi dữ liệu bản rõ và thay đổi khóa bí
mật , với các thông số chọn như sau:
Bản rõ gồm 64 bit được chọn và biễu diễn dưới dạng hexa
như sau [5]:
gồm 128 bit(32 số hexa) được chọn như sau:

Khóa bí mật

Khoảng cách Hamming trung bình (hay là độ khuếch tán) của
64 lần thay đổi từng bit bản rõ và bản mã được tính theo công thức
sau:
)
Trường hợp 1: hàm mã hóa (

(
)
( )
Trường hợp 2: hàm mã hóa f ( mi , ei )  ei
(




)

(

mi

mod p )

)

Khoảng cách Hamming trung bình của các bản mã so với bản
mã ban đầu khi thay đổi lần lượt từng bit của khóa từ bit 1 đến bit
128 được tính theo công thức:
(

)



(

)

Với hai trường trường hợp hàm mã hóa tính được như sau:
Với trường hợp 1: ( )
Và trường hợp 2: ( )
Nhận xét:
Một trong các yêu cầu khi đánh giá một hệ mật đó là tính

khuếch tán tại đầura. Chỉ với 4 vòng mã hóa nhưng hệ mật đã đạt độ


-22khuếch tán rất tốt, đây chính là một ưu điểm đáng chú ý của hệ mật
này.
3.5. KẾT LUẬN CHƢƠNG
Hệ mật mã lai ghép như đề xuất trong bài báo bao gồm hai
phép mã hóa là phép hoán vị (các bảng IP và IP-1 trong sơ đồ Feistel),
và phép mũ rời rạc theo hệ mật Pohlig-Hellman. Hệ mật này có một
số ưu điểm sau:
(a) Hàm mã hóa được thực hiện trên bài toán logarit rời rạc nên
hệ mật có tính phi tuyến, cùng với độ dài khóa bí mật 128 bit nên hệ
mật đạt được độ an toàn nhất định.
(b) Do sử dụng sơ đồ Feistel nên mạch mã hóa và giải mã
tương tự nhau rất thuận lợi cho việc thiết kế mạch phần cứng.
(c) Để hệ mật có độ khuếch tán đạt khoảng một nửa độ dài từ
mã thìhệ mật chỉ cần bốn vòng mã hóa điều này sẽ làm tăng đáng kể
tốc độ mã hóa.
Với các ưu điểm này của hệ mật, ta nhận thấy hệ mật này rất
phù hợp để ứng dụng vào các lưu đồ thực hiện hàm băm không khóa
(MDC).
Trong khuôn khổ luận văn chỉ đề cập đến tính khuếch tán của
hệ mật, để đánh giá hoàn chỉnh hơn về hệ mật này cần có thêm các
mô phỏng tính toán các phép tấn công khác nữa lên hệ mật.


-23-

KẾT LUẬN VÀ KIẾN NGHỊ
Luận văn đã đưa ra cơ sở lý thuyết mật mã học các hệ mật

khóa bí mật và hệ mật khóa công khai. Nghiên cứu các bài toán một
chiều và đi sâu nghiên cứu bài toán logarit rời rạc các thuật toán giải
và một số hệ mật điển hình áp dụng bài toán này. Nghiên cứu vào
lược đồ Feistel và hệ mật PohligHellman từ đó ứng dụng xây dựng hệ
mật lai ghép dựa trên bài toán logarit rời rạc.
 Các kết quả của luận văn có được :
- Nghiên cứu bài toán logarit rời rạc trên trường hữu hạn.
- Nghiên cứu một số thuật giải bài toán logarit rời rạc.
- Xây dựng một hệ mật mã lai ghép sử dụng hệ mật Pohlig
Hellman.
- Bước đầu đánh giá một đặc tính của hệ mật lai ghép là tính
khuếch tán.
 Kiến nghị hướng nghiên cứu tiếp theo :
- Ngoài hệ mật Pohlig Hellman chúng ta có thể dùng hệ mật
khác dựa trên bài toán logarit để xây dựng các hệ mật mã mới.
Tìm hiểu và thực hiện thêm các phương pháp đánh giá hệ mật
để đánh giá hệ mật toàn diện.


×