Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
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Ị HOÀ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 http://www.lrc-tnu.edu.vn
ii LỜI CẢM ƠN
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ị Hoài Thu
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
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 Quá 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 toà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
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 http://www.lrc-tnu.edu.vn
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ơ đồ quá trình tạo khóa
Hình 3.2 : Sơ đồ quá 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 http://www.lrc-tnu.edu.vn
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 toàn thông tin trở thành một nhu cầu gắn liền với nó nhƣ hình với
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ã (E
K
(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 (D
K
(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
thì có
thể dễ dàng tính đƣợc f từ công thức (x
k
)
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 http://www.lrc-tnu.edu.vn
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ì
)
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: m
1
, m
2,
, ,m
r
,
với mỗi bộ số nguyên bất kỳ a
1
, a
2,
, ,a
r
, , hệ phƣơng trình đồng dƣ
x ≡ a
i
(mod m
i
), i= 1,2, ,r, luôn có nghiệm và là duy nhất theo
modulo m = m
1
, m
2,
, ,m
b
3
+
+ m
1
m
2
m
r-1
a
r
b
r
(mod m
1
m
2
m
3
m
r
)
Trong đó bi = (m
1
.
m
2
.
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 toá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 toá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 toán khóa bất đối xứng đòi hỏi khối
lƣợng tính toán lớn hơn nhiều lần so với thuật toá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 http://www.lrc-tnu.edu.vn
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ý)
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 E
k
đƣợ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
n
1
,n
2
,…,n
k
. 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 = E
kj
(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) D
kj
D
kj
(C) = D
kj
E
kj
N
= { 0, 1, , n-1}
- Tập các bản mã : C = Z
N
= { 0, 1, , n-1}
- Tập các khóa: K={n, p, q, e, d}: N= p
*
q , e
*
d 1(mod (N))}
Quá 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 toà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 toán
phân tích ra thừa số nguyên 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 toán Euclid mở rộng, để tính số nguyên 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
i
) =M
i
e
(mod N)
Tập hợp các số nguyên {C
1,
C
2
, ,
C
k
) 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 C
i
→ M
i
bằng cách
M
i
= D(C
i)
=C
i
d
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 toá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 toá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 toà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 toà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 Z
p.
Vì vậy, số nguyên tố p cần
phải đƣợc chọn sao cho bài toán logratithm là khó tính toán. Trƣờng hợp đặc
biệt để ngăn ngừa sự tấn công, thì nguyên 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 http://www.lrc-tnu.edu.vn
11
1.5.1 Quá trình tạo khóa, mã hóa, giải mã
* Định nghĩa
- Tập các bản rõ M =Z
p
*
={1,2, ,p-1}
*
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 = g
x
( mod p)}
Khi đó ta có
+ Khóa công khai: (p, g, y)
+Khóa bí mật: x
Quá 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 toá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 M
i
< 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 M
i
<p với (1≤ i ≤ r)
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 http://www.lrc-tnu.edu.vn
12
Bƣớc 3: Chọn ngẫu nhiên một số nguyên k sao cho 0 ≤ k ≤ (p-2)
} với C
i
= (Ci
1,
C
12
), 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ã {C
1,
C
2
,…,Cr
} bằng cách sau:
Bƣớc1: Giải mã lần lƣợt cặp số C
i
= (C
i1,
C
i2
) với 1≤ i≤ r
Tính M
i
= D
kd
(C
i1,
C
Nhƣ vậy muốn xác định bản rõ M từ công thức C
2
thám mã phải biết
đƣợc k. Giá trị này có thể tính đƣợc từ công thức C
1
nhƣng lại gặp bài toán
logarit rời rạc.
Phƣơng pháp tính toá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 quá 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 http://www.lrc-tnu.edu.vn
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 toà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 authority-
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 http://www.lrc-tnu.edu.vn
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 toá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 toà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à
Với mỗi k =(k‟, k‟‟), trong S có một thuật toán ký Sig
k‟
: P→A và trong
V có một thuật toán kiểm thử Ver
k‟‟
: 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:
Ver
k‟‟
(x,y) = đúng ⇔ y = Sig
k‟
(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à Sig
k‟
(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 = Sig
k‟
(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 http://www.lrc-tnu.edu.vn
17
2.2 CHỮ KÝ SỐ VÀ HÀM BĂM
2.2.1 Khái niệm về hàm băm:
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
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 toá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
toá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 toá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 toà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