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

Do an ung dung chu ky so trong bao mat thong tin buu dien tinh thai nguyen

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.23 MB, 87 trang )

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

EBOOKBKMT.COM


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



EBOOKBKMT.COM


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
EBOOKBKMT.COM


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
EBOOKBKMT.COM


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
EBOOKBKMT.COM


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, Dk

Hàm giải mã, hàm giải mã với khoá k.

d, dA

Số mũ giải mã, số mũ giải mã của cá thể A.

E, Ek

Hàm mã hoá, hàm mã hoá với khoá k.

EBOOKBKMT.COM


7

e, eA


Số mũ mã hoá, số mũ mã hoá của cá thể A.

IDA

Đị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  Zn

(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.

EBOOKBKMT.COM


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

EBOOKBKMT.COM


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

EBOOKBKMT.COM


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ử.
EBOOKBKMT.COM


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ố

EBOOKBKMT.COM


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.

EBOOKBKMT.COM


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:

EBOOKBKMT.COM


14

Mã hoá
Bản rõ

Giải mã
Bản mã hoá

Bản rõ

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)

EBOOKBKMT.COM


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)))

EBOOKBKMT.COM



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.
Nhập : M (64 bit)
M’ = IP(M)

L0

R0

+

f

L1 = R0

R1 = L0 + f(R0, K1)

L15 = R14

R15 = L14 + f (R14, K15)

+


f

R16 = L15 + f (R15, K16)

L16 = R15

C = IP-1
Kết xuất C (64 bit)
Hình 1.2 Thuật toán giải mã của hệ DES
EBOOKBKMT.COM


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 L0 32 bit và nửa phải R0 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):
Li = Ri-1
Ri = Li-1  f (Ri-1, Ki)
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 Ki chứa một tập con các khoá 56 bit.
Cuối cùng, sau 16 bước ta được C’ = (R16 ,L16). 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 (K3, D (K2, E(K1, M)))

EBOOKBKMT.COM

(1.5)


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 (K1, E (K2, D(K3, C)))

(1.6)

Có 3 cách khác nhau tổ hợp từ chùm khoá TDES (K1, K2 ,K3):
1. K1, K2 ,K3 là các khoá khác nhau.
2. K1, K2 là các khoá khác nhau và K3 = K1.
3. K1 = K2 = K3
Ví dụ, nếu chọn cách 2, mã hoá và giải mã TDES như sau:
C = E (K1, D (K2, E(K1, M)))


(1.7)

M = D (K1, E (K2, D(K1, 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:
EBOOKBKMT.COM


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
EBOOKBKMT.COM


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ỹ

EBOOKBKMT.COM


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ụ 23
= 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.
EBOOKBKMT.COM



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à
{g1 mod p, g2 mod p, . . ., gp-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, g2, g3, ... , gp-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:
{g1 , g2, . . ., gp-1} mod p = Z(p)* hoặc có thể viết ngắn gọn
{g1 , g2, . . ., gp-1} = Z(p)*
Ví dụ, 3 là phần tử sinh của Z(7)*, bởi vì
31 = 3 mod 7, 32 = 2 mod 7, 33 = 6 mod 7,
34 = 4 mod 7, 35 = 5 mod 7, 36 = 1 mod 7.
Hiển nhiên là {3, 32, 33, 34, 35, 36} = {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ử {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)*.
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 gq = 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=36=56 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,
g2, g3, ..., gq} 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à gp-1 = 1, và không có số luỹ thừa nào nhỏ để
bằng 1 theo mod p.
EBOOKBKMT.COM



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 = mqa + r; b = mqb + r; Suy ra (a – b) = m (qa - qb), 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à qa và dư r, hay a = mqa + r

(0 ≤ r
do đó: b + m t = a = mqa + r hay b = m(qa - 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ư”:
EBOOKBKMT.COM


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 ai ≡ bi (mod m) , i = 1...k,


thì

k

k

i 1

i 1

 ti ai   tibi (mod m) với ti = ± 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 ≡ bi (mod m) với i=1..k, thì ta có:

k

k

i 1

i 1

 ai   bi (mod 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) → an ≡ bn (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,
EBOOKBKMT.COM


25

Nếu a ≡ b (mod m), c >0

 ac ≡ bc (mod mc)


* Có thể chia 2 vế đồng dư thức và modulo cho cùng một số nguyên dương
là ước chung của chúng:
Nếu c \ (a, b, m)  a/c ≡ b/c (mod m/c)
* a ≡ b (mod m)  a ≡ b (mod k) với k \ m
* a ≡ b (mod m)  gcd(a, m) = gcd(b, m)
Các lớp thặng dư
Quan hệ “đồng dư” theo modulo m trên tập Z (tập các số nguyên) là một
quan hệ tương đương (vì có tính chất phản xạ, đối xứng, bắc cầu), do đó nó tạo
ra trên tập Z một phân hoạch gồm các lớp tương đương: hai số nguyên thuộc
cùng một lớp tương đương khi và chỉ khi chúng có cùng một số dư khi chia cho
m.
Mỗi lớp tương đương đại diện bởi một số duy nhất trong tập Zm ={0,
1,…, m-1} là số dư khi chia các số trong lớp cho m, ký hiệu một lớp được đại
diện bởi số a là [a]m .
Như vậy [a]m = [b]m  a ≡ b (mod m)
Vì vậy ta có thể đồng nhất Zm với tập các lớp tương đương theo modulo m.
Zm ={0, 1, 2,…, m-1} được gọi là tập các “thặng dư đầy đủ” theo modulo m.
Mọi số nguyên bất kỳ đều có thể tìm được trong Zm một số đồng dư với mình
theo modulo m.
1.3.2.3 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 thoả mãn những điều kiện:
 p - 1 có thừa số nguyên tố lớn, đó là p = a1q1 + 1 cho a1 là số nguyên nào
đó và số nguyên tố lớn q1.
 q1 - 1 có thừa số nguyên tố lớn, trong đó q1 = a2q2 + 1 cho a2 là số nguyên
nào đó và q2 là số nguyên tố lớn.

EBOOKBKMT.COM



×