TIÊU CHUẨN QUỐC
GIA
TCVN 7635 :
2007
KỸ
THUẬT MẬT MÃ - CHỮ KÝ SỐ
Cryptography
technique - Digital signature
Lời nói đầu
TCVN 7635:2007 do Tiểu Ban kỹ thuật tiêu
chuẩn TCVN/JTC 1/SC 27 “Các kỹ thuật mật mã” biên soạn trên cơ sở dự
thảo đề nghị của Ban cơ yếu Chính phủ, Tổng cục Tiêu chuẩn Đo lường Chất lượng
đề nghị, Bộ Khoa học và Công nghệ công bố.
Lời giới thiệu
Trong giao dịch giấy tờ truyền thống chữ ký
tay là phương tiện để xác thực nguồn gốc và nội dung của văn bản. Chữ ký tay
còn có khả năng chống chối bỏ, nghĩa là người gửi sau khi đã ký vào văn bản thì
không thể chối bỏ chữ ký của mình và văn bản sau khi được ký thì không thể thay
đổi được nội dung. Đối với văn bản điện tử chữ ký tay không còn đảm bảo được
các tính năng nói trên, vì vậy chữ ký số điện tử (gọi tắt là chữ ký số) được sử
dụng để thay thế vai trò của chữ ký tay.
Chữ ký số được biểu diễn dưới dạng một chuỗi
số nhị phân. Nó được tạo ra trên cơ sở sử dụng tập hợp các quy tắc và tập hợp
các tham số để xác định danh tính người gửi (người ký) cũng như kiểm tra tính
toàn vẹn của dữ liệu. Phương tiện cơ bản để thực hiện chữ ký số là kỹ thuật mật
mã. Mỗi chữ ký số được thể hiện trên một lược đồ xác định gọi là lược đồ chữ ký
số. Lược đồ này bao gồm ba thành tố: thuật toán chữ ký số, thuật toán hàm băm
và thuật toán tạo số giả ngẫu nhiên. Thuật toán chữ ký số gồm thuật toán ký và
thuật toán kiểm tra. Người gửi sử dụng thuật toán ký và khóa bí mật để tạo ra
chữ ký số, người nhận (người kiểm tra) sử dụng thuật toán kiểm tra và khóa công
khai tương ứng để kiểm tra đồng thời tính chân thực của thông điệp dữ liệu và
tính chân thực của chữ ký số do người gửi tạo ra. Mỗi người sở hữu một cặp khóa
bao gồm khóa công khai (giả thiết là được công bố một cách công khai) và khóa
bí mật (được giữ bí mật tuyệt đối). Bất kỳ ai cũng có thể kiểm tra chữ ký số
của một người nào đó bằng cách sử dụng khóa công khai của người này. Quá trình
tạo chữ ký số chỉ có thể được thực hiện bởi người sở hữu khóa bí mật. Thuật
toán hàm băm là biến đổi toán học dùng để thu gọn văn bản ban đầu (còn gọi là
thông điệp dữ liệu) nhằm tạo ra bản tóm lược của thông điệp. Bản tóm lược này
sẽ là đầu vào của thuật toán tạo chữ ký số. Chữ ký số được đính kèm với thông
điệp dữ liệu đã được ký. Trong quá trình kiểm tra chữ ký số, thuật toán hàm băm
cũng được áp dụng như trong quá trình tạo chữ ký. Thuật toán tạo số giả ngẫu
nhiên dùng để tạo ra các số giả ngẫu nhiên (độc lập, đồng xác suất) làm tham số
trong lược đồ chữ ký số (xem Hình 1). Tiêu chuẩn này quy định 3 thuật toán đó.
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Thuật toán hàm băm mô tả trong Tiêu chuẩn này
được xây dựng dựa trên tài liệu: Tiêu chuẩn hàm băm an toàn (Mỹ): FIPS
180-2: Secure Hash Standard, ban hành ngày 1 tháng 8 năm 2001.

Hình 1 - Mô tả quá
trình tạo và kiểm tra chữ ký số
KỸ THUẬT MẬT MÃ - CHỮ
KÝ SỐ
Cryptography
technique - Digital signature
1. Phạm vi áp dụng
Tiêu chuẩn này áp dụng cho các chữ ký số sử
dụng trong hoạt động giao dịch điện tử của mọi tổ chức, công dân Việt Nam và tổ
chức, công dân nước ngoài có quan hệ kinh tế - xã hội với tổ chức, công dân
Việt Nam.
2. Tài liệu viện dẫn
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
3. Thuật ngữ và định
nghĩa, thuật ngữ viết tắt
3.1. Thuật ngữ và định nghĩa
Tiêu chuẩn này sử dụng các thuật ngữ và định
nghĩa sau đây:
3.1.1. Thông điệp dữ liệu (data message)
Dữ liệu sẽ được ký. Trong quá trình kiểm tra
chữ ký thì đó là dữ liệu đã được ký.
Trong tiêu chuẩn này, thông điệp dữ liệu
thường được gọi tắt là thông điệp.
3.1.2. Chữ ký số (digital signature)
Một chuỗi số, kết quả của phép biến đổi mật
mã trên thông điệp dữ liệu nhằm cung cấp một phương tiện để kiểm tra tính xác
thực của nguồn gốc thông điệp dữ liệu, tính toàn vẹn của dữ liệu và tính không
thể chối bỏ của người đã ký.
3.1.3. Hàm băm (hash function)
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
1. tính một chiều hay tính kháng tiền ảnh:
Không thể tìm được trong thời gian cho phép một thông điệp có giá trị băm cho
trước.
2. tính kháng tiền ảnh thứ hai: Cho trước
thông điệp M1, không thể tìm được trong thời gian cho phép một thông điệp M2
khác M1 sao cho giá trị băm của M1 và M2 là như nhau:
3. tính kháng xung đột: Không thể tìm được
hai chuỗi bit khác nhau có cùng một giá trị băm.
3.1.4. Quá trình tạo chữ ký số (digital signature
generation)
Quá trình sử dụng thuật toán chữ ký số và
khóa bí mật để tạo ra chữ ký số cho thông điệp.
3.1.5. Quá trình kiểm tra chữ ký số (digital signature
verification)
Quá trình dùng thuật toán chữ ký số và khóa
công khai để kiểm tra chữ ký số của thông điệp.
3.1.6. Bộ tạo số giả ngẫu nhiên (pseudorandom number
generator)
Thiết bị hay thuật toán dùng để tạo ra một
dãy các số giả ngẫu nhiên xuất hiện một cách độc lập thống kê và đồng xác suất.
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
ASE
Tiêu chuẩn mã hóa tiên tiến (Advanced
Encryption Standard)
EM SA
Phương pháp định dạng sử dụng trong thuật
toán chữ ký số kèm phụ lục (Encoding Method for Signatures with Appendix)
FIPS
Tiêu chuẩn xử lý thông tin Liên bang Mỹ (Federal
Information Processing Standard) được ban hành bởi Viện Tiêu chuẩn và
Công nghệ Quốc gia Mỹ (National Institute of Standard and Technology-NIST)
GCD
Ước số chung lớn nhất (Greatest Common
Divisor)
hexa
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
I2OSP
Hàm cơ sở chuyển đổi từ dạng số nguyên sang
chuỗi octet (Integer-to-Octet-String Primitive)
LCM
Bội số chung nhỏ nhất (Least Common
Multiplier)
MGF
Hàm tạo mặt nạ (Mask generation
function)
octet
Bộ 8 bit (còn có thể hiểu là một byte),
được xem như một ký tự trong hệ đếm cơ số 256 biểu diễn dưới dạng một cặp chữ
số của hệ đếm cơ số 16 (hexa)
OS2IP
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
PKCS
Tiêu chuẩn mật mã khóa công khai (Puplic
Key Cryptography Standard) do Phòng thí nghiệm RSA (Mỹ) ban hành
PSS
Lược đồ ký xác suất (Probabilistic
Signature Scheme)
RSA
Tên của hệ mã do ba nhà toán học Rivest,
Shamir và Adleman sáng tạo ra
RSAVP
Phép toán cơ sở phục vụ cho kiểm tra chữ ký
RSA
RSASP
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
RSASSA
Lược đồ ký RSA kèm phụ lục (RSA
Signature Scheme with Appendix)
SHA
Thuật toán băm an toàn (Secure Hash
Algorithm)
Word
Từ (32 bit)
4. Khái quát
4.1. Tiêu chuẩn này quy định 3 thành phần cần
thiết cho lược đồ chữ ký số. Thành phần thứ nhất là thuật toán chữ ký số
RSA-PSS được mô tả trong Phần 5. Thành phần thứ 2 là thuật toán hàm băm SHA-256
được mô tả trong Phần 6 và thành phần cuối cùng là thuật toán số giả ngẫu nhiên
dùng AES-128 được mô tả trong Phần 7. Những tiêu chuẩn về các tham số sử dụng
trong thuật toán chữ ký số RSA-PSS được đề cập tới trong Phần 8.
4.2. Chữ ký số là một dạng chữ ký điện tử được sử
dụng để xác minh người đã ký thông điệp và tính nguyên vẹn của nó.
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
4.4. Khi khóa công khai được sử dụng để kiểm tra
chữ ký không tương ứng với khóa bí mật đã được dùng trong việc tạo ra chữ ký
thì không thể kết luận về tính chân thực của chữ ký đó.
Một cơ chế cần được thiết lập để gắn kết khóa
công khai với danh tính của người giữ khóa bí mật tương ứng. Cơ chế này có thể
đạt được nhờ sự chứng thực bởi bên thứ ba được tin cậy. Những nội dung về dịch
vụ chứng thực không thuộc phạm vi của tiêu chuẩn này.
5. Thuật toán chữ ký
số RSA-PSS
Các ký hiệu
º
Ký hiệu phép đồng dư, ví dụ: a º b (mod c) có nghĩa là a và b có
cùng số dư khi chia cho c
c
Biểu diễn của bản mã dưới dạng một số
nguyên trong khoảng từ 0 đến n-1
C
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
d
Số mũ bí mật RSA
dP
Nghịch đảo của e theo môđun p-1 (e·dP
º 1 mod (p-1))
dQ
Nghịch đảo của e theo môđun q-1 (e·dQ
º 1 mod (q-1))
e
Số mũ công khai RSA
EM
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
GCD(.,.)
Ước chung lớn nhất của 2 số nguyên không âm
emBits
Độ dài dự kiến theo bit của EM
emLen
Độ dài dự kiến theo octet của EM
hLen
Độ dài đầu ra của hàm băm theo octet
k
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
K
Khóa bí mật RSA
LCM(., . ,.)
Bội số chung nhỏ nhất của một danh sách các
số nguyên không âm
m
Biểu diễn của thông điệp dưới dạng một số
nguyên trong khoảng từ 0 đến n-1
M
Thông điệp dưới dạng chuỗi octet
mask
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
maskLen
Độ dài dự kiến của chuỗi mặt nạ theo octet
MGF
Hàm tạo mặt nạ
mgfSeed
Mầm tạo mặt nạ, là một chuỗi octet
mLen
Độ dài của thông điệp M theo octet
n
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
(n, e)
Khóa công khai RSA
p, q
Hai nhân tử nguyên tố của môđun RSA (n = p·q)
qlnv
Là số nguyên dương nghịch đảo của q
theo môđun p, tức là q · qlnv º 1 mod p
s
Biểu diễn của chữ ký dưới dạng số nguyên
giữa 0 và n-1
S
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
sLen
Độ dài phần phụ thêm của EM SA-PSS
theo octet
x
Số nguyên không âm
X
Biểu diễn của x dưới dạng chuỗi octet
xLen
Độ dài chủ định của chuỗi octet X
thu được từ x
l(n)
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
||
Toán tử nối
5.2. Thuật toán RSA
5.2.1. Khóa công khai RSA
Khóa công khai RSA bao gồm 2 thành phần:
n
Môđun RSA, là một số nguyên dương
e
Số mũ công khai RSA, là một số nguyên dương
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
5.2.2. Khóa bí mật RSA
Khóa bí mật RSA có một trong hai dạng biểu
diễn:
5.2.2.1. Dạng biểu diễn thứ nhất gồm cặp (n,
d) với:
n
Môđun RSA, là một số nguyên dương
d
Số mũ bí mật RSA, là một số nguyên dương
Số mũ bí mật d là số nguyên dương nhỏ hơn l(n) thỏa mãn
e · d º
1 (mod l(n)).
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
p
Nhân tử thứ nhất, là số nguyên dương
q
Nhân tử thứ hai, là số nguyên dương
dP
Là số nguyên dương sao cho e · dP º 1 mod (p-1)
dQ
Là số nguyên dương sao cho e · dQ º 1 mod (q-1)
qlnv
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
5.3. Các hàm cơ sở chuyển đổi dữ liệu
5.3.1. Hàm cơ sở chuyển đổi dữ liệu số nguyên
sang dạng chuỗi octet
I2OSP (x, xLen)
Chức năng:
Chuyển số nguyên không âm x thành một chuỗi
octet có độ dài xLen
Đầu vào:
x
Số nguyên không âm cần chuyển đổi
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
X
Chuỗi octet tương ứng có độ dài xLen
Thông báo lỗi:
“số nguyên quá lớn”
Các bước:
1. nếu x ≥ 256xLen,
cho ra thông báo lỗi “số nguyên quá lớn” và dừng
2. viết số nguyên x duy nhất gồm xLen
chữ số với cơ số 256:
x = xxLen-1·256xLen-1
+ xxLen-2·256xLen-2 + … + x1·256
+ x0
với 0 ≤ xi < 256 (chú ý
rằng một hay nhiều chữ số đầu sẽ bằng 0 nếu x nhỏ hơn 256xLen-1).
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
X = X1 X2…
XxLen
5.3.2. Hàm cơ sở chuyển đổi từ dạng chuỗi
octet về dạng số nguyên
OS2IP (X)
Chức năng:
Chuyển chuỗi octet thành một số nguyên
không âm
Đầu vào:
X
Chuỗi octet cần chuyển đổi
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
x
Số nguyên không âm tương ứng
Các bước:
1. cho X1X2…XxLen
là các octet của X từ octet đầu tiên với octet cuối cùng, xxLen-i
là giá trị nguyên của octet Xi với 1 ≤ i ≤ xLen;
2. cho x = xxLen-1·256xLen-1
+ xxLen-2·256xLen-2 + … + x1·256
+ x0;
3. xuất ra x.
5.4. Các phép toán mật mã cơ sở
5.4.1. Phép toán cơ sở RSASP
RSASP (K, m)
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Đầu vào:
K
Khóa bí mật RSA, với K có một trong hai
dạng sau:
- cặp (n, d);
- bộ năm (p, q, dP, dQ, qlnv);
m
Biểu diễn của thông điệp, dưới dạng số
nguyên giữa 0 và n-1
Đầu ra:
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Biểu diễn của chữ ký, là số nguyên giữa 0
và n-1
Thông báo lỗi:
“biểu diễn thông điệp ở ngoài miền hợp lệ”
Giả thiết:
K là một khóa bí mật RSA hợp lệ
Các bước:
1. nếu biểu diễn của thông điệp m
không nằm giữa 0 và n-1, cho ra thông báo lỗi “biểu diễn thông điệp ở
ngoài miền hợp lệ” và dừng lại;
2. biểu diễn của chữ ký được tính như sau:
a. nếu dạng thứ nhất (n, d) của K
được sử dụng thì s = md mod n;
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
i. Lấy s1 = mdP
mod p và s2 = mdQ mod q
ii. Đặt h = (s1 - s2)·qlnv
mod p
iii. Đặt s = s2 + q·h
c. xuất ra s.
5.4.2. Phép toán cơ sở RSAVP
RSAVP ((n, e), s)
Đầu vào:
(n, e)
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
s
Biểu diễn của chữ ký, là số nguyên giữa 0
và n-1
Đầu ra:
m
Biểu diễn của thông điệp, là số nguyên giữa
0 và n-1
Thông báo lỗi:
“biểu diễn chữ ký ở ngoài miền hợp lệ”
Giả thiết:
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Các bước:
1. nếu biểu diễn của chữ ký s không nằm giữa
0 và n-1, cho ra “biểu diễn chữ ký ở ngoài miền hợp lệ” và dừng lại;
2. đặt m = se mod n;
3. xuất ra m.
5.5. Lược đồ chữ ký RSA kèm phụ lục theo PSS
Các thao tác tạo chữ ký số áp dụng một thao
tác định khuôn dạng vào một thông điệp trước khi nó được chuyển thành một biểu
diễn thông điệp ở dạng số nguyên. Phép toán cơ sở RSASP được áp dụng vào biểu
diễn thông điệp này để tạo ra chữ ký số. Đảo ngược quá trình này, các thao tác
kiểm tra chữ ký áp dụng một phép toán cơ sở RSAVP vào một chữ ký để khôi phục
một biểu diễn thông điệp, sau đó nó được chuyển thành thông điệp đã được định
dạng ở dạng chuỗi octet. Thao tác kiểm tra được áp dụng vào thông điệp ban đầu
và thông điệp đã được định dạng để xác định xem chúng có tương ứng với nhau hay
không.
5.5.1. Thao tác tạo chữ ký
RSASSA-PSS-SIGN(K,
M)
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
K
Khóa bí mật RSA của người ký
M
Thông điệp sẽ được ký, là một chuỗi octet
Đầu ra:
S
Chữ ký, chuỗi octet có độ dài k, với k là
độ dài của môđun RSA theo octet
Thông báo lỗi:
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Các bước:
1. mã hóa EMSA-PSS: Áp dụng thao tác EMSA-PSS-ENCODE
(được giới thiệu ở phần sau) vào văn bản M để tạo ra thông điệp được
định dạng EM có độ dài é(modBits-1)/8ù octet sao cho độ dài bit của số
nguyên OS2IP (EM) nhiều nhất là modBits-1, với modBits là
độ dài theo bit của số n (mođun RSA):
EM = EMSA-PSS-ENCODE (M, modBits-1)
Chú ý rằng độ dài octet của EM sẽ bằng k - 1
nếu modBits-1 chia hết cho 8 và bằng k nếu modBits-1 không chia
hết cho 8. Nếu hàm EMSA-PSS-ENCODE cho ra thông báo lỗi “văn bản quá dài” thì RSASSA-PSS-SIGN
cũng cho ra thông báo lỗi “văn bản quá dài” và dừng lại. Nếu EMSA-PSS-ENCODE
cho ra thông báo “lỗi định dạng” thì RSASSA-PSS-SIGN cũng cho ra thông báo “lỗi
định dạng” và dừng lại.
2. Chữ ký RSA:
a. chuyển thông điệp đã được định dạng (chuỗi
octet) EM thành biểu diễn thông điệp ở dạng số nguyên m;
m = OS2IP (EM)
b. áp dụng phép toán cơ sở RSASP với K là
khóa bí mật RSA và biểu diễn thông điệp m để tạo ra biểu diễn chữ ký là
số nguyên s:
s = RSASP(K, m);
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
S = I2OSP (s, k)
3. xuất ra chữ ký S.
5.5.2. Thao tác kiểm tra chữ ký
RSASSA-PSS-VERIFY((n, e), M, S)
Đầu vào:
(n, e)
Khóa công khai RSA của người ký
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Thông điệp mà chữ ký của nó cần được kiểm
tra, là chuỗi octet
S
Chữ ký được kiểm tra, chuỗi octet có độ dài
k, với k là độ dài theo octet của số n, môđun RSA
Đầu ra:
“chữ ký hợp lệ” hoặc “chữ ký không hợp lệ”
Các bước:
1. kiểm tra độ dài: Nếu độ dài của chữ ký S
không là k octet, cho ra thông báo lỗi “chữ ký không hợp lệ” và dừng;
2. kiểm tra chữ ký RS;
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
s = OS2IP (S)
b. áp dụng phép toán cơ sở RSAVP với khóa
công khai RSA là (n, e) và biểu diễn chữ ký s để tạo ra m là số nguyên
biểu diễn thông điệp;
m = RSAVP ((n, e), s)
c. chuyển biểu diễn thông điệp m thành thông
điệp đã được định dạng EM có độ dài emLen =é(modBits-1/8ù octet, với modBits là độ dài theo
bit của số n (mođun RSA):
EM = I2OSP (m, emLen)
Chú ý rằng emLen sẽ bằng k-1
nếu modBits-1 chia hết cho 8 và bằng k nếu modBits-1 không chia
hết cho 8. Nếu I2OSP cho ra thông báo lỗi “số nguyên quá lớn” thì
RSASSA-PSS-VERIFY cho ra thông báo lỗi “chữ ký không hợp lệ” và dừng lại.
3. kiểm tra EMSA-PSS: Áp dụng thao tác
kiểm tra EMSA-PSS-VERIFY (sẽ được mô tả ở phần 5.6 dưới đây) vào thông điệp M
và thông điệp đã được định dạng EM để xác định xem chúng có tương ứng với nhau
hay không;
Result = EMSA-PSS-VERIFY (M, EM, modBits-1)
4. nếu kết quả (Result) là “phù hợp” thì cho
ra “chữ ký hợp lệ”. Ngược lại sẽ cho ra “chữ ký không hợp lệ”.
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
5.6.1. Thao tác định dạng
Phương pháp định dạng được tham số hóa bằng
cách chọn:
- hàm băm (cố định với khóa RSA đã cho);
- hàm tạo mặt nạ (cố định với khóa RSA đã
cho) và;
- độ dài phần phụ thêm (có thể thay đổi với
khóa RSA đã cho).
Các hàm băm và hàm tạo mặt nạ được đề xuất sẽ
được mô tả trong phần 6 và 5.6.3. Hình 2 minh họa thao tác định dạng.

Hình 2 - Minh họa
thao tác định dạng
Công thức để tính EM:
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
EMSA-PSS-ENCODE (M, emBits)
Lựa chọn:
h
Hàm băm (độ dài đầu ra của nó theo octet là
hLen)
MGF
Hàm tạo mặt nạ
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Đô dài chủ định của phần phụ thêm theo
octet
Đầu vào:
M
Văn bản để mã hóa, là một chuỗi octet
emBits độ dài tối đa theo bit của số nguyên
OS2IP (EM), ít nhất bằng 8hLen + 8sLen + 9
Đầu ra:
EM
Văn bản đã được mã, đó là chuỗi octet có độ
dài emLen = éemBits/8ù
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Các bước:
1. nếu độ dài của M lớn hơn giới hạn đầu
vào cho hàm băm (264-1 đối với SHA-256 thì cho ra thông báo lỗi “văn
bản quá dài” và dừng;
2. lấy mHash = h(M), đó là một chuỗi
octet dài hLen;
3. nếu emLen < hLen + sLen +
2, cho ra thông báo “lỗi định dạng” và dừng;
4. tạo ra chuỗi octet ngẫu nhiên salt có độ
dài sLen; nếu sLen = 0 thì salt không có;
5. đặt M’ = (0x)00 00 00 00 00 00 00
00 || mHash ||salt;
6. lấy H = Hash(M’), đó là một chuỗi
octet dài hLen;
7. lấy PS là một chuỗi octet bằng 0 dài emLen
- hLen - sLen - 2;
8. Lấy DB = PS || 0x01 || salt;
DB là một chuỗi octet dài emLen-hLen - 1;
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
10. đặt 8emLen-emBits bit đầu tiên bên
trái của octet đầu tiên bên trái trong maskedDB bằng 0;
11. lấy EM = maskedDB ||H || 0xbc;
12. xuất ra EM.
5.6.2. Thao tác kiểm tra
EMSA-PSS-VERIFY(M, EM, emBits)
Lựa chọn:
h
Hàm băm (độ dài đầu ra của nó theo octet là
hLen)
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
MGF
Hàm tạo mặt nạ
sLen
Đô dài dự kiến của phần thêm theo octet
Đầu vào:
M
Thông điệp cần kiểm tra chữ ký, là chuỗi octet
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Thông điệp đã được định dạng, là chuỗi
octet có độ dài emLen = éemBits/8ù
emBits Độ dài tối đa theo bit của số nguyên
OS2IP (EM), tối thiểu là 8hLen + 8sLen + 9
Đầu ra:
“phù hợp” hoặc “không phù hợp”.
Các bước:
1. nếu độ dài của M lớn hơn giới hạn
đầu vào của hàm băm (264 - 1 octet đối với SHA-256, thì đưa ra thông
báo “không phù hợp” và dừng;
2. đặt mHash = h(M), là chuỗi octet có
độ dài hLen;
3. nếu emBits < 8hLen+8sLen+9,
đưa ra thông báo “không phù hợp” và dừng;
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
5. đặt maskedDB là emLen-hLen-1
octet đầu tiên bên trái của EM, và H là hLen octet tiếp
theo;
6. nếu 8emLen-emBits bit đầu tiên bên
trái của octet đầu tiên bên trái trong maskedDB không phải tất cả bằng
0, đưa ra thông báo “không phù hợp” và dừng;
7. đặt dbMask = MGF(H, emLen-hLen-1);
8. đặt DB = maskedDB Å dbMask;
9. thiết lập 8emLen-emBits bit đầu
tiên bên trái của DB bằng 0;
10. nếu emLen-hLen-sLen-2 octet đầu
tiên bên trái của DB không phải bằng 0 hoặc nếu octet tại vị trí thử emLen-hLen-sLen-1
không bằng 0x01, đưa ra thông báo “không phù hợp” và dừng;
11. đặt salt bằng sLen octet
cuối cùng của DB;
12. đặt M’ = 00 00 00 00 00 00 00 00 || mHash
|| salt
M’ là chuỗi octet có độ dài 8+hLen+sLen
với 8 octet bằng 0 khởi đầu;
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
14. nếu H = H’, đưa ra thông báo “phù
hợp”. Ngược lại, đưa ra thông báo “không phù hợp” .
5.6.3. Hàm tạo mặt nạ MGF dựa vào hàm băm
MGF(mgfSeed, maskLen)
Lựa chọn
h
Hàm băm (độ dài đầu ra của nó theo octet là
hLen)
Đầu vào:
mgfSeed
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
maskLen
Độ dài chủ ý theo octet của mặt nạ, nhiều
nhất là 232hLen
Đầu ra:
mask
Mặt nạ, là chuỗi octet có độ dài maskLen
Thông báo lỗi:
“mặt nạ quá dài”
Các bước:
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
2. lấy T là chuỗi octet rỗng;
3. với counter chạy từ 0 tới émaskLen/hLenù -1, thực hiện các bước
a. chuyển counter thành một chuỗi
octet C có độ dài 4 octet;
C = I2OSP (counter, 4)
b. nối hàm mgfSeed với C, tính hàm băm
của chuỗi này. Sau đó nối chuỗi octet T với giá trị băm vừa thu được.
T = T || h(mgfSeed || C)
4. xuất ra maskLen octet đầu tiên của
T như là chuỗi octet mask.
6. Hàm băm SHA-256
6.1. Một số khái niệm và thuật ngữ
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
a, b, c,…, h
Các biến làm việc, các biến này là các từ
32 bit được sử dụng để tính toán các giá trị băm H(i)
H(i)
Giá trị băm thứ i. H(0)
là giá trị băm khởi tạo. H(N) là giá trị băm cuối cùng được
sử dụng để xác định bản tóm lược của văn bản
Hj(i)
Từ thứ j của giá trị băm thứ i,
H0(i) là từ ngoài cùng bên trái của giá trị băm
thứ i.
Kt
Hằng số được sử dụng cho vòng lặp thứ t
của quá trình băm
k
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
l
Độ dài của thông điệp (ký hiệu là M)
theo đơn vị bit
m
Số lượng bit trong một khối thông điệp (M(i))
M
Thông điệp cần băm
M(i)
Khối thông điệp thứ l
Mj(i)
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
n
Số lượng các bit quay vòng hoặc dịch đi khi
xử lý một từ
N
Số khối của bản thông điệp sau khi đã được
bổ sung
T
Biến tạm thời lưu trữ (32 bit) trong quá
trình tính toán
Wt
Từ (32 bit) thứ t trong chuỗi thông
điệp.
6.1.2. Các ký hiệu tính toán
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Phép AND bit
v
Phép OR bit
Å
Phép XOR bit
Ø
Phép bù bit
+
Phép cộng mođun 232
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Phép dịch trái, x<<n có nghĩa
là dịch x đi n bit sang trái (loại bỏ n bit ngoài cùng
bên trái) bổ sung n bit 0 vào bên phải;
>>
Phép dịch phải, x>>n có nghĩa
là dịch x đi n bit sang phải (loại bỏ n bit ngoài cùng
bên phải) bổ sung n bit 0 vào bên trái.
6.1.3. Chuỗi các bit và các số nguyên
● một chữ số hexa là một phần tử thuộc tập
{0, 1,… 9, a,… f};
● một từ là một chuỗi 32 bit có thể được biểu
diễn bởi dãy các số hexa (8 chữ số hexa). Để chuyển đổi một chuỗi bit thành
dạng một chuỗi hexa chúng ta có thể lần lượt chuyển đổi từng bộ 4 bit thành một
số hexa tương ứng;
● một số nguyên lớn hơn bằng 0 và nhỏ hơn 264
có thể được biểu diễn như một từ (nếu nhỏ hơn 232) hoặc một cặp từ
(nếu lớn hơn hoặc bằng 232). Chúng ta có thể dùng hai từ, để biểu
diễn độ dài của thông điệp theo bit;
● đối với SHA-256, mỗi khối thông điệp gồm
512 bit, nó được biểu diễn dưới dạng 16 từ (32 bit).
6.1.4. Các phép tính với các từ
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
● cộng hai từ môđun 232;
● phép dịch phải SHRn(x),
với x là một từ (32 bit) và n là một số nguyên 0 ≤ n < 32, được định
nghĩa như sau;
SHRn(x) = x >> n.
● phép dịch vòng phải ROTRn(x),
với x là một từ (32 bit) và n là một số nguyên 0 ≤ n < 32, được định
nghĩa như sau.
ROTRn(x) = (x >> n) V
(x << 32 - n)
Tức là lấy n bit loại ra ở phía cuối
bổ sung vào phía đầu theo đúng thứ tự đã có từ trước
6.2. Thuật toán
6.2.1. Các hàm và các hằng được sử dụng cho
thuật toán
6.2.1.1. Các hàm
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Ch(x, y, z) = (x Ù y) Å (Ø x Ù z)
Maj(z, y, x) = (x Ù y) Å (x Ù
z) Å (y Ù z)
= ROTR2(x)
Å ROTR13(x)
Å ROTR22(x)
= ROTR6(x)
Å ROTR11(x)
Å ROTR25(x)
= ROTR7(x)
Å ROTR18(x)
Å SHR3(x)
= ROTR17(x)
Å ROTR19(x)
Å SHR10(x)
6.2.1.2. Các hằng số
SHA-256 sử dụng chuỗi 64 từ (32 bit) làm hằng
số,
. Các từ này lần lượt là 32 bit đầu
tiên của phần thập phân khi lấy căn bậc ba 64 số nguyên tố đầu tiên. Khi biểu
diễn dưới dạng hexa các hằng số có giá trị như liệt kê dưới đây:

...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Tiền xử lý được thực hiện trước khi bắt đầu
tính toán giá trị băm. Bước tiền xử lý được chia làm 3 bước nhỏ: bổ sung thông
điệp, chia thông điệp đã được bổ sung thành các khối, và thiết lập các giá trị
băm khởi đầu H(0).
6.2.2.1. Bổ sung thông điệp
Giả sử thông điệp M có độ dài là l
bit, bổ sung bit “1” vào cuối thông điệp, tiếp theo là k bit 0, với k thỏa mãn l+1+k
= 448 mod 512. Cuối cùng bổ sung một khối 64 bit để lưu giá trị l (độ
dài thật của thông điệp). Như vậy thông điệp sau khi đã được bổ sung có độ dài
là bội của 512 bit.
6.2.2.2. Chia thông điệp thành khối sau khi
đã được bổ sung
Thông điệp sau khi đã được bổ sung được chia
thành N khối 512 bit, M(1), M(2),…, M(N).
Mỗi khối thông điệp gồm 16 từ (32 bit). 32 bit đầu tiên của khối thông điệp thứ
i là
, 32 bit tiếp theo là
và 32 bit cuối cùng của khối thông
điệp thứ i là
.
6.2.2.3. Thiết lập các giá trị băm khởi đầu H(0)
Các giá trị băm khởi đầu gồm 8 từ (32 bit):

6.2.3. Thuật toán tính giá trị băm
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Các từ tạo tạo ra từ khối thông điệp đầu vào
được ký hiệu là W0,W1,…,W63, tám biến
làm việc được ký hiệu là a, b, c, d, e, f, g và h. Các từ của kết
quả băm được ký hiệu là
, chúng được gán
các giá trị băm khởi đầu, H(0), và sẽ được thay thế bởi các
giá trị băm trung gian (sau khi mỗi khối thông điệp được xử lý), H(i),
và cuối cùng là giá trị băm, H(N).
6.2.3.1. Tiền xử lý SHA-256
Thông điệp M được xử lý như mục 6.2.2.
6.2.3.2. Tính toán giá trị băm SHA-256
Việc tính toán giá trị băm SHA-256 sử dụng
các hàm và hằng được định nghĩa trong phần 6.2.1. Phép tính “+” được xem là
cộng môđun 232.
Sau khi hoàn thành bước tiền xử lý, mỗi khối
thông điệp, M(1), M(2),…, M(N) tuần tự
được xử lý theo các bước dưới đây:
Với i từ 0 đến n
{
1. Tính các từ Wt từ khối
thông điệp
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
với 0 ≤ t ≤ 15

với 16 ≤ t ≤ 63
2. Khởi gán tám biến làm việc a, b, c, d, e,
f, g và h bằng các giá trị băm thứ (i - 1)





...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66


3. với t từ 0 đến 63, tính
{


h=g
g=f
f=e
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
d=c
c=b
b=a
a=T1+T2
}
4. Tính giá trị băm trung gian thứ i, H(i)



...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66




Sau khi xử lý N lần (tương ứng với N khối
thông điệp), kết quả đầu ra hàm băm SHA-256 của thông điệp M là:
||
||
||
||
||
||
||
6.2.4. Dữ liệu kiểm tra
Để giúp các nhà lập trình kiểm tra tính đúng
đắn của chương trình do mình xây dựng, TCVN này đưa ra các giá trị được sử dụng
để kiểm tra:
6.2.4.1. Thông điệp đầu vào chỉ có một khối
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
6.4.4.2. Thông điệp đầu vào gồm nhiều khối

6.2.4.3. Đầu vào là một thông điệp dài

7. Bộ tạo số giả ngẫu
nhiên dùng AES-128
Phần này sẽ mô tả bộ tạo số giả ngẫu nhiên sử
dụng thuật toán mã hóa AES-128.
7.1. Một số ký hiệu
AESK(M)
Hàm mã hóa AES-128. Thực hiện việc mã hóa
khối thông điệp M (128 bit) bởi khóa K (128 bit). Trả về 128 bít dữ liệu đã
mã của M (Chi tiết về hàm AES-128 được nêu trong tài liệu FIPS 197 “Advanced
Encryption Standard”)
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Giá trị 128 bit, là ngày tháng/thời gian
(date/time) của hệ thống
XOR
Phép toán XOR bit
éxù
Số nguyên bé nhất lớn hơn hay bằng x, ví
dụ: é6ù = é5.1ù
= 6
¬
Phép gán giá trị; ví dụ: a ¬ b có nghĩa là gán b cho a
7.2. Thuật toán
Đầu vào:
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Số bit cần tạo ngẫu nhiên
V0
128 bit ngẫu nhiên, lựa chọn bởi người dùng
DTj
128 bit là ngày tháng/thời gian của hệ
thống
K
128 bit khóa cho AES-128
Đầu ra:
Số giả ngẫu nhiên p có L bit
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
p = null
với j từ 1 đến éL/128ù,
thực hiện các bước sau:
Ij = AESK(DTj)
xj = AESK(Ij XOR
Vj-1)
Vj = AESK(Ij XOR
xj)
p ¬
p || xj
p ¬
Lấy L bit bên trái của p
8. Tiêu chuẩn tham số
sử dụng trong chữ ký số RSA-PSS
Để sử dụng lược đồ chữ ký số RSA-PSS an toàn
cần phải tuân thủ các yêu cầu sau đây:
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
1. cặp khóa RSA dùng để ký thì không được
dùng cho mục đích khác (chẳng hạn dùng lại để mã thông điệp);
2. hai số nguyên tố p, q và số mũ bí mật d
cần phải được giữ bí mật tránh việc bị truy cập bất hợp pháp, làm lộ hoặc sửa
đổi. Môđun n và số mũ công khai e phải được công bố công khai;
3. mỗi người sử dụng cần có môđun n riêng;
4. độ dài của môđun n (nlen)
không được nhỏ hơn 1024 bit và nên được thay đổi theo thời gian như sau:
Thời gian sử dụng
Độ an toàn
nlen tối thiểu
Tới năm 2010
80
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
Tới năm 2013
112
2048
Sau 2030
128
3072
Trong đó, độ an toàn (security_strength)
là một số nguyên biểu thị lượng tính toán cần thiết để phá hệ mã.
Vì các phương pháp phá hệ mã thường xuyên
được hoàn thiện nên cần phải định kỳ 3 đến 5 năm một lần xem xét lại nlen
tối thiểu (có thể tham khảo chi tiết yêu cầu này trong tài liệu NIST Special
Publication 800-57. Recommendation for Key Management - Part 1: general,
May,2006).
8.2. Yêu cầu đối với các khóa RSA
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
a) số mũ công khai e cần được chọn
trước khi tạo số mũ bí mật d;
b) số mũ công khai e cần phải là số
nguyên dương lẻ sao cho: 65,537 ≤ e < 2nlen-2 x security_strength
Với nlen là độ dài của môđun n
theo bit.
Chú ý rằng e có thể là giá trị bất kỳ mà thỏa
mãn ràng buộc 1(b); p và q sẽ được chọn (trong mục 2) sao cho e là
nguyên tố cùng nhau với cả (p-1) và (q-1).
2. hai số nguyên tố p và q được
tạo ngẫu nhiên và giữ bí mật cần phải được chọn với các ràng buộc sau:
a) (p-1) và (q-1) cần phải
nguyên tố cùng nhau với số mũ công khai e;
b) mỗi một số trong bốn số (p + 1), (p - 1)
và (q + 1), (q - 1) cần phải có các nhân tử nguyên tố lớn hơn 2security_strength+20;
c) nhân tử nguyên tố bí mật p, q cần
phải được chọn ngẫu nhiên từ các số nguyên tố thỏa mãn
;
3. số mũ bí mật d cần phải được lựa
chọn sau khi tạo p và q với các ràng buộc:
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
b) d = e-1
mod (LCM ((p-1), (q-1))).
(Chi tiết về hàm tạo các tham số RSA có thể
tham khảo trong tài liệu FIPS 186-3: Digital Signature Standard).
MỤC LỤC
Lời nói đầu
Lời giới thiệu
1. Phạm vi áp dụng
2. Tài liệu viện dẫn
3. Thuật ngữ và định nghĩa, thuật ngữ viết
tắt
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
3.1.1. Thông điệp dữ liệu (data message)
3.1.2. Chữ ký số (digital signature)
3.1.3. Hàm băm (hash function)
3.1.4. Quá trình tạo chữ số (digital
signature generation)
3.1.5. Quá trình kiểm tra chữ ký số (digital
signature verification)
3.1.6. Bộ tạo số giả ngẫu nhiên (Pseudorandom
number generator)
3.2. Từ viết tắt
4. Khái quát
5. Thuật toán chữ ký số RSA-PSS
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
5.2. Thuật toán RSA
5.2.1. Khóa công khai RSA
5.2.2. Khóa bí mật RSA
5.3. Các hàm cơ sở chuyển đổi dữ liệu
5.3.1. Hàm cơ sở chuyển đổi từ dạng số nguyên
sang dạng chuỗi octet
5.3.2. Hàm cơ sở chuyển đổi từ dạng chuỗi
octet về dạng số nguyên
5.4. Các phép toán mật mã cơ sở
5.4.1. Phép toán cơ sở RSASP
5.4.2. Phép toán cơ sở RSAVP
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
5.5.1. Thao tác tạo chữ ký
5.5.2. Thao tác kiểm tra chữ ký
5.6. Phương pháp định dạng cho chữ ký kèm phụ
lục theo PSS (EMSA-PSS)
5.6.1. Thao tác định dạng
5.6.2. Thao tác kiểm tra
5.6.3. Hàm tạo mặt nạ MGF dựa vào hàm băm
6. Hàm băm SHA-256
6.1. Một số khái niệm và thuật ngữ
6.1.1. Biến, tham số
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
6.1.3. Chuỗi các bit và các số nguyên
6.1.4. Các phép tính với các từ
6.2. Thuật toán
6.2.1. Các hàm và các hằng được sử dụng cho
thuật toán
6.2.2. Bước tiền xử lý
6.2.3. Thuật toán tính giá trị băm
6.2.4. Dữ liệu kiểm tra
7. Bộ tạo số giả ngẫu nhiên dùng AES-128
7.1. Một số ký hiệu
...
...
...
Bạn phải
đăng nhập hoặc
đăng ký Thành Viên
TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.
Mọi chi tiết xin liên hệ:
ĐT: (028) 3930 3279 DĐ: 0906 22 99 66
8. Tiêu chuẩn tham số sử dụng trong chữ ký số
RSA-PSS
8.1. Các yêu cầu chung
8.2. Yêu cầu đối với các khóa RSA