
Chương 4. MỘT SỐ GIAO THỨC QUẢN LÝ PKI VÀ CÁC
CHUẨN LIÊN QUAN
4.1. CÁC GIAO THỨC QUẢN LÝ PKI
4.1.1. Các chuẩn PKCS
Giới thiệu một số loại đặc tả PKCS được đưa ra bởi RSA Laboratories nhằm mục
đích tăng tốc độ phát triển của mật mã khóa công khai.
4.1.1.1 PKCS#1
PKCS#1: RSA Encryption Standard là chuẩn về cài đặt mật mã khóa công khai
dựa trên giải thuật RSA. PKCS#1 được đưa vào RFC 3447. Nội dung của PKCS#1
bao gồm:
- Yếu tố gốc mật mã
- Sơ đồ mã hóa
- Sơ đồ chữ ký có phụ lục
- Cú pháp ASN.1 để trình bày các khóa và để xác định các sơ đồ trên
A. Các yếu tố gốc chuyển đổi dữ liệu
Có hai yếu tố gốc chuyển đổi dữ liệu được sử dụng trong các sơ đồ được xác
định trong tài liệu này:
I2OSP – Số nguyên – sang - Bát phân-Yếu tố gốc chuỗi: I2OSP chuyển đổi một
số nguyên không âm sang một chuỗi bát phân của một đoạn cụ thể

OS2IP – Bát phân-Chuỗi-sang-Yếu tố gốc số nguyên: chuyển đổi một chuỗi
bát phân thành một số nguyên không âm
B Các yếu tố gốc mật mã
Các yếu tố gốc mật mã là các thao tác cơ bản mà các sơ đồ mật mã có thể được
xây dựng dựa trên đó. Mục đích của chúng là để thực hiện trong phần cứng hoặc
làm các module phần mềm, và không nhằm mục đích đem lại sự an toàn ngoài
một sơ đồ.
Có bốn loại yếu tố gốc được trình bày trong tài liệu này và được sắp xếp thành
cặp: mã hóa và giải mã, chữ ký và xác thực chữ ký.
B.1 Các yếu tố gốc mã hóa và giải mã
Yếu tố gốc mã hóa tạo ra một biểu diễn thông điệp từ một biểu diễn thông điệp
dưới sự kiểm soát của một khóa chung, và góc giải mã giúp khôi phục lại biểu
diễn thông điệp từ biểu diễn thông điệp dưới sự kiểm soát của khóa riêng tương
ứng.
Một cặp yếu tố gốc mã hóa và giải mã được sử dụng trong các sơ đồ mã hóa được
xác định trong tài liệu này và được nêu cụ thể ở đây: RSAEP/RSADP. RSAEP và
RSADP liên quan đến cùng một thao tác, với các khóa riêng là đầu vào.
Thao tác chính trong mỗi yếu tố gốc chính là phép mũ.
B.2 Các yếu tố gốc chữ ký và xác thực chữ ký
Yếu tố gốc chữ ký tạo ra một biểu diễn chữ ký từ một biểu diễn thông điệp dưới
sự kiểm soát của một khóa riêng, và yếu tố gốc xác thực khôi phục biểu diễn
thông điệp từ biểu diễn chữ ký dưới sự kiểm soát của khóa chung tương ứng.
Một cặp chữ ký và yếu tố gốc xác thực được sử dụng trong các sơ đồ chữ ký
trong tài liệu này và được nêu cụ thể ở đây: RSASP1/RSAVP1.
C Các sơ đồ mã hóa
Trong tài liệu này, sơ đồ mã hóa bao gồm thao tác mã hóa và thao tác giải mã,
trong đó thao tác mã hóa tạo ra một thông điệp từ một thông điệp có khóa chung
RSA của người nhận, và thao tác giải mã khôi phục thông điệp từ thông điệp với
khóa riêng RSA tương ứng của người nhận.
Co hai sơ đồ mã hóa được trình bày trong tài liệu này: RSAES-OAEP và
RSAES- PKCS1-v1_5. RSAES-OAEP được đề xuất cho các ứng dụng mới;

RSAES-PKCS1- v1_5 chỉ được đưa vào để đảm bảo tương thích với các ứng
dụng hiện có, và không được đề xuất cho các ứng dụng mới.
D Sơ đồ chữ ký có phụ lục
Trong tài liệu này, sơ đồ chữ ký có phụ lục bao gồm một thao tác tạo chữ ký và
một thao tác xác nhận chữ ký, trong đó thao tác tạo chữ ký từ thông điệp có khóa
riêng RSA của người ký, và thao tác xác nhận chữ ký sẽ xác nhận chữ ký trên
thông điệp với khóa chung RSA tương ứng của người ký. Để xác nhận chữ ký
được xây dựng trong loại sơ đồ này, cần phải có thông điệp đã. Bằng cách này,
các sơ đồ chữ ký có phụ lục được phân biệt với các sơ đồ chữ ký có khôi phục
thông điệp, vốn không được hỗ trợ trong tài liệu này.
Có hai sơ đồ chữ ký có phụ lục được nêu trong tài liệu này: RSASSA-PSS và
RSASSA-PKCS1-v1_5. Mặc dù không có sự tấn công nào đối với RSASSA-
PKCS1-v1_5 được biết đến, vì lợi ích của sự mạnh mẽ ngày càng lớn, RSASSA-
PSS được đề xuất cho áp dụng sau cùng trong những ứng dụng mới. RSASSA-
PKCS1-v1_5 được đưa vào để đảm bảo tính tương thích với các ứng dụng hiện
có, và trong khi vẫn phù hợp với các ứng dụng mới, người ta vẫn khuyến khích
chuyển dần sang RSASSA-PSS.
D.1 RSASSA-PSS
RSASSA-PSS kết hợp các yếu tố gốc RSASP1 và RSAVP1 với phương pháp
mã hóa EMSA-PSS. Nó tương thích với sơ đồ IFSSA được sửa đổi trong IEEE
P1363a dự thảo, trong đó các yếu tố gốc chữ ký và xác nhận là IFSP-RSA1 và
IFVP-RSA1 được xác định trong IEEE Std 1363-2000 và phương pháp mã hóa
thông điệp là EMSA4. EMSA4 phổ biến hơn một chút so với EMSA-PSS vì nó
hoạt động trên các chuỗi bit chứ không phải là các chuỗi bát phân. EMSA-PSS
tương đương với EMSA4 bị hạn chế tới trường hợp mà các toán hạng cũng như
các giá trị hash và muối là các chuỗi bát phân.
Độ dài của các thông điệp mà RSASSA-PSS có thể vận hành trên đó không bị
hạn chế hoặc bị ngăn cản bởi một lượng rất lớn, phụ thuộc vào hàm băm ẩn trong
phương pháp mã hóa EMSA-PSS.
D.2 RSASSA-PKCS1-v1_5
RSASSA-PKCS1-v1_5 kết hợp các gốc RSASP1 và RSAVP1 với phương pháp
mã hóa EMSA- PKCS1-v1_5.

Chiều dài của các thông điệp mà RSASSA-PKCS1-v1_5 có thể thao tác là không
hạn chế hoặc bị hạn chế bởi một lượng rất lớn, tùy thuộc vào hàm băm ngàm
trong phương pháp EMSA-PKCS1-v1_5.
E Các phương pháp mã hóa cho chữ ký có phụ lục
Phương pháp mã hóa bao gồm các thao tác xác định gianh giới giữa các thông
điệp chuỗi bát phân và các thông điệp được mã hóa chuỗi bát phân, vốn được
chuyển đổi sang và từ đại diện thông điệp số nguyên trong các sơ đồ. Các biểu
diễn thông điệp thông điệp được xử lý thông qua các gốc. Các phương pháp mã
hóa do đó sẽ giúp kết nối giữa các sơ đồ, vốn xử lý thông điệp và các gốc.
Có hai phương pháp mã hóa cho các chữ ký có phụ lục được sử dụng trong các sơ
đồ chữ ký và được nêu tại đây: EMSA-PSS và EMSA-PKCS1-v1_5.
4.1.1.2 PKCS#7
PKCS#7 là chuẩn ký tự thông báo mật mã định nghĩa các ký tự cho dữ liệu mật mã
như chữ ký số. PKCS#7 cho phép xác thực thuộc tính thông tin trong việc bổ sung
đến việc xác thực nội dung thông báo.
Một vài tính quan trọng khi sử dụng PKCS#7:
- CA sử dụng PKCS#7 như một phản hồi đến thực thể yêu cầu chứng thư.
- Nó sử dụng để xác thực thông báo chứng thực đã gửi đến một thực thể.
- Nó cung cấp thông tin hoàn thiện đến CA cho việc xử lý các yêu cầu chứng
thư.
- Nó được sử dụng bởi nhiều giao thức S/MME cho việc cung cấp sự bảo mật.
Mỗi mẫu thông báo theo chuẩn PKCS#7 bao gồm: kiểu nội dung và nội dung:
Kiểu nội dung
Miêu tả các đặc điểm kỹ thuật cho mẫu nội dung và được tham chiếu đến
như là định danh đối tượng. Sáu kiểu nội dung được định nghĩa bởi PKCS#7 là:
- Data
- Signed data.
- Enveloped data
- Signed and enveloped data

- Digested data
- Encrypted data
Kiểu nội dung có thể phân thành 2 lớp: base , enhenced
- Base: nội dung được soạn thảo về dữ liệu không có tính chất mật mã. Kiểu
nội dung data được chứa trong lớp này.
- Enhenced: tất cả các kiểu nội dung còn lại được chứa trong lớp này
Mã hóa một giá trị ContentInfo
Để tạo ra một thông báo chữ ký cho Bob trước tiên cần mã hóa một giá trị
ContentInfo như mỗi PKCS#7. Giá trị này chứa đựng thông báo của Bob trong một
mẫy của một OCTET STRING.
Giả sử Bob muốn mã hóa một thông báo gửi đến Alice là người quản trị hệ
thống mới. Kiểu nội dung thông báo của Bob là một dữ liệu PKCS#7 và một giá trị
định danh đối tượng về:
{3 2 520 126731 3 6 2}
Khi Bob mã hóa giá trị ContentInfo, nó có thể thực hiện như sau
20 36
03 06 contentType = data
1b 76 84 78 d6 0c 03 06 02
b0 2a [0] EXPLICIT
03 21 content = OCTET STRING value: "Alice is the new
system administrator"
34 84 45 65 80 3d 3s 70 30 32 31 12 24 45 53 30
41 52 26 89 30 5d 77 88 2f
Sau khi mã hóa nội dung tiếp theo là băm nhỏ dữ liệu
Băm dữ liệu
Bob có thể sử dụng bất kỳ thuật toán phân biệt như MD2 để băm nội dung
thông báo cho mỗi PKCS#7. Kết quả là một thông báo băm. Nó có thể được thấy
trong bước trước là nội dung của thông báo gốc trong giá trị ContentInfo được thể
hiện như sau

