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

Nghiên cứu giải pháp xây dựng và phát triển chữ ký số dùng trong các cơ quan 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.43 MB, 69 trang )

i
..

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

DƢƠNG THỊ HỒI THU

NGHIÊN CỨU GIẢI PHÁP XÂY DỰNG VÀ PHÁT
TRIỂN CHỮ KÝ SỐ DÙNG TRONG CÁC CƠ QUAN
TỈNH THÁI NGUYÊN

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

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




ii

LỜI CẢM ƠN
Để hồn thành chƣơng trình cao học và viết luận văn này, tôi đã nhận
đƣợc sự hƣớng dẫn, giúp đỡ và góp ý nhiệt tình của q thầy cô trƣờng Đại
học Công nghệ thông tin - Truyền thông, Đại học Thái Nguyên.
Trƣớc hết, tôi xin chân thành cảm ơn đến q thầy cơ trƣờng Đại học
Cơng nghệ thơng tin - Truyền thông, đặc biệt là những thầy cô đã tận tình dạy
bảo cho tơi suốt thời gian học tập tại trƣờng.
Tôi xin gửi lời biết ơn sâu sắc đến thầy giáo TS. Nguyễn Văn Tảo ngƣời


đã dành rất nhiều thời gian, tâm huyết và sự tận tình giúp đỡ, hƣớng dẫn cho tơi
trong suốt q trình nghiên cứu và giúp tơi hồn thành luận văn.
Tơi xin bày tỏ lịng biết ơn tới gia đình, bạn bè và những ngƣời thân đã
động viên khích lệ tinh thần và giúp đỡ để tơi hồn thành luận văn này.
Mặc dù tơi đã có nhiều cố gắng hồn thiện luận văn bằng tất cả sự nhiệt
tình và năng lực của mình, tuy nhiên khơng thể tránh khỏi những thiếu sót, rất
mong nhận đƣợc những đóng góp q báu của q thầy cơ và các bạn.
Thái Nguyên, ngày 20 tháng 9 năm 2012
Học viên

Dƣơng Thị Hồi Thu

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




iii

LỜI CAM ĐOAN
Tơi xin cam đoan, tồn bộ nội dung liên quan tới đề tài đƣợc trình bày
trong luận văn là bản thân tơi tự tìm hiểu và nghiên cứu, dƣới sự hƣớng dẫn
khoa học của Thầy giáo TS. Nguyễn Văn Tảo.
Các tài liệu, số liệu tham khảo đƣợc trích dẫn đầy đủ nguồn gốc. Tôi
xin chịu trách nhiệm về lời cam đoan của mình.
Học viên thực hiện

Dương Thị Hồi Thu

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





iv

MỤC LỤC
MỞ ĐẦU .......................................................................................................... 1
1.1 CÁC KHÁI NIỆM CƠ BẢN ................................................................ 2
1.2 MỘT SỐ KHÁI NIỆM TOÁN HỌC CƠ SỞ ....................................... 3
1.2.1 Phép đồng dƣ ................................................................................. 3
1.2.2 Hàm phi-Euler................................................................................ 3
1.2.3 Định lý Femat và các mở rộng....................................................... 4
1.2.4 Định lý Trung Quốc về phần dƣ .................................................... 4
1.3 GIỚI THIỆU HỆ MÃ KHĨA CƠNG KHAI ....................................... 5
1.4 HỆ MẬT MÃ RSA ............................................................................... 7
1.4.1 Q trình tạo khóa, mã hóa và giải mã .......................................... 8
1.4.2 Độ an toàn của hệ RSA .................................................................. 9
1.5 HỆ MẬT MÃ ELGAMAL ................................................................. 10
1.5.1 Quá trình tạo khóa, mã hóa, giải mã ............................................ 11
1.5.2 Độ an tồn của mật mã ElGamal: ................................................ 12
CHƢƠNG 2 - CHỮ KÝ SỐ......................................................................... 13
2.1 GIỚI THIỆU CHUNG VỀ CHỮ KÝ SỐ ........................................... 13
2.1.1 Khái niệm về chữ ký số: .............................................................. 13
2.1.2 Các ƣu điểm của chữ ký số: ............................................................. 13
2.1.3 Phân loại chữ ký số: ..................................................................... 15
2.1.4 Sơ đồ tổng quan của một hệ thống chữ ký số .............................. 16
2.2 CHỮ KÝ SỐ VÀ HÀM BĂM ............................................................ 17
2.2.1 Khái niệm về hàm băm: ............................................................... 17
2.2.2 Hàm băm MD5 (Message-Digest algorithm 5) ........................... 17

2.3 CHỮ KÝ SỐ DÙNG MẬT MÃ KHĨA CƠNG KHAI ..................... 20
2.3.1 Sơ đồ chữ ký số RSA ................................................................... 20
2.3.2 Sơ đồ chữ ký ElGamal ................................................................. 22

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




v

2.3.3 Chuẩn chữ ký số........................................................................... 25
2.4 XÁC THỰC VÀ CÁC PHƢƠNG PHÁP XÁC THỰC ..................... 28
2.4.1 Vấn đề xác thực: .......................................................................... 28
2.4.2 Các phƣơng pháp xác thực: ......................................................... 29
2.5 TRIỂN KHAI CHỮ KÝ SỐ TRONG THỰC TẾ .............................. 31
CHƢƠNG 3. ỨNG DỤNG MÃ HÓA VÀ CHỮ KÝ SỐ TRONG TRAO
ĐỔI VĂN BẢN .............................................................................................. 35
3.1. MƠ HÌNH HỆ THỐNG ..................................................................... 35
3.2 XÂY DỰNG CÁC MƠĐUN .............................................................. 36
3.2.1 Tạo khóa: ..................................................................................... 36
3.2.2 Mã hóa và tạo chữ ký cho file tài liệu: ........................................ 37
3.2.3 Giải mã và xác thực chữ ký: ........................................................ 39
3.3 GIAO DIỆN MỘT SỐ CHỨC NĂNG CHÍNH CỦA CHƢƠNG TRÌNH.
................................................................................................................... 41

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





vi

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT

CA: Certificate Authority
FIPS: Federal information Processing Standard
MAC: Message Digest
NIST: National Institute Of Standards Anh Technology
RSA: Rivest, Shamir, Adleman

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




vii

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 1.1 : Mơ hình mật mã khóa cơng khai
Hình 2.1: Hàm MAC
Hình 3.1: Sơ đồ q trình tạo khóa
Hình 3.2 : Sơ đồ q trình ký và mã hóa file dữ liệu
Hình 3.3: Sơ đồ quá trình xác thực chữ ký và giải mã file dữ liệu

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





1
MỞ ĐẦU
Trong sự phát triển của xã hội loài ngƣời, kể từ khi có sự trao đổi thơng
tin, an tồn thông tin trở thành một nhu cầu gắn liền với nó nhƣ hình với
bóng. Đặc biệt trong thời đại mà thƣơng mại điện tử đang lên ngơi thì việc có
đƣợc các công cụ đầy đủ để đảm bảo cho sự an tồn trao đổi thơng tin liên lạc
là vơ cùng cần thiết. Chính vì vậy mà chữ ký số ra đời với nhiều tính năng ƣu
việt, chữ ký số sẽ giải quyết vấn đề toàn vẹn dữ liệu và là bằng chứng chống
chối bỏ trách nhiệm trên nội dung đã ký, giúp cho các doanh nghiệp, tổ chức
cá nhân yên tâm với các giao dịch điện tử của mình trong môi trƣờng internet.
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 thúc đẩ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. Ngày nay, chữ ký số
đóng một vai trị quan trọng trong kế hoạch phát triển Thƣơng mại điện tử và
Chính phủ điện tử ở nƣớc ta.
Tại tỉnh Thái Nguyên việc áp dụng chữ ký số trong các giao dịch điện
tử, các dịch vụ hành chính cơng chƣa đƣợc triển khai thực hiện do cịn gặp
nhiều khó khăn, đặc biệt trong việc trong việc xây dựng cơ sở hạ tầng để phù
hợp với tình hình thực tế tại tỉnh. Với mục đích nghiên cứu, tìm hiểu và vận
dụng các kiến thức đã học đƣợc trong chƣơng trình cao học để giải quyết một
số vấn đề thực tiễn, tôi chọn đề tài "Nghiên cứu giải pháp xây dựng và phát
triển chữ ký số dùng trong các cơ quan tỉnh Thái Nguyên"

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




2


CHƢƠNG 1 –HỆ MẬT MÃ KHỐ CƠNG KHAI
1.1 CÁC KHÁI NIỆM CƠ BẢN
*Khái niệm chung về mật mã
Hệ mật mã hiện đại thƣờng gồm 5 thành phần (P,C, K, E, D) trong đó:
P: tập hợp hữu hạn các bản rõ có thể
C: tập hợp hữu hạn các bản mã có thể
K: tập hợp các bản khóa có thể
E: tập hợp các qui tắc mã hóa có thể
D: tập hợp ác qui tắc giải mã có thể
Nội dung cần mã hóa thể hiện dƣới dạng bản rõ (P). Ngƣời sử dụng qui tắc
(E) và khóa (K) mã hóa bản rõ (P), kết quả thu đƣợc gọi là bản mã (EK(P) =
C). Bản mã này đƣợc gửi đi trên một đƣờng truyền tới ngƣời nhận, sau khi
nhận đƣợc mã (C) ngƣời nhận sử dụng qui tắc (D) và khóa (K) giải mã để có
thể biết đƣợc nội dung thơng điệp gốc (DK(C) = P).
*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 hàm khả nghịch thỏa:
1. f dễ thực hiện, nghĩa là cho x  S, có thể dễ dàng tính đƣợc y = f(x)
2. 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).
3. f-1 có thể dễ tính đƣợc khi có thêm một số thơng tin
- Một số ví dụ về hàm một chiều
+ Ví dụ 1: f: pq →n, là hàm một chiều với p và q là các số nguyên tố
lớn. Thực vậy, ta có thể dễ thực hiện phép nhân p*q (độ phức tạp đa thức);
nhƣng tính f-1 thì lại là bài tốn cực khó (đây chính là bài tốn nổi tiếng phân
tích ra thừa số nguyên tố - độ phức tạp mũ).
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên





3
+ Ví dụ 2: fg.N: x→ gx mod N là hàm một chiều. Thực vậy, phép tính gx
mod N có độ phức tạp đa thức; nhƣng tính f-1 lại là bài tốn cực khó (đây
chính là bài tốn nổi tiếng: Bài tốn logarithm rời rạc).
+ Ví dụ 3: fk,N: x → xk mod N là hàm một chiều, với N = p*q , p và q là
các số nguyên tố lớn, kk‟ ≡ 1( mod Φ(N)). Thực vậy, phép tính xk mod N có
độ phức tạp đa thức, nhƣng tính f-1 lại cực khó. Tuy nhiên, nếu biết k‟ thì có
thể dễ dàng tính đƣợc f từ cơng thức (xk)k‟= x [3].
1.2 MỘT SỐ KHÁI NIỆM TOÁN HỌC CƠ SỞ
1.2.1 Phép đồng dƣ
- Định nghĩa: Cho a và b là các số nguyên, a đƣợc gọi là đồng dƣ với b
theo modulo n, ký hiệu a ≡ b (mod n) nếu số dƣ tìm đƣợc cho phép chia a và b
cho n là bằng nhau. Số nguyên n đƣợc gọi là modulo của đồng dƣ.
- Một số tính chất của phép đồng dƣ:
 a ≡ a (mod n)
 Nếu a ≡ b (mod n) thì b ≡ a (mod n)
 Nếu a ≡ b (mod n) và b ≡ c (mod n) thì a ≡ c (mod n)
 Nếu a ≡ b (mod n), c ≡ d (mod n) thì a ± c ≡ b ± d (mod n), a.c ≡ b.d
(mod n).
Nhƣ vậy, ta có khái niệm lớp tƣơng đƣơng nhƣ sau: Lớp tƣơng đƣơng
của một số nguyên a là tập hợp các số nguyên đồng dƣ với a theo modulo n.
Theo các tính chất 1,2,3 trên ta thấy: cho n cố định, các số đồng dƣ theo
modulo n trong không gian Z đƣợc xếp vào một lớp đƣơng đƣơng.
1.2.2 Hàm phi-Euler
Định nghĩa: Cho n ≥1, đặt Φ(n) là tập các số nguyên trong khoảng [1,n]
nguyên tố cùng nhau với n. Hàm  nhƣ thế đƣợc gọi là hàm phi Euler.

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





4
* Tính chất của phi – hàm Euler
1. Nếu p là nguyên tố thì (p) = p-1 Thật vậy, khi p là số nguyên tố thì
mọi số tự nhiên bé hơn nó đều là số nguyên tố cùng nhau với nó và do đó ta
có có (p) = p-1.
2. Hàm phi Euler là hàm có tính nhân:
Nếu UCLN(m,n)=1 thì (m.n) = (m). (n) (Trong đó UCLN(m,n) là
ký hiệu ƣớc chung lớn nhất của m và n) [2][3].
1.2.3 Định lý Femat và các mở rộng
* Định lý Femat (bé): Cho p là số nguyên tố, mọi số nguyên a thỏa
mãn: UCLN(a, p) = 1 thì ap-1≡ 1(mod p).
* Định lý mở rộng (Euler): Nếu UCLN (a, m) =1 thì aΦ(m) ≡ 1(mod m)
Trong trƣờng hợp riêng, khi m là số nguyên tố thì (m) = m-1 và ta có
định lý Fermat.
+ Hệ quả 1: Nếu UCLN(c, m) =1 và a ≡ b(mod (m)) với a, b là các số
tự nhiên, thì ca ≡ cb(mod m) và suy ra ta có ca mod m = ca mod Φ(m) mod m
+ Hệ quả 2: Nếu e, d nguyên dƣơng thỏa mãn điều kiện e * d ≡ 1(mod
p) thì với mọi số c nguyên tố cùng nhau với m ta có (ce)d = c (mod m)
Hệ quả này đóng vai trị then chốt trong việc thiết lập các hệ mã mũ sau
này (kể cả hệ mã RSA) [2][3].
1.2.4 Định lý Trung Quốc về phần dƣ
Định lý: cho tập số nguyên tố cùng nhau từ đôi một: m1, m2, ,....,mr,...
với mỗi bộ số nguyên bất kỳ a1, a2, ,....,ar,... , hệ phƣơng trình đồng dƣ
x ≡ ai(mod mi), i= 1,2,...,r,.... ln có nghiệm và là duy nhất theo
modulo m = m1, m2, ,....,mr,.... Nghiệm này có thể tính đƣợc trực tiếp theo
cơng thức: x = a1m2m3...mrb1+ m1a2m3...mrb2 + m1m2a3...mrb3 +......

+ m1m2...mr-1arbr (mod m1m2m3...mr)
Trong đó bi = (m1. m2. m3...mi-1.mi+1...mr)-1 (mod mi), với mọi i =1,..., r.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




5
Định lý trung Quốc cho phép ta tính tốn đồng dƣ theo modulo của một
số lớn (tích của nhiều số ngun tố cùng nhau) thơng qua tính tốn đồng dƣ theo
modulo các số nhỏ (từng thừa số), điều này sẽ hỗ trợ cho việc tham mã [2].
1.3 GIỚI THIỆU HỆ MÃ KHĨA CƠNG KHAI
Năm 1976, Whitfield Diffie và Martin Hellman công bố một phát kiến
mang tên “các phƣơng hƣớng mới trong mật mã”. 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 khóa mã khác nhau nhƣng có mối liên hệ với nhau, một trong hai khóa đó
đƣợc giữ bí mật.
Các thuật tốn với mật mã khóa cơng khai (Mật mã bất đối xứng) dựa
trên một lớp các bài tốn gọi là hàm một chiều. Các hàm này có đặc tính là rất
dễ dàng thực hiện theo chiều xi nhƣng lại rất khó (về khối lƣợng tính tốn)
để thực hiện theo chiều ngƣợc lại. Một ví dụ kinh điển cho lớp bài toán này là
hàm nhân hai số nguyên tố rất lớn, ta có thể tính tích số của 2 số nguyên tố
này một cách khá dễ dàng nhƣng nếu chỉ cho biết tích số thì rất khó để tìm ra
2 thừa số ban đầu. Do những đặc tính của hàm một chiều, hầu hết các khóa có
thể lại là những khóa yếu và chỉ cịn lại một phần nhỏ có thể dùng để làm
khóa. Vì thế, các thuật tốn khóa bất đối xứng địi hỏi độ dài khóa lớn hơn rất
nhiều so với các thuật tốn khóa đối xứng để đạt đƣợc độ an toàn tƣơng đƣơng.
Ngoài ra, việc thực hiện thuật tốn khóa bất đối xứng địi hỏi khối
lƣợng tính tốn lớn hơn nhiều lần so với thuật tốn khóa đối xứng. Bên cạnh
đó, đối với các hệ thống khóa đối xứng, việc tạo ra một khóa ngẫu nhiên để

làm khóa phiên chỉ dùng trong một phiên giao dịch là khá dễ dàng. Vì thế,
trong thực tế ngƣời ta thƣờng dùng kết hợp: Hệ thống mật mã khóa bất đối
xứng đƣợc dùng để trao đổi khóa phiên cịn hệ thống mật mã khóa đối xứng
dùng khóa phiên có đƣợc để trao đổi các bản tin thực sự.

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




6
Trong một hệ mã khóa cơng khai (mã khơng đối xứng), khóa mã hóa
sử dụng khóa cơng khai khắc phục điểm yếu của mã hóa khóa đối xứng với
những đặc điểm, giải thuật khóa cơng khai sử dụng 2 khóa khác nhau:
 Một khóa cơng khai: Ai cũng có thể biết, dùng để mã hóa thơng báo
và thẩm tra chữ ký.
 Một khóa riêng: Chỉ ngƣời giữ đƣợc biết, dùng để giải mã thơng báo
và ký chữ ký
 Có tính chất bất đối xứng
 Bên mã hóa khơng thể giải mã thơng báo (nếu dùng để mã hóa
thơng báo)
 Bên thẩm tra không thể tạo chữ ký (nếu dùng để ký)
Bản rõ

Bản rõ

Mã hóa

Giả mã


Khóa cơng
khai

Khóa bí
mật

Hình 1.1 : Mơ hình hoạt động của mật mã khóa cơng khai
Ta có thể mơ phỏng trực quan một hệ mật mã khố công khai nhƣ sau:
ngƣời B muốn gửi cho ngƣời A một thông tin mật mà B muốn duy nhất A có
thể đọc đƣợc. Để làm đƣợc điều này, A gửi cho B một chiếc hộp có khóa đã
mở sẵn và giữ lại chìa khóa. B nhận chiếc hộp, cho vào đó một tờ giấy viết
thƣ bình thƣờng và khóa lại (nhƣ loại khố thơng thƣờng chỉ cần sập chốt lại,
sau khi sập chốt khóa ngay cả B cũng khơng thể mở lại đƣợc - không đọc lại
hay sửa thông tin trong thƣ đƣợc nữa). Sau đó, B gửi chiếc hộp lại cho A. A
mở hộp với chìa khóa của mình và đọc thơng tin trong thƣ. Trong ví dụ này,
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




7
chiếc hộp với khóa mở đóng vai trị khóa cơng khai, chiếc chìa khóa chính là
khóa bí mật.
* Ngun tắc chung của mã hóa với khóa cơng khai
Giả sử trong hệ thống có n cá thể cùng trao đổi các thơng tin mật. Mỗi
cá thể chọn cho mình một khóa cơng khai k và một cơng thức mã hóa Ek đƣợc
thông báo công khai cho mọi ngƣời biết. Nhƣ vậy, có n khóa cơng khai
n1,n2,…,nk. Khi các thể thứ i muốn gửi thông báo cho cá thể j, mỗi chữ trong
thơng báo đƣợc chuyển thành số, nhóm thành từng “khối” với độ dài nào đó.
Sau đó, mỗi khối P trong văn bản đƣợc mã hóa cơng thức mã hóa E kj của cá

thể thứ j (đã thông báo công khai), và gửi đi dƣới dạng:
C = Ekj(P)
Để giải mã thông báo này, cá thể thứ j chỉ cần dùng khóa giải mã (khóa
bí mật của riêng mình) Dkj
Dkj(C) = DkjEkj (P) = P
Các cá thể khác trong hệ thống, nếu nhận đƣợc văn bản mật, cùng
không thể nào giải mã đƣợc, vì việc lập mã E kj khơng cho phép tìm ra khóa
Dkj trong thời gian chấp nhận đƣợc [2].
Các nguyên tắc trên sẽ đƣợc cụ thể hóa bởi hệ mã RSA dƣới đây.
1.4 HỆ MẬT MÃ RSA
RSA là tên viết tắt của ba tác giả Ronald Rivest, Adi Shamir, Leonard
Adleman. RSA là một thuật tốn mật mã hóa khóa cơng khai. Đây là thuật
tốn đầu tiên phù hợp với việc tạo ra chữ ký số đồng thời với việc mã hóa. Nó
đánh dấu một sự tiến bộ vƣợt bậc của lĩnh vực mật mã học trong việc sử dụng
khóa công cộng. RSA đang đƣợc sử dụng phổ biến trong thƣơng mại điện tử
và đƣợc cho là đảm bảo an tồn với điều kiện độ dài khóa đủ lớn.
Thuật tốn RSA có hai khóa: khóa cơng khai (hay khóa cơng cộng) và
khóa bí mật (hay khóa cá nhân). Mỗi khóa là những số cố định sử dụng trong
quá trình mã hóa và giải mã. Khóa cơng khai đƣợc cơng bố rộng rãi cho mọi
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




8
ngƣời và đƣợc dùng để mã hóa. Những thơng tin đƣợc mã hóa bằng khóa
cơng khai chỉ có thể đƣợc giải mã bằng khóa bí mật tƣơng ứng. Nói cách
khác, mọi ngƣời đều có thể mã hóa nhƣng chỉ có ngƣời biết khóa cá nhân (bí
mật) mới có thể giải mã đƣợc.
1.4.1 Q trình tạo khóa, mã hóa và giải mã

* Định nghĩa:
- Tập các bản rõ : P =ZN= { 0, 1, ..., n-1}
- Tập các bản mã : C = ZN= { 0, 1, ..., n-1}
- Tập các khóa: K={n, p, q, e, d}: N= p * q , e * d  1(mod (N))}
Q trình Tạo khóa
Giả sử A và B cần trao đổi thơng tin bí mật thơng qua một kênh khơng
an tồn (ví dụ nhƣ internet). Với thuật toán RSA, A đầu tiên cần tạo ra cho
mình cặp khóa gồm khóa cơng khai và khóa bí mật theo các bƣớc nhƣ sau:
Bƣớc 1: Tạo hai số nguyên tố phân biệt p và q lớn, sao cho bài tốn
phân tích ra thừa số ngun tố là khó giải (kích cỡ mỗi số khoảng 512 bits đến
1024 bits).
Bƣớc 2: Tính N = p * q và (N) = (p-1)(q-1)
Bƣớc 3: Chọn một số tự nhiên e sao cho 1< e < (N) và (e,(N)) =1
Bƣớc 4: Sử dụng thuật tốn Euclid mở rộng, để tính số ngun d duy
nhất sao cho 0 < d < (n) và d

*

e 1(mod (N)) (d là nghịch đảo của e

modulo N).
Khi đó ta có:
+ Khóa cơng khai: (e, N)
+ Khóa bí mật: (d, N)
Ngƣời A gửi khóa cơng khai cho ngƣời B, và giữ bí mật khóa cá nhân
của mình. Ở đây, p và q giữ vai trò rất quan trọng. Chúng là các phân số của n
và cho phép tính d khi biết e. Hai số nguyên tố p, q sẽ bị xóa khi kết thúc q
trình tạo khóa.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên





9
Q trình mã hóa:
Giả sử ngƣời B muốn gửi đoạn thông tin M cho ngƣời A. Ngƣời B làm
nhƣ sau:
Bƣớc 1: Chọn khóa bí mật của ngƣời nhận
Bƣớc 1: Lấy khóa cơng khai của ngƣời nhận A: (e, N)
Bƣớc 2: Biến đổi thông điệp M thành những số nguyên Mi tƣơng ứng
sao cho Mi < N, (i= 1,…, k) theo phép biến đổi sau:
- Biến đổi các ký tự trong thông điệp M thành các số nguyên tƣơng ứng
theo một quy tắc nào đó
- Chia thơng điệp vừa biến đổi thành k nhóm có chiều dài bằng nhau,
mỗi nhóm biểu diễn một số nguyên Mi Є { 0,…, N-1) (với 1≤ i≤ k)
Bƣớc 3: Thực hiện mã hóa lần lƣợt cho từng số Mi →Ci bằng cách:
Ci = Eke(Mi) =Mie (mod N)
Tập hợp các số nguyên {C1, C2,..., Ck) là bản mã để gửi đến ngƣời nhận A
Quá trình giải mã
Ngƣời nhận A dùng khóa bí mật d của mình để thực hiện giải mã bằng
các bƣớc sau:
Bƣớc 1: Chọn khóa bí mật của ngƣời nhận
Bƣớc 2: Thực hiện giải mã lần lƣợt từng số nguyên Ci → Mi bằng cách
Mi = D(Ci) =Cid(mod N) với 0 ≤ Mi ≤ N
Bƣớc 3: Thực hiện phép biến đổi ngƣợc lại từ các số Mi thành chuỗi
các ký tự tƣơng ứng để khôi phục lại nội dung thông điệp M ban đầu.
1.4.2 Độ an toàn của hệ RSA
Độ an toàn của hệ thống RSA dựa trên 2 vấn đề của toán học: bài tốn
phân tích ra thừa số ngun tố các số nguyên lớn và bài toán RSA. Nếu 2 bài
toán trên là khó (khơng tìm đƣợc thuật tốn hiệu quả để giải chúng) thì khơng


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




10
thể thực hiện đƣợc việc phá mã toàn bộ đối với RSA. Phá mã một phần phải
đƣợc ngăn chặn bằng các phƣơng pháp chuyển đổi bản rõ an tồn.
Bài tốn RSA: Cho số nguyên dƣơng N là tích của hai số nguyên tố
phân biệt p và q (N = p * q), số nguyên e sao cho thỏa mãn :
UCLN(e, (p-1) * (q-1))=1 và số nguyên c.
Tìm số nguyên m sao cho me ≡ c (mod N).
Hiện nay phƣơng pháp triển vọng nhất giải bài tốn này là phân tích n
ra thừa số nguyên tố. Khi thực hiện đƣợc điều này, kẻ tấn cơng sẽ tìm ra số
mũ bí mật d từ khóa cơng khai và có thể giải mã theo đúng quy trình thuật
tốn. Nếu kẻ tấn cơng tìm đƣợc 2 số nguyên tố p và q sao cho: n=p*q thì có
thể dễ dàng tìm đƣợc giá trị (p-1)(q-1) và qua đó xác định d từ e. Chƣa có
phƣơng pháp nào đƣợc tìm ra trên máy tính để giải bài toán này trong thời
gian đa thức. Tuy nhiên ngƣời ta cũng chƣa chứng minh đƣợc điều ngƣợc lại
(sự không tồn tại thuật tốn).
Do tính đơn giản trong thiết kế nên RSA đƣợc ứng dụng rộng rãi và
dùng nhiều nhất trong số các thuật tốn với khóa cơng khai và chính vì thế nó
đã trải qua nhiều thử thách, xem xét, kiểm chứng của cộng đồng về độ an toàn
của nó. Tuy nhiên khi dùng RSA thì tốc độ mã hóa chậm, vì thế để mã hóa
khối dữ liệu lớn là khơng khả thi. Ngƣời ta đã tìm ra ứng dụng quan trong độc
đáo khác của RSA hơn là dùng nó để mã hóa: Tạo vỏ bọc an tồn cho văn bản
mật và vấn đề xác nhận chủ thể [2].
1.5 HỆ MẬT MÃ ELGAMAL
Hệ mật mã khóa cơng khai ElGamal đƣợc giới thiệu bởi T. ELGamal

vào năm 1985. Độ an tồn của hệ này phụ thuộc vào độ khó giải bài toán
lograrithm rời rạc trong trƣờng số hữu hạn Zp. Vì vậy, số nguyên tố p cần
phải đƣợc chọn sao cho bài tốn logratithm là khó tính tốn. Trƣờng hợp đặc
biệt để ngăn ngừa sự tấn cơng, thì ngun tố p cần phải đƣợc lựa chọn sao cho
số (p-1) có ít nhất một thừa số nguyên tố lớn q.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




11
1.5.1 Q trình tạo khóa, mã hóa, giải mã
* Định nghĩa
- Tập các bản rõ M =Zp*={1,2,...,p-1}
- Tập các bản mã C = Zp* X Zp*
- Tập các khóa cơng khai Ke = {p} X P X Zp*
(với p là tập các phần tử sinh)
- Tập các khóa riêng Kd = Zp -1 = {1,2,3,..., p-2}
Q trình tạo khóa:
Bƣớc 1: Tạo số nguyên tố p lớn sao cho bài toán logarithm rời rạc trong
Zp là khó giải và số p – 1 có ít nhất một thừa số ngun tố q lớn.
Bƣớc 2: Chọn số g Є Zp* là phần tử sinh. Các giá trị p và g thƣờng đƣợc
sử dụng nhƣ những tham số chung trong nhóm.
Bƣớc 3: Ngƣời sử dụng chọn ngẫu nhiên số x sao cho 0 < x < p-2, và
định nghĩa K={(p,g,x,y): y = gx( mod p)}
Khi đó ta có
+ Khóa cơng khai: (p, g, y)
+Khóa bí mật: x
Q trình mã hóa:
Để mã hóa thơng điệp M gửi cho A, thì ngƣời B phải thực hiện các

bƣớc sau:
Bƣớc 1: Dùng thuật tốn để chia thơng điệp M ra nhiều khối có chiều
dài cố định và mỗi khối đƣợc biến đổi thành một số nguyên tƣơng ứng Mi < p,
(i = 1,....,k).
- Biến đổi các ký tự của thông điệp thành các số tƣơng ứng, theo một
quy tắc nào đó.
- Chia thơng điệp số vừa biến đổi thành r nhóm số có chiều dài bằng
nhau, mỗi nhóm biểu diễn một số nguyên Mi

Bƣớc 2: Lấy khóa cơng khai của ngƣời nhận (p,g, y)
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




12
Bƣớc 3: Chọn ngẫu nhiên một số nguyên k sao cho 0 ≤ k ≤ (p-2)
Bƣớc 4: Mã hóa lần lƣợt từng số Mi với khóa cơng khai của ngƣời
nhận, bằng cách tính Ci = Eke(Mi) = (Ci1, Ci2) với Ci1 =gk mod p và
Ci2 = Mi * yk mod p
Tập số {C1, C2,…,Cr } với Ci = (Ci1, C12), i = 1,…,r là bản mã gửi cho B
Quá trình giải mã:
Ngƣời nhận A giải mã bản mã {C1, C2,…,Cr } bằng cách sau:
Bƣớc1: Giải mã lần lƣợt cặp số Ci = (Ci1, Ci2) với 1≤ i≤ r
Tính Mi = Dkd (Ci1, Ci2) = Ci2 * (Ci1)-1 mod p. Kết quả thu đƣợc là tập
các số nguyên tố lớn {M1, M2,....,Mr}
Bƣớc 2: Biến đổi các số nguyên Mi trở lại các chuỗi ký tự tƣơng ứng và
khôi phục lại thông điệp M.
1.5.2 Độ an toàn của mật mã ElGamal:
Hệ mã hóa ElGamal là khơng tất định tức là với một bản rõ M và một
khóa bí mật x, thì có thể có nhiều hơn một bản mã y, vì trong cơng thức lập


mã có thành phần ngẫu nhiên k.
Độ an toàn của hệ mật mã ElGamal dựa vào khả năng giải bải toán
logarit rời rạc trong Zp. Theo giải thiết trong sơ đồ, thì bài tốn này là khó
giải. Từ bản mã C =(C1, C2), trong đó C1 = ak mod p, C2 = k. M mod p
Nhƣ vậy muốn xác định bản rõ M từ công thức C2 thám mã phải biết
đƣợc k. Giá trị này có thể tính đƣợc từ cơng thức C1 nhƣng lại gặp bài tốn
logarit rời rạc.
Phƣơng pháp tính tốn của hệ ELGamal rất phức tạp vì địi hỏi nhiều
phép tính lũy thừa modulo trong q trình mã hóa và giải mã, nên có hiệu suất
thực hiện kém. Do đó thƣờng khơng đƣợc ứng dụng trong những trƣờng hợp
mã hóa khối lƣợng lớn dữ liệu. Hệ mã ElGamal đƣợc ứng dụng trong việc xây
dựng lƣợc đồ chữ ký số (phiên bản sửa đổi của lƣợc đồ chữ ký ElGmal là chữ
ký DSA đƣợc dùng trong chuẩn chữ ký điện tử của NIST ở Mỹ và cả thế giới).
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




13

CHƢƠNG 2 - CHỮ KÝ SỐ
2.1 GIỚI THIỆU CHUNG VỀ CHỮ KÝ SỐ
2.1.1 Khái niệm về chữ ký số:
Chữ ký số (một dạng chữ ký điện tử) là thông tin đƣợc mã hóa bằng
khóa riêng (tƣơng ứng với một khóa cơng khai) của ngƣời gửi, đƣợc đính kèm
theo văn bản nhằm đảm bảo cho ngƣời nhận định danh và xác thực đúng
nguồn gốc, tính tồn vẹn của dữ liệu nhận đƣợc.
- Chữ ký số ra đời để khắc phục các thiếu sót của những hệ thống xác
thực ra đời trƣớc đó. Cùng với sự phát triển của thƣơng mại điện tử, ngoài
nhu cầu xác thực, các nhu cầu khác về bảo mật nhƣ toàn vẹn dữ liệu và chống

từ chối cũng đều hết sức cấp thiết.
- Chữ ký số đóng một vai trò rất quan trọng trong trƣờng hợp xảy ra
tranh chấp vì chữ ký số đƣợc cung cấp bởi hệ thống CA (Certificate authorityNhà cung cấp chứng thực số), CA là một tổ chức chuyên đƣa ra và quản lý
các nội dung xác thực bảo mật trên một mạng máy tính, cùng các khố cơng
khai để mã hố thơng tin) cơng cộng nhƣ FPT có giá trị pháp lý tƣơng đƣơng
nhƣ chữ ký tay trong các giao dịch điện tử.
Chữ ký số là một tập con của chữ ký điện tử. Khái niệm chữ ký điện tửmặc dù thƣờng đƣợc sử dụng cùng nghĩa với chữ ký số nhƣng thực sự có
nghĩa rộng hơn. Chữ ký điện tử chỉ đến bất kỳ phƣơng pháp nào (không nhất
thiết là mật mã) để xác định ngƣời chủ của văn bản điện tử. Chữ ký điện tử
bao gồm cả địa chỉ telex và chữ ký trên giấy đƣợc truyền bằng fax.[9][10]
2.1.2 Các ƣu điểm của chữ ký số:
* Khả năng xác định nguồn gốc
- Các hệ thống mật mã hóa khóa cơng khai cho phép mã hóa văn bản
với khóa bí mật mà chỉ có ngƣời chủ của khóa biết.

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




14
- Để sử dụng Chữ ký số thì văn bản cần phải đƣợc mã hóa qua hàm
băm (là giải thuật nhằm sinh ra các giá trị băm tƣơng ứng với mỗi khối dữ
liệu: Có thể là một chuỗi ký tự, một đối tƣợng trong lập trình hƣớng đối
tƣợng, v.v.... Giá trị băm đóng vai gần nhƣ một khóa để phân biệt các khối dữ
liệu). Sau đó dùng khố bí mật của ngƣời chủ khóa để mã hóa, khi đó ta đƣợc
Chữ ký số. Khi cần kiểm tra, bên nhận giải mã với khóa cơng khai để lấy lại
hàm băm và kiểm tra với hàm băm của văn bản nhận đƣợc. Nếu hai giá trị này
khớp nhau thì bên nhận có thể tin tƣởng rằng văn bản đó xuất phát từ ngƣời
sở hữu khóa bí mật.

* Tính tồn vẹn
Cả hai bên tham gia vào q trình trao đổi thơng tin đều có thể tin
tƣởng là văn bản khơng bị sửa đổi trong khi truyền vì nếu văn bản bị thay đổi
thì hàm băm cũng sẽ thay đổi và lập thức bị phát hiện. Quy trình mã hóa sẽ ẩn
nội dung đối với bên thứ ba.
* Tính khơng thể phủ nhận
Trong giao dịch, một bên có thể từ chối nhận một văn bản nào đó là do
mình gửi. Để ngăn ngừa khả năng này, bên nhận có thể yêu cầu bên gửi phải
gửi kèm chữ ký số với văn bản. Khi có tranh chấp, bên nhận sẽ dùng chữ ký
này nhƣ một chứng cứ để bên thứ ba giải quyết.
Với công nghệ hạ tầng mã hóa cơng khai sẽ đảm bảo chữ ký số khi
đƣợc một ngƣời dùng nào đó tạo ra là duy nhất, khơng thể giả mạo đƣợc và
chỉ có ngƣời sở hữu khóa bí mật mới có thể tạo ra đƣợc chữ ký số đó (đã đƣợc
chứng minh về mặt kỹ thuật mã hóa).
2.1.3 Điểm khác biệt cơ bản giữa chữ ký thông thƣờng (chữ ký viết
tay) và chữ ký số:
- Đầu tiên là vấn đề ký một tài liệu: Với chữ ký thơng thƣờng, nó là
một phần vật lý của tài liệu. Tuy nhiên, một chữ ký số khơng gắn theo kiểu

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




15
vật lý vào bức điện nên thuật toán đƣợc dùng phải “ khơng nhìn thấy” theo
cách nào đó trên bức điện.
- Thứ hai là vấn đề kiểm tra: Chữ ký thơng thƣờng đƣợc kiểm tra bằng
cách so sánh nó với các chữ ký xác thực khác. Ví dụ, ai đó ký một tấm séc để
mua hàng, ngƣời bán phải so sánh chữ ký trên mảnh giấy với chữ ký nằm ở

mặt sau thẻ tín dụng để kiểm tra. Mặt khác, các chữ ký số có thể đƣợc kiểm
tra nhờ dùng một thuật tốn kiểm tra cơng khai. Nhƣ vậy, bất kỳ ai cũng có
thể kiểm tra đƣợc chữ ký số. Việc dùng một sơ đồ chữ ký an tồn có thể sẽ
ngăn chặn đƣợc khả năng giả mạo.
Sự khác biệt cơ bản giữa chữ ký số và chữ ký thông thƣờng là ở chỗ:
Một bản copy tài liệu có chữ ký đƣợc đồng nhất với văn bản gốc, còn copy tài
liệu có chữ ký trên giấy thƣờng có thể khác với bản gốc. Điều này có nghĩa là
phải cẩn thận ngăn chặn một bức ký số khỏi dùng lại. Vì thế bản thân bức điện
cần chứa thông tin (chẳng hạn nhƣ ngày tháng) để ngăn nó khỏi bị dùng lại.
2.1.3 Phân loại chữ ký số:
Theo tiêu chí: Từ chữ ký có thể khơi phục thơng điệp đƣợc ký thơng
điệp gốc, chữ ký số có thể chia làm 2 loại: Chữ ký khôi phục thông điệp và
chữ ký số không khôi phục đƣợc thông điệp gốc (Chữ ký kèm thông điệp).
- Chữ ký kèm thông điệp: Thông điệp ban đầu không thể khơi phục
đƣợc từ chữ ký, do đó thơng điệp đi kèm chữ ký, mặt khác thơng điệp gốc cịn
dùng để kiểm tra tính đúng của chữ ký. Chữ ký kèm thông điệp đƣợc sử dụng
nhiều nhất trong thực tế, nó dựa trên các hàm băm mã hóa hơn là dựa trên
hàm băm bất kỳ, ít bị lỗi khi bị tấn cơng theo kiểu giả mạo. Ví dụ chữ ký
khơng khôi phục đƣợc thông điệp: Chữ ký Elgamal, DSS.
- Chữ ký khơi phục thơng điệp: Thơng điệp ban đầu có thể khơi phục từ
bản thân chữ ký. Nó dùng để ký trên các thơng điệp ngắn. Ví dụ chữ ký khơi
phục thơng điệp gốc: Chữ ký RSA, Rabin [9]
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




16
2.1.4 Sơ đồ tổng quan của một hệ thống chữ ký số
Một sơ đồ chữ ký số thƣờng bao gồm hai thành phần chủ chốt là thuật

toán ký và thuật toán xác minh. Một sơ đồ chữ ký số là một bộ 5 (P, A, K, S,
V) thỏa mãn các điều kiện sau:
P là một tập hợp các bức điện (thơng điệp) có thể
A là tập hữu hạn các chữ ký có thể
S là tập các thuật tốn ký
V là tập các thuật toán xác minh
K là tập hữu hạn các khóa có thể, với mỗi k ЄK gồm 2 thành phần
k =(k‟, k‟‟), trong đó k‟ là khóa bí mật dành cho việc ký, k‟‟ là khóa
cơng khai dành cho việc kiểm thử chữ ký.
Với mỗi k =(k‟, k‟‟), trong S có một thuật tốn ký Sigk‟: P→A và trong
V có một thuật tốn kiểm thử Verk‟‟: P x A→ {đúng, sai} thỏa mãn điều kiện
sau đối với mọi thông báo x Є P và mọi chữ ký y Є A:
Verk‟‟ (x,y) = đúng ⇔ y = Sigk‟(x)
Với sơ đồ trên, mỗi chủ thể sở hữu một bộ hóa k =(k‟, k‟‟), thơng báo
khóa k‟‟ để mọi ngƣời có thể kiểm thử chữ ký của mình và giữ bí mật khóa k‟
để thực hiện ký lên thơng báo mà mình muốn gửi đi, các hàm Ver k‟‟ và Sigk‟
(khi biết k‟) phải tính đƣợc một cách dễ dàng (trong thời gian đa thức) tuy
nhiên hàm y = Sigk‟(x) là khó tính đƣợc nếu khơng biết k‟ điều đó đảm bảo
cho việc ký, tức là bảo đảm chống giả mạo chữ ký [1].

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




17
2.2 CHỮ KÝ SỐ VÀ HÀM BĂM
2.2.1 Khái niệm về hàm băm:
Thơng thƣờng chữ ký số có độ dài lớn hơn văn bản ký, nhƣ vậy, thời
gian ký khá lâu, mặt khác tốn bộ nhớ để lƣu giữ chữ ký, hay tốn thời gian và

băng thông để truyền chữ ký trên mạng máy tính. Nhƣ vậy, hiện nay sơ đồ ký
“số” chỉ cho phép ký trên các bức điện nhỏ. Nhƣng thực tế ta cần ký trên các
bức điện rất dài, chẳng hạn một tài liệu có thể dài nhiều Megabyte.
Một cách đơn giản để giải bài toán trên là chia bức điện thành nhiều
đoạn sau đó ký lên từng đoạn. Với cách “ký” này, một bức điện dài vẫn phải
có một chữ ký rất lớn. Nhƣợc điểm khác là tốc độ “ký” chậm vì các sơ đồ ký
hiện nay phải tính các số mũ modulo rất lớn. Nhƣng khó khăn hơn là bức điện
có thể bị sắp xếp lại các đoạn khác nhau. Ta cần bảo vệ sự nguyên vẹn của
bức điện, điều này không thể thực hiện đƣợc bằng cách ký độc lập từng đoạn
nhỏ của chúng. Giải pháp cho vấn đề này là dùng hàm băm (Hash). Từ bức
điện với độ dài tùy ý, hàm băm tạo ra một tóm lƣợc thơng báo có kích thƣớc
qui định (ví dụ 128 bit). Sau đó “ký” trên tóm lƣợc thơng báo, thay vì ký trực
tiếp trên tài liệu gốc.
Cần ký bức điện dài x, trƣớc tiên ta tạo lập bản tóm lƣợc thơng điệp
(message digest) z =h(x), sau đó ký trên z, tức là tính y =sigk(z).
Kiểm tra chữ ký: Đầu tiên tạo lập tóm lƣợc thơng điệp z =h(x) nhờ hàm
băm h cơng khai, sau đó kiểm tra điều kiện Verk (x, y)= true hay không ?
2.2.2 Hàm băm MD5 (Message-Digest algorithm 5)
* Hàm băm MD5 là một hàm băm mật mã đƣợc sử dụng phổ biến,
đƣợc thiết kể bởi Giáo sƣ Ronald L. Rivest tại trƣờng MIT vào năm 1991 để
thay thế cho hàm băm trƣớc đó là MD4 (1990). Là một chuẩn Internet , MD5
đã đƣợc dùng trong nhiều ứng dụng bảo mật và cũng đƣợc dùng phổ biến để
kiểm tra tính tồn vẹn của tập tin. Cũng nhƣ các hàm băm khác nhƣ MD4 và
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




18
SHS (Secure Hash Standard), MD5 là phƣơng pháp có ƣu điểm tốc độ xử lý

rất nhanh, thích hợp với các thông điệp dài và cho ra giá trị băm dài 128 bit.
Thuật tốn số hóa thơng điệp MD5 nhận vào 1 thông điệp độ dài tùy ý
và tạo ra một số 128 bit, là một dạng “vân tay” hay “mã số thông điệp”
(message digest) của đầu vào. Ngƣời ta cho rằng sẽ khơng khả thi về mặt tính
tốn để tạo ra 2 thơng điệp có cùng mã số thơng điệp, hoặc tạo ra một thông
điệp với mã số cho trƣớc. Thuật tốn MD5 đƣợc dự tính áp dụng cho những
ứng dụng chữ ký điện tử, ở đó một file lớn phải đƣợc “nén” một cách an tồn
trƣớc khi mã hóa với một khóa cá nhân (private key) dƣới một hệ mã hóa
cơng khai nhƣ RSA.
Giả sử chúng ta có thơng điệp b bit ở đầu vào, và ta muốn tìm mã số
của thông điệp. Ở đây b là số không âm bất kỳ; b có thể bằng 0 và khơng cần
chia hết cho 8, độ lớn có thể bất kỳ. Tƣởng tƣợng rằng các bit của thông điệp
đƣợc viết nhƣ sau: m_0 m_1 m_2 … m_{b-1}
Mã số thông điệp đƣợc tính qua 5 bƣớc sau:
- Bƣớc 1: Các bit gắn thêm
Thơng điệp đƣợc mở rộng, thêm bit vào phía sau sao cho độ dài của nó
(tính theo bit) đồng dƣ với 448 theo môđun 512. Nghĩa là thông điệp đƣợc mở
rộng sao cho nó cịn thiếu 64 bit nữa thì sẽ có một độ dài chia hết cho 512.
Việc này luôn đƣợc thực hiện ngay cả khi bản thân độ dài thông điệp đã đồng
dƣ với 448 theo môđun 512.
Việc thêm bit này thực hiện nhƣ sau: một bit “1” đƣợc thêm vào sau
thơng điệp, sau đó các bit “0” đƣợc thêm vào để có một độ dài đồng dƣ với
448 mơđun 512. Trong tất cả các trƣờng hợp, có ít nhất 1 và nhiều nhất 512
bit đƣợc thêm vào.
– Bƣớc 2 : Gắn thêm độ dài
Dạng biểu diễn 64 bit độ dài b của chuỗi ban đầu đƣợc thêm vào phía
sau kết quả của bƣớc 1. Trong trƣờng hợp b lớn hơn 264 thì chỉ có 64 bit thấp
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên





×