TIÊU CHUẨN QUỐC GIA TCVN 12855-3:2020 (ISO/IEC 9796-3:2013) VỀ CÔNG NGHỆ THÔNG TIN – CÁC KỸ THUẬT AN TOÀN – LƯỢC ĐỒ CHỮ KÝ SỐ CHO KHÔI PHỤC THÔNG ĐIỆP – PHẦN 3: CÁC CƠ CHẾ DỰA TRÊN LOGARIT RỜI RẠC
TIÊU CHUẨN QUỐC GIA
TCVN 12855-3:2020
ISO/IEC 9796-3:2013
CÔNG NGHỆ THÔNG TIN – CÁC KỸ THUẬT AN TOÀN – LƯỢC ĐỒ CHỮ KÝ SỐ CHO KHÔI PHỤC THÔNG ĐIỆP- PHẦN 3: CÁC CƠ CHẾ DỰA TRÊN LOGARIT RỜI RẠC
Information technology – Security techniques – Digital signature achemes giving message recovery – Part 3: Discrete logarithm based mechanisms
Lời nói đầu
TCVN 12855-3:2020 hoàn toàn tương đương với ISO/IEC 9796-3:2013.
TCVN 12855-3:2020 (ISO/IEC 9796-3:2013) do Cục Quản lý mật mã dân sự và Kiểm định sản phẩm mật mã biên soạn, Ban Cơ yếu Chính phủ đề nghị, Tổng cục Tiêu chuẩn Đo lường Chất lượng thẩm định, Bộ Khoa học và Công nghệ công bố.
Bộ tiêu chuẩn TCVN 12855:2020 Công nghệ thông tin – Các kỹ thuật an toàn – Lược đồ chữ ký số cho khôi phục thông điệp gồm các tiêu chuẩn sau:
TCVN 12855-2:2020 (ISO/IEC 9796-2:2010), Phần 2: Các cơ chế dựa trên phân tích số nguyên.
TCVN 12855-3:2020 (ISO/IEC 9796-3:2013), Phần 3: Các cơ chế dựa vào logarit rời rạc.
Bộ tiêu chuẩn này có thể có các phần tiếp theo.
CÔNG NGHỆ THÔNG TIN – CÁC KỸ THUẬT AN TOÀN – LƯỢC ĐỒ CHỮ KÝ SỐ CHO KHÔI PHỤC THÔNG ĐIỆP- PHẦN 3: CÁC CƠ CHẾ DỰA TRÊN LOGARIT RỜI RẠC
Information technology – Security techniques – Digital signature achemes giving message recovery – Part 3: Discrete logarithm based mechanisms
1 Phạm vi áp dụng
Tiêu chuẩn này quy định sáu lược đồ chữ ký số cho khôi phục thông điệp. Độ an toàn của những lược đồ này dựa trên độ phức tạp của bài toán logarit rời rạc, được xác định trên một trường hữu hạn hoặc một đường cong elliptic trên một trường hữu hạn.
Tiêu chuẩn này cũng định nghĩa một trường điều khiển tùy chọn trong thẻ băm, có thể cung cấp thêm tính an toàn cho chữ ký.
Tiêu chuẩn này đặc tả các cơ chế ngẫu nhiên.
Các cơ chế được đặc tả trong tiêu chuẩn này cho phép khôi phục toàn bộ hoặc một phần của thông điệp.
CHÚ THÍCH Các lược đồ chữ ký số dựa trên logarit rời rạc cùng phụ lục, xem TCVN 112214-3.
2 Tài liệu viện dẫn
Các tài liệu viện dẫn sau rất cần thiết cho việc áp dụng tiêu chuẩn này. Đối với những tài liệu viện dẫn có năm công bố, thì áp dụng phiên bản được nêu. Đối với tài liệu viện dẫn không ghi năm công bố, thì áp dụng phiên bản mới nhất (bao gồm cả các sửa đổi, bổ sung).
TCVN 11816 (ISO/IEC 10118)(Tất cả các phần), Công nghệ thông tin – Các kỹ thuật an toàn – Hàm băm.
TCVN 12855 -1 (TCVN 12852-1), Công nghệ thông tin – Các kỹ thuật an toàn – Kỹ thuật mật mã dựa trên đường cong elliptic – Phần 1: Tổng quan.
TCVN 12855 -5 (TCVN 12852-5), Công nghệ thông tin – Các kỹ thuật an toàn – Kỹ thuật mật mã dựa trên đường cong elliptic – Phần 5: Sinh đường cong elliptic.
3 Thuật ngữ và định nghĩa
Tiêu chuẩn này áp dụng các thuật ngữ và định nghĩa sau đây:
3.1
Dữ liệu đầu vào (data input)
Xâu bộ tám mà phụ thuộc vào toàn bộ hoặc một phần của thông điệp, và tạo thành một phần đầu vào của quá trình tạo chữ ký.
3.2
Tham số miền (domain parameter)
Mục dữ liệu chung và được nhận biết bởi hoặc có thể được truy cập bởi tất cả các thực thể trong miền.
[TCVN 12214-4]
CHÚ THÍCH Tập các tham số miền có thể chứa các mục dữ liệu như thẻ định danh hàm băm, độ dài của thẻ băm, độ dài lớn nhất của phần thông điệp có thể khôi phục, tham số trường hữu hạn, tham số đường cong elliptic, hoặc các tham số khác đặc tả chính sách an toàn trong miền.
3.3
Đường cong elliptic (elliptic curve)
Tập các điểm P = (x,y) trong đó x và y là các phần tử của một trường hữu hạn cho dưới dạng tường minh sao cho mọi điểm đều thỏa mãn một phương trình cấp ba mà không có bất kỳ điểm kì dị kể cả “điểm vô cực” ký hiệu là O.
[TCVN 12852-1:2002]
CHÚ THÍCH Định nghĩa toán học của đường cong elliptic trên trường hữu hạn cho dưới dạng tường minh, xem A.4.
3.4
Trường hữu hạn cho trước dưới dạng tường minh (explicitly given finite field)
Tập hợp tất cả các e-tuple trên đoạn [0,p – 1] trong đó p là số nguyên tố, e ≥ 1, cùng với một bảng nhân.
CHÚ THÍCH 1 Định nghĩa toán học của một trường hữu hạn cho dưới dạng tường minh, xem A.3.
CHÚ THÍCH 2 Chi tiết cụ thể về trường hữu hạn xem TCVN 12852-1:2002
3.5
Mã băm (hash-code)
Xâu bộ tám đầu ra của một hàm băm.
CHÚ THÍCH Theo TCVN 11816-1.
3.6
Hàm băm (hash-function)
Hàm ánh xạ các xâu bộ tám thành các xâu bộ tám có độ dài cố định thỏa mãn hai tính chất sau:
– Với một đầu ra cho sẵn thì rất khó có thể tìm được một đầu mà ánh xạ tới đầu ra đó;
– Với một đầu vào cho sẵn thì rất khó có thể tìm được một đầu vào thứ hai cùng ánh xạ tới cùng một đầu ra.
CHÚ THÍCH 1 Phỏng theo TCVN 11816-1.
CHÚ THÍCH 2 Tính khả thi về mặt toán học phụ thuộc vào môi trường và các yêu cầu an ninh cụ thể.
CHÚ THÍCH 3 vì mục đích của tiêu chuẩn này ISO/IEC 9796, những hàm băm được cho phép là những hàm được miêu tả trong TCVN 11816-2 và ISO/IEC TCVN 11816-3 với điều kiện sau:
– Những hàm băm được mô tả trong TCVN 11816-1 ánh xạ các xâu bit tới các xâu bit, trong khi trong tiêu chuẩn này thì chúng ánh xạ các xâu bộ tám tới các xâu bộ tám. Do vậy, một hàm băm trong TCVN 11816-2 hoặc TCVN 11816-3 được phép sử dụng trong tiêu chuẩn này chỉ khi độ dài bằng bit của đầu ra là bội số của 8 trong trường hợp việc ánh xạ giữa các xâu bộ tám và xâu bit bị ảnh hưởng bởi các hàm 0S2BSP và BS20SP.
3.7
Thẻ băm (hash-token)
Sự kết hợp của một mã băm và một trường điều khiển tùy chọn có thể được sử dụng để định dạng hàm băm và phương pháp đệm.
[TCVN 12214-1]
CHÚ THÍCH Trường điều khiển với định dạng của hàm băm là bắt buộc, trừ khi hàm băm được xác định duy nhất bởi cơ chế chữ ký hoặc bởi tham số miền.
3.8
Thông điệp (message)
Xâu bộ tám với độ dài bất kỳ.
3.9
Quá trình tạo tham số (parameter generation process)
Quá trình mà cho đầu ra là các tham số miền và khóa người dùng.
3.10
Tiền chữ ký (pre-signature)
Xâu bộ tám được tính trong quá trình tạo chữ ký là một hàm của số ngẫu nhiên nhưng không liên quan tới thông điệp.
CHÚ THÍCH phỏng theo TCVN 12214-1.
3.11
Khóa chữ ký bí mật (private signature key)
Mục dữ liệu đặc trưng cho một thực thể và chỉ được sử dụng bởi thực thể đó trong quá trình tạo chữ ký.
3.12
Khóa xác minh công khai (public verification key)
Mục dữ liệu mà có liên quan về mặt toán học với khóa chữ ký bí mật và được biết đến hoặc có thể được truy cập bởi tất cả thực thể, và được sử dụng bởi bên xác thực trong quá trình xác minh chữ ký.
3.13
Tính ngẫu nhiên (randomized)
Phụ thuộc vào một số ngẫu nhiên.
[TCVN 12214-1]
3.14
Số ngẫu nhiên (randomizer)
Số nguyên bí mật được tạo ra bởi thực thể ký trong quá trình tạo tiền chữ ký và không thể đoán được bởi các thực thể khác.
CHÚ THÍCH Phỏng theo TCVN 12214-1.
3.15
Chữ ký (signature)
Cặp của một xâu bộ tám và một số nguyên cho việc xác thực, được tạo ra trong quá trình sinh chữ ký.
CHÚ THÍCH Phỏng theo TCVN 12214-1
3.16
Quá trình tạo chữ ký (signature generation process)
Quá trình mà đầu vào là thông điệp, khóa chữ ký, các tham số miền, và đưa ra đầu ra là chữ ký.
CHÚ THÍCH Phỏng theo định nghĩa quá trình ký trong TCVN 12214-1.
3.17
Quá trình xác minh chữ ký (signature verification process)
Quá trình mà đầu vào là thông điệp đã được ký, khóa xác minh, các tham số miền, và đưa ra đầu ra là thông điệp được khôi phục nếu nó hợp lệ.
CHÚ THÍCH Phỏng theo định nghĩa quá trình xác thực trong TCVN 12214-1.
3.18
Thông điệp đã được ký (signed message)
Tập các mục dữ liệu bao gồm chữ ký, một phần của thông điệp không thể khôi phục được từ chữ ký, và một trường văn bản tùy chọn.
[TCVN 12214-1]
3.19
Khóa người dùng (user keys)
Mục dữ liệu của một tập khóa chữ ký bí mật và khóa xác minh công khai.
4 Các ký hiệu, chú thích và quy ước
4.1 Các ký hiệu và chú thích
Tiêu chuẩn này áp dụng các ký hiệu và chữ viết tắt sau đây.
A
B d d’ E F G
h h’ h” Hash, Hash1, Hash2 k KDF Lcir Ldat LF
Lrec Lred L(x) LHash M Mcir Mrec M’ |
Thực thể, thường là bên ký
Thực thể, thường là bên xác thực Dữ liệu đầu vào (xâu bộ tám) Dữ liệu đầu vào được khôi phục (xâu bộ tám) Đường cong elliptic trên trường hữu hạn cho dưới dạng tường minh Trường hữu hạn cho dưới dạng tường minh Phần tử sinh của nhóm cơ sở (phần tử trường hữu hạn/ điểm đường cong elliptic (rút gọn) Thẻ băm (xâu bộ tám) Thẻ băm (rút gọn) được khôi phục (xâu bộ tám) Thẻ băm (rút gọn) được tính toán lại (xâu bộ tám) Hàm băm Số ngẫu nhiên (số nguyên) Hàm dẫn xuất khóa (đồng nghĩa với MGF) Độ dài bộ tám của phần không thể khôi phục (số nguyên) Độ dài bộ tám của dữ liệu đầu vào (số nguyên) Độ dài bộ tám của trường hữu hạn cho dưới dạng tường minh F (số nguyên không âm) (lớn nhất) độ dài bộ tám của phần có thể khôi phục (số nguyên) Độ dài bộ tám (thêm) của phần dư (số nguyên) Độ dài bộ tám của số nguyên x hoặc bộ xâu tám x (số nguyên không âm) Độ dài bộ tám đầu ra của hàm băm Hash (số nguyên không âm) Thông điệp (xâu bộ tám) Phần không thể khôi phục của thông điệp (xâu bộ tám) Phần có thể khôi phục của thông điệp (xâu bộ tám) Thông điệp được khôi phục (xâu bộ tám) |
|
M’clr | Phần không thể khôi phục của thông điệp nhận được (xâu bộ tám) | |
M’rec | Phần được khôi phục của thông điệp (xâu bộ tám) | |
MGF | Hàm tạo mặt nạ | |
n | Cấp của nhóm được sinh bởi G (số nguyên tố) | |
O | Điểm vô cực của đường cong elliptic | |
p | Số nguyên tố | |
P | Phần tử phụ thuộc vào lược đồ tạo khóa đã chọn, đó là P = G cho lược đồ tạo khóa 1 và P = YA cho lược đồ tạo khóa II [xem 7.3] | |
П | Tiền chữ ký (xâu bộ tám) | |
П’ | Tiền chữ ký được khôi phục (xâu bộ tám) | |
q | Lũy thừa nguyên tố | |
Q | Phần tử phụ thuộc vào lược đồ tạo khóa đã được chọn, đó là Q = YA cho lược đồ tạo khóa 1 và Q = G cho lược đồ tạo khóa II [xem 7.3] | |
r | Phần đầu của chữ ký (xâu bộ tám) | |
r’ | Phần đầu của chữ ký được khôi phục (xâu bộ tám) | |
s | Phần thứ hai của chữ ký (số nguyên) | |
s’ | Phần thứ hai của chữ ký được khôi phục (số nguyên ) | |
xA | Khóa chữ ký bí mật của thực thể A | |
YA | Khóa kiểm tra công khai của thực thể A | |
{0,1}* | Tập xâu bit hữu hạn | |
{0,1}8* | Tập xâu bộ tám hữu hạn | |
{0,1}l | Tập xâu bít có độ dài l, trong đó l là số nguyên không âm | |
{0,1}8l | Tập xâu bộ tám có độ dài l, trong đó l là số nguyên không âm | |
[a,b] | Tập các số nguyên x thỏa mãn a≤ x ≤ b trong đó a và b là các số nguyên | |
|x| | Độ dài của xâu bit x | |
|X| | Lực lượng của tập X | |
[x]l | l bit trái của xâu bộ tám x, thêm các bit 0 vào bên phải khi 8l > L(x) | |
[x]l | l bit phải của xâu bộ tám x, thêm các bit 0 vào bên trái khi 8l > L(x) | |
x mod n | r ϵ [0,n – 1] sao cho (x – r) chia hết cho n, trong đó x là một số nguyên. | |
x y | Phép toán XOR bit của xâu x và y | |
x ll y | Phép ghép nối của các xâu bit x và y | |
X x Y | Tích đề các của hai tập hợp X và Y | |
4.2 Các hàm chuyển đổi và hàm tạo mặt nạ
Với mục đích của tiêu chuẩn này, các hàm chuyển đổi và hàm tạo mặt nạ sau đây được sử dụng:
BS2IP | Nguyên thủy chuyển đổi xâu bit thành số nguyên [xem B.2] |
BS2OSP | Nguyên thủy chuyển đổi xâu bit thành xâu bộ tám [xem B.1] |
EC2OSP | Nguyên thủy chuyển đổi đường cong elliptic thành xâu bộ tám kiểu [xem B.6] |
FE2IP | Nguyên thủy chuyển đổi phần tử hữu hạn thành số nguyên [xem B.4] |
FE2OSP | Nguyên thủy chuyển đổi phần tử trường hữu hạn thành xâu bộ tám [xem B.5] |
I2BSP | Nguyên thủy chuyển đổi số nguyên thành xâu bit [xem B.2] |
I2OSP | Nguyên thủy chuyển đổi số nguyên thành xâu bộ tám [xem B.3] |
MGF1 | Hàm tạo mặt nạ 1 [xem C.2] |
MGF2 | Hàm tạo mặt nạ 2 [xem C.3] |
OS2BSP | Nguyên thủy chuyển đổi xâu bộ tám thành xâu bit [xem B.1] |
OS2ECP | Nguyên thủy chuyển đổi xâu bộ tám thành đường cong elliptic [xem B.6] |
OS2FEP | Nguyên thủy chuyển đổi xâu bộ tám thành phần tử trường hữu hạn [xem B.5] |
OS2IP | Nguyên thủy chuyển đổi xâu bộ tám thành số nguyên [xem B.3] |
4.3 Chú giải cho hình vẽ
Những chú giải sau đây được sử dụng cho các hình vẽ trong Điều 7 miêu tả các quá trình tạo chữ ký và xác minh chữ ký số cho việc khôi phục thông điệp.
Bước của quá trình | |
Luồng dữ liệu bắt buộc | |
Luồng dữ liệu không bắt buộc |
5 Sự ràng buộc giữa các cơ chế chữ ký và hàm băm
Việc sử dụng các lược đồ chữ ký được miêu tả trong tiêu chuẩn này yêu cầu chọn một hàm băm Hash. TCVN 11816 (ISO/IEC 10118) đặc tả các hàm băm. Sẽ có một sự ràng buộc giữa cơ chế chữ ký và hàm băm đang sử dụng. Nếu không có sự rằng buộc này thì một kẻ tấn công có thể yêu cầu sử dụng một hàm băm yếu (chứ không phải là một hàm băm thực) và từ đó có thể giả mạo chữ ký
Người sử dụng cơ chế chữ ký cần tiến hành đánh giá rủi ro xem xét chi phí và lợi ích của các biện pháp thay thế khác nhau để hoàn thành ràng buộc được yêu cầu. Việc đánh giá này nên bao gồm một đánh giá về chi phí liên quan tới khả năng một chữ ký giả mạo được tạo ra.
CHÚ THÍCH 1 Một trong những yêu cầu bảo mật cho hàm băm Hash sử dụng trong tiêu chuẩn này là “kháng va chạm”
CHÚ THÍCH 2 Có nhiều cách để đạt được sự ràng buộc này. Những lựa chọn dưới đây được liệt kê theo thứ tự tăng dần về rủi ro:
- a) Yêu cầu một hàm băm cụ thể khi sử dụng một cơ chế chữ ký cụ thể. Quá trình xác thực sẽ chỉ sử dụng hàm băm cụ thể đó. TCVN 112214-3 đưa ra một ví dụ về lựa chọn này trong đó cơ chế DSA yêu cầu sử dụng hàm Hash riêng biệt 3 (hay còn được biết đến như SHA-1) từ TCVN 11816-3;
- b) Cho phép một tập các hàm băm và chỉ rõ hàm băm đang được sử dụng trong các tham số chứng thư miền. Trong chứng thư miền, quá trình xác thực sẽ sử dụng hàm băm được nói tới trong chứng thư. Bên ngoài chứng thư miền, có nguy cơ phát sinh từ cơ quan chứng thực mà có thể không tuân thủ theo chinh sách của người dùng. Ví dụ nếu một cơ quan chứng thực bên ngoài tạo một chứng thư cho phép sử dụng các hàm bảm khác, thì vấn đề giả mạo chữ ký có khả năng xuất hiện. Trong trường hợp đó, bên xác thực có thể sẽ khiếu nại cơ quan chứng thực mà đã cung cấp chứng thực khác; và
- c) Cho phép một tập các hàm băm và chỉ rõ các hàm băm đang được sử dụng bởi các phương pháp khác, ví dụ một chỉ dẫn trong thông báo hoặc một thỏa thuận song phương. Quá trình xác thực sẽ chỉ sử dụng hàm băm được nói tới bởi phương pháp khác. Tuy nhiên, kẻ tấn công có thể giả mạo một chữ ký sử dụng một hàm băm khác.
CHÚ THÍCH 3 “Phương pháp khác” được đề cập đến trong đoạn c) phía trên có thể ở dạng của một định dạng hàm băm cố trong đại diện xâu bộ tám d. Nếu định dạng hàm băm được bao gồm trong d theo như cách này thì kẻ tấn công không thể sử dụng lại một chữ ký hiện có với cùng một xâu bộ tám d1 và một xâu bộ tám d2 khác, ngay cả khi bên kiểm tra có thể được thuyết phục chấp nhận chữ ký được tạo ra bằng cách sử dụng hàm băm đủ yếu mà có thể tìm thấy hình ảnh trước. Tuy nhiên, trong trường hợp thứ hai này cùng với việc sử dụng hàm băm yếu, kẻ tấn công vẫn có thể tìm thấy một chữ ký mới với d1 “ngẫu nhiên”.
CHÚ THÍCH 4 Cuộc tấn công đã đề cập trong chú ý 3 mà có thể tạo ra chữ ký mới với d1 “ngẫu nhiên” có thể được ngăn chặn bằng cách yêu cầu sự hiện diện của một cấu trúc cụ thể trong d2. Ví dụ, người ta có thể đặt một giới hạn độ dài trên d1 đủ nhỏ hơn khả năng của lược đồ chữ ký. Đối với một số lược đồ chữ ký số, giới hạn độ dài trên cũng có thể ngăn cản kẻ tấn công sử dụng lại các chữ ký hiện có ngay cả khi định dạng hàm băm không được đưa vào trong đại diện thông điệp, với điều kiện hàm tạo mặt nạ MGF phải dựa trên hàm băm. Điều này được đảm bảo dưới giả định là hàm băm yếu là một hàm băm “có nhiều công dụng”, không phải chỉ được thiết kế nhằm mục đích giả mạo chữ ký.
6 Khung chữ ký số cho phép khôi phục thông điệp
6.1 Các quá trình
Từ 6.2 đến 6.4 sẽ bao gồm sự mô tả ở mức cao của một mô hình chung cho sáu lược đồ chữ ký số được đặc tả trong tiêu chuẩn này. Phần mô tả chi tiết của mô hình chung này sẽ được trình bày trong 7.
Lược đồ chữ ký số được đặc tả trong tiêu chuẩn này được xác định bởi phần đặc tả của các quá trình sau đây:
– Quá trình tạo tham số;
– Quá trình tạo chữ ký;
– Quá trình xác minh chữ ký;
6.2 Quá trình tạo tham số
6.2.1 Tham số miền
Các tham số có thể được chia thành tham số miền và khóa của người dùng. Các tham số miền bao gồm các tham số để xác định một nhóm hữu hạn, ví như một nhóm nhân của một trường hữu hạn hoặc một nhóm cộng trên một đường cong elliptic trên một trường hữu hạn, và những thông tin công khai khác mà phổ biến, được biết đến hoặc có thể truy cập bởi tất cả thực thể trong miền. Cũng giống như các tham số miền đặc trưng cho lược đồ mật mã đang được sử dụng, những tham số sau đây cũng cần được định rõ:
– Định danh cho lược đồ chữ ký số được sử dụng;
– Kiểu của phần dư
– (tùy chọn) một hàm băm Hash;
– Các thủ tục tạo khóa người dùng.
Các kỹ thuật cài đặt và nền tảng toán học cho một nhóm cộng trên đường cong elliptic trên một trường hữu hạn được viện dẫn trong TCVN 12852-1. Các phương pháp để xây dựng đường cong elliptic trên một trường hữu hạn được viện dẫn trong tài liệu TCVN 12852-5.
6.2.2 Khóa người dùng
Mỗi một thực thể có khóa bí mật và khóa công khai. Khóa người dùng của thực thể A bao gồm:
– Khóa chữ ký bí mật xA;
– Khóa xác minh công khai YA;
– (Tùy chọn) thông tin khác đặc trưng cho thực thể A để sử dụng trong quá trình tạo hoặc/hay xác minh chữ ký số.
CHÚ THÍCH 1 Khóa người dùng chỉ hợp lệ trong phạm vi của một bộ tham số miền cụ thể.
CHÚ THÍCH 2 Bên xác minh chữ ký có thể sẽ yêu cầu sự đảm bảo về tính hợp lệ của tham số miền và khóa xác minh công khai, nếu không thì sẽ không đảm bảo được việc đạt được độ an toàn mong muốn ngay cả khi xác minh chữ ký. Bên ký cũng có thể yêu cầu sự đảm bảo về tính hợp lệ của tham số miền và khóa xác minh công khai, nếu không thì kẻ tấn công có thể tạo chữ ký để xác thực.
6.3 Quá trình tạo chữ ký số
Quá trình tạo chữ ký số cần các mục dữ liệu sau đây:
– Tham số miền;
– Khóa chữ ký bí mật xA của người ký A.
– Một thông điệp M.
Tất cả các lược đồ được đặc tả trong tiêu chuẩn này, quá trình tạo chữ ký gồm các thủ tục sau:
- a) Phân chia thông điệp;
- b) (Tùy chọn) tính toán phần dư hoặc tính toán thông điệp rút gọn;
- c) Tính toán trên một nhóm hữu hạn, có thể hoặc là nhóm nhân của một trường hữu hạn hoặc nhóm cộng trên đường cong elliptic trên trường hữu hạn;
- d) Tính toán theo modulo cấp của nhóm của phần tử cơ sở G;
- e) Định dạng thông điệp đã ký.
Đầu ra của quá trình tạo chữ ký số là một cặp (r,s) tạo nên chữ ký số của A trên thông điệp M.
6.4 Quá trình xác minh chữ ký
Quá trình xác minh chữ ký cần có các mục dữ liệu sau:
– Các tham số miền;
– Khóa xác minh công khai YA của người ký A;
– Phần không thể khôi phục của thông điệp M’clr (nếu có);
– Chữ ký nhận được cho thông điệp M, được biểu diễn dưới dạng một xâu bộ tám r’ và một số nguyên s’.
Đối với tất cả các lược đồ, quá trình xác minh chữ ký sẽ gồm một số hoặc tất cả các thủ tục sau:
- a) Xác thực kích thước của chữ ký;
- b) Tính toán trên một trường hữu hạn, có thể là một nhóm nhân của một trường hữu hạn hoặc một nhóm cộng trên đường cong elliptic trên một trường hữu hạn.
- c) Tính toán theo modulo cấp của nhóm của phần tử cơ sở G;
- d) Kiểm tra chữ ký.
Nếu tất cả các thủ tục đều được thông qua thì chữ ký sẽ được chấp nhận bởi bên xác thực, ngược lại nó sẽ bị từ chối.
7 Mô hình tổng quát của chữ ký số cho khôi phục thông điệp
7.1 Các yêu cầu
7.1.1 Các tham số miền
Người dùng muốn sử dụng một trong những cơ chế chữ ký số được đặc tả trong tiêu chuẩn này sẽ phải chọn các tham số miền sau đây của lược đồ chữ ký số:
- a) Cho trước một trường hữu hạn F cụ thể, hoặc một đường cong elliptic E trên một trường hữu hạn cụ thể cho trước F;
- b) Một phần tử G trên F hoặc E của cấp nguyên tố n.
Thỏa thuận về những lựa chọn này giữa những người sử dụng là cần thiết cho mục đích hoạt động của các cơ chế chữ ký số cho khôi phục thông điệp.
CHÚ THÍCH 1 Giá trị của n ảnh hưởng tới mức độ an toàn do lược đồ cung cấp và sẽ được chọn để đáp ứng chỉ tiêu an toàn đã được xác định trước.
CHÚ THÍCH 2 Hai nhóm mà lược đồ này có thể sử dụng thường được viết dưới dạng ký hiệu nhân (đối với các nhóm nhân của trường hữu hạn) và ký hiệu cộng (đối với nhóm các điểm trên đường cong elliptic). Trong Điều 7, ký hiệu nhân được sử dụng để đơn giản hóa việc trình bày
CHÚ THÍCH 3 Định nghĩa về một trường hữu hạn cụ thể cho trước, xem A.3.
CHÚ THÍCH 4 Định nghĩa về đường cong elliptic trên một trường hữu hạn cụ thể cho trước, xem A.4.
CHÚ THÍCH 5 Để cho việc cài đặt hiệu quả và các kĩ thuật mật mã liên quan tới các nhóm trên đường cong elliptic, xem TCVN 12852-1:2002.
7.1.2 Kiểu của phần dư
Người sử dụng phải chọn kiểu của phần dư như sau:
– Phần dư tự nhiên
– Phần dư thêm, hoặc
– Cả hai
Việc thỏa thuận về kiểu phần dư giữa những người sử dụng là cần thiết cho mục đích hoạt động của cơ chế chữ ký số cho việc khôi phục thông điệp.
Nếu người sử dụng sử dụng phần dư thêm thì chiều dài tính theo bộ tám của phần dư thêm Lred sẽ là cố định. Một thông điệp với phần dư thêm có thể được xây dựng bằng thẻ băm của thông điệp đó hoặc của thông điệp có thể khôi phục.
Nếu người dùng chỉ sử dụng phần dư tự nhiên, thì Lred được đặt bằng 0. Một thông điệp có phần dư tự nhiên có nghĩa là thông điệp đó bao gồm phần dư tự nhiên, chẳng hạn như việc sử dụng các ký tự ASCII hoặc phần dư của thông điệp có thể được xác thực ngầm trong một số ứng dụng.
Phần dư tự nhiên hoặc phần dư thêm có thể là bất cứ thứ gì đã được thỏa thuận trước đó miễn là nó có thể được kiểm tra bởi các bên trao đổi. Tổng phần dư bao gồm phần dư tự nhiên và phần dư thêm, sẽ lớn hơn một số giá trị tối thiểu nào đó do ứng dụng quy định. Nói chung, phần dư tự nhiên sẽ chỉ được sử dụng cho việc khôi phục thông điệp tổng.
CHÚ THÍCH Giá trị của tham số Lred cũng ảnh hưởng đến mức độ bảo mật của chữ ký cho việc khôi phục thông điệp.
7.2 Tổng hợp các hàm và các thủ tục
Các lược đồ chữ ký được đặc tả trong tiêu chuẩn này cho khôi phục thông điệp. Chính xác hơn, một số dữ liệu là đầu vào của hàm tạo chữ ký được khôi phục từ chữ ký như là một phần của thủ tục xác minh chữ ký.
Lược đồ chữ ký số bao gồm các hàm và các thủ tục sau:
– Quá trình tạo khóa người dùng;
– Quá trình tạo chữ ký;
– Quá trình xác minh chữ ký.
7.3 Quá trình tạo khóa người dùng
Một trong hai phương pháp sau đây sẽ được sử dụng để tính cặp khóa, bao gồm khóa xác minh công khai và khoá chữ ký bí mật (thực thể bên ký phải giữ bí mật khoá chữ ký bí mật):
- a) Tạo khóa I
Với một tập các tham số miền hợp lệ, khóa chữ ký bí mật và khóa xác minh công khai tương ứng có thể được tạo ra như sau:
1) Chọn một số nguyên ngẫu nhiên hoặc giả ngẫu nhiên xA trong tập [1,n – 1]. Số nguyên xA phải được giữ bí mật và không thể đoán được;
2) Tính phần tử YA = GxA;
3) Cặp khóa là (YA, xA), trong đó YA sẽ được sử dụng như khóa xác minh công khai và xA là khóa chữ ký bí mật.
Để việc mô tả các thuật toán được thống nhất, đặt P = G và Q = YA
- b) Tạo khóa Il
Với một tập các tham số miền hợp lệ, khóa chữ ký bí mật và khóa xác minh công khai tương ứng có thể được tạo ra như sau:
1) Chọn một số ngẫu nhiên hoặc giả ngẫu nhiên e trong tập [1,n – 1] và tính một số nguyên xA trong khoảng [1,n – 1] với thỏa mãn xAe = 1 mod n. Số nguyên xA phải được giữ bí mật và không thể đoán được;
2) Tính phần tử YA = Ge, và sau đó xóa nguyên số e một cách an toàn;
3) Cặp khóa là (YA, xA), trong đó YA sẽ được sử dụng như khóa xác minh công khai và xA là khóa chữ ký bí mật.
Để việc mô tả các thuật toán được thống nhất, đặt P = YA và Q = G.
Trước khi sử dụng khoá xác thực công khai, bên kiểm tra phải kiểm tra tính hợp lệ và quyền sở hữu của khóa đó. Việc kiểm tra này có thể được thực hiện bằng nhiều phương pháp khác nhau, xem mục 6.2.2.
CHÚ THÍCH 1 Một số lược đồ sử dụng khoảng [1,n – 2] cho khóa chữ ký bí mật xA.
CHÚ THÍCH 2 Tạo khóa I là phương pháp phổ biến nhất và thường được sử dụng. Trong một số môi trường mà ở đó việc tính nghịch đảo theo modulo khá tốn kém thì Tạo khóa II có thể được sử dụng.
7.4 Quá trình tạo chữ ký
7.4.1 Thủ tục
Hình 1 thể hiện quá trình tạo chữ ký, bao gồm các thủ tục sau:
- a) Tạo một số ngẫu nhiên và tiền chữ ký;
- b) Phân chia thông điệp;
- c) Tạo dữ liệu đầu vào;
- d) Tính toán chữ ký;
- e) Định dạng thông điệp đã ký.
CHÚ THÍCH mỗi cơ chế có thể yêu cầu tham số miền phụ thuộc vào lược đồ thay vì những tham số được thể hiện trong hình 1.
Hình 1: Quá trình tạo chữ ký
7.4.2 Tạo số ngẫu nhiên và tiền chữ ký
Trước khi tính toán chữ ký, thực thể bên ký phải có sẵn một giá trị ngẫu nhiên mới và bí mật. Số ngẫu nhiên là một số nguyên k sao cho 1 ≤ k ≤ n – 1. Việc thực hiện lược đồ chữ ký phải đảm bảo đáp ứng hai yêu cầu sau:
– Việc tạo số ngẫu nhiên sẽ được thực hiện theo cách mà khả năng có thể dùng cùng một số ngẫu nhiên để tạo ra chữ ký cho hai thông điệp khác nhau là gần như không thể;
– Các giá trị ngẫu nhiên đã sử dụng sẽ không bao giờ được tiết lộ; một khi đã được sử dụng, chúng sẽ bị hủy.
Đầu tiên, một số nguyên, ngẫu nhiên k được tạo ra. Sau đó tiền chữ ký П, một xâu bộ tám, được tính toán như một hàm của số ngẫu nhiên. Tiền chữ ký là một mục dữ liệu trung gian được tạo ra trong quá trình tạo chữ ký trong bất kỳ cơ chế chữ ký ngẫu nhiên nào. Tiền chữ ký là một mục dữ liệu công khai, trong khi giá trị của số ngẫu nhiên sẽ chỉ có sẵn cho quá trình tạo chữ ký.
CHÚ THÍCH 1 Việc tiết lộ số ngẫu nhiên sau khi sử dụng có thể gây nguy hiểm tới tính an toàn của khoá riêng. Các số ngẫu nhiên đã sử dụng không được tái sử dụng bởi bên ký hoặc bên xác thực và phải được xoá một cách an toàn. Nếu cùng một giá trị số ngẫu nhiên được sử dụng để tạo ra chữ ký cho hai thông điệp khác nhau, hoặc nếu số ngẫu nhiên cho một chữ ký được tiết lộ, thì kẻ tấn công thể khôi phục khóa bí mật từ chữ ký.
CHÚ THÍCH 2 Các số ngẫu nhiên và tiền chữ kỹ có thể được tạo và tính toán ngoại tuyến. Trong trường hợp này, các số ngẫu nhiên phải được lưu trữ một cách an toàn để sử dụng trong tương lai bởi quá trình tạo chữ ký.
7.4.3 Phân chia thông điệp
Thông điệp M được chia thành phần có thể khôi phục được Mrec và phần không thể khôi phục được Mcir. Lrec và Lcir được xác định lần lượt là độ dài theo bộ tám của phần có thể khôi phục được Mrec và phần không thể khôi phục được Mclr.
7.4.4 Tạo dữ liệu đầu vào
Đầu vào cho hàm dữ liệu đầu vào là phần có thể khôi phục Mrec của thông điệp với phần dư thêm, hoặc phần có thể khôi phục Mrec và phần dư tự nhiên. Các đầu vào có thể bao gồm phần không thể khôi khôi phục Mcir, chiều dài Lrec và Lclr. Nếu sử dụng phần dư thêm thì dữ liệu đầu vào sẽ liên quan đến việc tạo ra thẻ băm. Thẻ băm được tạo ra bởi chính mã băm, hoặc với định danh hàm băm nối vào bên phải của mã băm, trong đó mã băm được tính bằng cách băm thông điệp (có thể khôi phục một phần). Việc lựa chọn thẻ băm có hay không bao gồm các định danh hàm băm là do các tham số miền quyết định. Đầu ra của hàm nhập dữ liệu là một xâu bộ tám d.
CHÚ THÍCH 1 Việc lựa chọn dữ liệu đầu vào có thể được quyết định bởi từng ứng dụng hoặc lược đồ chữ ký.
CHÚ THÍCH 2 Xem phụ lục D về ví dụ phương pháp tạo dữ liệu đầu vào với phần dư thêm.
7.4.5 Tính toán chữ ký
Các chữ ký được tạo ra bởi các lược đồ trong tiêu chuẩn này có hai phần r và s. Phần thứ nhất r là một xâu bộ tám được tính toán như một hàm của tiền chữ ký П và dữ liệu đầu vào d (và các tham số tùy chọn khác), trong đó d là một xâu bộ tám phụ thuộc vào thông điệp. Phần thứ hai s là một số nguyên thỏa mãn 0 < s < n và được tính toán như là một hàm của phần thứ nhất r, số ngẫu nhiên k, và khóa chữ ký bí mật xA (và tùy chọn các tham số khác).
7.4.6 Định dạng thông điệp
Kiến thức về chiều dài của phần có thể khôi phục được của thông điệp là cần thiết cho việc mở và xác thực thành công thông điệp đã được ký. Thông tin này phải được cung cấp bởi tham số miền, được bao gồm trong thông điệp đã được ký và I hoặc lấy ra từ dữ liệu đầu vào d.
Thông điệp đã được ký bao gồm những mục dữ liệu sau:
– Phần không thể khôi phục được của thông điệp Mclr;
– Phần thứ nhất của chữ ký r;
– Phần thứ hai của chữ ký s;
– (tùy chọn) Độ dài Lrec của phần thông điệp có thể khôi phục;
7.5 Quá trình xác minh chữ ký
7.5.1 Thủ tục
Hình 2 thể hiện quá trình xác minh chữ ký, gồm những thủ tục sau:
- a) Mở thông điệp đã ký;
- b) Xác thực kích cỡ của chữ ký;
- c) Khôi phục tiền chữ ký hoặc dữ liệu đầu vào;
- d) Khôi phục dữ liệu đầu vào hoặc thông điệp;
- e) Tính toán lại thẻ băm (tùy chọn);
- f) Kiểm tra chữ ký
Hình 2: Quá trình xác minh chữ ký
Kiểm tra chữ ký bao gồm:
– So sánh thẻ băm được khôi phục và thẻ băm được tính toán lại (rút gọn), hoặc
– Xác thực phần dư
7.5.2 Mở thông điệp đã được ký
Khi bắt đầu bước này, bên xác thực phải có sẵn những thông tin sau:
– Độ dài của các phần khác nhau của thông điệp/chữ ký trong thông điệp đã được ký;
– Giá trị của tham số Lred.
Bên xác thực trích xuất những phần khác nhau sau đây của thông điệp đã được ký:
– Phần không thể khôi phục được của thông điệp;
– Phần thứ nhất r’ của thông điệp;
– Phần thứ hai s’ của thông điệp;
– (tùy chọn) độ dài L’rec của phần thông điệp có thể khôi phục được.
7.5.3 Xác thực kích thước chữ ký
Bên xác thực phải xác thực kích thước các phần của một chữ ký.
7.5.4 Khôi phục tiền chữ ký
Lúc ban đầu của bước này, bên xác thực phải có sẵn những thông tin sau:
– Các tham số công khai đặc tả lược đồ chữ ký đang được sử dụng;
– Khóa xác minh công khai YA của thực thể bên ký.
Các tính toán trong bước này đặc trưng cho lược đồ chữ ký đang được sử dụng. Tiền chữ ký được xác định bởi khóa xác minh công khai YA. Với chữ ký (r ‘,s’) đã cho, tiền chữ ký П‘ được khôi phục.
7.5.5 Khôi phục dữ liệu đầu vào hoặc thông điệp
Cho phần thứ nhất r’ của chữ ký và tiền chữ ký được thu hồi П ‘, dữ liệu đầu vào d’ sẽ được khôi phục trong đó dữ liệu đầu vào được khôi phục d’ là một xâu bộ tám.
7.5.6 Tính toán lại thẻ băm (tùy chọn)
Thứ nhất, hàm băm được sử dụng bởi thực thể ký tên trong mục 7.4 có thể được xác định bởi tham số miền và I hoặc bởi lấy định dạng của hàm băm từ thẻ băm đã khôi phục. Sau đó, mã băm được tính toán lại bằng cách băm thông điệp.
Mã băm được tính toán lại được sử dụng để lấy thẻ băm được tính toán lại bằng cách tùy chọn nối định dạng hàm băm.
7.5.7 Kiểm tra chữ ký
Kiểm tra chữ ký bao gồm:
– Sao sánh thẻ băm được tính toán lại (rút gọn) h” với thẻ băm được khôi phục (rút gọn) h’, hoặc
– Xác thực phần dư thêm và/hoặc phần dư tự nhiên của thông điệp được khôi phục.
8 NR(Chữ ký khôi phục thông điệp Nyberg-Rueppel)
8.1 Tham số miền và khóa người sử dụng
Tham số miền quy định một nhóm nhân của một trường hữu hạn cho dưới dạng tường minh F.
Chiều dài tính theo bộ tám của dữ liệu đầu vào d, Ldat được đặt bằng một giá trị cố định nhỏ hơn hoặc bằng L(n) – 1.
Các khóa của lược đồ chữ ký NR được tạo ra như sau:
- a) Khóa chữ ký bí mật xA của A là một số nguyên ngẫu nhiên trong đoạn [1,n – 1];
- b) Khóa xác minh công khai YA được tính toán như mục 7.3
CHÚ THÍCH Định nghĩa về trường hữu hạn cho dưới dạng tường minh xem A.3
8.2 Quá trình tạo chữ ký
8.2.1 Đầu vào và đầu ra
Đầu vào của quá trình tạo chữ ký bao gồm:
– Tham số miền;
– Khóa chữ ký bí mật xA, và,
– Một thông điệp M sẽ được ký.
Đầu ra của quá trình tạo chữ ký là một cặp (r,s) ϵ {0,1}8L(n) x [1,n– 1]cấu thành chữ ký số A cho thông điệp M.
8.2.2 Tạo một số ngẫu nhiên và tiền chữ ký (tính toán trường hữu hạn)
Tiền chữ ký П ϵ {0,1}8Ldat phải được tính toán bằng các bước sau hoặc chuỗi các bước tương đương:
- a) Chọn một số nguyên ngẫu nhiên trong đoạn [1,n – 1];
- b) Tính toán phần tử trường hữu hạn R = Pk;
- c) Chuyển đổi R sang một xâu bộ tám П = FE2OSPF (R).
8.2.3 Tạo dữ liệu đầu vào
Dữ liệu đầu vào d ϵ {0,1}8Ldat được tạo từ thông điệp M, xem phần 7.4.2 và 7.4.3.
8.2.4 Tính toán chữ ký (toán tử số học mô-đun n)
Chữ ký (r,s) ϵ {0,1}8L(n) x [1,n – 1] sẽ được tính bằng các bước sau hoặc các bước tương đương:
- a) Chuyển đổi đ sang một số nguyên δ = OS2IP(d); chú ý rằng δ ϵ [0,n – 1];
- b) Tính π = OS2IP(П ) mod n;
- c) Tính = (δ + π) mod n
- d) Tính s = (k – xA )mod n;
- e) Tính r = I2OSP(, L(n));
- f) Xóa k.
Nếu quá trình tạo chữ ký sinh ra hoặc = 0 hoặc s = 0, thì quá trình tạo chữ ký phải được lặp lại với một giá trị ngẫu nhiên mới k.
8.2.5 Định dạng thông điệp đã được ký
Cặp (r,s) ϵ {0,1}8L(n) x [1,n – 1] tạo chữ ký của A trên thông điệp M.
8.3 Quá trình xác minh chữ ký
8.3.1 Đầu vào và đầu ra
Quá trình xác minh chữ ký bao gồm ba bước: Tính toán thông điệp rút gọn, tính toán trường hữu hạn, và kiểm tra chữ ký.
Đầu vào của quá trình xác minh chữ ký bao gồm:
– Tham số miền.
– Khóa xác minh công khai YA của A,
– Chữ ký nhận được cho M, được biểu diễn dưới dạng một xâu bộ tám r’ và số nguyên s’, và
– Thông điệp không thể khôi phục M’clr (nếu có).
Đầu ra của quá trình xác minh chữ ký là dữ liệu đầu vào được khôi phục d’ hoặc “hủy bỏ”.
8.3.2 Xác thực kích thước của chữ ký
Xác minh rằng và r’ ϵ {0,1}8L(n), 0 < OS2IP (r’) < n và 0 < s’ < n; nếu không, thì từ chối chữ ký.
8.3.3 Khôi phục tiền chữ ký (tính toán trường hữu hạn)
Tiền chữ ký được khôi phục từ chữ ký nhận được (r’,s‘) bởi các bước hoặc một trình tự các bước sau:
- a) Đổi = OS2IP(r’),
- b) Tính toán R’ = PS‘Q ;
- c) Đổi R’ thành một xâu bộ tám П’ = FE2OSP F(R’).
8.3.4 Khôi phục dữ liệu đầu vào hoặc thông điệp
Dữ liệu đầu vào có thể được khôi phục từ phần đầu tiên của chữ ký nhận được r’ và tiền chữ ký được khôi phục П ‘ bởi các bước hoặc một trình tự các bước tương đương như sau:
- a) Tính toán π‘ = OS2IP(П’) mod n;
- b) Tính δ‘ = (r’ – π‘) mod n;
- c) Đổi δ‘ sang một xâu bộ tám d’ = I2OSP(δ‘,Ldat).
8.3.5 Kiểm tra chữ ký
Kiểm tra phần dư. Nếu đúng thì đầu ra là d’ còn không thì hủy bỏ.
9 ECNR (chữ ký khôi phục thông điệp Nyberg-Rueppel trên đường cong Elliptic)
9.1 Tham số miền và khóa người dùng
Tham số miền đặc tả một nhóm cộng cấp n trong một đường cong elliptic E qua một trường hữu hạn được cho dưới dạng tường minh.
Chiều dài tính theo bộ tám của dữ liệu đầu vào d, Ldat được đặt bằng một giá trị cố định nhỏ hơn hoặc bằng L(n) – 1.
Các khóa của lược đồ chữ ký ECNR được tạo ra như sau:
- a) Khóa chữ ký bí mật xA của A là một số nguyên ngẫu nhiên trong khoảng [1,n – 1];
- b) Khóa thực công khai YA của A được tính như trong phần 7.3.
CHÚ THÍCH 1 Định nghĩa của một trường hữu hạn cho dưới dạng tường minh, xem A.3.
CHÚ THÍCH 2 Định nghĩa một đường cong elliptic trên một trường hữu hạn cho dưới dạng tường minh, xem khoản A.4.
9.2 Quá trình tạo chữ ký
9.2.1 Đầu vào và đầu ra
Đầu vào của quá trình tạo chữ ký bao gồm:
– Tham số miền,
– Khóa chữ ký bí mật xA, và
– Một thông điệp M sẽ được ký.
Kết quả của quá trình tạo chữ ký là một cặp (r,s) ϵ {0,1}8L(n) x [1,n– 1] tạo thành chữ ký số của A cho thông điệp M.
9.2.2 Tạo một số ngẫu nhiên và tiền chữ ký (tính toán đường cong elliptic)
Tiền chữ ký П ϵ {0,1}8(LF+1) được tính toán theo các bước hoặc theo tuần tự các bước tương đương sau:
- a) Chọn một số nguyên ngẫu nhiên k trong khoảng [1, n-1];
- b) Tính điểm đường cong elliptic R = kP;
- c) Đổi R sang xâu bộ tám П = EC2OSPE (R, nén)
CHÚ THÍCH Định nghĩa hàm chuyển đổi EC2OSP với đặc tả định dạng được nén, xem B.6.
9.2.3 Tạo dữ liệu đầu vào
Dữ liệu đầu vào d ϵ (0,1}8Ldat được tạo ra từ thông điệp M; xem mục 7.4.2 và 7.4.3
9.2.4 Tính toán chữ ký (toán tử số học mô-đun n)
Chữ ký (r,s) ϵ {0,1}8L(n) x [1,n – 1] sẽ được tính bằng các bước hoặc tuần tự các bước tương đương sau:
- a) Đổi d thành một số nguyên δ = OS2IP(d); CHÚ THÍCH rằng δ ϵ [0,n – 1];
- b) Tính π = OS2IP(П ) mod n;
- c) Tính = (δ + π) mod n;
- d) Tính s = (k – xA )mod n;
- e) Đổi r = = I2OSP(,L(n));
- f) Hủy k.
Nếu quá trình tạo chữ ký sinh ra = 0 hoặc s = 0, thì quá trình tạo chữ ký phải được lặp lại với một giá trị ngẫu nhiên mới k.
9.2.5 Định dạng thông điệp đã ký
Cặp (r, s) ϵ {0,1}8L(n) x [1, n – 1] tạo chữ ký của A trên thông điệp M.
9.3 Quá trình xác minh chữ ký
9.3.1 Đầu vào và đầu ra
Quá trình xác minh chữ ký gồm 3 bước: tính toán thông điệp rút gọn, tính toán đường cong elliptic, và kiểm tra chữ ký.
Đầu vào của quá trình xác minh chữ ký bao gồm:
– Tham số miền
– Khóa xác minh công khai YA của A.
– Chữ ký nhận được cho thông điệp M, được biểu diễn dưới dạng một xâu bộ tám r’ và số nguyên s’, và
– Thông điệp không thể khôi phục được M’cIr (nếu có).
Đầu ra của quá trình xác minh chữ ký có thể là dữ liệu đầu vào được khôi phục d’ và “hủy bỏ”.
9.3.2 Xác thực kích cỡ chữ ký
Xác thực rằng OS2IP(r’) ≠ 0 mod n và r’ ϵ {0,1}8L(n) và 0 < s’ < n; Nếu không thì hủy chữ ký.
9.3.3 Khôi phục tiền chữ ký (tính toán đường cong elliptic)
Tiền chữ ký sẽ được khôi phục từ chữ kỹ nhận được (r’,s’) bởi các bước hoặc trình tự các bước tương đương sau:
- a) Đổi =OS2IP(r’);
- b) Tính toán R’ = s’P + Q
- c) Đổi R’ sang xâu bộ tám П‘ = EC2OSP E(R’, nén).
9.3.4 Khôi phục dữ liệu đầu vào hoặc thông điệp
Dữ liệu đầu sẽ được khôi phục từ phần thứ nhất của chữ ký nhận được r’ và tiền chữ ký được khôi phục П’ theo các bước hoặc trình tự các bước tương đương sau:
- a) Tính toán π‘ = OS2IP(П’) mod n;
- b) Tính δ‘ = (r’ – π‘) mod n;
- c) Đổi δ‘ đến xâu bộ tám d’ = I2OSP(δ‘,Ldat).
9.3.5 Kiểm tra chữ ký
Kiểm tra độ dư. Nếu đúng thì đầu ra d’ không sẽ từ chối.
10 ECMR (chữ ký khôi phục thông điệp Miyaji trên đường cong elliptic)
10.1 Tham số miền và khóa người dùng
Tham số miền đặc tả một nhóm nhân trên đường cong elliptic như một trường hữu hạn. Các khóa của lược đồ chữ ký được tạo ra như sau:
- a) Khóa chữ ký bí mật xA của A tạo ra một số nguyên ngẫu nhiên trong khoảng [1,n – 1];
- b) Khóa xác minh công khai YA của A được tính như trong mục 7.3
A cũng chọn một hàm:
– Mask:: {0,1}8* →{0,1}8L(n), sao cho Mask(x)= [Hash(x)]8L(n), MGF1(x,L(n)) hoặc MGF2(x,L (n)), trong đó Hash: {0,1}8* → {0,1}8LHash
CHÚ THÍCH 1 Định nghĩa một trường hữu hạn cho dưới dạng tường minh, xem A.3
CHÚ THÍCH 2 Định nghĩa đường cong elliptic trên một trường hữu hạn cho dưới dạng tường minh, xem A.4
10.2 Quá trình tạo chữ ký
10.2.1 Đầu vào và đầu ra
Đầu vào của quá trình tạo chữ ký bao gồm:
– Tham số miền
– Khóa chữ ký bí mật xA, và
– Dữ liệu d với phần dư thêm hoặc phần dư tự nhiên trong {0,1}8L(n)
Dữ liệu d được tạo ra từ thông điệp, xem mục 7.4.2 và 7.4.3. Đầu ra của quá trình tạo chữ ký là một cặp (r,s) ϵ {0,1}8L(n) x [1,n– 1] tạo thành chữ ký số của A cho dữ liệu
10.2.2 Tạo một số ngẫu nhiên và tiền chữ ký (tính toán đường cong elliptic)
Tiền chữ ký П ϵ {0,1}8(2LF+1) được tính bởi các bước hoặc một trình tự các bước tương đương sau:
- a) Chọn một số nguyên ngẫu nhiên k trong khoảng [1,n – 1];
- b) Tính toán điểm đường cong elliptic R = kP;
- c) Tính toán П = Mask(EC2OSPE(R, không nén))
CHÚ THÍCH Định nghĩa hàm chuyển đổi EC2OSP với đặc tả định dạng không nén xem B.6
10.2.3 Tính toán chữ ký (tính toán mô-đun n)
Chữ ký (r, s) ϵ {0,1}8L(n) x [1,n – 1] được tính toán bởi các bước hoặc một trình tự các bước tương đương sau:
- a) Tính toán r = d П;
- b) Tính s = (OS2IP(r)k – OS2IP(r) – 1) / (xA + 1)mod n;
- c) Xóa k.
Nếu quá trình tạo chữ ký tạo hoặc s = 0 hoặc OS2IP(r) mod n = 0, thì quá trình tạo chữ ký phải lặp lại với một giá trị ngẫu nhiên mới k.
10.2.4 Định dạng thông điệp đã được ký
Cặp (r,s) ϵ {0,1}8L(n) x [1,n – 1] tạo chữ ký của A trên dữ liệu d.
10.3 quá trình xác minh chữ ký
10.3.1 Đầu vào và đầu ra
Quá trình xác minh chữ ký bao gồm ba bước: tính toán thông điệp rút gọn, tính toán đường cong elliptic và kiểm tra chữ ký.
Đầu vào của quá trình xác minh chữ ký bao gồm:
– Các tham số miền,
– Khóa xác minh công khai YA của A,
– Chữ ký nhận được cho d được biểu diễn dưới dạng một xâu bộ tám r’ và một số nguyên s’;
– Hàm Mask, và
– Thông điệp không thể khôi phục M’clr (nếu có).
Đầu ra của quá trình xác minh chữ ký hoặc là dữ liệu được khôi phục d’ hoặc “hủy bỏ”.
10.3.2 Xác thực kích cỡ của chữ ký
Kiểm tra xem OS2IP (r’) ≠ 0 mod n và r’ ϵ {0,1}8L(n) và 0 < s’ < n; nếu không, thì hủy bỏ chữ ký
10.3.3 Khôi phục tiền chữ ký (tính toán đường cong elliptic)
Tiền chữ ký sẽ được khôi phục từ chữ ký nhận được (r’,s’) theo các bước hoặc một trình tự các bước tương đương sau:
- a) Tính R’ = ((1 + OS2IP(r’) + s’)/OS2IP(r’))P + (s’/OS2IP(r’))Q;
- b) Tính П ‘ = Mask (EC2OSPE (R’, không nén)).
10.3.4 Khôi phục dữ liệu hoặc thông điệp
Tính d’ = r’ П’.
10.3.5 Kiểm tra chữ ký
Kiểm tra phần dư. Nếu đúng thì đầu ra là d’, nếu không thì hủy bỏ.
- ECAO (Chữ ký khôi phục thông điệp Abe-Okamoto trên đường cong elliptc)
11.1 Tham số miền
Tham số miền đặc tả một nhóm cộng cấp n với phần tử cơ bản G, trong một đường cong elliptic E. trên một trường hữu hạn cho dưới dạng tường minh F.
Chiều dài của phần dư thêm Lred tương ứng với tham số bảo mật và sẽ được chọn để đạt được các mục tiêu an toàn.
Ngoài ra, A sử dụng hai hàm băm và một hàm tạo mặt nạ
– Hash1: {0,1}8* →{0,l}8Lred,
– Hash2: {0,1}8* → {0,1}8LF+1–Lred,
– MGF: {0,1}8* →{0,1}8(L(n)+K)
K ở đây là một số nguyên dương không âm tương ứng với tham số bảo mật. Hàm MGF được định nghĩa là MGF (x) = MGF1 (x, L (n) + K) cho x ϵ {0,1}8*.
CHÚ THÍCH 1 Định nghĩa trường hữu hạn cho dưới dạng tường minh, xem A.3.
CHÚ THÍCH 2 Định nghĩa một đường cong elliptic trên trường hữu hạn cho dưới dạng tường minh, xem A.4.
CHÚ THÍCH 3 Vì phần thông điệp không thể khôi phục được xử lý bằng việc tính toán phần thứ hai của chữ ký (và trong thực tế chỉ phần thông điệp có thể khôi phục được tham gia vào việc tính toán phần dư thêm), thông thường Lred = [L(n) / 2] được sử dụng trong ECAO cả khôi phục tin nhắn thông điệp và một phần thông điệp; xem mục 11.3.3 và 11.3.4.
CHÚ THÍCH 4 Do phần thông điệp không khôi phục được là đầu vào của MGF và đầu ra của MGF được lấy mod n, một giá trị lớn hơn của K đạt mức an toàn cao hơn. Giá trị K = L (n) được kiến nghị để sử dụng trong ECAO; xem mục 11.3.4.
11.2 Khóa của người dùng
Các khóa của lược đồ chữ ký ECAP được tạo như sau:
- a) Khóa chữ ký bí mật xA của A là một số nguyên ngẫu nhiên trong đoạn [1, n-1];
- b) Khóa xác minh công khai YA của A được tính như trong mục 7.3.
Phần tử cơ bản G và khóa xác minh công khai YA cung cấp mục dữ liệu công khai (P.Q); thông tin về lược đồ tạo khóa nào được sử dụng là thông tin công khai và phải được cung cấp dưới dạng tham số miền hoặc cùng với khóa xác minh công khai YA; xem mục 7.3.
11.3 Quá trình tạo chữ ký
11.3.1 Đầu vào và đầu ra
Đầu vào của quá trình tạo chữ ký bao gồm:
– Các tham số miền,
– Khóa chữ ký bí mật XA, và
– Một thông điệp M sẽ được ký
Đầu ra của quá trình tạo chữ ký là một cặp (r,s) ϵ {0,1}8(LF+1) x [1,n– 1] cấu thành chữ ký số của A cho thông điệp M. Chữ ký (r,s) cùng với phần thông điệp không thể khôi phục Mclr tạo nên thông điệp đã được ký.
11.3.2 Tạo một số ngẫu nhiên và tiền chữ ký (tính toán đường cong elliptic)
Tiền chữ ký П ϵ {0,1}8(LF+1) sẽ được tính toán bởi các bước hoặc một trình tự các bước tương đương sau:
- a) Chọn một số ngẫu nhiên k trong khoảng [1, n-1];
- b) Tính toán một điểm trên đường cong elliptic R = kP;
- c) Đổi R sang một xâu bộ tám П = EC2OSPE{R, nén).
CHÚ THÍCH Định nghĩa của hàng chuyển đổi EC2OSP với định dạng đặc tả nén, xem B.6.
11.3.3 Phân chia thông điệp và tạo dữ liệu đầu vào
Chiều dài tối đa của phần thu hồi Lmax được xác định bằng LF – Lred. Phân chia thông điệp M thành phần có thể khôi phục Mrec và phần không thể khôi phục Mclr sao cho hai điều kiện sau được thỏa mãn:
– M = Mrec II Mclr;
– L(Mrec) ≤ Lmax
chú ý rằng kết quả các xâu bộ tám Mrec hoặc Mclr có thể là rỗng.
Sau đó tạo thành một xâu bộ tám Mrec theo các bước hoặc trình tự các bước tương đương sau:
- a) Tính pad = I2OSP(1,Lmax + 1-L(Mrec));
- b) Tính = pad II Mrec
Bây giờ dữ liệu đầu vào d ϵ {0,1}8(LF+1)được tính từ xâu bộ tám bởi các bước hoặc trình tự các bước tương đương sau:
- a) Tính thẻ băm h = Hash1();
- b) Tính dữ liệu đầu vào d = h II (Hash2(h) ).
CHÚ THÍCH 1 ECAO yêu cầu sử dụng phần dư thêm với thẻ băm h; ECAO đặc tả cụ thể phương pháp để tạo dữ liệu đầu vào.
CHÚ THÍCH 2 Các tiêu chí đệm nêu trên giới thiệu phần dư tự nhiên của hơn 7 bit và gần (hoặc bằng) 8 bit. Do đó tổng phần dư là khoảng Lred + 1 bộ tám, hoặc nhiều hơn L(n) / 2 khi Lred = [L(n) / 2]
CHÚ THÍCH 3 Về nguyên tắc thì phương pháp này có thể áp dụng cho việc xử lý “single-pass” vì phần thông điệp không thể khôi phục được Mclr không hề được xử lý.
11.3.4 Tính toán chữ ký (tính mô-đun n)
Chữ ký (r, s) ϵ {0,1}8(LF+1) x [1,n – 1] có thể được tính toán theo các bước hoặc một trình tự các bước sau:
- a) Tính phần đầu tiên r của chữ ký như sau r = d П ;
- b) Tính u = MGF(r II Mclr);
- c) Tính t = OS2IP (u) mod n;
- d) Nếu t = 0 thì quá trình tạo chữ ký phải được lặp lại với một giá trị ngẫu nhiên mới k;
- e) Tính phần thứ hai s của chữ ký như sau s = (k- xAt) mod n;
- f) Nếu s = 0 thì quá trình tạo chữ ký phải được lặp lại với một giá trị ngẫu nhiên mới k;
- g) Xóa k.
11.3.5 Định dạng thông điệp đã được ký
Cặp (r, s) ϵ {0,1}8(LF+1) x [1,n – 1] tạo chữ ký của A trên thông điệp M. Chữ ký (r, s) và phần thông điệp không thể khôi phục được Mclr tạo nên thông điệp đã được ký.
11.4 Quá trình xác minh chữ ký
11.4.1 Đầu vào và đầu ra
Đầu vào của quá trình xác minh chữ ký bao gồm:
– Các tham số miền,
– Khóa xác minh công khai YA của A, và
– Thông điệp đã được ký.
Bên xác thực B trích xuất từ thông điệp đã được ký
– Chữ ký đã nhận được, được biểu diễn dưới dạng một xâu bộ tám r’ và một số nguyên s’ và
– Phần thông điệp không thể khôi phục được M’clr (có thể là rỗng).
Đầu ra của quá trình xác minh chữ ký hoặc là thông điệp đã được khôi phục M’ hoặc là “hủy bỏ”.
11.4.2 Xác thực kích thước của chữ ký
Kiểm tra xem L(r’) = LF + 1 và 0 < s‘ < n; nếu không, thì hủy bỏ chữ ký.
11.4.3 Khôi phục tiền chữ ký (tính toán đường cong elliptic)
- a) Tính u’ = MGF(r’ II M’clr);
- b) Tính t’ = OS2IP(u’) mod n;
- c) Nếu t’ = 0, thì hủy bỏ chữ ký;
- d) Tính điểm đường cong elliptic R’ = s’P + t’Q;
- e) Nếu R’ = O thì hủy bỏ chữ ký;
- f) Chuyển R’ thành một xâu bộ tám П‘ = EC2OSPE (R’, đã nén)
11.4.4 Khôi phục dữ liệu đầu vào
Dữ liệu đầu vào sẽ được khôi phục từ các xâu bộ tám r’ và П‘ theo các bước hoặc một trình tự các bước tương đương sau:
- a) Tính dữ liệu đầu vào được khôi phục d’ = r’ П‘;
- b) Tính thẻ băm được khôi phục h’ =[d’]8Lred
- c) Tính = [d’]B(LF+1–Lred) Hash2 (h’)
11.4.5 Kiểm tra chữ ký
Kiểm tra phần dư thêm bằng các bước hoặc một trình tự các bước sau:
- a) Tính lại thẻ băm h” = Hash1 ();
- b) Kiểm tra xem h’ = h” hay không; nếu không thì hủy bỏ chữ ký.
Khôi phục thông điệp bằng các bước hoặc trình tự các bước sau:
- a) Cho pad’1 là các bộ tám khác 0 ngoài cùng bên trái trong ;
- b) Nếu pad’1 ≠ Oct(1) thì hủy bỏ chữ ký;
- c) Cho pad’0 và M’rec lần lượt là các bộ tám khác 0 ngoài cùng bên trái và ngoài cùng bên phải của , sao cho = pad’0 II pad’1 II M’rec và OS2IP(pad’0) = 0;
- d) Tính M’ = M’rec II M’clr;
- e) Đầu ra M’.
- ECPV (Chữ ký khôi phục thông điệp Pintsov-Vanstone trên đường cong elliptic)
12.1 Tham số người sử dụng và tham số miền.
Tham số miền đặc tả một nhóm cộng cấp n trong đường cong elliptic E trên một trường hữu hạn cho dưới dạng tường minh F.
Chiều dài tính theo bộ tám Lred của phần dư thêm tương ứng với tham số bảo mật và được đặt từ 1 đến 255 bao gồm cả 1 và 225, cùng với các tiêu chuẩn phần dư khác; xem mục 12.2.3.
A cũng sử dụng một hàm băm, một hàm dẫn xuất khóa và một mật mã đối xứng
– Hash : {0,1}8*→ {0,1}8L((n)-1)
– KDF: {0,1}8*→{0,1}8Lkey, và
– Sym : {0,1}8* x {0,1}8Lkey → {0,1}8*.
Trong đó Lkey biểu thị chiều dài tính theo bộ tám của khoá được sử dụng trong Sym. KDF được định nghĩa bởi KDF (x) = MGF2 (x, Lkey) cho x ϵ {0,1}8*.
Các khóa trong lược đồ chữ ký ECPV được tạo ra như sau:
- a) Khóa chữ ký bí mật xA của A là một số nguyên ngẫu nhiên trong khoảng [1,n – 1];
- b) Khóa xác minh công khai YA của A được tính như trong mục 7.3.
CHÚ THÍCH 1 Định nghĩa của một trường hữu hạn cho dưới dạng tường minh, xem mục A.3.
CHÚ THÍCH 2 Định nghĩa của một đường cong trên một trường hữu hạn cho dưới dạng tường minh, xem mục A.4.
CHÚ THÍCH 3 Lkey tương ứng với tham số bảo mật và sẽ được chọn để đạt được các mục tiêu an toàn. Mật mã đối xứng có thể sử dụng mã hoá XOR (); trong trường hợp đó thì Lkey phải bằng chiều dài của dữ liệu đầu vào, và chiều dài tối đa của phần thông điệp có thể khôi phục được xác định bởi tham số miền; xem mục 12.2.3.
12.2 Quá trình tạo chữ ký
12.2.1 Đầu vào và đầu ra
Đầu vào của quá trình tạo chữ ký bao gồm:
– Tham số miền,
– Khóa chữ ký bí mật xA, và
– Một thông điệp M chuẩn bị được ký.
Đầu ra của quá trình tạo chữ ký là một cặp (r,s) ϵ {0,1}8* x [1,n – 1] cấu thành chữ ký số của A cho thông điệp.
12.2.2 Tạo số ngẫu nhiên và tiền chữ ký (tính toán đường cong elliptic)
Tiền chữ ký (khóa đối xứng) П ϵ {0,1 }8Lkey sẽ được tính theo các bước hoặc một trình tự các bước tương đương sau:
- a) Chọn một số nguyên ngẫu nhiên k trong đoạn [1,n – 1];
- b) Tính điểm đường cong elliptic R = kP = (x,y);
- c) Chuyển đổi x sang một xâu bộ tám S = FE2OSPF (x);
- d) Tính toán khóa đối xứng П = KDF (S).
12.2.3 Phân chia thông điệp và tạo dữ liệu đầu vào
A phân chia thông điệp M thành phần có thể khôi phục được Mrec các bộ tám khác 0 cuối cùng tính từ trái sang phải của M giống như đã được thỏa thuận và phần còn lại của thông điệp Mclr. CHÚ THÍCH rằng sự lựa chọn của Sym có thể đưa ra một giới hạn độ dại cho đầu vào. Mrec và Mclr sẽ được mã hóa và định dạng đúng theo như thỏa thuận của cả hai bên. Ngoài ra, một số nonce ngẫu nhiên có thể được sử dụng thay cho Mclr.
Tạo một xâu bộ tám d bằng cách lấy Mrec và phần dư thêm như sau:
- a) Convert Lred to a single octet cred = Oct(Lred);
- b) Cho là một xâu bộ tám được hình thành từ bộ tám Cred lặp lại Lred lần (do đó có độ dài Lred);
- c) Tính d = II Mrec.
CHÚ THÍCH 1 ECPV đặc tả cụ thể phương pháp để tạo dữ liệu đầu vào.
CHÚ THÍCH 2 Về nguyên tắc, phương pháp này phù hợp với quá trình xử lý “single-pass” vì phần thông điệp không thể khôi phục không hề được xử lý.
CHÚ THÍCH 3 Trong ECPV, phương pháp mã hóa của phần thông điệp có thể khôi phục được và các tiêu chí đệm cho Sym có thể đưa ra phần dư tự nhiên cho dữ liệu đầu vào và do đó làm tăng tổng phần dư. Thông thường Lred sẽ được chọn sao cho tổng phần dư nhiều hơn L(n) / 2 hoặc LHash / 2.
CHÚ THÍCH 4 ECPV có thể xử lý một phần thông điệp có thể khôi phục bất kỳ chiều dài nào tính theo bộ tám.
CHÚ THÍCH 5 Để đạt được các mục tiêu an toàn, ít nhất một trong các đặc điểm sau đây được khuyến cáo để sử dụng trong ECPV:
– Tiêu chí phần dư có thể chỉ ra rằng phần thông điệp có thể khôi phục có độ dài cố định, hoặc nó bắt đầu với một độ dài cố định đại diện cho độ dài của nó;
– Các tiêu chí phần dư có thể chỉ định việc sử dụng mã hoá DER của một loại ASN.1 cho phần thông điệp có thể khôi phục;
– Tham số miền có thể xác định rằng phần thông điệp không thể khôi phục có độ dài cố định (có thể trống rỗng) hoặc kết thúc bằng một chiều dài cố định đại diện cho chiều dài của nó.
12.2.4 Tính toán chữ ký (tính toán mô-đun n)
Chữ ký (r,s) ϵ {0,1}8* x [1,n – 1] sẽ được tính theo các bước hoặc một trình tự các bước tương đương sau:
- a) Tính r = Sym (d,П);
- b) Tính u = Hash (r II Mclr);
- c) Chuyển đổi t = OS2IP(u); CHÚ THÍCH rằng t ϵ [0,n – 1];
- d) Nếu t = 0 thì quá trình tạo chữ ký phải được lặp lại với một giá trị ngẫu nhiên mới k;
- e) Tính s = (k – zAt) mod n;
- f) Nếu s = 0 thì quá trình tạo chữ ký phải được lặp lại với một giá trị ngẫu nhiên mới k;
- g) Xóa k;
Đầu ra là chữ ký (r, s) và một phần của phần thông điệp Mclr (có thể là null).
12.2.5 Định dạng chữ ký đã được ký
Cặp (r,s) ϵ {0,1}8* x [1,n – 1] tạo thành chữ ký của A trên thông điệp M.
12.3 Quá trình xác minh chữ ký
12.3.1 Đầu vào và đầu ra
Quy trình xác minh chữ ký bao gồm ba bước: tính toán thông điệp rút gọn, tính toán đường cong elliptic và kiểm tra chữ ký.
Đầu vào của quá trình xác minh chữ ký bao gồm:
– Các tham số miền,
– Khóa xác minh công khai YA của A,
– Chữ ký nhận cho M, được biểu diễn dưới dạng một xâu bộ tám r’ và một số nguyên s’, và
– Phần không thể khôi phục được M’clr (nếu có)
Để kiểm tra chữ ký của A cho M, B thực hiện các bước được miêu tả trong mục 12.3.2 đến 12.3.5
12.3.2 Xác thực kích thước chữ ký
Xác thực rằng 0 < s’ < n; nếu không thì hủy bỏ chữ ký.
12.3.3 Khôi phục tiền chữ ký (tính toán đường cong elliptic)
Tiền chữ ký (khóa đối xứng) sẽ được khôi phục từ chữ ký theo các bước hoặc một trình tự các bước tương đương sau:
- a) Tính u’ = Hash (r’ II M’clr);
- b) Chuyển đổi t’ = OS2IP(u’); Lưu ý rằng t’ ϵ [0,n – 1];
- c) Nếu t’ = 0, thì hủy bỏ chữ ký;
- d) Tính R‘ = s’P + t’Q = (x’,y’) và thực hiện các hoạt động sau:
1) Nếu R’ là điểm ở xa vô cực thì hủy bỏ chữ ký;
2) Nếu không tính khóa đối xứng П’ = KDF (FE2OSPF (x’)).
12.3.4 Khôi phục dữ liệu đầu vào hoặc thông điệp
Dữ liệu đầu vào sẽ được khôi phục bằng cách tính d’ = Sym–1(r’,П’), trong đó Sym–1 là hàm giải mã của mật mã đối xứng Sym.
12.3.5 Kiểm tra chữ ký
Kiểm tra phần dư thêm của d’ và khôi phục M’rec theo các bước hoặc một trình tự các bước sau:
- a) Nếu L(d‘) < Lred thì hủy bỏ chữ ký;
- b) Chuyển đổi Lred thành một bộ tám đơn Cred = Oct(Lred);
- c) Cho là một xâu bộ tám được tạo bởi bộ tám Cred lặp lại Lred lần (do vậy sẽ có độ dài Lred);
- d) Kiểm tra phần dư thêm bằng =[d’]8Lred; Nếu không thỏa mãn thì hủy bỏ chữ ký;
- e) Tính M’rec = [d’]8(L(d’)–Lred);
- f) Kiểm tra phần dư thêm của M’rec tương ứng với phương pháp mã hóa và phương pháp định dạng của nó; Nếu nó không thỏa mãn thì hủy bỏ chữ ký;
- g) Kiểm tra định dạng của M’clr (nếu có); nếu không thỏa mãn thì hủy bỏ chữ ký;
- h) Khôi phục M’ như sau:
1) Trong trường hợp M’clr là một xâu rỗng hoặc một số nonce ngẫu nhiên thì đặt M’ = M’rec;
2) Nếu không, khôi phục M’ từ M’rec và M’clr;
- i) Đầu ra M’.
13 ECKNR (Chữ ký khôi phục thông điệp KCDSA/Nyberg-Rueppel trên đường cong elliptic)
13.1 Tham số miền và các khóa của người dùng
Tham số miền đặc tả một nhóm nhân cấp n trong đường cong elliptic E trên một trường hữu hạn cho dưới dạng tường minh F.
A cũng sử dụng một hàm tạo mặt nạ:
– MGF : {0,1}8* →{0,1}8L(n).
Hàm MGF được định nghĩa là MGF(x) = MGF2(x, L(n)) cho x ϵ {0,1}8* với hàm băm Hash dưới đây. Các khóa của lược đồ chữ ký ECKNR được tạo ra như sau:
- a) Khóa chữ ký bí mật xA của A là một số nguyên ngẫu nhiên trong đoạn [1,n– 1];
- b) Khóa xác minh công khai YA của A được tính như trong mục 7.3.
Dữ liệu dẫn xuất chứng thực zA của A được định nghĩa là zA = [CertA]LB,Hash trong đó CertA biểu thị dữ liệu chứng thực của A. Đó là khóa xác minh công khai YA của A được chuyển đổi thành một xâu bít. Khi YA = (x0,y0), CertA = FE2OSPBF (x0) II FE2OSPF (y0) và LB,Hash là độ dài bit của kích thước đầu vào của hàm băm. Ví dụ: LB,Hash trong RIPEMD-160 trở thành 512.
CHÚ THÍCH 1 Định nghĩa một trường hữu hạn cho dưới dạng tường minh xem A.3.
CHÚ THÍCH 2 Định nghĩa một đường cong elliptic trên một trường hữu hạn cho dưới dạng tường minh, xem A.4
13.2 Quá trình tạo chữ ký
13.2.1 Đầu vào và đầu ra
Đầu vào của quá trình tạo chữ ký bao gồm:
– Các tham số miền;
– Khóa chữ ký bí mật xA của A;
– Dữ liệu chứng thực zA của A, và
– Thông điệp M chuẩn bị được ký, và được phân chia thành phần có thể khôi phục được Mrec các bộ tám khác 0 cuối cùng tính từ trái sang phải của M giống như đã được thỏa thuận và phần còn lại của thông điệp Mclr.
Đầu ra của quá trình tạo chữ ký là cặp (r, s) ϵ {0,1}8L(n) x [1,n– 1] tạo thành chữ ký số của A cho thông điệp M.
13.2.2 Tạo một số ngẫu nhiên và tiền chữ ký (tính toán đường cong elliptic)
Tiền chữ ký П ϵ {0,1}8L(n) sẽ được tính theo các bước hoặc một trình tự các bước tương đương sau:
- a) Chọn một số nguyên ngẫu nhiên k trong đoạn[1,n – 1];
- b) Tính điểm đường cong elliptic R = kP;
- c) Chuyển R thành một xâu bộ tám và tính giá trị băm П = MGF (EC2OSPE (R, đã nén)
CHÚ THÍCH Định nghĩa về hàm chuyển đổi EC20SP với đặc tả định dạng đã nén, xem B.6
13.2.3 Tạo dữ liệu đầu vào
Dữ liệu d với phần dư thêm hoặc phần dư tự nhiên trong (0,1}8L(n) được tạo ra từ một thông điệp, xem mục 7.4.3
13.2.4. Tính toán chữ ký (tính toán mô-đun n)
Chữ ký (r, s) ϵ {0, 1)8L(n) x [1,n – 1] được tính theo các bước hoặc một trình tự các bước tương đương sau:
- a) Tính phần thứ nhất của chữ ký A: r = d П MGF (zA II Mclr);
- b) Đặt t = OS2IP(r) mod n;
- c) Tính phần thứ hai của chữ ký A: s = (k – xAt) mod n
- d) Xóa k.
Nếu quá trình tạo chữ ký sinh ra r sao cho OS2IP (r) = 0 mod n hoặc s = 0 thì quá trình tạo chữ ký phải được lặp lại với một giá trị ngẫu nhiên mới k.
13.2.5 Định dạng chữ ký
Cặp (r,s) ϵ {0,1}8L(n) x [1,n – 1] tạo chữ ký số của A trên thông điệp M.
13.3 Quá trình xác minh chữ ký
13.3.1 Đầu vào và đầu ra
Quá trình xác minh chữ ký bao gồm ba bước: tính toán thông điệp rút gọn, tính toán đường cong elliptic, và kiểm tra chữ ký.
Đầu vào của quá trình xác minh chữ ký bao gồm:
– Các tham số miền,
– Khóa xác minh công khai YA của A,
– Chữ ký nhận cho M, được biểu diễn dưới dạng một xâu bộ tám r’ và một số nguyên s’, và
– Phần không thể khôi phục được M’clr (nếu có)
Đầu ra của quá trình xác minh chữ ký hoặc là dữ liệu đầu vào được khôi phục d’ hoặc “từ chối”.
13.3.2 Xác thực kích thước chữ ký
Xác thực rằng r’ ϵ {0,1)8L(n), OS2IP(r’) ≠ 0 và 0 < s’ < n; Nếu bất kỳ điều kiện kiện nào không được thỏa mãn thì từ chối chữ ký.
13.3.3 Khôi phục tiền chữ ký (tính toán đường cong elliptic)
Tiền chữ ký sẽ được khôi phục từ chữ ký nhận được (r’,s’) theo các bước hoặc một trình tự các bước tương đương sau:
- a) Đặt t’ = OS2IP(r’) mod n;
- b) Tính toán điểm đường cong elliptic R’ = s’P + t’Q;
- c) Chuyển đổi R’ thành một xâu bộ tám và tính giá trị băm П’ = MGF (EC2OSPE (R‘, đã nén)).
13.3.4 Khôi phục dữ liệu đầu vào hoặc thông điệp
Dữ liệu đầu vào sẽ được khôi phục từ phần đầu tiên của chữ ký nhận được r’ và tiền chữ ký được khôi phục П’ theo các bước hoặc một trình tự các bước tương đương sau:
- a) Tính toán dữ liệu đầu vào được khôi phục d’ = r’ П‘ MGF (zA II M’clr).
13.3.5 Kiểm tra chữ ký
Kiểm tra phần dư. Nếu đúng thì đầu ra là d’, nếu không thì từ chối.
Phụ lục A
(tham khảo)
Quy ước toán học
A.1 Xâu bit
Một bit có thể là không “0” hoặc một “1”. Một xâu bit x là một chuỗi hữu hạn (xl-1,…,x0) của các bit x0,…….., xl-1. Độ dài của một xâu bit x là số bit l của xâu x. Cho một số nguyên khác không n,{0,1}n biểu thị tập các xâu bit có chiều dài n · {0,1}* = Un≥0{0,1}n biểu thị tập các xâu bít bao gồm cả xâu rỗng (có độ dài là 0).
A.2 Xâu bộ tám
Một bộ tám là một xâu bit có độ dài là 8. Một xâu bộ tám là một chuỗi bộ tám hữu hạn. Độ dài của một xâu bộ tám là số bộ tám có trong xâu. {0, 1}8* biểu thị tập các xâu bộ tám bao gồm cả xâu rỗng (có độ dài bằng 0). Một bộ tám thường được viết theo định dạng thập lục phân, sử dụng trong khoảng từ 00 và FF; xem mục B.3.
A.3 Trường hữu hạn
Mục này mô tả một khung chung cho việc mô tả các trường hữu hạn cụ thể. Một trường hữu hạn được đặc tả theo cách này được gọi là trường hữu hạn cho dưới dạng tường minh và nó được xác định bởi dữ liệu tường minh. Cho một trường hữu hạn F của bản số q = pe, trong đó p là số nguyên tố và e ≥ 1, dữ liệu tường minh cho F bao gồm p và e, cùng với một “bảng nhân”, bảng nhân là một ma trận T = (Tij)1≤i,j≤e, trong đó mỗi Tij là một dãy chứa e số hạng trên khoảng [0, p – 1].
Tập các phần tử của F là một tâp tất cả các dãy chứa e số hạng trên khoảng [0, p– 1]. Các đầu vào của ma trận T được xem là các phần tử của F.
Phép cộng trong F được xác định theo từng phần tử: Nếu
a = (a1,…,ae) ϵ F và b = (b1,…,b2) ϵ F,
thì a + b = c, trong đó
c = (c1,…, ce) và ci = (ai + bi) mod p (1 ≤ i ≤ e).
Một phép toán nhân vô hướng cho F cũng được định nghĩa theo từng phần tử: Nếu
a = (a1,…,ae) ϵ F và d ϵ [0,p– 1]
thi d · a = c, trong đó
c = (c1,…, ce) và ci = (d · ai) mod p (1 ≤ i ≤ e).
Phép nhân trong F được xác định qua bảng nhân T, như sau: Nếu
a = (a1,…,ae) ϵ F và b = (b1,…,b2) ϵ F,
Trong đó các tích số {aibj mod p)Tij được xác định bằng cách sử dụng quy tắc trên cho phép nhân vô hướng, và các tích số này được cộng lại bằng cách sử dụng quy tắc trên cho phép cộng trong F. Giả sử rằng bảng phép nhân định nghĩa một cấu trúc đại số thỏa mãn các tiên đề thông thường của một trường; Đặc biệt, có tồn tại các đồng nhất cộng tính và đồng nhất nhân tính, mỗi phần tử có một số đối, và mỗi phần tử ngoài đồng nhất cộng tính còn có một số nghịch đảo.
Thấy rằng đồng nhất cộng tính của F, được biểu thị bằng 0F, là một dãy chứa e số hạng không, và đồng nhất nhân tính, được biểu thị 1F, là một dãy chứa e số hạng khác không có định dạng chính xác của chúng phụ thuộc vào T.
CHÚ THÍCH 1 Trường F là một không gian vector e chiều trên trường số nguyên tố F’ của bản số p, trong đó phép nhân vô hướng được định nghĩa như trên. Số nguyên tố p được gọi là đặc trưng của F. Với 1 ≤ i ≤ e, cho θi biểu diễn dãy chứa e số hạng trên F’ với thành phần thứ i là 1, và tất cả các thành phần khác là 0. Các phần tử θi,. . ., θe tạo thành trật tự cơ bản của F như một không gian véc tơ trên F’. CHÚ THÍCH rằng với 1 ≤ i,j ≤ e, chúng ta có θi · θj = Tij
CHÚ THÍCH 2 Với e>1, có hai loại cơ sở tiêu chuẩn được định nghĩa và thường được sử dụng trong việc thực hiện các phép toán trường hữu hạn:
– θi,. . . ,θe được gọi là một cơ sở đa thức cho F trên F’ nếu một số θ ϵ F, θi = θe-1 cho 1 ≤ i ≤ e. CHÚ THÍCH rằng trong trường hợp này 1F = θe; và
– θi,. . . ,θe được gọi là một cơ sở bình thường cho F trên F’ nếu một số θ ϵ F, θi = θe-i cho 1 ≤ i ≤ e. CHÚ THÍCH rằng trong trường hợp này, 1F= cΣ1≤i≤e θi với một số c ϵ [0,p – 1]; Nếu p = 2, thì chỉ có một lựa chọn duy nhất có thể cho c là 1; Ngoài ra, người ta luôn có thể chọn một cơ sở thông thường mà trong đó c = 1.
A.4 Đường cong elliptic
Một đường cong elliptic E trên một trường hữu hạn cho dưới dạng tường minh F là tập các điểm P = (x,y), trong đó x và y là các phần tử của F thỏa mãn một phương trình nhất định, cùng với “điểm xa vô cực” được ký hiệu bởi O. Trong tiêu chuẩn này, đường cong E được xác định bởi hai phần tử trường a,b ϵ F, được gọi là các hệ số của E.
Cho p là đặc trưng của F.
Nếu p > 3 thì a và b sẽ thỏa mãn 4a3 + 27b2 ≠ 0F và mỗi điểm P = (x,y) trên E (khác với O) sẽ thỏa mãn phương trình:
y2 = x3 + ax + b.
Nếu p = 2 thì a và b sẽ thỏa mãn b ≠ 0F, và mỗi điểm P = (x,y) trên E (khác với O) sẽ thỏa mãn phương trình:
y2 + xy = x3 + ax2 + b.
Nếu p = 3 thì a và b sẽ thỏa mãn a ≠ 0F và b ≠ 0F, và mỗi điểm P = (x,y) trên E (khác với O) sẽ thỏa mãn phương trình:
y2 = x3+ ax2 + b.
Các điểm trên một đường cong elliptic tạo thành một nhóm Abel hữu hạn, trong đó O là phần tử đồng nhất. Có các thuật toán hiệu quả để thực hiện phép toán nhóm của một đường cong elliptic, nhưng việc thực hiện các thuật toán như vậy nằm ngoài phạm vi của tiêu chuẩn này.
CHÚ THÍCH Xem thêm TCVN 12852-1 để biết thêm thông tin về cách thực hiện hiệu quả các phép toán nhóm của đường cong elliptic.
Phụ lục B
(tham khảo)
Các hàm chuyển đổi
B.1 Chuyển đổi xâu bộ tám/ xâu bit: OS2BSP và BS2OSP
Các hàm nguyên thủy OS2BSP và BS2OSP chuyển đổi giữa các xâu bộ tám và xâu bit được định nghĩa như sau:
– Hàm OS2BSP(x) có đầu vào là 1 xâu bộ tám x và đầu ra là một xâu bit x; và
– Hàm BS2OSP(y) có đầu vào là 1 xâu bít y có độ dài là một bội số của 8, và đầu ra là xâu bộ tám duy nhất x sao cho y = OS2BSP(x).
B.2 Chuyển đổi xâu bit/số nguyên: BS2IP và I2BSP
Các hàm nguyên thủy BS2IP và I2BSP chuyển đổi giữa các xâu bit và các số nguyên được định nghĩa như sau:
– Hàm BS2IP(x) ánh xạ một xâu bit x thành một số nguyên có giá trị x’. Nếu x = {xi–1,…,x0) trong đó x0,…………, xi-1 là các bit, giá trị x’ được định nghĩa như sau x’ = Σ0≤i≤l,xi=/1/ 2i; và
– Hàm l2BSP(m,l) có đầu vào là hai số nguyên không âm m và l, và đầu ra là xâu bit duy nhất x có độ dài l sao cho BS2IP(x) = m, nếu tồn tại x như vậy, còn nếu không thì hàm bị lỗi.
Độ dài tính theo bít của một số nguyên không âm n là số bit trong biểu thức nhị phân của nó, ví dụ [log2(n + 1)]. Cho sự thuận tiện thuộc về quy ước, Oct(m) được định nghĩa như Oct(m) = I2BSP (m,8).
CHÚ THÍCH CHÚ THÍCH rằng l2BSP(m, l) thất bại khi và chỉ khi độ dài tính theo bit của m lớn hơn l.
B.3 Chuyển đổi xâu bộ tám /số nguyên: OS2IP và I2OSP
Hàm nguyên thủy OS2IP và I2OSP chuyển đổi giữa các xâu bộ tám và số nguyên được định nghĩa như sau:
– Hàm OS2IP(x) có đầu vào là một xâu bộ tám và đầu ra là số nguyên BS2IP(OS2BSP(x)); và
– Hàm l2OSP(m, l) có đầu vào là hai số nguyên không âm m và l, và đầu ra là xâu bộ tám duy nhất x có độ dài l thỏa mãn OS2IP(x) = m, nếu tồn tại x, nếu không thì hàm bị lỗi.
Độ dài tính theo bộ tám của số nguyên dương không âm n là số các chữ số trong base 256 đại diện của nó, ví dụ [log256(n + 1)] được ký hiệu là L(n).
CHÚ THÍCH 1 rằng I2OSP (m, l) bị lỗi khi và chỉ khi độ dài tính theo bộ tám của m lớn hơn l.
CHÚ THÍCH 2 Một bộ tám x thường được viết dưới dạng OS2IP (x) theo định dạng hệ thập lục phân có độ dài 2; khi OS2IP (x) <16, “0”, đại diện cho xâu bít 0000, được thêm vào trước.
B.4 Hàm chuyển đổi phần tử trường hữu hạn/ số nguyên: FE2IPF
Hàm nguyên thủy FE2IPF chuyển đổi các phần tử của F thành giá trị số nguyên được định nghĩa như sau:
– Hàm FE2IPF ánh xạ một phần tử a ϵ F tới một giá trị số nguyên a’. Nếu bản số của F là q = pe trong đó p là số nguyên tố và e ≥ 1, thì một phần tử a của F là một dãy chứa e số hạng (a1,…,ae) trong đó ai ϵ [0………p] với 1 ≤ i ≤ e và giá trị a’ được định nghĩa là a’ = Σ1≤i ≤eajpi-1;
B.5 Hàm chuyển đổi xâu bộ tám/ phần tử miền hữu hạn: OS2FEPF và FE2OSPF
Các hàm nguyên thủy OS2FEPF và FE2OSPF chuyển đổi giữa các xâu bộ tám và các phần tử của một trường hữu hạn cho dưới dạng tường minh F được định nghĩa như sau:
– Hàm FE2OSPf(a) có đầu vào là một phần tử a của trường F và đầu ra là xâu bộ tám I2OSP(a’,l), trong đó a’ = FE2OSPF (a), và l là độ dài tính theo bộ tmas của |F| – 1, ví dụ l = [log256|F|]. Từ đó, đầu ra của FE2OSPF (a) thường là một xâu bộ tám có độ dài chính bằng [log256|F|]; và
– Hàm OS2FEPF có đầu vào là một xâu bộ tám x, và đầu ra là phần tử trường (duy nhất) a ϵ F sao cho FE2OSPF (a) = x , nếu tồn tại a như vậy, còn không sẽ không thành công.
CHÚ THÍCH rằng OS2FEPF không thành công khi và chỉ khi hoặc là x không có độ dài chính xác bằng [log256|F|] hoặc OS2IP(x) > |F|; giá trị này được ký hiệu là LF.
B.6 Chuyển đổi đường cong elliptic/ xâu bộ tám: EC20SPF và OS2ECPF
B.6.1 Các điểm đường cong elliptic nén
Cho E là một đường cong elliptic trên một trường hữu hạn cho dưới dạng tường minh F, trong đó F có đặc trưng P.
Một điểm P ≠ 0 có thể được biểu thị dưới dạng nén, không nén hoặc lai
Nếu P = (x,y) thì (x,y) là dạng không nén của P.
Cho P = (x,y) là một điểm trên đường cong E ở trên. Dạng nén của P là cặp (x,ỹ) trong đó ỹ ϵ{0,1} được xác định như sau:
– Nếu p ≠ 2 và y = OF, thì ỹ=0;
Nếu p ≠ 2 và y ≠ OF thì ỹ = ((y’/pf)mod p)mod 2, trong đó y’ = FE2IPF (y) và trong đó f là số nguyên dương không âm lớn nhất sao cho pf I y’;
Nếu p = 2 và x = OF, thì ỹ=0; và
– Nếu p=2 Mà x ≠ OF thì [z’/2f]mod 2, trong đó z = y/x, z’ = FE2IPF (z) và trong đó f là số nguyên dương không âm lớn nhất sao cho 2f chia cho FE2IPF (1F).
Dạng lai của P = (x,y) là bộ ba (x,ỹ,y), trong đó ỹ đã được mô tả ở phía trên.
B.6.2 Thuật toán giải nén điểm
Tồn tại một thủ tục hiệu quả cho việc giải nén điểm, ví dụ: tính toán y từ (x,ỹ). Đây là những mô tả ngắn gọn:
Giả sử p ≠ 2 và cho (x,ỹ) là dạng nén của (x,y). Điểm (x,y) thỏa mãn phương trình y2 = f (x) cho một đa thức f(x) trên F trong x. Nếu f(x) = 0F thì chỉ có một lựa chọn duy nhất cho y, cụ thể là y = 0F. Mặt khác, nếu f(x) ≠ 0 thì có hai lựa chọn cho y, chỉ khác nhau về mặt ký hiệu và lựa chọn chính xác được xác định bởi ỹ. Có những thuật toán nổi tiếng để tính toán căn cấp hai trong các trường hữu hạn, và do đó hai lựa chọn của y cũng được tính toán một cách dễ dàng: và
– Giả sử p = 2 và cho (x,ỹ) là dạng nén của (x,y). Điểm (x,y) thỏa mãn một phương trình y2 + xy = x3 + ax2 + b. Nếu x = 0F thì chúng ta có y2 = b, trong đó y được xác định duy nhất và được tính toán một cách dễ dàng. Mặt khác, nếu x ≠ 0F thì đặt z = y/x, chúng ta có z2 + z = g(x) trong đó g(x) = (x + a + bx–2). Giá trị của y được xác định duy nhất bởi, và dễ dàng tính từ, các giá trị z và x, và do đó, nó đủ để tính z. Để tính z, quan sát thấy rằng với một x cố định, nếu z là một nghiệm của phương trình z2 + z = g(x) thì có một nghiệm khác là z + 1F. Dễ dàng tính hai giá trị ứng cử của z, và sự lựa chọn chính xác của z dễ dàng được xác định bằng ỹ.
B.6.3 Các hàm chuyển đổi
Cho E là đường cong elliptic trên trường hữu hạn cho dưới dạng tường minh F.
Hàm nguyên thủy EC2OSPF và OS2ECPF được sử dụng cho việc chuyển đổi giữa các điểm trên đường cong elliptic và các xâu bộ tám được xác định như sau:
- a) Hàm EC2OSPE (P, fmt) có đầu vào là một điểm P trên E và một định dạng đặc tả fmt, là một trong những giá trị tượng trưng cho nén, không nén hoặc lai. Đầu ra là một xâu bộ tám EP được tính toán như sau:
1) Nếu P = O, thì EP = Oct(0); và
2) Nếu P = (x,y) ≠ 0, với dạng nén (x,ỹ) thì EP = H II X II Y, trong đó
- i) H là bộ tám đơn của dạng Oct(4U + C (2 + ỹ)), trong đó
- I) U = 1 nếu fmt hoặc là không nén hoặc là lai, nếu không thì U = 0, và
- II) C = 1 nếu fmt hoặc là nén hoặc là lai, nếu không C = 0 ,
- ii) X là xâu bộ tám FE2OSPF (x), và
iii) Y là xâu bộ tám FE2OSPF (y) nếu fmt hoặc là không nén hoặc là nén, nếu không Y là xâu bộ tám rỗng; và
- b) Hàm OS2ECPF(EP) có đầu vào là một xâu bộ tám EP. Nếu tồn tại một điểm P trên đường cong E và một định dạng đặc tả fmt sao cho OS2ECPE(P,fmt) = EP, thì hàm xuất ra P(dưới dạng không nén), và nếu không thì hàm bị lỗi. CHÚ THÍCH rằng điểm P nếu tồn tại thì đượng xác định duy nhất, do đó hàm OS2ECPE(EP)được xác định rõ.
CHÚ THÍCH Nếu định dạng đặc tả fmt là không nén thì không cần tính giá trị ỹ.
Phụ lục C
(quy định)
Hàm tạo mặt nạ (Hàm dẫn xuất khóa)
Phụ lục này mô tả “các hàm tạo mặt nạ” được đề cập đến trong tiêu chuẩn này. Việc thực thi cụ thể của các hàm tạo mặt nạ được cho phép sử dụng trong tiêu chuẩn này.
Hàm tạo mặt nạ là một hàm MGF* (x, l) có dữ liệu đầu vào là một xâu bộ tám x và một số nguyên l, và đầu ra là một xâu bộ tám có độ dài l. Chuỗi x có chiều dài tùy ý, cho dù việc thực thi có thể định nghĩa một độ dài tối đa (rất lớn) cho x và kích thước tối đa cho l.
CHÚ THÍCH trong một số tài liệu và tiêu chuẩn khác, thuật ngữ “hàm dẫn xuất khóa được sử dụng thay cho “hàm tạo mặt nạ”
C.1 Các hàm tạo mặt nạ cho phép
Các hàm tạo mặt nạ được phép sử dụng trong tiêu chuẩn này là MGF1, được miêu tả ở mục C.2 dưới đây và hàm MGF2 được miêu tả ở mục C.3 dưới đây.
C.2 MGF1
MGF1 là một họ các hàm tạo mặt nạ, được biểu hiện bởi tham số hệ thống sau:
– Hash: là một hàm băm.
Với một xâu bộ tám x và một số nguyên không âm l, MGF1(x,l) được định nghĩa là:
[Hash(x II I2OSP(0,4)) II Hash(x II I2OSP(1,4)) II ··· II Hash(x II I2OSP(k – 1,4))]8l,
Trong đó k = [l/LHash].
C.3 MGF2
MGF2 là họ các hàm tạo mặt nạ, được biểu hiện bởi tham số hệ thống sau:
– Hash: một hàm băm.
Với một xâu bộ tám x và một số nguyên không âm l, MGF2(x,l) định nghĩa là:
[Hash(x II I2OSP(1,4)) II Hash(x II I2OSP(2,4)) II ··· II Hash(x II I2OSP(k,4))]8l,
Trong đó k = [l/LHash].
CHÚ THÍCH MGF2 giống với MGF1, ngoại trừ việc bộ đếm chạy từ 1 đến k thay vì từ 0 đến k– 1.
Phụ lục D
(tham khảo)
Phương pháp mẫu cho việc tạo dữ liệu đầu vào
Phần phụ lục này mô tả một phương pháp mẫu để tạo ra dữ liệu đầu vào với phần dư thêm và để kiểm tra sự phần dư trong các mục 7.4.3 và 7.5.4. Phương pháp này có thể kết hợp với lược đồ đây được mô tả trong tiêu chuẩn này: NR, ECNR, ECMR và ECKNR.
D.1 Phân chia thông điệp và tạo dữ liệu đầu vào
A chọn một hàm băm Hash: {0,1}8* → {0,1}8Lred. A cũng sẽ chỉ định việc sử dụng định dạng của hàm băm. A cho LHashID = 1 cần định dạng của hàm băm còn nếu không thì LHashID = 0. A đặt trailer của xâu bộ tám là định dạng của hàm băm khi LHashID = 1 còn nếu không thì sẽ là xâu bộ tám rỗng. Những thông tin này phải được cung cấp như các tham số miền. Ngoài ra, mỗi cơ chế xác định độ dài của dữ liệu đầu vào, cho Ldat là độ dài của dữ liệu đầu tính theo bộ tám.
Dữ liệu đầu vào d được tạo ra từ một thông điệp M bằng các bước hoặc một trình tự các bước tương đương sau:
- a) Tính toán độ dài lớn nhất Lmax của phần có thể khôi phục như sau: Lmax = Ldat – Lred – LHashID;
- b) Chia thông điệp M thành phần có thể khôi phục được Mrec là các số khác 0 cuối cùng tính từ trái sang phải của M và phần còn lại của thông điệp Mclr như sau:
1) Nếu L(M) ≤ Lmax thì đặt Mrec = M và Mclr = Ø (xâu rỗng);
2) Nếu L(M) > Lmax thì phân chia M thành Mrec và Mclr như sau: M = Mrec II Mclr thỏa mãn Lmax > L(Mrec);
- c) Chuyển đổi các độ dài thành các xâu bộ tám Crec = I2OSP(Lrec,8) và Cclr= l2OSP(Lclr, 8);
- d) Tính thẻ băm h ϵ {0,1}8Lred+8LHashID như sau h = Hash (Crec II Cclr II Mrec II Mclr II П) II trailer;
- e) Tính xâu đệm pad= I2OSP(0, Lmax – Lrec)
- f) Tạo dữ liệu đầu vào d ϵ {0,1}8Ldat như sau d = pad II h II Mrec.
A phải bao gồm cả độ dài Lrec trong thông điệp đã được ký, cùng với chữ ký (r,s) phần thông điệp không thể khôi phục được Mclr
D.2 Kiểm tra phần dư
B nhận được một thông điệp đã ký bao gồm phần đầu tiên của chữ ký r’, phần thứ hai của chữ ký s’, độ dài phần có thể khôi phục L’rec và phần thông điệp không thể khôi phục được M’clr. Tiền chữ ký П‘ ϵ {0,1}8* và dữ liệu đầu vào d’ ϵ {0,1}8Ldat được khôi phục từ chữ ký đã nhận được (r’,s’).
B xác minh chữ ký và khôi phục thông điệp thông qua các bước hoặc một trình tự các bước tương đương sau:
- a) Tính Lmax = Ldat – Lred – LHashID;
- b) Kiểm tra xem L’rec ϵ [0,Lmax] hay không; nếu không thì từ chối chữ ký;
- c) Khôi phục xâu đệm, thẻ băm và phần có thể khôi phục được lần lượt như sau : pad’=[d‘]Lmax–L’rec, h’ = [[d‘]8Lred + 8LHashlD+8Lrec]8Lred+8LHashID và M’rec = [d’]8L’rec,
- d) Kiểm tra phần đệm: Nếu OS2IP(pad’ ) = 0 không thỏa mãn thì từ chối chữ ký;
- e) Tính độ dài L’clr = L(M’clr);
- f) Chuyển đổi độ dài thành xâu bộ tám C’rec = I2OSP(L’rec,8) và C’clr = l2OSP(L’clr,8);
- g) Tính toán lại thẻ băm h” = Hash (C’rec II C’clr II M’rec II M’clr II П‘) II trailer;
- h) Kiểm tra xem phần dư thêm: Nếu h’ = h” không được thỏa mãn thì từ chối chữ ký;
- i) Đầu ra M’rec II M’clr.
Phụ lục E
(quy định)
Mô-đun ASN.1
E.1 Định nghĩa hình thức
Phụ lục này định nghĩa một mô-đun ASN.1 có chứa cú pháp trừu tượng cho chữ ký số với các cơ chế khôi phục thông điệp được chỉ định trong tiêu chuẩn này.
E.2 Việc sử dụng các định danh đối tượng tiếp theo
Bất kỳ sơ đồ chữ ký nào đều sử dụng một hàm băm. Do đó một định danh đối tượng tiếp theo có thể được đính kèm để nói về hàm băm (ví dụ, một trong các hàm băm dành riêng được đặc tả trong ISO/IEC 10118-3).
Phụ lục F
(tham khảo)
Các ví dụ số
F.1 Các ví dụ số cho NR
CHÚ THÍCH 1 Trong mục F.1 chúng tôi nhắc tới mã hóa ASCII của các xâu dữ liệu; điều này tương đương với việc mã hóa bằng cách sử dụng ISO 646.
CHÚ THÍCH 2 Các mục F.1.2, F.1.3 và F1.4 sử dụng tham số miền, khoá người sử dụng, số ngẫu nhiên và thông điệp được mô tả trong mục F.1.1.
F.1.1 Ví dụ với khôi phục một phần
F.1.2 Ví dụ về hàm băm chuyên dụng 3 (hay còn được biết tới là SHA1) của ISO/IEC 10118-3
F.1.3 Ví dụ về hàm băm chuyên dụng 1 (hay còn được biết tới là RIPEMD-160) của ISO/IEC 10118-3
F.1.4 Ví dụ về hàm băm chuyên dụng 2 (hay còn được biết tới là RIPEMD-128) của ISO/IEC 10118-3
F.1.5 Ví dụ về khôi phục toàn bộ (R1PEMD-128)
F.2 Các ví dụ số cho ECNR
CHÚ THÍCH 1 Hàm băm là Hash(T)= RIPEMD-160(T II C) trong đó C = 00000001 theo hệ thập lục phân.
CHÚ THÍCH 2 Dữ liệu đầu vào được tính toán là các bộ tám ngoài cùng bên phải Ldat của H II Mrec trong đó H là thẻ băm rút gọn của Hash(Crec II Cclr II Mrec II Mclr II П). Thẻ băm được rút gọn là các bộ tám ngoại cùng bên trái Lred của thẻ băm. Chúng tôi sử dụng Crec = I2OSP(Lred, 4), Cclr = I2OSP(Lclr,4).
F.2.1 Đường cong trên một trường nguyên tố
F.2.2 Đường cong elliptic trên trường mở rộng GF(2m)
Trường Galois GF(2185) với đa thức x185 + x69 + 1.
Phương trình của E | y2 + xy = x3 + ax2 + b |
F.2.3 Đường cong Elliptic trên một trường mở rộng GF(pm)
Phương trình của E y2 = x3 + ax + b
Phần thứ hai của chữ ký s 951cd069 e020eb4d 3da1c3dc e316819c 260c8d36
F.3 Các ví dụ số cho ECMR
F.3.1 Đường cong elliptic trên trường nguyên tố
CHÚ THÍCH (1) Thẻ băm rút gọn h là xâu bộ tám L đầu tiên của hàm băm chuyên dụng 3( còn được biết tới như là SHA-1) từ đầu ra của П IIM trong ISO/IEC 10118-3.
(2) Hàm Mash là SHA-1
F.3.2 Đường cong elliptic trên trường mở rộng GF(2m)
F.3.3 Đường cong elliptic trên trường mở rộng GF(pm)
CHÚ THÍCH (1) Một phần tử t trong GF(pm) được định nghĩa là t4x4 + t3x3 + t2x2 + t1x + t0 và được ký hiệu là t4t3t2t1t0
(2) Hàm Mash là SHA-1
F.4 Ví dụ số cho ECAO
CHÚ THÍCH 1 Trong các ví dụ số được mô tả từ mục F.4.1 đến F.4.6
– Hash1 sử dụng các bộ tám ngoài cùng bên trái Lred của hàm băm chuyên dụng 4 ( còn được biết tới như là SHA256) trong ISO/IEC 10118-3,
– Hash2 sử dụng các bộ tám ngoài cùng bên trái (LF + 1 – Lred) của SHA256,
– MGF được cấu thành từ MGF1 và SHA256 như hàm băm cơ sở,
– K = L(n), và
– Lược đồ tạo khóa I (được miêu tả ở mục 7.3) được sử dụng, ý chỉ P = G và Q = YA.
CHÚ THÍCH 2 Trong ví dụ số được miêu tả trong mục F.4.2, tham số miền, khóa người sử dụng và số ngẫu nhiên giống với tham số miền, khóa người sử dụng và số ngẫu nhiên trong mục F.4.1.
CHÚ THÍCH 3 Trong ví dụ số được miêu tả trong mục F.4.4, tham số miền, khóa người sử dụng và số ngẫu nhiên giống với tham số miền, khóa người sử dụng và số ngẫu nhiên trong mục F.4.3.
CHÚ THÍCH 4 Trong ví dụ số được miêu tả trong mục F.4.6, tham số miền, khóa người sử dụng và số ngẫu nhiên giống với tham số miền, khóa người sử dụng và số ngẫu nhiên trong mục F.4.5.
F.4.1 Đường cong elliptic trên một trường nguyên tố GF(p) (khôi phục toàn bộ thông điệp)
F.4.2 Đường cong elliptic trên một trường nguyên tố GF(p) (khôi phục một phần thông điệp)
F.4.3 Đường cong elliptic trên một đường nhị phân GF(2m) (khôi phục toàn bộ dữ liệu)
F.4.4 Đường cong elliptic trên một đường nhị phân GF(2m) (Khôi phục một phần thông điệp)
F.4.5 Đường cong elliptic trên OEF GF(pm)(Khôi phục toàn bộ dữ liệu)
F.4.6 Đường cong elliptic trên OEF GF(pm) (khôi phục một phần thông điệp)
F.5 Ví dụ số cho ECPV
CHÚ THÍCH Trong ví dụ số được mô tả trong mục F.5.1 và F.5.2,
– Hash sử dụng hàm băm chuyên dụng 3 (được biết đến như là SHA1) trong ISO/IEC 10118-3,
– KDF(x) được định nghĩa là MGF2(x,18) với SHA1 là hằm băm cơ bản, và
Mật mã đối xứng Sym sử dụng phép toán XOR ().
F.5.1 Đường cong elliptic trên một trường nguyên tố GF(p)
F.5.2 Đường cong elliptic trên một trường mở rộng GF(2m)
F.6 Ví dụ số cho ECKNR
CHÚ THÍCH 1 Đây là việc thực hiện một hàm đa thức cơ sở tiêu chuẩn
CHÚ THÍCH 2 MGF2 sử dụng RIPEMD-160 như là hàm băm cơ sở của nó
CHÚ THÍCH 3 Phương pháp của việc tạo dữ liệu đầu vào giống như đã được miêu tả trong phụ lục D, với RIPEMD-160 như là Hash.
F.6.1 Đường cong elliptic trên một trường nguyên tố
F.6.2 Đường cong elliptic trên một trường mở rộng GF(2m)
F.6.3 Đường cong elliptic trên một trường mở rộng GF(pm)
Phụ lục G
(tham khảo)
Tổng hợp các thuộc tính của các cơ chế
Trong phụ lục này tổng hợp các tính chất của sáu cơ chế chữ ký cho khôi phục thông điệp, NR, ECNR, ECMR, ECAO, ECPV và ECKNR. Bảng G.1 hiển thị tham số miền và các khóa người dùng. Các bảng G.2 và G.3 cho hiển thị số lượng hoạt động cần thiết để tạo ra một chữ ký và xác thực nó.
Cả ECAO và ECPV bao gồm các hoạt động trong quá trình tạo dữ liệu đầu vào. Một số khác không bao gồm các hoạt động trong quá trình tạo dữ liệu đầu vào.
Chi phí của hàm băm hoặc mật mã đối xứng nhiều hơn chi phí của hàm chuyển đổi. Tuy nhiên, phần tính toán băm cho tổng số tính toán là nhỏ không đáng kể. Hàm băm cho một mô hình oracle ngẫu nhiên theo đó ECAO có thể được chứng minh là an toàn (xem tài liệu tham khảo [2]), nhưng hàm chuyển đổi thì không.
Bảng G.1: Tổng hợp sáu cơ chế (tham số miền và khóa của người dùng)
NR | ECNR | ECMR | ECAO | ECPV | ECKNR |
F,G,n | E,F,G,n | E, F, G,n | E,F, G,n | E, F, G, n | E,F, G,n |
xA,YA | xA,YA | xA,YA | xA,YA | xA,YA | xA,YA |
P,Q | P,Q | P,Q | P,Q | P,Q | P,Q |
Ldat | Ldat | Lrec,LF | Lrec, (Lrec hoặc Lclr) | ||
Hash (hoặc MGF) | Hash1 | Sym, Lkey | MGF | ||
Hash2 | Hash | ||||
MGF, K | KDF |
Bảng G.2: Tổng hợp sau cơ chế (quá trình tạo chữ ký)
NR | ECNR | ECMR | ECAO | ECPV | ECKNR | |
Phép cộng mod n | 2 | 2 | 3 | 1 | 1 | 1 |
Phép nhân mod n | 1 | 1 | 2 | 1 | 1 | 1 |
Đảo ngược mod n | 0 | 0 | 1 | 0 | 0 | 0 |
Nhân vô hướng trên một đường cong elliptic hoặc lũy thừa trên một trường hữu hạn | 1 | 1 | 1 | 1 | 1 | 1 |
Phép toán hoạt động bit XOR | 0 | 0 | 1 | 2 | 0 | 2 |
Hash | 1 | 1 | 1(hoặc 0) | 2 | 1 | 0 |
MGF hoặc KDF | 0 | 0 | 0(hoặc 1) | 1 | 1 | 2 |
Mật mã khóa đối xứng | 0 | 0 | 0 | 0 | 1 | 0 |
I2OSP | 1 | 1 | 0 | 1 | 1 | 0 |
OS2IP(mod n) | 1 | 1 | 1 | 2 | 1 | 1 |
EC2OSPE hoặc FE2OSPF | 1 | 1 | 1 | 1 | 1 | 1 |
Bảng G.3 Tổng hợp sau cơ chế (quá trình xác minh chữ ký)
NR | ECNR | ECMR | ECAO | ECPV | ECKNR | |
Phép cộng mod n | 1 | 1 | 2 | 0 | 0 | 0 |
Phép nhân mod n | 0 | 0 | 2 | 0 | 0 | 0 |
Đảo ngược mod n | 0 | 0 | 1 | 0 | 0 | 0 |
Phép cộng trên một đường cong elliptic hoặc là nhân trên một trường hữu hạn | 1 | 1 | 1 | 1 | 1 | 1 |
Nhân vô hướng trên một đường cong elliptic hoặc lũy thừa trên một trường hữu hạn | 2 | 2 | 2 | 2 | 2 | 2 |
Phép toán hoạt động bit XOR | 0 | 0 | 1 | 2 | 0 | 2 |
Flash | 1 | 1 | 1(hoặc 0) | 2 | 1 | 0 |
MGF hoặc KDF | 0 | 0 | 0(hoặc 1) | 1 | 1 | 2 |
Mật mã khóa đối xứng | 0 | 0 | 0 | 0 | 1 | 0 |
I2OSP | 1 | 1 | 0 | 0 | 1 | 0 |
OS2IP(mod n) | 2 | 2 | 1 | 1 | 1 | 1 |
EC2OSPE hoặc FE2OSPF | 1 | 1 | 1 | 1 | 1 | 1 |
Phụ lục H
(tham khảo)
Lược đồ tương ứng
Trong phụ lục này, các lược đồ được miêu tả tương ứng với tiêu chuẩn này, trong ISO/IEC 9796-3: 2000 va trong TCVN 12852-4: 2004.
Tiêu chuẩn này | ISO/IEC 9796-3: 2000 | TCVN 12852-4: 2004 |
NR (trong Điều 8) | NR (trong Điều 9) | – |
ECNR (trong Điều 9) | – | ECNR (trong Điều 7) |
ECMR (trong Điều 10) | – | ECMR (trong Điều 8) |
ECAO (trong Điều 11) | – | ECAO (trong Điều 9) |
ECPV (trong Điều 12) | – | ECPV (trong Điều 10) |
ECKNR (trong Điều 13) | – | ECKNR (trong Điều 11) |
Thư mục tài liệu tham khảo
[1]. TCVN 112214-1, Information technology – Security techniques – Digital signatures with appendix – Part 1: General
[2]. M. ABE and T. OKAMOTO, “A signature scheme with message recovery as secure as discrete logarithm,” Advances in Cryptology – Asiacrypt’99, Lecture Notes in Computer Science 1716, pp. 378-389, Springer-Verlag, 1999.
[3]. ANSI X9.62-1999, Public Key Cryptography For The Financial Services Industry: The Elliptic Curve Digital Signature Algorithm (ECDSA), 1999
[4]. ANSI X9.63-1999, Public Key Cryptography For The Financial Services Industry: Elliptic Curve Key Agreement and Transport Protocols, 1999.
[5]. IEEE Std 1363-2000, IEEE standard Specifications for Public-Key Cryptography
[6]. C. H. LIM and P. J. LEE, “A study on the proposed Korean digital signature algorithm,” Advances in Cryptology – Asiacrypt’98, Lecture Notes in Computer Science 1514, pp. 175-186, Springer-Verlag, 1998
[7]. A. J. MENEZES, P. C. VAN OORSCHOT and S. A. VANSTONE, “Handbook of applied cryptography,”CRC Press, 1997
[8]. A. MIYAJI, “Another Countermeasure to Forgeries over Message Recovery Signature,” IEICE Trans., Fundamentals, vol. E80-A, No.11, pp. 2192-2200, 1997
[9]. K. NYBERG and R. A. RUEPPEL, “Message recovery for signature schemes based on the discrete logarithm problem,” Designs, Codes and Cryptography, 7, pp. 61-81, 1996
[10]. L. PINTSOV and S. VANSTONE, “Postal Revenue Collection in the Digital Age,” Proceedings of the Fourth International Financial Cryptography Conference, 2000
[11]. D. H. YUM, S. G. SIM and P. J. LEE, “New Signature Schemes Giving Message Recovery Based on EC-KCDSA,” Proceedings of the 12th Conference on Information Security and Cryptology (CISC), pp. 595-597, 2002
Mục Lục
Lời nói đầ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
4 Các ký hiệu, chú thích và quy ước
4.1 Các ký hiệu và chú thích
4.2 Các hàm chuyển đổi và hàm tạo mặt nạ
4.3 Chú giải cho hình vẽ
5 Sự ràng buộc giữa các cơ chế chữ ký và hàm băm
6 Khung chữ ký số cho phép khôi phục thông điệp
6.1 Các quá trình
6.2 Quá trình tạo tham số
6.3 Quá trình tạo chữ ký số
6.4 Quá trình xác minh chữ ký
7 Mô hình tổng quát của chữ ký số cho khôi phục thông điệp
7.1 Các yêu cầu
7.2 Tổng hợp các hàm và các thủ tục
7.3 Quá trình tạo khóa người dùng
7.4 Quá trình tạo chữ ký
7.5 Quá trình xác minh chữ ký
8 NR(Chữ ký khôi phục thông điệp Nyberg-Rueppel)
8.1 Tham số miền và khóa người sử dụng
8.2 Quá trình tạo chữ ký
8.3 Quá trình xác minh chữ ký
9 ECNR (chữ ký khôi phục thông điệp Nyberg-Rueppel trên đường cong Elliptic)
9.1 Tham số miền và khóa người dùng
9.2 Quá trình tạo chữ ký
9.3 Quá trình xác minh chữ ký
10 ECMR (chữ ký khôi phục thông điệp Miyaji trên đường cong elliptic)
10.1 Tham số miền và khóa người dùng
10.2 Quá trình tạo chữ ký
10.3 Quá trình xác minh chữ ký
- ECAO (Chữ ký khôi phục thông điệp Abe-Okamoto trên đường cong elliptc)
11.1 Tham số miền
11.2 Khóa của người dùng
11.3 Quá trình tạo chữ ký
11.4 Quá trình xác minh chữ ký
- ECPV (Chữ ký khôi phục thông điệp Pintsov-Vanstone trên đường cong elliptic)
12.1 Tham số người sử dụng và tham số miền
12.2 Quá trình tạo chữ ký
12.3 Quá trình xác minh chữ ký
13 ECKNR (Chữ ký khôi phục thông điệp KCDSA/Nyberg-Rueppel trên đường cong elliptic)
13.1 Tham số miền và các khóa của người dùng
13.2 Quá trình tạo chữ ký
13.3 Quá trình xác minh chữ ký
Phụ lục A (tham khảo) Quy ước toán học
Phụ lục B (tham khảo) Các hàm chuyển đổi
Phụ lục C (quy định) Hàm tạo mặt nạ (Hàm dẫn xuất khóa)
Phụ lục D (tham khảo) Phương pháp mẫu cho việc tạo dữ liệu đầu vào
Phụ lục E (quy định) Mô-đun ASN.1
Phụ lục F (tham khảo) Các ví dụ số
Phụ lục G (tham khảo) Tổng hợp các thuộc tính của các cơ chế
Phụ lục H (tham khảo) Lược đồ tương ứng
Thư mục tài liệu tham khảo
TIÊU CHUẨN QUỐC GIA TCVN 12855-3:2020 (ISO/IEC 9796-3:2013) VỀ CÔNG NGHỆ THÔNG TIN – CÁC KỸ THUẬT AN TOÀN – LƯỢC ĐỒ CHỮ KÝ SỐ CHO KHÔI PHỤC THÔNG ĐIỆP – PHẦN 3: CÁC CƠ CHẾ DỰA TRÊN LOGARIT RỜI RẠC | |||
Số, ký hiệu văn bản | TCVN12855-3:2020 | Ngày hiệu lực | |
Loại văn bản | Tiêu chuẩn Việt Nam | Ngày đăng công báo | |
Lĩnh vực |
Giao dịch điện tử |
Ngày ban hành | 01/01/2020 |
Cơ quan ban hành | Tình trạng | Còn hiệu lực |
Các văn bản liên kết
Văn bản được hướng dẫn | Văn bản hướng dẫn | ||
Văn bản được hợp nhất | Văn bản hợp nhất | ||
Văn bản bị sửa đổi, bổ sung | Văn bản sửa đổi, bổ sung | ||
Văn bản bị đính chính | Văn bản đính chính | ||
Văn bản bị thay thế | Văn bản thay thế | ||
Văn bản được dẫn chiếu | Văn bản căn cứ |