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

chữ ký số và các vấn đề bảo mật thông tin

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 (947.54 KB, 88 trang )

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


































ĐẠI HỌC THÁI NGUYÊN
KHOA CÔNG NGHỆ THÔNG TIN







Nguyễn Thị Hồng Minh



CHỮ KÝ SỐ VÀ CÁC VẤN ĐỀ BẢO MẬT THÔNG TIN

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH








Thái Nguyên - 2010







Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


































ĐẠI HỌC THÁI NGUYÊN
KHOA CÔNG NGHỆ THÔNG TIN






Nguyễn Thị Hồng Minh



CHỮ KÝ SỐ VÀ CÁC VẤN ĐỀ BẢO MẬT THÔNG TIN
Chuyên ngành: Khoa học máy tính
Mã số: 604801

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS. Đoàn Văn Ban





Thái Nguyên - 2010
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên







LỜI CAM ĐOAN

Tôi xin cam đoan bản luận văn “Chữ ký số và các vấn đề bảo mật
thông tin” là công trình nghiên cứu của tôi, dƣới sự hƣớng dẫn khoa học
của PGS.TS Đoàn Văn Ban, tham khảo các nguồn tài liệu đã đƣợc chỉ rõ
trong trích dẫn và danh mục tài liệu tham khảo. Các nội dung công bố và
kết quả trình bày trong luận văn này là trung thực và chƣa đƣợc ai công bố
trong bất kỳ công trình nào.

Thái nguyên, ngày 10 tháng 10 năm 2010





Nguyễn Thị Hồng Minh
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên





LỜI CẢM ƠN

Trƣớc tiên tôi xin gửi lời cảm ơn chân thành nhất đến thầy
PGS. TS Đoàn Văn Ban đã định hƣớng và nhiệt tình hƣớng dẫn, giúp đỡ tôi rất
nhiều về mặt chuyên môn trong quá trình làm luận văn.
Tôi xin gửi lời biết ơn sâu sắc đến các thầy, các cô đã dạy dỗ và truyền
đạt những kinh nghiệm quý báu cho chúng tôi trong suốt hai năm học cao học
tại khoa Công nghệ thông tin - Đại học Thái Nguyên.
Tôi xin cảm ơn bạn bè, đồng nghiệp và gia đình, những ngƣời luôn gần
gũi động viên, chia sẻ cùng tôi trong suốt thời gian làm luận văn tốt nghiệp.

Thái Nguyên, tháng 11 năm 2010
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




MỤC LỤC
LỜI CAM ĐOAN 1
LỜI CẢM ƠN 2
MỤC LỤC 3
DANH MỤC CÁC TỪ VIẾT TẮT 5
DANH MỤC CÁC HÌNH 6
CÁC KÍ HIỆU DÙNG TRONG LUẬN VĂN 7
Mở đầu 8
1. Lý do chọn đề tài 8
2. Mục tiêu nghiên cứu 9
3. Phƣơng pháp nghiên cứu 10
4. Tổng quan luận văn 10

Chương 1: Một số hệ mật mã khoá thông dụng 12
1.1 Giới thiệu 12
1.2 Hệ mã khoá bí mật 13
Hệ mã DES/ AES 13
1.3 Hệ mã hoá công khai 17
1.3.1 Các khái niệm cơ bản 17
1.3.2 Một số khái niệm toán học cơ sở 18
1.3.3 Các nguyên lý của hệ mật khoá công khai 23
1.3.4 Hệ mã logarithm rời rạc 26
1.3.5 Hệ ElGamal 28
1.3.6 Hệ RSA 29
1.4 Độ an toàn của RSA 34
1.4.1 Tạo vỏ bọc an toàn cho văn bản 35
1.4.2 Xác thực chủ thể 36
1.5 Quản lý khoá 36
1.5.1 Phân phối khoá cho giải thuật mật mã đối xứng 37
1.5.2 Phân phối khoá cho giải thuật mật mã không đối xứng 39
1.5.3 Phát sinh và lƣu giữ khoá bí mật 42
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




1.6 Kết luận chƣơng 45
Chương 2: Chữ ký số 48
2.1 Giới thiệu 48
2.2 Xác thực thông báo và các hàm xác thực 49
2.2.1 Xác thực thông báo 49
2.2.2 Các hàm xác thực 50
2.3 Chữ ký số 57

2.3.1 Chữ ký số dùng mật mã khoá công khai 57
2.3.2 Lƣợc đồ chữ ký số 61
2.4 Các kiểu tấn công vào lƣợt đồ chữ ký 70
2.5 Kết luận chƣơng 70
2.5.1 Tính pháp lý và ứng dụng chữ ký số trong và ngoài nước 71
Chương 3: Cài đặt demo chương trình 76
3.1 Lĩnh vực ứng dụng của chƣơng trình 76
3.2 Chức năng của chƣơng trình 76
3.2.1 Phần bảo mật thông tin 76
3.2.2 Phần chữ ký số 77
3.3 Một số màn hình giao diện của chƣơng trình 77
3.4 Kết luận chƣơng 81

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




DANH MỤC CÁC TỪ VIẾT TẮT
AES Advance Encryption Standard
ASCII American Standard Code for Infornation
Interchange
ANSI American National Standards Institute
CA Certificate Authority
DES Data Encryption Standard
FIPS Federal Information Processing Standard 46
IDEA International Data Encryption Algorithm
IEEE Institute of Electrical and Electronic Engineers
ITU International Telecommunication Union
ISO International Organization for Standardization

MAC Message Authentication Code
MARS Multicast Address Resolution Server
MD5 Message Digest 5
NIST National Institute Of Standards And Technology
OCSP Online Certificate Status Protocol
PKI public-key infrastructures
RSA Rivest, Shamir, Adleman
SHA Secure Hash Algorithm
TCP/IP Transfer Control Protocol/Internet Protocol
URL Uniform Resource Locator

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên






DANH MỤC CÁC HÌNH

Trang
Hình 1.1 Thuật toán giải mã của hệ DES 14
Hình 1.2 Sơ đồ khối nguyên lý hoạt động của mật mã khoá công khai . 25
Hình 1.3 Minh hoạ quá trình mã hoá khoá công khai 31
Hình 1.4 Sơ đồ phân bố khóa của một network với một CKD 36
Hình 1.5 Sơ đồ phân bố khóa của một network với KD 49
Hình 1.6 Sơ đồ kiểm tra khoá 42
Hình 1.7 Sơ đồ bảo vệ khoá 43
Hình 2.1 (a) Lược đồ mã hoá thông báo 48
Hình 2.1(b) Mã hoá khoá công khai: xác thực và chữ ký 49

Hình 2.1(c) Mã hoá khoá công khai: Bí mật, xác thực và chữ ký 49
Hình 2.2 (a) Xác thực thông báo 50
Hình 2.2 (b) Bí mật và xác thực thông báo:Xác thực đối với bản rõ 50
Hình 2.2 (c) Xác thực đối với bản mã 50
Hình 2.3 Sơ đồ nguyên lý hoạt động của chữ ký số 56
Hình 2.4 Sơ đồ tạo và kiểm tra chữ ký số 57
Hình 2.5 Sơ đồ quy trình ký 60
Hình 2.6 Sơ đồ quy trình xác minh chữ ký 60
Hình 2.7 Tổng quan về chữ ký số với khôi phục thông điệp 62
Hình 2.8 Lược đồ tổng quan của chữ ký số với khôi phục thông điệp 62
Hình 3.1 Vấn đề chứng thực thông qua trung gian 75

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên





CÁC KÍ HIỆU DÙNG TRONG LUẬN VĂN


C Bản mã.
 Không gian các bản mã.
D, D
k
Hàm giải mã, hàm giải mã với khoá k.
d, d
A
Số mũ giải mã, số mũ giải mã của cá thể A.
E, E

k
Hàm mã hoá, hàm mã hoá với khoá k.
e, e
A
Số mũ mã hoá, số mũ mã hoá của cá thể A.
ID
A
Định danh của cá thể A.
k Khoá mã.
 Không gian bản rõ
P Bản tin rõ.
 Hàm số hoá bản rõ.   Z
n

(n; e) Cặp số : n, e là các số nguyên dƣơng.
(e, d) Ƣớc chung lớn nhất của hai số nguyên dƣơng e và d.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




Mở đầu


1. Lý do chọn đề tài
Internet ngày nay đã trở thành mạng truyền dữ liệu đƣợc sử dụng phổ biến
trên toàn thế giới. Nó đƣợc sử dụng để truyền thƣ điện tử, truy cập các website,
kết nối tới các trƣờng học, công sở, giám sát hệ thống từ xa, truyền tệp Trong
tƣơng lai, Internet sẽ trở thành môi trƣờng truyền thông phổ cập cho toàn thế
giới.

Rõ ràng tiềm năng của mạng Internet là rất lớn nhƣng nó lại bị hạn chế bởi
thiết kế mở của mình. Nhƣ ta biết giao tiếp qua Internet chủ yếu sử dụng giao
thức TCP/IP. Các gói tin truyền từ điểm nguồn tới điểm đích sẽ đi qua rất nhiều
máy tính trung gian, vì vậy nó rất dễ bị xâm phạm, can thiệp, theo dõi và giả
mạo trên đƣờng truyền và biện pháp bảo mật bằng mật khẩu là không đảm bảo
vì có thể bị nghe trộm hoặc bị dò ra nhanh chóng; vì thế đã chuyển sang xu
hƣớng mã hoá.
Nhờ thông tin đƣợc ngƣời gửi mã hoá trƣớc khi truyền qua mạng Internet
nên dù kẻ trộm có “chặn” cũng không thể đọc. Khi tới đích, ngƣời nhận sẽ sử
dụng một công cụ đặc biệt để giải mã. Phƣơng pháp mã hoá và bảo mật phổ
biến nhất đang đƣợc thế giới áp dụng là chữ ký số (Digital signature). Với chữ
ký số, ngƣời sử dụng có thể mã hoá thông tin một cách hiệu quả, chống giả
mạo, xác thực danh tính ngƣời gửi. Ngoài ra chữ ký số còn là bằng chứng giúp
chống chối cãi nguồn gốc, ngăn chặn ngƣời gửi chối cãi nguồn gốc tài liệu mình
đã gửi.
Đối với các hoạt động trên môi trƣờng mạng ngày càng phát triển nhƣ hiện
nay, chữ ký số là một hình thức để bảo đảm tính pháp lý của các cam kết. Mặt
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




khác, việc giao dịch bằng các thông điệp điện tử nói chung và
giao dịch ở dạng số nói riêng đã đƣợc luật hoá bằng Luật Giao
dịch điện tử; Vì vậy, cần tìm hiểu, nghiên cứu về chữ ký số để
tham mƣu cho lãnh đạo trong việc bảo mật văn bản điện tử.
Nhận thấy tính thiết thực của vấn đề này và đƣợc sự gợi ý của giáo viên
hƣớng dẫn, em đã chọn đề tài “Chữ ký số và các vấn đề bảo mật thông tin”
2. Mục tiêu nghiên cứu
Nghiên cứu các giải pháp mã hoá để bảo mật thông tin và những phƣơng

pháp, kỹ thuật tạo chữ ký số trên các tài liệu, văn bản điện tử để xác thực nguồn
gốc tài liệu hay văn bản của ngƣời gửi.
Xây dựng một chƣơng trình ứng dụng có khả năng bảo mật nội dung thông
tin dƣới dạng văn bản điện tử, tạo chữ ký trên văn bản điện tử cần thiết và
chứng thực chữ ký số trên văn bản điện tử góp phần phục vụ những ngƣời quản
lý đơn vị trao đổi thông tin mật với các đối tác, điều hành công việc từ xa.
Hai mục tiêu trên được thực hiện cụ thể bằng các công việc sau:
- Tìm hiểu những cơ sở toán học, độ phức tạp của thuật toán và các thuật
toán thƣờng đƣợc sử dụng trong các hệ mật mã khoá công khai.
- Nghiên cứu tìm hiểu lý thuyết chung về nguyên lý, hoạt động và ứng
dụng của hệ mật mã khoá công khai.
- Nghiên cứu tìm hiểu cụ thể các hệ mật khoá công khai đang đƣợc sử
dụng nhiều nhất hiện nay bao gồm các hệ sau:
+ Hệ mật mã bí mật
+ Hệ mật mã công khai RSA
- Nghiên cứu tìm hiểu mô hình chữ ký số và ứng dụng trong việc ký các tài
liệu, văn bản điện tử.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




- Tìm hiểu các ngôn ngữ lập trình Visual C
#

.net phục vụ
cho công việc lập trình ứng dụng.
- Trên cơ sở các nghiên cứu đó, đánh giá, so sánh độ an toàn
của các hệ mật mã khoá công khai, từ đó xây dựng một chƣơng
trình ứng dụng có các chức năng tạo khóa, mã hoá hoặc tạo chữ ký, giải mã

thông điệp dựa trên hệ mật mã RSA có độ an toàn và hiệu xuất thực thi cao, có
khả năng ứng dụng vào thực tiễn nhƣ bảo mật nội dung thông tin thƣ tín điện tử,
tạo chữ ký trên các tài liệu, văn bản điện tử cần thiết trao đổi thông qua mạng.
- Nghiên cứu về mật mã khoá công khai RSA, chữ ký số và ứng dụng thuật
toán RSA
- Luận văn sẽ tập trung nghiên cứu và làm rõ hơn về ý tƣởng, cơ sở toán
học, thuật toán và độ phức tạp của mã hoá nói chung và của mã hoá khoá công
khai nói riêng.
3. Phương pháp nghiên cứu
Nghiên cứu các tài liệu về mã hoá, hệ mật mã của các tác giả trong và
ngoài nƣớc, các bài báo, thông tin trên mạng, …
Nghiên cứu ngôn ngữ lập trình hƣớng đối tƣợng Visual C
#

.net để viết
một ứng dụng nhỏ về chữ ký số.
4. Tổng quan luận văn
Luận văn đƣợc trình bày theo hình thức từ trên xuống. Bắt đầu của mỗi
phần đều đƣa ra những khái niệm cơ bản và quy định cho phần trình bày tiếp
sau nhằm mục đích giúp dễ dàng trong khi đọc, dần dần đi sâu vào để thảo luận
rõ hơn những vấn đề liên quan, bao gồm việc bảo vệ an toàn thông tin dữ liệu
dùng mật mã, mật mã khoá công khai RSA và chữ ký số
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




Luận văn đƣợc trình bày trong 3 chƣơng và phần kết luận
Chương 1 Một số hệ mật mã khoá thông dụng
Giới thiệu về hệ mật mã khóa công khai các nguyên lý của nó;

trình bày những khái niệm cơ bản & hệ khoá công khai RSA;
phƣơng pháp xây dựng, ý tƣởng, thuật toán và độ phức tạp của thuật toán.
Chương 2 Chữ kí số
Khái niệm về chữ ký số, sơ đồ chữ ký RSA; Các phƣơng pháp xác thực và
hàm băm mật mã; Chữ ký số, các hình thức ký, xác thức chữ ký số.
Chương 3 Cài đặt demo chương trình
Chƣơng này đề cập đến việc xây dựng và cài đặt ứng dụng chữ ký số và
các chức năng của chƣơng trình từ đó đƣa ra các kết quả thực hiện của
chƣơng trình demo.
Kết luận
Tóm tắt những kết quả đạt đƣợc đồng thời nêu ra những hạn chế của luận
văn và hƣớng phát triển có thể đƣợc theo hƣớng nghiên cứu của luận văn trong
tƣơng lai.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




Chương 1: Một số hệ mật mã khoá thông
dụng


1.1 Giới thiệu
Lý thuyết mật mã và an toàn thông tin đã và đang chiếm lĩnh sự quan tâm
của nhiều ngƣời, điều đó xuất phát từ nhu cầu đảm bảo an toàn thông tin trong
thời đại bùng nổ công nghệ và sự giao lƣu thông tin ngày càng phát triển mạnh
mẽ nhƣ hiện nay. Chƣơng này giới thiệu một số nét cơ bản về thuật toán RSA
dùng cho hệ thống mã hoá công khai và ứng dụng của nó trong chữ ký số [12].
Mật mã đƣợc dùng để bảo vệ bí mật thông tin khi thông tin đƣợc truyền đi.
Giả sử có hai ngƣời muốn trao đổi thông tin với nhau là A và B. Khi đó, chẳng

hạn A muốn gửi thông tin là một văn bản nào đó dƣới dạng điện tử, gọi là bản
rõ cho B, muốn đƣợc bảo mật thì A phải mã hoá cho bản rõ đó, đƣợc bản mã, và
gửi cho B. Nhƣ vậy, giữa A và B phải có sự thoả thuận nào đó về việc dùng
khoá để A có thể mã hoá thông tin để đƣợc bản mã và B giải mã thông tin từ
bản mã nhằm thu đƣợc bản rõ. Khi đó, một ngƣời nào đó không có khoá thì dù
họ có lấy đƣợc bản mã trên đƣờng truyền thì cũng không thể dịch ngƣợc thành
bản rõ.
Ngƣời ta chia các hệ mã làm hai loại chính là hệ mã khoá bí mật và hệ mã
khoá công khai (public-key cipher system). Các hệ mã khoá bí mật thực hiện
việc bảo mật đều dựa trên cơ sở là có một khoá để dùng chung cho việc lập mã
và giải mã. Các hệ mã hoá công khai là trong đó mỗi ngƣời tham gia vào quá
trình truyền tin sẽ có hai khoá khác nhau, một khoá công khai (public key) dùng
để lập mã và một khoá mật (private key) dùng để giải mã. Khoá công khai đƣợc
công khai hoá cho mọi ngƣời, còn khoá mật của mỗi ngƣời đƣợc giữ bí mật.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




Thông tin trƣớc khi gửi đi đƣợc mã hoá bởi khoá công khai của
ngƣời nhận. Chỉ có ngƣời nhận mới có khả năng giải mã bản mã
bằng khoá mật của mình. Độ bảo mật của các hệ mã công khai
rất cao vì đƣợc đảm bảo bằng độ phức tạp tính toán của thao tác
tìm các số nguyên tố lớn và phân tích một số nguyên lớn thành tích các thừa số.
1.2 Hệ mã khoá bí mật
Trong mã khoá bí mật, cả quá trình mã hoá lẫn giải mã chỉ áp dụng một
khoá bí mật vì thế, hệ thống này còn đƣợc gọi là hệ mã đối xứng [4], [5].
Ngƣời gửi sử dụng một phép biến đổi khả nghịch:
f : M –
k

→ C (1.1)
để tạo ra văn bản mã hoá:
C = E(k, M), M

M và C

C (1.2)
Và truyền trên một kênh công cộng cho ngƣời nhận. Khoá k cũng sẽ đƣợc
truyền cho ngƣời nhận để giải mã nhƣng thông qua một kênh an toàn. Vì chỉ
ngƣời nhận hợp lệ biết khoá k mới có thể giải mã C theo phép biến đổi:
f
-1
: C–
k
→ M, (1.3)
để đƣợc bản rõ:
D (k,C) = D (k, E(k,M)) = M, C

C và M

M (1.4)
Có nhiều dạng mã đối xứng khác nhau. Ở đây, tôi sẽ giới thiệu hệ mã đối
xứng DES/AES.
Hệ mã DES/ AES
Mô hình mã khoá bí mật phổ biến nhất đang đƣợc sử dụng là DES – Data
Encryption Standard - đƣợc IBM đề xuất và đƣợc Uỷ ban Chuẩn Quốc gia Mỹ,
hiện đƣợc gọi là Viện quốc gia về chuẩn và công nghệ (NIST), chấp nhận nhƣ
một chuẩn chính thức. Chuẩn này đƣợc đề nghị năm 1977 - viết tắt là FIPS 46
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên





(Federal Information Processing Standard 46). NIST đang đề
nghị thay FIPS và các mở rộng của nó bằng Trip-DES (TDES
hay 3DES) với tên X9.2 trong mô tả của Viện tiêu chuẩn Quốc
gia Mỹ (ANSI) [5]. DES sử dụng một phép hoán vị, thay thế, và
một số toán tử phi tuyến. Các toán tử phi tuyến này đƣợc áp dụng (16 lần) và
từng khối của thông điệp 32 bit; Bản rõ, trƣớc hết, đƣợc chia thành các khối
thông điệp 64 bit

Nhập : M (64 bit)
M‟ = IP(M)
L
0
R
0
+
f
L
1
= R
0
R
1
= L
0 +
f(R
0
,

K
1
)
L
15
= R
14
R
15
= L
14 +
f (R
14
, K
15
)
+
f
R
16
= L
15 +
f (R
15
, K
16
)
L
16
= R

15
C = IP
-1
Kết xuất C (64 bit)
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




Hình 1.1 Thuật toán giải mã của hệ DES


Khoá sử dụng 56 bit nhận đƣợc từ khoá bí mật 64 bit, có
chứa 8 bit kiểm tra chẵn lẻ. Thuật giải giải mã đƣợc thực hiện
theo chiều ngƣợc lại cũng với khoá bí mật đƣợc dùng khi mã hoá. Thuật giải
đƣợc minh hoạ nhƣ trong hình vẽ 1.1, trong đó, phép

ký hiệu phép XOR.
Giải thích
DES nhận vào một thông điệp M 64 bit, một khoá K 56 bit và kết xuất là
một bản mã C 64 bit.
- Đầu tiên, áp dụng một phép hoán vị bit khởi tạo – IP vào M,
cho ra M‟: M‟ = IP(M).
Bƣớc hai, chia M‟ thành 2 phần: nửa trái L
0
32 bit và nửa phải R
0
32 bit.
Bƣớc ba, thi hành các phép toán sau với i = 1, 2,…, 16 (có 16 vòng):
L

i
= R
i-1

R
i
= L
i-1


f (R
i-1
, K
i
)
Trong đó, f là hàm nhận nửa phải 32 bit và một khoá vòng 48 bit, sinh ra
một kết xuất 32 bit. Mỗi khoá vòng K
i
chứa một tập con các khoá 56 bit.
Cuối cùng, sau 16 bƣớc ta đƣợc C‟ = (R
16
,L
16
). C‟ sau đó đƣợc hoán vị
tƣơng ứng với phép hoán vị IP
-1
để đƣợc bản mã cuối cùng C.
Giải mã đƣợc thi hành theo trình tự ngƣợc lại: một phép hoán vị, 16 vòng
XOR sử dụng khoá vòng theo thứ tự ngƣợc lại và phép hoán vị sau cùng phục
hồi lại bản rõ. Tất cả các phép khai triển bit này có thể đƣợc kết hợp vào một

mạch logic chuyên dụng, vì thế DES có thể đƣợc cài đặt rất hiệu quả. Tuy
nhiên, theo nghiêm cứu của Electronic Frontier Foundation thì khả năng thám
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




mã DES 56 bit khoảng 22 giờ. Vì thế, NIST khuyên nên sử dụng
Triple DES (3DES) bao gồm 3 lần mã hoá DES khác nhau.
Đặt E (k, M) và D(k, C) biểu diễn mã hoá và giải mã DES
của M và C với khoá k. Mỗi phép mã/ giải mã TDES là một
phép ghép của các phép mã/giải mã. Các phép toán sau đƣợc sử dụng trong
TDES:
Phép mã hoá TDES: biến đổi một khối M 64 bit thành một khối C 64 bit
đƣợc xác định nhƣ sau:
C = E (K
3
, D (K
2
, E(K
1
, M))) (1.5)
Phép giải mã TDES: biến đổi một khối C 64 bit thành một khối M 64 bit
đƣợc xác định nhƣ sau:
M = D (K
1
, E (K
2
, D(K
3

, C))) (1.6)
Có 3 cách khác nhau tổ hợp từ chùm khoá TDES (K
1
,

K
2
,K
3
):
[1] K
1
,

K
2
,K
3
là các khoá khác nhau.
[2] K
1
,

K
2
là các khoá khác nhau và K
3
= K
1.
[3] K

1
=

K
2
=

K
3

Ví dụ, nếu chọn cách 2, mã hoá và giải mã TDES nhƣ sau:
C = E (K
1
, D (K
2
, E(K
1
, M))) (1.7)
M = D (K
1
, E (K
2
, D(K
1
, C))) (1.8)
Ngày 22 tháng 11 năm 1997, NIST thuộc Bộ Thƣơng mại Mỹ đề nghị các
công ty, các trƣờng đại học và các cơ quan khác nghiên cứu đề xuất chuẩn mã
hoá thế hệ mới sử dụng trong thế kỷ 21. Chuẩn mới này, ký hiệu là AES –
Advance Encryption Standard, sẽ thay thế DES và hỗ trợ kích thƣớc khoá lên
đến 256 bit (và phải miễn phí). Ngày 22 tháng 08 năm 1998, tại hội nghị First

AES Candidate Conference (AES1), NIST thông báo 15 thuật giải AES ứng
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




viên chính thức đƣợc gửi đến từ các nhà nghiên cứu thuộc 12
nƣớc khác nhau. Sau đó, các nhà khoa học thử tìm cách tấn công
các thuật giải mã hoá này, để tìm ra điểm yếu nhất có thể có để
tấn công chúng. Sau đó, tại Second AES Candidate Conference,
tổ chức tại Rôma, Ý, ngày 22-23 tháng 09 năm 1999, NIST thông báo 5 ứng
viên chính thức sau:
- MARS – do công ty IBM phát triển (Mỹ)
- RC6 – do phòng thí nghiệm RSA tại Bedford, Masachusetts (Mỹ).
- Rijndael – do Joan Deamen và Vincent Rijmen (Bỉ).
- Serpent – do Ros Anderson (Anh), Eli Bihan (Israel) và Lars Knudsen
(Na-uy)
- Twofish – do Bruce Schneier, John Kelsey, Doug Whiting, David
Wagner Chris Hall và Niels Ferguson (Mỹ) [5].
1.3 Hệ mã hoá công khai
1.3.1 Các khái niệm cơ bản
Trong một hệ mã hoá công khai (mã không đối xứng), khoá mã hoá e
k

khoá giải mã d
k
khác nhau, e
k
≠ d
k.

Vì e
k
chỉ đƣợc sử dụng để mã hoá nên có thể
đƣợc công bố; nhƣng khoá giải mã d
k
phải giữ bí mật. Để phân biệt với hệ mã bí
mật, ta gọi e
k
là khoá công khai, và d
k
là khoá cá nhân; còn khoá trong hệ mã
đối xứng đƣợc gọi là khoá bí mật. Hệ mã khoá công khai đƣợc xây dựng trên ý
tƣởng hàm một chiều.
Cho các tập hữu hạn S và T. Hàm một chiều:
f : S → T
là hàm khả nghịch thoả:
(i) f dễ thực hiện, nghĩa là, cho x

S, có thể dễ dàng tính đƣợc
y = f (x).
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




(ii) f
-1
, hàm ngƣợc của f, khó thực hiện, nghĩa là, cho y

T, rất khó tính đƣợc x = f

-1
(y).
(iii) f
-1
có thể tính đƣợc khi có thêm một số thông tin.
1.3.2 Một số khái niệm toán học cơ sở
1.3.2.1 Modulo số học và các nhóm Z(p)
*
, G(q)
Phần lớn các tính toán liên quan đến hệ mật mã khoá công khai và tiền
điện tử, chúng ta thƣờng sử dụng tập các số nguyên từ 0 tới p-1, trong đó p là số
nguyên tố lớn. Những số này cùng với hai phép toán, phép nhân * và phép luỹ
thừa ^ sẽ tạo thành các cấu trúc nhóm có những tính chất quan trọng đƣợc sử
dụng để mật mã và bảo mật tiền điện tử [12].
Trƣớc tiên, chúng ta xét một số tính chất quan trọng của tập Z(p)
*
= {1, 2,
3, 4, , p-2, p-1}. Dễ nhận thấy, nếu ta nhân hai số bất kỳ trong tập này với
nhau, sau đó lấy số dƣ theo modulo p, thì kết quả là một số vẫn nằm trong tập
đó. Nghĩa là Z(p)
*
đóng với phép nhân. Mặt khác, nếu ta lấy một số bất kỳ trong
tệp đó, ví dụ số k, khi đó sẽ tồn tại một số khác, ký hiệu là k^-1, sao cho k*k^-1 =
1 mod p. Nghĩa là mọi số nguyên trong tập này đều có phần tử nghịch đảo bội
(multiplicative inverse). Hai tính chất này khẳng định rằng Z(p)
*
là một nhóm
với phép nhân mod p. Tƣơng tự, chúng ta có thể khẳng định nó cũng là nhóm
với phép luỹ thừa, vì phép luỹ thừa thực chất là bội của các phép nhân, ví dụ
2^3 = 2*2*2. (Lưu ý: 0 đƣợc loại khỏi Z(p)

*
bởi vì nó không có phần tử nghịch
đảo bội. Nếu ta bổ sung 0 vào Z(p)
*
, thì chúng ta nhận đƣợc Z(p), chứa tất cả
các số dƣ theo mod p, kể cả 0).
Giả sử ta có Z(11)
*
= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}. Nếu nhân 5 với 8, chúng
ta có 5*8 = 40 = 7 mod 11, tất nhiên 7  Z(11)
*
. Chúng ta cũng có 5*9 = 45 =
1 mod 11, nên 9 là nghịch đảo của 5, hoặc ngƣợc lại. Tƣơng tự 2 và 6 là nghịch
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




đảo của nhau. Vậy Z(11)
*
là đóng với phép nhân và luỹ thừa, các
phần tử đều có phần tử nghịch đảo nên nó là một nhóm.
Ta có thể khẳng định thêm, ước chung lớn nhất, ký hiệu là
gcd của p và bất kỳ số nào trong tập trên luôn là 1, nghĩa là
chúng nguyên tố cùng nhau.
k  Z(p)
*
, gcd(k,p) =1
Trên tập Z(p)
*

, chúng ta có thể định nghĩa thêm phép toán khác, phép chia.
Chúng ta định nghĩa phép chia cho k, ký hiệu là „/‟ nhƣ là phép nhân với phần tử
nghịch đảo của k, đó là k
-1
. Ví dụ 8/k = 8*k
-1
. Nếu k = 9 trong Z(11)
*
,
thì 8/9 = 8*9
-1
= 8*5 = 40 = 7 mod 11.
Tƣơng tự, 3/10 = 3*10
-1
= 3*10 = 30 = 8 mod 11.
Giả sử g là một số của Z(p)
*
. g đƣợc gọi là phần tử sinh (generator) mod p
nếu tập tất cả các luỹ thừa của g tạo ra tập tất cả các phần tử của Z(p)
*
. Nghĩa là
{g
1
mod p, g
2
mod p, . . ., g
p-1
mod p} = Z(p)
*


Từ đó chúng ta thấy Z(p)
*
= {1, 2, , p-1} biểu diễn cho một tập (đƣợc
sắp xếp lại) các số g, g
2
, g
3
, , g
p-1
đƣợc tính theo mod p. Để cho tiện lợi chúng
ta có thể viết mod p ở bên ngoài cặp ngoặc đơn, hoặc có thể bỏ qua:
{g
1
, g
2
, . . ., g
p-1
} mod p = Z(p)
*
hoặc có thể viết ngắn gọn
{g
1
, g
2
, . . ., g
p-1
} = Z(p)
*

Ví dụ, 3 là phần tử sinh của Z(7)

*
, bởi vì
3
1
= 3 mod 7, 3
2
= 2 mod 7, 3
3
= 6 mod 7,
3
4
= 4 mod 7, 3
5
= 5 mod 7, 3
6
= 1 mod 7.
Hiển nhiên là {3, 3
2
, 3
3
, 3
4
, 3
5
, 3
6
} = {1, 2, 3, 4, 5, 6} tính theo mod 7.
Một bộ sinh theo mod p là một tập gồm k phần tử {g1, , gk}, trong đó
các gi, i = 1, 2, …, k là các phần tử sinh khác nhau.
Ví dụ, {3, 5} là bộ sinh của Z(7)

*
, bởi vì cả 3 và 5 đều là phần tử sinh của
Z(7)
*
.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




Dễ dàng kiểm tra đƣợc số 2 không phải là phần tử sinh theo
mod 7, bởi vì
{2, 2
2
, 2
3
}mod 7 = {1, 2, 4}  Z(7)
*
.
Nhƣng tập {1, 2, 4} là tập con của {1, 2, 3, 4, 5, 6} = Z(7)
*
.
Vậy có thể nói 2 phần tử sinh của nhóm con của Z(3)
*
theo mod 3.
Một nhóm đƣợc sinh bởi g đƣợc gọi là nhóm có bậc q mod p nếu q là số
luỹ thừa nhỏ nhất sao cho g
q
= 1 mod p.
Chúng ta xét lại hai phần tử sinh của Z(7)

*
là 3 và 5, bởi vì 6 là số luỹ thừa
nhỏ nhất để 1=3
6
=5
6
mod 7, nên Z(7)
*
là nhóm có bậc 6 mod 7 và không có số
luỹ thừa nào khác có tính chất trên.
Nói chung, với số nguyên tố q, 1< q < p, G(q) đƣợc xem nhƣ là một nhóm
(hoặc nhóm con) bậc q mod p, nếu với phần tử sinh g, 1 < g < p, chúng ta có {g,
g
2
, g
3
, , g
q
} là tập con của Z(p)
*
.
Nhận xét, giả sử g là phần tử của Z(p)
*
và g là phần tử sinh của Z(p)
*
nếu g
là phần tử có bậc là p-1, nghĩa là g^(p-1) = 1, và không có số luỹ thừa nào nhỏ
để bằng 1 theo mod p.
1.3.2.2 Số nguyên tố mạnh (strong prime)
Số nguyên tố p đƣợc gọi là số nguyên tố mạnh nếu những điều kiện sau

đƣợc thoả mãn:
 p - 1 có thừa số nguyên tố lớn, đó là p = a
1
q
1
+ 1 cho a
1
là số nguyên
nào đó và số nguyên tố lớn q
1
.
 q
1
- 1 có thừa số nguyên tố lớn, trong đó q
1
= a
2
q
2
+ 1 cho a
2
là số
nguyên nào đó và q
2
là số nguyên tố lớn.
 p + 1 có thừa số nguyên tố lớn, p = a
3
q
3
-1 cho a

3
là số nguyên nào đó,
q3 là số nguyên tố lớn.
Đôi khi số nguyên tố thoả mãn một tập con của các điều kiện trên cũng
đƣợc gọi là số nguyên tố mạnh.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




Trong lý thuyết số, một số nguyên tố mạnh là một số
nguyên tố p
n
, với n là chỉ số của số nguyên tố thoả mãn:
2
11 


nn
n
PP
P

Thì p
n
đƣợc gọi là số nguyên tố mạnh. Ví dụ, 17 là số
nguyên tố thứ bảy. Số nguyên tố thứ sáu và thứ tám là 13 và 19, áp dụng công
thức trên ta có:
16
2

1913
17 



Nhƣ vậy 17 là một số nguyên tố mạnh.
1.3.2.3 Định lý Fermat nhỏ
Với mọi số nguyên tố dƣơng p, và mọi số nguyên a không chia hết cho p,
ta có
a
p-1
≡ 1 [mod p]
Từ định lý Fermat chúng ta suy ra, các số nguyên 1, 2, 3, . . ., p-1 đều
không chia hết p, do vậy tất cả các luỹ thừa của chúng với p-1 đều bằng 1 mod
p. Ví dụ, trong Z(11)
*
, chúng ta có p - 1 = 10, và
1
10
= 2
10
= 3
10
= 4
10
= 5
10
= 6
10
= 1 mod 11

7
10
= 8
10
= 9
10
= 10
10
= 1 mod 11.
Hệ quả của Định lý Fermat nhỏ: Giả sử p là số nguyên tố dƣơng
(i) Với mọi số nguyên a ta có a
p

≡ a [mod p]
(ii) Nếu e, d nguyên dƣơng và thoả điều kiện e*d ≡ 1 [mod p - 1] thì ta có
(a
e
)
d
= (a
d
)
e
≡ a [mod p].
Nhờ hệ quả này ta có thể mã hoá nhờ số e (bằng cách nâng lên luỹ thừa e)
và giải mã bằng một số khác là d (nâng số bị mã hoá lên luỹ thừa d ta trở lại số
cũ). Ngƣợc lại cũng có thể mã hóa bằng d và giải mã bằng e, đây là tính chất
"khoá bằng chìa này nhưng mở bằng chìa khác”. Nhờ tính chất này mà ta có
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên





thể giao cho mỗi ngƣời một "chìa khoá" riêng [5].
Áp dụng định lý Fermat chúng ta có hệ quả là định lý
Lagrange.
1.3.2.4 Định lý Lagrange
Bậc q của bất kỳ phần tử nào trong nhóm nhân theo mod p đều là thừa số
của p-1 [5].
Xét ví dụ với p = 7, p - 1 = 7 - 1 = 6. Nhƣ ở trên chúng ta đã thấy, 6 là bậc của
3 và 5 trong Z(7)
*
, và tất nhiên 6 chia hết (7-1). Tƣơng tự, 2 và 4 có bậc 3 mod 7,
và 3 chia hết (7-1).
1.3.2.5 Định lý Euler
Định lý Euler là mở rộng của định lý Fermat nhỏ. Thực tế phép mã hoá
theo định lý Fermat rất dễ bị tấn công, ngay cả khi số p rất lớn nếu đã biết số e
thì có thể tìm rất nhanh số d sao cho ed ≡ 1 [mod p - 1]. Định lý Euler có thể
khắc phục điểm này nhờ thay số p bằng tích của 2 hay nhiều số nguyên tố.
Cho trƣớc số nguyên dƣơng n >1. Hàm φ(n) là số lƣợng các số nguyên
dƣơng a nhỏ hơn n mà nguyên tố cùng nhau với n. Chẳng hạn số n = 12 có 4 số
1, 5, 7, 11 thoả điều kiện này nên ta có φ(12) = 4. Trƣờng hợp tổng quát nếu n
phân tích thành các thừa số nguyên tố n = p
1
1
p
2
2
p
k

k
thì ta có:
φ(n) = n




























n
ppp
1
1
1
1
1
1
21
(1.9)
1.3.2.6 Định lý Số dư Trung hoa
Định lý số dƣ Trung hoa [6] là tên gọi do ngƣời phƣơng Tây đặt cho định
lý này. Ngƣời Trung Hoa gọi nó là bài toán Hàn Tín điểm binh. Sử ký Tƣ Mã
Thiên viết rằng khi Hàn Tín điểm quân số, ông cho quân lính xếp hàng 3, hàng
5, hàng 7 rồi báo cáo số dƣ. Từ đó ông tính chính xác quân số đến từng ngƣời.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




Gần đây, định lý số dƣ Trung Quốc có nhiều ứng dụng
trong các bài toán về số nguyên lớn áp dụng vào lý thuyết mật
mã.
Định lý: Giả sử n>1 là số nguyên dƣơng và m
1
, m
2
, , m
n


là n số nguyên lớn hơn 1 đôi một nguyên tố cùng nhau. Đặt M = m
1
m
2
m
n
. Cho
trƣớc các số nguyên a
1
, a
2
, , a
n
khi đó tồn tài duy nhất một số nguyên x
(0x<M) thoả mãn các phƣơng trình đồng dƣ sau đây:
 
 
 










nn
max

max
max
mod

mod
mod
22
11
(1.10)
Bản chất của bài toán Hàn Tín điểm binh là việc giải hệ phƣơng trình đồng
dƣ bậc nhất:
 
 
 










nn
max
max
max
mod


mod
mod
22
11

Hệ phƣơng trình đồng dƣ nói trên có nghiệm duy nhất theo mođun M =
m
1
.m
2
m
k
, trong đó m
1
, m
2
, , m
n
đôi một nguyên tố cùng nhau [12]. Trong
bài toán Hàn Tín n = 3 và m
1
= 3, m
2
= 5, m
3
= 7.
1.3.3 Các nguyên lý của hệ mật khoá công khai
Năm 1976, Diffie và Hellman công bố một phát triển mới mang tên “các
phƣơng hƣớng mới trong mật mã” (new directions in cryptography). Công trình
đề xuất một dạng mới của hệ thống mật mã, trong đó ngƣời gửi và ngƣời nhận

sử dụng các khoá mã khác nhau nhƣng có mối liên hệ với nhau, và một trong
hai khoá đó đƣợc giữ bí mật. Bên nhận dữ liệu giữ một khoá bí mật cho phép

×