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

ứng dụng chữ ký số trong bảo mật thông tin bưu điện tỉnh thái nguyê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.24 MB, 88 trang )




ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG





NGUYỄN THỊ YẾN



ỨNG DỤNG CHỮ KÝ SỐ TRONG BẢO MẬT
THÔNG TIN BƯU ĐIỆN TỈNH THÁI NGUYÊN

Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số: 60 48 01



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



HƯỚNG DẪN KHOA HỌC: PGS.TS ĐOÀN VĂN BAN








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



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 6 năm 2012



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



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 Trƣờng Đại học công nghệ thông tin và truyền thông - Đạ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 6 năm 2012
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
3




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 KÍ HIỆU VÀ CÁC TỪ VIẾT TẮT 6
DANH MỤC CÁC HÌNH 8
MỞ ĐẦU 10
1. Đặt vấn đề 10
2. Đối tƣợng và phạm vi nghiên cứu 10
3. Hƣớng nghiên cứu của đề tài 11
4. Những nội dung nghiên cứu chính 11
5. Tổng quan luận văn 11
CHƢƠNG 1: GIỚI THIỆU VỀ MÃ KHOÁ THÔNG DỤNG 13
1.1. Giới thiệu 13

1.2. Hệ mã khoá bí mật 13
1.3. Hệ mã khoá công khai 19
1.3.1. Các khái niệm cơ bản 19
1.3.2. Một số khái niệm toán học cơ sở 20
1.3.2.1. Modulo số học và các nhóm Z(p)*, G(p) 20
1.3.2.2. Quan hệ “đồng dƣ” 23
1.3.2.3.Số nguyên tố mạnh 25
1.3.2.4. Định lý Fermat nhỏ 26
1.3.2.5. Định lý Lagrange 27
1.3.2.6.Định lý Euler 27
1.3.2.7.Định lý số dƣ trung hoa 27
1.3.3. Các nguyên lý của hệ mật khoá công khai 28
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
4



1.3.4. Một số hệ mã khoá công khai 30
1.3.4.1. Hệ mã khoá công khai RABIN 30
1.3.4.2. Hệ mã khoá công khai ELGAML 35
1.3.4.3. Hệ mã khoá công khai RSA 37
1.4. Độ an toàn của RSA 41
1.5. Quản lý khoá 41
1.5.1. Phân phối khoá cho giải thuật mật mã đối xứng 42
1.5.2. Phân phối khoá cho giải thuật mật mã bất đối xứng 44
1.5.3. Phát sinh và lƣu giữ khoá bí mật 47
1.6. Kết luận chƣơng 50
CHƢƠNG 2: CHỮ KÝ SỐ 53
2.1. Giới thiệu 53
2.2. Xác thực thông báo và các hàm xác thực 54

2.2.1. Xác thực thông báo 54
2.2.2 Các hàm xác thực 55
2.2.2.1. Mã hoá thông báo 55
2.2.2.2. Kỹ thuật xác thực dùng khoá bí mật – MAC 56
2.2.2.3. Các hàm băm 58
2.3. Chữ ký số 61
2.3.1. Khái niệm 61
2.3.1.1. Khái niệm 61
2.3.1.2. Sơ đồ chữ ký số 62
2.3.2. Các ƣu điểm của chữ ký số 62
2.3.3. Quá trình thực hiện chữ ký số khoá công khai 64
2.3.4. Thuật toán chữ ký RSA 66
2.3.4.1. Sơ đồ 66
2.3.4.2. Ví dụ minh hoạ 67
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
5



2.3.4.3. Độ an toàn của chữ ký RSA 67
2.3.5. Thuật toán chữ ký DSA/DSS 69
2.3.5.1. Sơ đồ 69
2.3.5.2. Ví dụ 70
2.3.5.3. Độ an toàn chữ ký DSA 70
2.4. Các kiểu tấn công vào lƣợt đồ chữ ký 77
2.5. Tính pháp lý và ứng dụng chữ ký số trong và ngoài nƣớc. 72
2.5.1. Trong nƣớc 72
2.5.2. Ở một số nƣớc trên thế giới 74
2.5.3. Ứng dụng trong thực tế 75
2.6. Kết luận chƣơng 76

CHƢƠNG 3: CÀI ĐẶT DEMO CHƢƠNG TRÌNH 77
3.1 Lĩnh vực ứng dụng của chƣơng trình 77
3.2. Chức năng của chƣơng trình 78
3.2.1 Phần bảo mật thông tin 78
3.2.1.1 Chức năng mã hóa văn bản 78
3.2.1.2 Chức năng giải mã 79
3.2.2 Phần chữ ký số 79
3.2.2.1 Thực hiện ký văn bản 79
3.2.2.2 Kiểm tra và xác thực chữ ký 80
3.3. Một số màn hình giao diện của chƣơng trình 81
3.3.1 Đăng nhập hệ thống 81
3.3.2 Một số menu chính 81
3.4. Kết luận chƣơng 83
Kết quả và hƣớng phát triển 84
Kết quả đạt đƣợc của luận văn 84
Hƣớng phát triển 85
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
6



DANH MỤC CÁC KÝ HIỆU VÀ CÁC TỪ VIẾT TẮT
AES Advance Encryption Standard
ASCII American Standard Code for Infornation Interchange
ANSI American National Standards Institute
DES Data Encryption Standard
CA Certificate Authority
FIPS Federal Information Processing Standard
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
C Bản mã.
X 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.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
7



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ã.
M Bản rõ
M Không gian bản rõ
P Bản tin rõ.
P Hàm số hoá bản rõ. P M  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
8



DANH MỤC CÁC HÌNH
Trang
Hình 1.1 Quá trình thực hiện cơ chế mã hoá 14
Hình 1.2 Thuật toán giải mã của hệ DES 16
Hình 1.3 Quá trình thực hiện mã hoá khoá công khai 19
Hình 1.4 Sơ đồ khối nguyên lý hoạt động của mật mã khoá công khai. 29
Hình 1.5 Sơ đồ biểu diễn thuật toán mã hóa 37
Hình 1.6 Minh hoạ quá trình mã hoá khoá công khai 39
Hình 1.7 Sơ đồ phân bố khóa của một mạng với một CKD 43
Hình 1.8 Sơ đồ phân bố khóa của một network với KD 46
Hình 1.9 Sơ đồ kiểm tra khoá 49
Hình 1.10 Sơ đồ bảo vệ khoá 50

Hình 2.1 (a) Lược đồ mã hoá thông báo 55
Hình 2.1(b) Mã hoá khoá công khai: xác thực và chữ ký 55
Hình 2.1(c) Mã hoá khoá công khai: Bí mật, xác thực và chữ ký 56
Hình 2.2 (a) Xác thực thông báo 57
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õ 57
Hình 2.2 (c) Xác thực đối với bản mã 57
Hình 2.3 Sơ đồ mô tả quá trình ký và gửi các tệp văn bản 64
Hình 2.4 Sơ đồ mô tả quá trình nhận các tệp văn bản 65
Hình 3.1 Chức năng tạo cặp khoá mã hoá 78
Hình 3.2 Nội dung văn bản sau khi mã hoá 78
Hình 3.3 Nội dung văn bản sau khi giải mã 79
Hình 3.4 Chọn tệp văn bản để ký 79
Hình 3.5 Thông báo đã ký văn bản 80
Hình 3.6 Xác lập thông tin người ký 80
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
9



Hình 3.7 Xác thực chữ ký 81
Hình 3.8 Đăng nhập hệ thống 81
Hình 3.9 Menu thao tác với tệp văn bản 81
Hình 3.10: Menu chỉnh sửa văn bản 82
Hình 3.11: Menu Định dạng văn bản 82
Hình 3.12: Menu Mã hoá và giải mã dữ liệu 82
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
10




MỞ ĐẦU
1. Đặt vấn đề:
Hiện nay, các giao dịch điện tử ngày càng trở nên phổ biến. Để bảo đảm an
toàn cho các giao dịch này, cần phải sử dụng đến giải pháp chữ ký số. Chữ ký
số đƣợc sử dụng để bảo đảm tính bảo mật, tính toàn vẹn, tính chống chối bỏ của
các thông tin giao dịch trên mạng Internet. Chữ ký số tƣơng đƣơng với chữ ký
tay nên có giá trị sử dụng trong các ứng dụng giao dịch điện tử với máy tính và
mạng Internet cần tính pháp lý cao.
Hơn nữa, ngoài việc là một phƣơng tiện điện tử đƣợc pháp luật thừa nhận về
tính pháp lý, chữ ký số còn là một công nghệ mã hóa và xác thực rất mạnh. Nó
có thể giúp bảo đảm an toàn, bảo mật cao cho các giao dịch trực tuyến, nhất là
các giao dịch chứa các thông tin liên quan đến tài chính.
Việc ứng dụng chữ ký số sẽ đem lại cho doanh nghiệp, tổ chức rất nhiều lợi
ích nhƣ: Tiết kiệm chi phí giấy tờ, thời gian luân chuyển trong hoạt động quản
lý công văn, giấy tờ, thƣ điện tử; Giúp đẩy nhanh các giao dịch qua mạng trong
khi vẫn đảm bảo độ an toàn và bảo mật thông tin…Nhận thấy sự thiết thực của
chữ ký số trong ngành Bƣu chính Viễn thông nhƣ chuyển công văn giấy tờ, giao
dịch giữa các giao dịch viên, kiểm soát viên với Bƣu điện Tỉnh, với Tập
Đoàn…và đƣợc sự gợi ý của giáo viên hƣớng dẫn, em đã chọn đề tài “Ứng dụng
chữ ký số trong bảo mật thông tin bƣu điện tỉnh Thái Nguyên” làm đề tài cho
luận văn thạc sỹ của mình.
2. Đối tƣợng và phạm vi nghiên cứu:
* Đối tượng nghiên cứu:
+ Tìm hiểu về các giải pháp mã hoá để bảo mật thông tin.
+ Nghiên cứu 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ử.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
11




* Phạm vi nghiên cứu:
Luận văn tập trung nghiên cứu các kiến thức có liên quan, các cơ sở lý
thuyết: về một số giải pháp mã hoá và những phƣơng pháp, kỹ thuật tạo chữ ký
số để ứng dụng trong bảo mật thông tin Bƣu điện Tỉnh.
3. Hƣớng nghiên cứu của đề tài:
Luận văn tập trung nghiên cứu và làm rõ hơn về ý tƣởng về các hệ mật mã
khoá thông dụng và những phƣơng pháp, kỹ thuật tạo chữ ký số.
4. Những nội dung nghiên cứu chính:
+ Nghiên cứu về các giải pháp mã hoá để bảo mật thông tin.
+ Nghiên cứu 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ử.
+ Nghiên cứu về một ngôn ngữ lập trình để viết một ứng dụng nhỏ về chữ
ký số.
5. 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ố
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ố
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
12




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
13



CHƢƠNG 1: GIỚI THIỆU VỀ MÃ KHOÁ THÔNG DỤNG
1.1. Giới thiệu
Mật mã học (crypto) là một nghệ thuật nhằm giấu thông tin, bằng cách
chuyển đổi (encrypt) thông tin thành dạng thông tin không đọc đƣợc (cipher
text). Chỉ có những ngƣời giữ khóa (key) bí mật mới có thể giải mã (decrypt)
thông tin thành dạng thông tin có thể hiểu đƣợc (plain text). Thông tin đôi khi bị
giải mã mà không cần biết khóa bí mật. Ngành học nghiên cứu về việc bẻ khóa
(attack/crack/hack) này còn gọi là cryptanalysis [12].
Mã hoá dữ liệu là mã hóa với mục đích làm cho dữ liệu không thể đọc đƣợc
bởi bất cứ ai, ngoại trừ những ai đƣợc phép đọc. Mã hóa sử dụng thuật toán và
khóa để biến đổi dữ liệu từ hình thức đơn giản rõ ràng (plain hay cleartext) sang
hình thức mật mã vô nghĩa (code hay ciphertext). Chỉ có những ai có thông tin
giải mã thì mới giải mã và đọc đƣợc dữ liệu.
Có nhiều cách phân loại hệ mã hoá, nếu ta phân loại mã hoá theo đặc trƣng

của khoá thì hệ mã hoá đƣợc chia thành hai loại đó là:
- Hệ mã hóa khóa đối xứng, hay còn gọi là Hệ mã khoá bí mật (có khoá
riêng và khoá chung giống nhau).
- Hệ mã hóa khóa phi đối xứng, hay còn gọi là Hệ mã khoá công khai (Khóa
công khai có khoá riêng và khoá chung khác nhau).
1.2. Hệ mã khoá bí mật
Hệ mã hoá bí mật hay còn gọi là Hệ mã khoá đối xứng là Hệ mã hóa mà
biết đƣợc khóa lập mã thì có thể “dễ dàng” tính đƣợc khóa giải mã và ngƣợc lại
[4],[5].
Quá trình thực hiện cơ chế mã hoá nhƣ sau:
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
14




Hình 1.1 Quá trình thực hiện cơ chế mã hoá
Hình 1.1 mô tả quá trình trao đổi thông tin giữa bên gửi và bên nhận
thông qua việc sử dụng phƣơng pháp mã hoá đối xứng. Trong quá trình này, thì
thành phần quan trọng nhất cần phải đƣợc giữ bí mật chính là khoá. Việc trao
đổi, thoả thuận về thuật toán đƣợc sử dụng trong việc mã hoá có thể tiến hành
một cách công khai, nhƣng bƣớc thoả thuận về khoá trong việc mã hoá và giải
mã phải tiến hành bí mật. Chúng ta có thể thấy rằng thuật toán mã hoá đối xứng
sẽ rất có lợi khi đƣợc áp dụng trong các cơ quan hay tổ chức đơn lẻ. Nhƣng nếu
cần phải trao đổi thông tin với một bên thứ ba thì việc đảm bảo tính bí mật của
khoá phải đƣợc đặt lên hàng đầu.
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)
Trong đó: M là không gian bản rõ
C: Bản mã
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)
Bản mã hoá
Bản rõ
Bản rõ
Giải mã
Mã hoá
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
15




Mã hoá đối xứng có thể đƣợc phân thành 02 loại:
1. Loại thứ nhất tác động trên bản rõ theo từng nhóm bits. Từng nhóm bits
này đƣợc gọi với một cái tên khác là khối (Block) và thuật toán đƣợc áp dụng
gọi là Block Cipher. Theo đó, từng khối dữ liệu trong văn bản ban đầu đƣợc
thay thế bằng một khối dữ liệu khác có cùng độ dài. Đối với các thuật toán ngày
nay thì kích thƣớc chung của một Block là 64 bits [5].
2. Loại thứ hai tác động lên bản rõ theo từng bit một. Các thuật toán áp
dụng đƣợc gọi là Stream Cipher. Theo đó, dữ liệu của văn bản đƣợc mã hoá
từng bit một. Các thuật toán mã hoá dòng này có tốc độ nhanh hơn các thuật
toán mã hoá khối và nó thƣờng đƣợc áp dụng khi lƣợng dữ liệu cần mã hoá
chƣa biết trƣớc.
Một số thuật toán nổi tiếng trong mã hoá đối xứng là: DES, Triple
DES(3DES), RC4, AES…
+ DES (Data Encryption Standard). Với DES, bản rõ (Plaintext) đƣợc mã
hoá theo từng khối 64 bits và sử dụng một khoá là 64 bits, nhƣng thực tế thì chỉ
có 56 bits là thực sự đƣợc dùng để tạo khoá, 8 bits còn lại dùng để kiểm tra tính
chẵn, lẻ. DES là một thuật toán đƣợc sử dụng rộng rãi nhất trên thế giới. Hiện
tại DES không còn đƣợc đánh giá cao do kích thƣớc của khoá quá nhỏ 56 bits,
và dễ dàng bị phá vỡ.
+ Triple DES (3DES): 3DES cải thiện độ mạnh của DES bằng việc sử
dụng một quá trình mã hoá và giải mã sử dụng 3 khoá. Khối 64-bits của bản rõ
đầu tiên sẽ đƣợc mã hoá sử dụng khoá thứ nhất. Sau đó, dữ liệu bị mã hóa đƣợc
giải mã bằng việc sử dụng một khoá thứ hai. Cuối cùng, sử dụng khoá thứ ba và
kết quả của quá trình mã hoá trên để mã hoá.
C = EK3(DK2(EK1(P)))
P = DK1(EK2(DK3(C)))
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
16




+ AES (Advanced Encryption Standard) đƣợc sử dụng để thay thế cho
DES. Nó hỗ trợ độ dài của khoá từ 128 bits cho đến 256 bits.
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.2, trong đó, phép

ký hiệu phép XOR.

Hình 1.2 Thuật toán giải mã của hệ DES
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
17



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.
Bƣớc 1: Á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 2: 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 3: 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
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)
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
18



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/11/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 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/08/1998, tại hội nghị First AES Candidate Conference
(AES1), NIST thông báo 15 thuật giải AES ứng 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 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) Lars Knudsen (Na-uy)

- Twofish – do Bruce Schneier, John Kelsey, Doug Whiting, David Wagner
Chris Hall và Niels Ferguson (Mỹ)[5].
Hệ mã hoá khoá đối xứng có ƣu điểm và nhƣợc điểm sau:
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
19



a. Ƣu điểm
Giải mã và mã hoá “nhanh” hơn hệ mã hoá khoá công khai
b. Nhƣợc điểm
- Hệ mã hoá khoá đối xứng “không an toàn” so với hệ mã hoá khoá công
khai bởi lý do sau:
Ngƣời mã hoá và ngƣời giải mã phải có “chung” một khoá. Khóa phải đƣợc
giữ bí mật tuyệt đối, vì biết khoá này “dễ” xác định đƣợc khoá kia và ngƣợc lại.
- Vấn đề thỏa thuận khoá và quản lý khóa chung là khó khăn và phức tạp.
Ngƣời gửi và ngƣời nhận phải luôn thống nhất với nhau về khoá. Việc thay đổi
khoá là khó và dễ bị lộ. Khóa chung phải đƣợc gửi cho nhau trên kênh an toàn.
Ngoài ra với hệ mã hoá khoá đối xứng không thể thực hiện chữ ký điện tử
(sẽ đƣợc trình bày trong chƣơng 2) do chỉ có một khoá chung duy nhất. Vì vậy,
không thể dùng trong giao dịch điện tử.Chính vì lý do trên mà hệ mã hoá khoá
công khai đƣợc sử dụng rộng rãi hơn hệ mã khoá đối xứng.
1.3. Hệ mã khoá công khai
1.3.1. Các khái niệm cơ bản
Hệ mã hoá khoá công khai là hệ mã hoá có khoá lập mã và khoá giải mã
khác nhau, biết đƣợc khoá này “khó” mà tính đƣợc khoá kia [4],[5],[6].
Hệ mã hoá này đƣợc gọi là hệ mã hoá khoá công khai vì khoá lập mã
đƣợc công khai ( gọi là khoá công khai – Public key), Khoá giải mã giữ bí mật
( gọi là khoá riêng – Private key). Điều quan trọng đối với hệ thống là không
thể tìm ra khóa bí mật nếu chỉ biết khóa công khai.






Hình 1.3. Quá trình thực hiện mã hoá khoá công khai
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
20



Quá trình truyền và sử dụng mã hoá khoá công khai đƣợc thực hiện nhƣ sau:
 Bên gửi yêu cầu cung cấp hoặc tự tìm khoá công khai của bên nhận trên
một server chịu trách nhiệm quản lý khoá
 Sau đó hai bên thống nhất thuật toán dùng để mã hoá dữ liệu, bên gửi sử
dụng khoá công khai của bên nhận cùng với thuật toán đã thống nhất để
mã hoá thông tin đƣợc gửi đi
 Khi nhận đƣợc thông tin đã mã hoá, bên nhận sử dụng khoá bí mật của
mình để giải mã và lấy ra thông tin ban đầu.
Vậy là với sự ra đời của Mã hoá công khai thì khoá đƣợc quản lý một cách
linh hoạt và hiệu quả hơn. Ngƣời sử dụng chỉ cần bảo vệ khoá bí mật.
Do đó hệ mã hoá khoá công khai có ƣu điểm và nhƣợc điểm sau:
a. Ƣu điểm
 Đơn giản trong việc lƣu chuyển khóa: Chỉ cần đăng ký một khóa công
khai và mọi ngƣời sẽ lấy khóa này về để trao đổi thông tin với ngƣời đăng
ký. Vì vậy không cần kênh bí mật để truyền khóa.
 Mỗi ngƣời chỉ cần một cặp khóa công khai – khóa bí mật là có thể trao
đổi thông tin với tất cả mọi ngƣời.
 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ử

b. Nhƣợc điểm
Mã hóa và giải mã chậm hơn hệ mã hóa khóa đối xứng.
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ỹ
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
21



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
đả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, p là nguyên tố.

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.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
22



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} theo mod 7.
Một bộ sinh theo mod p là một tập gồm k phần tử {g
1
, , g
k
}, trong đó các
g
i
, 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)
*
.
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.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
23



1.3.2.2 Quan hệ “đồng dƣ”
a. Khái niệm

Cho các số nguyên a, b, m (m > 0). Ta nói rằng a và b “đồng dư” với
nhau theo modulo m, nếu chia a và b cho m, ta nhận đƣợc cùng một số dƣ.
Ký hiệu: a ≡ b (mod m).
Ví dụ:
17 ≡ 5 (mod 3) vì chia 17 và 5 cho 3, đƣợc cùng số dƣ là 2.
Nhận xét: Các mệnh đề sau đây là tƣơng đƣơng:
1). a ≡ b (mod m)
2). m \ (a – b)
3). Tồn tại số nguyên t sao cho a = b + m t
Chứng minh:
1)  2): Nếu có 1), thì theo định nghĩa: a, b chia cho m, phải có cùng số
dƣ, do đó: a = mq
a
+ r; b = mq
b
+ r; Suy ra (a – b) = m (q
a
- q
b
), tức là m \ (a - b).
2)  3): Nếu có 1), tức là m\(a – b). Nghĩa là có t

Z sao cho (a - b) = mt
hay a= b+ mt
3)  1): Nếu có 1), tức là tồn tại số nguyên t sao cho a = b + m t.
Lấy a chia cho m, giả sử thƣơng là q
a
và dƣ r, hay a = mq
a
+ r (0 ≤ r <m),

do đó: b + m t = a = mq
a
+ r hay b = m(q
a
- t) + r (0 ≤ r < m). Điều đó chứng
tỏ khi chia a và b cho m đƣợc cùng số dƣ r, hay a ≡ b (mod m).
b. Các tính chất của quan hệ “đồng dƣ”
+) Quan hệ “đồng dƣ” là quan hệ tƣơng đƣơng trong Z:
Với mọi số nguyên dƣơng m ta có:
a ≡ a (mod m) với mọi a

Z; (tính chất phản xạ).
a ≡ b (mod m) thì b ≡ a (mod m); (tính chất đối xứng).
a ≡ b (mod m) và b ≡ c (mod m) thì a ≡ c (mod m); (tính chất bắc cầu).
+) Tổng hay hiệu các “đồng dƣ”:
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
24



(a+b) (mod n)  [(a mod n) + (b mod n)] (mod n)
(a- b) (mod n)  [(a mod n) - (b mod n)] (mod n)
Tổng quát:
Có thể cộng hoặc trừ từng vế nhiều đồng dƣ thức theo cùng một modulo
m, ta đƣợc một đồng dƣ thức theo cùng modulo m, tức là:
Nếu a
i
≡ b
i
(mod m) , i = 1 k, thì

11
(mod )
kk
i i i i
ii
t a t b m



với t
i
= ± 1.
+) Tích các “đồng dƣ”:
(a* b) (mod n)  [(a mod n) * (b mod n)] (mod n)
Tổng quát:
Có thể nhân từng vế nhiều đồng dƣ thức theo cùng một modulo m,
ta đƣợc một đồng dƣ thức theo cùng modulo m, tức là:
Nếu a
i
≡ b
i
(mod m) với i=1 k, thì ta có:
11
(mod )
kk
ii
ii
a b m





Hệ quả:
* Có thể cộng hoặc trừ cùng một số vào hai vế của một đồng dƣ thức.
* Có thể chuyển vế các số hạng của đồng dƣ thức bằng cách đổi dấu các số
hạng đó.
* Có thể cộng vào một vế của đồng dƣ thức một bội của modulo:
a ≡ b (mod m) → a+km ≡ b (mod m) với mọi k

Z
* Có thể nhân hai vế của một đồng dƣ thức với cùng một số:
a ≡ b (mod m) → ac ≡ bc (mod m) với mọi c

Z
* Có thể nâng lên lũy thừa bậc nguyên không âm cho 2 vế của một đồng dƣ
thức: a ≡ b (mod m) → a
n
≡ b
n
(mod m) với mọi n

Z
+

* Có thể chia 2 vế đồng dƣ thức cho một ƣớc chung nguyên tố với modulo:
c\a, c\b, (c,m)=1, a ≡ b (mod m)  a/c ≡ b/c (mod m)
* Có thể nhân 2 vế đồng dƣ thức và modulo với cùng một số nguyên dƣơng,
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

×