Cơ quan ban hành: | Bộ Khoa học và Công nghệ | Số công báo: | Đang cập nhật |
Số hiệu: | TCVN 11367-5:2018 | Ngày đăng công báo: | Đang cập nhật |
Loại văn bản: | Tiêu chuẩn Việt Nam | Người ký: | |
Ngày ban hành: | Hết hiệu lực: | Đang cập nhật | |
Áp dụng: | 01/01/2018 | Tình trạng hiệu lực: | Còn Hiệu lực |
Lĩnh vực: | Khoa học-Công nghệ, Thông tin-Truyền thông |
TIÊU CHUẨN QUỐC GIA
TCVN 11367-5:2018
ISO/IEC 18033-5:2015
CÔNG NGHỆ THÔNG TIN - CÁC KỸ THUẬT AN TOÀN - THUẬT TOÁN MẬT MÃ - PHẦN 5: MẬT MÃ DỰA TRÊN ĐỊNH DANH
Information technology - Security techniques - Encryption algorithms - Part 5: Identity-based ciphers
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 Ký hiệu, chữ viết tắt và hàm chuyển đổi
5 Các biến đổi mật mã
5.1 Tổng quan
5.2 Hàm IHF1
5.3 Hàm SHF1
5.4 Hàm PHF1
6 Mô hình tổng quát cho mã hóa dựa trên định danh
6.1 Thành phần của thuật toán
6.2 Độ dài bản rõ
6.3 Sử dụng nhãn
6.4 Định dạng bản mã
6.5 Hoạt động IBE
7 Mô hình tổng quát của mã hóa lai ghép dựa trên định danh
7.1 Tổng quan
7.2 Bọc khóa dựa trên định danh
7.3 Bọc dữ liệu
7.4 Hoạt động mã hóa lai ghép dựa trên định danh
8 Cơ chế mã hóa dựa trên định danh
8.1 Tổng quan
8.2 Cơ chế BF
9 Các cơ chế mã hóa lai ghép dựa trên định danh
9.1 Tổng quan
9.2 Cơ chế bọc khóa SK
9.3 Cơ chế bọc khóa BB1
Phụ lục A (Quy định) Định danh đối tượng
Phụ lục B (Tham khảo) Xem xét tính an toàn:
Phụ lục C (Tham khảo) Các ví dụ số
Phụ lục D (Tham khảo) Các cơ chế ngăn chặn truy cập trái phép các khóa bởi bên thứ ba
Thư mục tài liệu tham khảo
Lời nói đầu
TCVN 11367-5 : 2018 hoàn toàn tương đương với ISO/IEC 18033-5:2015.
TCVN 11367-5 : 2018 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 11367 Công nghệ thông tin - Các kỹ thuật an toàn - Thuật toán mật mã gồm 05 phần:
- TCVN 11367-1:2016 (ISO/IEC 18033-1:2015) Công nghệ thông tin - Các kỹ thuật an toàn - Thuật toán mật mã - Phần 1: Tổng quan.
- TCVN 11367-2:2016 (ISO/IEC 18033-2:2006) Công nghệ thông tin - Các kỹ thuật an toàn - Thuật toán mật mã - Phần 2: Mật mã phi đối xứng.
- TCVN 11367-3:2016 (ISO/IEC 18033-3:2010) Công nghệ thông tin - Các kỹ thuật an toàn - Thuật toán mật mã - Phần 3: Mã khối.
- TCVN 11367-4:2016 (ISO/IEC 18033-4:2011) Công nghệ thông tin - Các kỹ thuật an toàn - Thuật toán mật mã - Phần 4: Mã dòng.
- TCVN 11367-5:2018 (ISO/IEC 18033-5:2015) Công nghệ thông tin - Các kỹ thuật an toàn - Thuật toán mật mã - Phần 5: Mật mã dựa trên định danh.
CÔNG NGHỆ THÔNG TIN - CÁC KỸ THUẬT AN TOÀN - THUẬT TOÁN MẬT MÃ - PHẦN 5: MẬT MÃ DỰA TRÊN ĐỊNH DANH
Information technology - Security techniques - Encryption algorithms - Part 5: Identity-based ciphers
1 Phạm vi áp dụng
Tiêu chuẩn này quy định cơ chế mã hóa dựa trên định danh. Với mỗi cơ chế, giao diện hàm, hoạt động cụ thể của cơ chế và định dạng của bản mã được quy định. Tuy nhiên, các hệ thống phù hợp có thể sử dụng các định dạng thay thế để lưu trữ và truyền bản mã.
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 các tài liệu viện dẫn ghi năm công bố thì áp dụng phiên bản được nêu. Đối với các 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 (nếu có).
TCVN 11367-1 (ISO/IEC 18033-1), Công nghệ thông tin - Các kỹ thuật an toàn - Phần 1: Tổng quan.
TCVN 11367-2 (ISO/IEC 18033-2), Công nghệ thông tin - Các kỹ thuật an toàn - Phần 2: Mật mã phi đối xứng.
TCVN 11367-3 (ISO/IEC 18033-3), Công nghệ thông tin - Các kỹ thuật an toàn - Phần 3: Mã khối.
3 Thuật ngữ và định nghĩa
Trong tiêu chuẩn này áp dụng các thuật ngữ và định nghĩa trong tiêu chuẩn TCVN 11367-1:2016 và dưới đây:
3.1
Bên giải mã (decryptor)
Thực thể giải mã các bản mã
3.2
Bên mã hóa (encryptor)
Thực thể mã hóa các bản rõ
3.3
Mã hóa lai ghép (hybrid encryption)
Thực hiện mã hóa bằng cách sử dụng mật mã lai ghép
3.4
Định danh (identifier)
Đối tượng đại diện cho một điều gì đó và dùng điều này để nhận diện
3.5
Xâu định danh (identity string)
Xâu biểu diễn một định danh
3.6
Mật mã dựa trên định danh (identity-based cipher)
Mật mã phi đối xứng trong đó thuật toán mã hóa lấy một xâu bất kỳ làm khóa công khai
3.7
Mật mã lai ghép dựa trên định danh (identity-based hybrid cipher)
Mật mã gồm cả mật mã lai ghép và mật mã dựa trên định danh
3.8
Cơ chế bọc khóa dựa trên định danh (identity-based key encapsulation mechanism)
Cơ chế bọc khóa trong đó quá trình mã hóa lấy một xâu bất kỳ làm khóa công khai
3.9
Khóa chủ công khai (master-public key)
Giá trị công khai duy nhất được xác định bằng khóa chủ bí mật tương ứng
3.10
Khóa chủ bí mật (master-secret key)
Giá trị bí mật được sử dụng bởi bộ sinh khóa bí mật để tính toán các khóa bí mật cho một thuật toán IBE
3.11
Thuật toán trích xuất khóa bí mật (private key extraction algorithm)
Phương pháp được sử dụng bởi bộ sinh khóa bí mật để tính toán các khóa bí mật cho một thuật toán IBE
3.12
Bộ sinh khóa bí mật (private key generator)
Thực thể hoặc hàm tạo ra một tập hợp các khóa bí mật
3.13
Mã hóa khóa công khai (public key encryption)
Thực hiện mã hóa sử dụng mật mã phi đối xứng
3.14
Xâu (string)
Dãy các ký tự có thứ tự
3.15
Thiết lập (set up)
Quá trình lựa chọn các tham số hệ thống cho một thuật toán IBE
3.16
Thuật toán thiết lập (set up algorithm)
Quá trình tạo ra một khóa chủ bí mật và khóa chủ công khai tương ứng cùng với một số tham số hệ thống
3.17
Các tham số hệ thống (system parameters)
Các tham số sử dụng cho việc tính toán mật mã bao gồm lựa chọn một lược đồ hoặc hàm mật mã cụ thể từ một họ các lược đồ hoặc hàm mật mã hoặc từ một họ các không gian toán học
3.18
Bên thứ ba tin cậy (trusted third party)
Các tổ chức hoặc Cơ quan đại diện được tin cậy bởi các thực thể khác về các hoạt động liên quan đến an toàn
4 Ký hiệu, chữ viết tắt và hàm chuyển đổi
Với mục đích của phần này, các ký hiệu và thuật ngữ viết tắt trong tiêu chuẩn TCVN 11367-1 và dưới đây được áp dụng
4.1 Ký hiệu
[a,…,b] |
Tập hợp các số nguyên {x:a ≤ x < b}. |
|
Nếu và ỹ là các xâu bit/bộ tám có cùng độ dài, thì là phép XOR của hai xâu. |
|
Một tuple các phần tử x1, ...,xl. |
||ỹ |
Nếu và ỹ là các xâu bit/bộ tám, phép nối hai xâu và ỹ, kết quả là một xâu gồm tiếp theo là ỹ. |
gcd(a, b) |
Đối với các số nguyên a và b, ước chung lớn nhất của a và b, tức là số nguyên dương lớn nhất chia hết cho cả a và b (hoặc 0 nếu a = b = 0). |
a|b |
Quan hệ giữa số nguyên a và b khi và chỉ khi a chia hết b, tức là tồn tại số nguyên c sao cho b = ac. |
a ł b |
Quan hệ giữa số nguyên a và b khi và chỉ khi a không chia hết b, tức là không tồn tại số nguyên c sao cho b = ac. |
a ≡ b(mod n) |
Đối với một số nguyên n khác 0, quan hệ giữa số nguyên a và b khi và chỉ khi a và b đồng dư mô-đun n, tức là n|(a - b). |
a(mod n) |
Đối với số nguyên a và số nguyên dương n, số nguyên duy nhất r ϵ [0, ...,n) sao cho r ≡ a(mod n). |
a-1 mod n |
Đối với số nguyên a và số nguyên dương n, sao cho gcd(a,n) = 1, số nguyên duy nhất b ϵ [0, ...,n) sao cho ab ≡ 1(mod n). |
GF(q) |
Trường hữu hạn bao gồm q phần tử, trong đó q là lũy thừa của một số nguyên tố. |
E/GF(q) |
Một đường cong elliptic xác định trên trường GF(q). |
E(GF(q)) |
Nhóm cộng các điểm trên đường cong elliptic E/GF(q). |
E(GF(q))[n] |
Nhóm con của E(GF(q)) bao gồm tất cả các điểm bậc n. |
#E(GF(q)) |
Số lượng các điểm trên đường cong elliptic xác định trên trường GF(q). |
4.2 Chữ viết tắt
CT |
Bản mã, một xâu bit. |
DEM |
Cơ chế bọc dữ liệu. |
IBE |
Mã hóa dựa trên định danh. |
IBhE |
Mã hóa lai ghép dựa trên định danh. |
ID |
Xâu bộ tám duy nhất được gán cho một bên giải mã. |
IDb |
Biểu diễn nhị phân của ID. |
K |
Khóa phiên cho DEM. |
ĸ |
Tham số an toàn. |
KEM |
Cơ chế bọc khóa. |
L |
Nhãn, một xâu bộ tám. |
mpk |
Khóa chủ công khai của IBE. |
Msg |
Bản rõ, một xâu bộ tám. |
Msgb |
Biểu diễn nhị phân của Msg. |
msk |
Khóa chủ bí mật của IBE. |
parms |
Các tham số hệ thống của IBE. |
PKG |
Bộ sinh khóa bí mật. |
skID |
Khóa bí mật tương ứng với ID của IBE. |
4.3 Hàm chuyển đổi
Các hàm chuyển đổi sau được quy định trong TCVN 11367-2:2016 (ISO/IEC 18033-2).
BS2IP |
Nguyên thủy chuyển đổi xâu bit thành số nguyên. |
BS2OSP |
Nguyên thủy chuyển đổi xâu bit thành xâu bộ tám. |
EC2OSP |
Nguyên thủy chuyển đổi đường cong elliptic thành xâu bộ tám. |
FE2OSP |
Nguyên thủy chuyển đổi phần tử trường thành xâu bộ tám. |
FE2IP |
Nguyên thủy chuyển đổi phần tử trường thành số nguyên. |
I2BSP |
Nguyên thủy chuyển đổi số nguyên thành xâu bit. |
I2OSP |
Nguyên thủy chuyển đổi số nguyên thành xâu bộ tám. |
OS2ECP |
Nguyên thủy chuyển đổi xâu bộ tám thành đường cong elliptic. |
OS2FEP |
Nguyên thủy chuyển đổi xâu bộ tám thành phần tử trường. |
OS2IP |
Nguyên thủy chuyển đổi xâu bộ tám thành số nguyên. |
Oct(m) |
Bộ tám có giá trị nguyên bằng m. |
Len(n) |
Độ dài của số nguyên n tính bằng bộ tám. |
5 Các biến đổi mật mã
5.1 Tổng quan
Lược đồ được quy định trong phần này sử dụng ba biến đổi mật mã, IHF1, SHF1 và PHF1 dưới đây. Các biến đổi này sử dụng hàm băm được quy định trong TCVN 11816-3:2016 (ISO/IEC 10118-3).
5.2 Hàm IHF1
IHF1 dựa trên bốn hàm băm được quy định trong TCVN 11816-3:2016 (ISO/IEC 10118-3), cụ thể là SHA-224, SHA-256, SHA-384 và SHA-512. Đầu vào là một xâu bit và đầu ra là một số nguyên trong khoảng cụ thể.
Đầu vào:
- Một xâu str ϵ {0,1}*
- Một tham số an toàn ĸ ϵ {112,128,192,256}
- Một số nguyên n, 0 < n < 24ĸ
Đầu ra:
- Một số nguyên v, 0 ≤ v < n.
Hoạt động: Thực hiện các bước sau.
a) Nếu ĸ = 112 thì cho H là SHA-224;
Còn nếu ĸ = 128 thì cho H là SHA-256;
Còn nếu ĸ = 192 thì cho H là SHA-384;
Còn nếu ĸ = 256 thì cho H là SHA-512.
b) Cho h0 là một xâu bit toàn 0 có độ dài 2ĸ.
c) Cho t1 = h0||str.
d) Cho h1 = H(t1).
e) Cho v1 = BS2IP(h1).
f) Cho t2 = h1||str.
g) Cho h2 = H(t2)
h) Cho a2 = BS2lP(h2).
i) Cho v2 = 22ĸv1 + a2.
j) Đầu ra là v2 mod n.
5.3 Hàm SHF1
Trả về một xâu n bit khi sử dụng một hàm băm mật mã trên một xâu đầu vào.
Đầu vào:
- Một xâu str ϵ {0,1}*
- Một tham số an toàn ĸ ϵ {112,128,192,256}
- Một số nguyên n, n > 0
Giả thiết: Xâu str nằm trong khoảng cho phép của giá trị đầu vào cho hàm băm tương ứng. Số nguyên n thỏa mãn n ≤ 4ĸ.
Đầu ra:
- Một xâu v ϵ {0,1}n
Hoạt động: Thực hiện theo các bước sau.
- Đầu ra là I2BSP(IHF(str, 2n, ĸ)).
5.4 Hàm PHF1
Trả về một phần tử trong nhóm đường cong elliptic E(GF(q))[p] là một đường cong elliptic siêu kỳ dị E/GF(q): y2 = x3 + b hoặc E/GF(q): y2 = x3 + ax. Còn các loại đường cong elliptic tương tự khác là không phù hợp cho PHF1.
Đầu vào:
- Một xâu str ϵ {0,1}*
- Một tham số an toàn ĸ ϵ {112,128,192,256}
- Cờ j nhận giá trị 0 hoặc 1 để xác định đường cong elliptic siêu kỳ dị, với j = 0 là đại diện cho đường cong elliptic E/GF(q): y2 = x3 + b và j = 1 là đại diện cho đường cong elliptic E/GF(q): y2 = x3 + ax.
- Một số nguyên tố q với q = 2 (mod 3) khi j = 0 hoặc q = 3 (mod 4) khi j = 1 xác định trường hữu hạn GF(q).
- Một số nguyên a, 0 < a < q nếu j = 1 hoặc một số nguyên b, 0 < b < q nếu j = 0
- Một số nguyên tố p với p|#E(GF(q)) và p2 ł #E(GF(q)) cho đường cong elliptic E được xác định bằng cờ j
Đầu ra:
- Một phần tử của E(GF(q))[p] đối với đường cong elliptic đã chọn.
Hoạt động: Thực hiện các bước sau.
a) Cho r = (q + 1)/p.
b) Nếu j = 0 thì thực hiện các bước sau:
1) Cho y = IHF1(str, q, ĸ).
2) Cho x = (y2 - b)(2q-1)/3 (mod q).
3) Cho J = (x, y).
c) Còn nếu j = 1 thực hiện các bước sau:
1) Cho x = IHF1(str, q, ĸ).
2) Cho z = x3 + ax (mod q).
3) Nếu ký hiệu Jacobi (z/q) = +1 thì thực hiện các bước sau:
i) Cho y = z(q+1)/4 mod q.
ii) Cho J = (x, y).
4) Nếu ký hiệu Jacobi (z/q) = -1 thì thực hiện các bước sau:
i) Cho y = (-z)(q+1)/4 mod q.
ii) Cho J = (-x, y).
d) Trả về rJ.
6 Mô hình tổng quát cho mã hóa dựa trên định danh
6.1 Thành phần của thuật toán
Một lược đồ mã hóa dựa trên định danh bao gồm bốn thuật toán sau.
IBE.Setup(ĸ). Cho trước một tham số an toàn ĸ, sinh một tuple
IBE.Extract(parms,mpk,msk,ID). Cho trước một khóa chủ bí mật msk, khóa chủ công khai tương ứng mpk và một xâu bộ tám ID với parms, sinh một khóa bí mật skID cho ID.
lBE.Enc(parms,mpk,ID,L,Msg). Cho trước một bản rõ Msg, một nhãn L và một xâu bộ tám ID với parms và mpk, thực hiện mã hóa và đầu ra là bản mã CT của Msg cho ID. Lưu ý rằng Msg,L và CT là các xâu bộ tám.
IBE.Dec(parms,mpk,lD,skID,L,CT). Cho trước một khóa bí mật skID với parms,mpk,ID và L giải mã bản mã CT và đầu ra là bản rõ.
Nói chung, các thuật toán thiết lập, trích xuất khóa và mã hóa là các thuật toán xác suất, trong khi đó thuật toán giải mã là tất định. Do đó khuyến nghị các ứng dụng thiết lập một phương pháp để xác thực quyền truy cập tới các khóa bí mật bằng cách sử dụng xâu ID như là một kiểu nhận dạng trong hệ thống xác thực tin cậy. Thông tin chi tiết về xác thực yêu cầu khóa không nằm trong phạm vi của phần này, nhưng rất quan trọng cho sự an toàn của một ứng dụng.
CHÚ THÍCH 1 An toàn ngữ nghĩa (Semantic security) chống lại tấn công bản mã lựa chọn[4] đã được cộng đồng nghiên cứu mật mã coi là mức độ an toàn thích hợp mà một cơ chế IBE nói chung phải đáp ứng được. Mỗi cơ chế IBE được quy định trong tiêu chuẩn này đáp ứng được mức độ bảo mật này. Định nghĩa chính thức của khái niệm bảo mật này được quy định trong phụ lục B.
CHÚ THÍCH 2 Yêu cầu cơ bản của một cơ chế IBE bất kỳ đó là tính chính xác. Với cặp ID/skID và bản rõ có độ dài xác định, bản mã của ID với một khóa chủ công khai và các tham số hệ thống của ID phải được giải mã thành bản rõ ban đầu với khóa bí mật skID với một khóa chủ công khai và các tham số hệ thống của ID. Yêu cầu này có thể được điều chỉnh, do đó nó chỉ thỏa mãn với một lượng cặp ID/skID không đáng kể.
6.2 Độ dài bản rõ
Ba loại độ dài bản rõ của IBE được định nghĩa như sau.
- IBE với độ dài bản rõ tùy ý mã hóa các bản rõ có độ dài bất kỳ.
- IBE với độ dài bản rõ cố định chỉ mã hóa các bản rõ có độ dài (tính bằng các bộ tám) bằng một giá trị cố định IBE.MsgLen.
- IBE với độ dài bản rõ giới hạn chỉ mã hóa các bản rõ có độ dài (tính bằng các bộ tám) nhỏ hơn hoặc bằng một giá trị cố định IBE.MaxMsgLen(mpk). Độ dài tối đa của bản rõ phụ thuộc vào tham số hệ thống mpk.
6.3 Sử dụng nhãn
Một nhãn là một xâu bộ tám có giá trị được sử dụng trong các thuật toán mã hóa và giải mã. Nó có thể chứa dữ liệu công khai tiềm ẩn từ ngữ cảnh và không cần được mã hóa, nhưng vẫn cần được ràng buộc với bản mã. Nhãn là một xâu bộ tám có ý nghĩa đối với ứng dụng sử dụng lược đồ IBE và không phụ thuộc vào việc thực hiện lược đồ IBE. Ba loại độ dài nhãn của IBE được định nghĩa như sau.
- IBE với độ dài nhãn tùy ý là lược đồ trong đó các thuật toán mã hóa và giải mã chấp nhận các nhãn có độ dài bất kỳ.
- IBE với độ dài nhãn cố định là lược đồ trong đó các thuật toán mã hóa và giải mã chỉ chấp nhận các nhãn có độ dài (tính bằng các xâu bộ tám) bằng một giá trị cố định IBE.LabelLen.
- IBE với độ dài nhãn giới hạn là lược đồ trong đó các thuật toán mã hóa và giải mã chỉ chấp nhận các nhãn có độ dài (tính bằng các xây bộ tám) nhỏ hơn hoặc bằng một giá trị cố định IBE.MaxLabelLen.
CHÚ THÍCH Khái niệm truyền thống về an toàn chống lại tấn công bản mã lựa chọn đã được mở rộng trong Phụ lục B, vì vậy đối với một cơ chế IBE an toàn, thuật toán mã hóa phải ràng buộc nhãn với bản mã bằng một phương thức «không mềm dẻo» thích hợp.
6.4 Định dạng bản mã
Phần này mô tả các định dạng bản mã trong một xâu bộ tám; tuy nhiên, khi thực hiện lưu trữ và/hoặc truyền các bản mã thì có thể chọn các định dạng khác nếu được yêu cầu. Ngoài ra, các bản mã với định dạng được quy định ở đây có thể không nhất thiết xuất hiện trong quá trình mã hóa hoặc giải mã, vì việc chuyển đổi định dạng sang một định dạng khác có thể chuyển thành một quá trình với chức năng tương đương duy nhất.
CHÚ THÍCH Bên cạnh việc thúc đẩy khả năng tương tác, cần phải xác định định dạng của một bản mã để đưa ra một yêu cầu hợp lý và lý do về sự an toàn mà một IBE cần chống lại các tấn công bản mã lựa chọn.
6.5 Hoạt động IBE
Khi thiết lập một IBE, bên thứ ba tin cậy sinh ra một khóa chủ bí mật, khóa chủ công khai tương ứng và các tham số hệ thống bằng cách gọi thuật toán IBE.Setup và tạo ra khóa chủ công khai và các tham số hệ thống công khai, giữ bí mật khóa chủ bí mật. Khi một bên giải mã yêu cầu khóa bí mật, bên phát hành khóa bí mật gọi thuật toán IBE.Extract và đưa ra kết quả đầu ra cho bên giải mã chính là khóa bí mật thông qua một kênh an toàn. Bên mã hóa tính toán bản mã bằng cách chạy thuật toán IBE.Enc với xâu định danh của bên giải mã. Bên giải mã có được bản rõ ban đầu từ bản mã nhận được bằng cách chạy IBE.Dec với khóa bí mật.
Các cơ chế và giao thức sau nằm ngoài phạm vi của tiêu chuẩn này. Có thể tham khảo TCVN 7817 (ISO/IEC 11770) để thiết kế hoạt động quản lý khóa.
- Giao thức để tạo ra khóa chủ công khai và các tham số hệ thống phù hợp.
- Giao thức phân phối khóa bí mật cho bên giải mã.
- Giao thức để tạo ra một xâu định danh phù hợp cho bên mã hóa.
- Cơ chế lưu trữ một khóa chủ bí mật hoặc khóa bí mật an toàn.
- Cơ chế xác nhận liên kết giữa khóa chủ công khai hoặc các tham số hệ thống và tổ chức phát hành.
Mỗi cơ chế IBE quy định trong phần này là các thành viên trong họ cơ chế IBE trong một IBE cụ thể được lựa chọn từ họ cơ chế bằng cách chọn các giá trị cụ thể làm các tham số hệ thống xác định họ cơ chế IBE. Với một cơ chế IBE được chọn từ một họ cơ chế, trước khi tạo ra cặp khoá chủ bí mật/khóa chủ công khai, cần chọn các giá trị cụ thể của các tham số hệ thống cho họ. Tùy thuộc vào các quy ước được sử dụng để mã hóa các khóa chủ công khai, một số sự lựa chọn các tham số hệ thống cũng có thể được nhúng trong quá trình mã hóa khóa chủ công khai. Các tham số hệ thống này sẽ vẫn được duy trì trong suốt vòng đời của khóa chủ công khai.
CHÚ THÍCH Ví dụ, nếu một cơ chế IBS được tham số hóa dưới dạng một hàm băm mật mã, việc lựa chọn hàm băm nên được cố định một lần và cho tất cả các thời điểm trước khi tạo ra cặp khóa chủ bí mật/khóa chủ công khai, và các thuật toán mã hóa và giải mã cần sử dụng hàm băm được chọn trong suốt vòng đời của khóa chủ công khai. Việc không tuân thủ quy tắc này không chỉ làm cho việc thực hiện không phù hợp, mà còn làm mất hiệu lực phân tích an toàn cho cơ chế và trong một số trường hợp có thể làm lộ quá trình triển khai đối với những rủi ro bảo mật nghiêm trọng.
7 Mô hình tổng quát của mã hóa lai ghép dựa trên định danh
7.1 Tổng quan
Một lược đồ mã hoá lai ghép dựa trên định danh được sử dụng để mã hoá một lượng lớn bản rõ, tận dụng các ưu điểm của lược đồ mã hoá dựa trên định danh, trong đó một IBE được sử dụng để mã hoá một khoá giải mã nhằm mã hoá thông điệp sử dụng các kỹ thuật mật mã đối xứng. Một lược đồ mã hoá lai ghép dựa trên định danh được xây dựng từ hai « khối xây dựng » ở mức độ thấp hơn: một lược đồ bọc khoá dựa trên định danh và một lược đồ bọc dữ liệu.
7.2 Bọc khóa dựa trên định danh
7.2.1 Thành phần thuật toán
Một lược đồ bọc khoá dựa trên định danh bao gồm bốn thuật toán sau đây.
KEM.Setup(ĸ). Cho trước một tham số an toàn ĸ, tạo ra một tuple (parms, mpk, msk), trong đó parms ký hiệu các tham số hệ thống, msk ký hiệu một khoá chủ bí mật và mpk là khoá chủ công khai tương ứng.
KEM.Extract(parms,mpk,msk,ID). Cho trước một khoá chủ bí mật msk, khoá chủ công khai tương ứng mpk và một xâu bộ tám ID với parms, tạo ra một khoá bí mật skID cho ID.
KEM.Enc(parms,mpk,ID). Cho trước một xâu bộ tám ID với parms và mpk, đầu ra là một xâu bộ tám K và bản mã CTKEM của K tương ứng với ID. Chú ý rằng CTKEM là một xâu bộ tám.
KEM.Dec(parms,mpk,ID,sklD,CTKEM). Cho trước một khoá bí mật skID với parms, mpk và ID, giải mã một bản mã CTKEM và đầu ra là xâu bộ tám.
Trong quá trình thiết lập chung, các thuật toán trích xuất và bọc khoá là các thuật toán xác suất, trong đó thuật toán giải bọc là tất định. Thuật toán giải bọc có thể thất bại trong một số trường hợp với xác suất không đáng kể. Một cơ chế bọc khoá cũng quy định một số nguyên dương KEM.KeyLen - độ dài khoá bí mật đầu ra của KEM.Enc và KEM.Dec.
CHÚ THÍCH 1 Mức độ an toàn yêu cầu đối với mỗi cơ chế bọc khoá cần thoả mãn những quy định trong phụ lục B.
CHÚ THÍCH 2 Cơ chế bọc khoá phải đáp ứng được tính đúng đắn tương tự với tính đúng đắn của một cơ chế IBE: đối với một cặp ID/skID bất kỳ và xâu bộ tám K có độ dài nằm trong giới hạn định nghĩa của nó, bất ký đóng gói của K với các tham số hệ thống đã được xác định gắn với một ID sẽ được giải mã thành K ban đầu với các tham số hệ thống gắn với ID. Yêu cầu này có thể được điều chỉnh, do đó nó chỉ thoả mãn đối với một số cặp ID/skID nhất định.
7.2.2 Tính chất phi tiền tố
Ngoài ra, một cơ chế bọc khoá còn thoả mãn tính chất sau. Tập hợp tất cả các bản mã đầu ra có thể của thuật toán mã hoá phải là một tập con của một tập hợp các xâu bộ tám ứng viên (có thể phụ thuộc vào khoá công khai), vì vậy tập hợp ứng viên là phi tiền tố và dễ dàng tìm ra các phần tử của tập hợp ứng viên (cho trước khoá công khai hoặc khoá bí mật).
7.3 Bọc dữ liệu
7.3.1 Thành phần thuật toán
Một lược đồ bọc dữ liệu bao gồm hai thuật toán sau.
a) DEM.Enc(K, L, Msg). Cho trước các xâu bộ tám K và L, tính toán bản mã CTDEM của Msg. Chú ý rằng Msg và CTDEM là các xâu bộ tám, L và Msg có độ dài được quy định tương ứng trong 6.3 và 6.2. Độ dài tính bằng bit của K là DEM.KeyLen.
b) DEM.Dec(K, L, CTDEM). Cho trước các xâu bộ tám K và L, giải mã bản mã CTDEM và đầu ra là bản rõ tương ứng.
Thuật toán mã hoá có thể thất bại nếu độ dài L hoặc Msg vượt quá giới hạn đã được định nghĩa. Thuật toán giải mã có thể thất bại trong một số trường hợp với xác suất không đáng kể.
Các cơ chế bọc dữ liệu được cho phép là các cơ chế mã hoá đối xứng được quy định trong ISO/IEC 18033-3.
CHÚ THÍCH Các thuật toán mã hoá và giải mã là tất định và thoả mãn yêu cầu về tính đúng đắn sau: với tất cả các khoá phiên K, tất cả các nhãn L và tất cả các bản rõ Msg, do đó độ dài của L và Msg không vượt quá giới hạn đã được định nghĩa, và
c) DEM.Dec(K, L, DEM.Enc(K, L, Msg)) = Msg.
7.4 Hoạt động mã hóa lai ghép dựa trên định danh
7.4.1 Các tham số hệ thống
Một sơ đồ mã hoá lai ghép dựa trên định danh (viết tắt là IBhe) là một họ sơ đồ IBE được tham số hoá bằng các tham số hệ thống sau:
- KEM: một lược đồ bọc khoá dựa trên định danh, được quy định trong 7.2.
- DEM: một lược đồ bọc dữ liệu, được quy định trong 7.3.
Có thể kết hợp KEM và DEM, ta có KEM.Keylen = DEM.KeyLen.
CHÚ THÍCH 1 Nếu DEM được khởi tạo bằng một cơ chế bọc dữ liệu với độ dài nhãn cố định, với các nhãn bị giới hạn độ dài bởi DEM.LabelLen, thì IBhE là một cơ chế mã hoá dựa trên định danh với độ dài nhãn cố định với IBhE.LabelLen = DEM.LabelLen.
CHÚ THÍCH 2 Nếu DEM được khởi tạo bằng một cơ chế bọc dữ liệu với độ dài bản rõ cố định, với các bản rõ bị giới hạn độ dài bởi DEM.MsgLen, thì IBhE là một cơ chế mã hoá dựa trên định danh với độ dài bản rõ cố định với IBhe.MsgLen = DEM.MsgLen.
CHÚ THÍCH 3 Đối với tất cả các lựa chọn cho phép của KEM, giá trị của KEM.KeyLen là một tham số hệ thống có thể được lựa chọn sao cho bằng DEM.KeyLen. Do đó, tất cả sự kết hợp có thể cho phép của KEM và DEM có thể được thực hiện bằng cách lựa chọn các thông số hệ thống thích hợp.
7.4.2 Thiết lập
Thuật toán thiết lập cho IBhE cũng giống như thuật toán KEM cơ bản. Cho parms là ký hiệu các tham số hệ thống và (msk, mpk) là ký hiệu một cặp khóa chủ bí mật/khóa chủ công khai.
7.4.3 Trích xuất khóa bí mật
Thuật toán trích xuất khóa bí mật cho IBhe cũng giống như thuật toán KEM cơ bản. Cho skID là ký hiệu một khóa bí mật tương ứng với ID.
7.4.4 Mã hóa
Thuật toán mã hóa IBhE.Enc lấy đầu vào là một khóa chủ công khai mpk, một nhãn L và một bản rõ Msg với các tham số hệ thống parms. Thuật toán như sau:
a) Tính = KEM.Enc(parms, mpk, ID).
b) Tính CTDEM = DEM.Enc(K, L, Msg).
c) Đặt CT = CTKEM||CTDEM.
d) Đầu ra là CT.
7.4.5 Giải mã
Thuật toán giải mã IBhE.Dec lấy đầu vào là một khóa bí mật skID, một xâu bộ tám ID, một nhãn L và một bản mã CT với các tham số hệ thống parms. Thuật toán như sau:
a) Sử dụng tính chất phi tiền tố của các bản mã có liên quan đến KEM, phân tích CT thành CT = CTKEM||CTKEM, trong đó CTKEM và CTDEM là các xâu bộ tám sao cho CTKEM là một phần tử của tập hợp các bản mã ứng viên có thể liên quan đến KEM. Bước này thất bại nếu không thể phân tích CT.
b) Tính K = KEM.Dec(parms, mpk, ID, skID, CTKEM).
c) Tính Msg = DEM.Dec(K, L, CTDEM).
d) Đầu ra là Msg.
CHÚ THÍCH Độ an toàn của IBhE được phân tích trong phụ lục B. Nếu KEM và DEM đáp ứng được các đặc tính an toàn thích hợp, thì IBhE sẽ an toàn chống lại tấn công bản mã lựa chọn.
8 Cơ chế mã hóa dựa trên định danh
8.1 Tổng quan
Trong điều này quy định về một cơ chế mã hóa dựa trên định danh. Cơ chế này sử dụng các nguyên thủy sau. Hàm băm H1 được sử dụng cho các đường cong siêu kỳ dị nhưng một số lược đồ khác (có thể tương tự) để băm một xâu thành một điểm lại yêu cầu các đường cong khác.
Chọn một tham số an toàn ĸ và một tham số kích thước khóa δ, cơ chế yêu cầu các thuật toán sau đây:
a) Một thuật toán sinh bit ngẫu nhiên [1]:
- R1: nguồn các giá trị ngẫu nhiên trong không gian {0,1}δ.
b) Bốn hàm băm:
- H1:{0,1}* → G1 trong đó H1(s) = PHF1(s,ĸ,j,q,c,p) với j = 0 biểu diễn đường cong elliptic E/GF(q): y2 = x3 + c và j = 1 biểu diễn đường cong elliptic E/GF(q): y2 = x3 + cx và p là một số nguyên tố với p|#E(GF(p)) và p2 ł #E(GF(q)) cho đường cong elliptic E được định nghĩa bằng cờ j.
- H2:G3 →{0,1}δ trong đó H2(x) = SHF1(OS2SSP(z), δ, ĸ) và z = FE2OSP(x)
- H3: {0,1}δ x {0,1}δ → trong đó H3(s1,s2) = IHF1(s1 || s2,p - 1,ĸ) + 1
- H4: {0,1}δ →{0,1}δ trong đó H4(s) = SHF1(s, δ, ĸ)
8.2 Cơ chế BF
8.2.1 Thiết lập
Thao tác thiết lập tạo ra các tham số hệ thống công khai và một khóa chủ bí mật. Khóa chủ bí mật được bên phát hành khóa bí mật đảm bảo an toàn, vì tất cả các khóa bí mật được tính toán trong hệ thống phụ thuộc vào khóa trên. Khuyến nghị được đưa ra là các ứng dụng cần thiết lập một phương pháp để thay đổi khóa chủ bí mật, khóa chủ công khai tương ứng và các tham số hệ thống một cách thường xuyên và có một phương pháp để xử lý việc tiết lộ khóa chủ bí mật. Tuy nhiên, điều này nằm ngoài phạm vi của tiêu chuẩn này.
Các bước để thiết lập tổ chức phát hành khóa bí mật và các tham số hệ thống như sau:
a) Thiết lập tập hợp các nhóm cơ sở G1, G2, G3 và một cặp e: G1 x G2 → G3. G1 sẽ có dạng E(GF(q))[p], trong đó p và q là các số nguyên tố.
b) Chọn một bộ sinh ngẫu nhiên Q trong G2.
c) Tạo ra một khóa chủ bí mật ngẫu nhiên trong . Tính R tương ứng bằng sQ.
d) Sẵn sàng các tham số hệ thống và tập hợp khóa chủ công khai parms = và mpk = R. Giữ bí mật khóa chủ bí mật s.
ISO/IEC 15946-1 có các khuyến nghị về việc tạo ra các nhóm, bộ sinh nhóm và cặp.
8.2.2 Trích xuất khóa bí mật
Thao tác trích xuất lấy một xâu định danh tùy ý IDb trong {0,1}* và tính toán khóa bí mật tương ứng skID trong G1. Thuật toán tính khóa bí mật skID tương ứng với một xâu định danh IDb như sau:
Đầu vào:
- Các tham số hệ thống parms =
- Khóa chủ công khai mpk = R
- Khóa chủ bí mật msk = s
- Xâu định danh IDb
Đầu ra:
- Khóa bí mật sklD là một phần tử của G1.
Hoạt động: Tính skID theo các bước sau đây:
a) Tính phần tử định danh M = H1(IDb).
b) Đặt skID = sM.
c) Đầu ra là skID.
Tính đúng đắn của giá trị skID được kiểm tra bằng thuật toán sau:
Đầu vào:
- Các tham số hệ thống parms =
- Khóa chủ công khai mpk = R
- Xâu định danh IDb
- Khóa bí mật tương ứng skID = sM
Đầu ra:
- Giá trị “hợp lệ” nếu skID phù hợp với parms, mpk và IDb và “không hợp lệ” trong trường hợp ngược lại.
Hoạt động: Thực hiện như sau.
a) Tính phần tử định danh M = H1(IDb).
b) Tính T0 = e(skID, Q).
c) Tính T1 = e(M, R).
Nếu T0 = T1 thì đầu ra là giá trị “hợp lệ”, ngược lại đầu ra là giá trị “không hợp lệ”.
8.2.3 Mã hóa
Quá trình mã hóa lấy một xâu định danh tùy ý IDb trong {0,1}*, thông điệp Msgb có độ dài δ và khóa chủ công khai mpk = R với các tham số hệ thống parms và đầu ra là bản mã CT của thông điệp.
Các bước mã hóa thông điệp như sau:
a) Dùng R1, tính δ bit ngẫu nhiên o.
b) Tính phần tử định danh M = H1(IDb).
c) Tính r = H3(o, Msgb).
d) Tính C1 = rQ.
e) Tính B = e(rM, R).
f) Tính
g) Tính
h) Đầu ra là CT =
8.2.4 Giải mã
Quá trình giải mã lấy đầu vào là bản mã CT được tính toán cho định danh ID và khóa bí mật skID tương ứng với ID, và đầu ra là thông điệp Msgb hoặc “lỗi”.
Các bước khôi phục thông điệp như sau:
a) Phân tích bản mã CT thành một tuple .
b) Tính B = e(skID, C1).
c) Tính
d) Tính
e) Tính r = H3(o, Msgb).
f) Kiểm tra nếu C1 = rQ. Nếu không thỏa mãn, thì đầu ra là “lỗi” và dừng.
g) Đầu ra là Msgb.
9 Các cơ chế mã hóa lai ghép dựa trên định danh
9.1 Tổng quan
Trong điều này quy định về hai cơ chế bọc khóa dựa trên định danh. Mỗi cơ chế sử dụng các nguyên thủy như sau.
Chọn tham số an toàn ĸ và tham số kích thước khóa δ, cơ chế yêu cầu các thuật toán sau đây:
a) Thuật toán sinh bit ngẫu nhiên:
- R1: nguồn các giá trị ngẫu nhiên trong không gian {0,1}δ.
b) Ba hàm băm:
- H1: {0,1}* → Zp trong đó H1(s) = IHF1(s, p, k)
- H2: G3 → {0,1}δ trong đó H2(x) = SHF1(OS2BSP(z), δ, k) và z = FE2OSP(x)
- H3: {0,1}* → {0,1}δ trong đó H3(s) = SHF1(s, δ, k)
9.2 Cơ chế bọc khóa SK
9.2.1 Thiết lập
Thao tác thiết lập tạo ra các tham số hệ thống công khai và một khóa chủ bí mật. Khóa chủ bí mật được bên phát hành khóa đảm bảo an toàn, vì tất cả các khóa bí mật được tính toán trong hệ thống phụ thuộc vào khóa trên. Khuyến nghị được đưa ra là các ứng dụng cần thiết lập một phương pháp để thay đổi khóa chủ bí mật, khóa chủ công khai tương ứng và các tham số hệ thống một cách thường xuyên và có một phương pháp để xử lý việc tiết lộ khóa chủ bí mật. Tuy nhiên, điều này nằm ngoài phạm vi của tiêu chuẩn này.
Các bước để thiết lập tổ chức phát hành khóa bí mật và các tham số hệ thống như sau:
a) Thiết lập tập hợp các nhóm cơ sở G1, G2, G3 và một cặp e: G1 x G2 → G3. Bậc của từng nhóm là p.
b) Chọn một bộ sinh ngẫu nhiên Q1 trong G1 và bộ sinh ngẫu nhiên Q2 trong G2.
c) Tạo ra một khóa chủ bí mật ngẫu nhiên s trong . Tính R tương ứng bằng sQ1.
d) Tiền tính toán giá trị cặp J = e(Q1, Q2).
e) Sẵn sàng các tham số hệ thống và tập hợp khóa chủ công khai và mpk = R. Giữ bí mật khóa chủ bí mật s.
ISO/IEC 15946-1 có các khuyến nghị về việc tạo ra các nhóm, bộ sinh nhóm và cặp.
9.2.2 Trích xuất khóa bí mật
Thao tác trích xuất lấy một xâu định danh tùy ý IDb trong {0,1}* và tính toán khóa bí mật tương ứng skID trong G2. Thuật toán tính khóa bí mật skID tương ứng với một xâu định danh IDb như sau:
Đầu vào:
- Các tham số hệ thống
- Khóa chủ công khai mpk = R
- Khóa chủ bí mật msk = s
- Xâu định danh IDb
Đầu ra:
- Khóa bí mật skID là một phần tử của G2.
Hoạt động: Tính skID theo các bước sau đây:
a) Tính phần tử định danh M = H1(IDb).
b) Nếu M + s ≡ 0 mod p, thì đầu ra là “lỗi” và dừng.
c) Tính t = (M + s)-1 mod p.
d) Tính skID = tQ2.
e) Đầu ra là skID.
Tính đúng đắn của giá trị skID được kiểm tra bằng thuật toán sau:
Đầu vào:
- Các tham số hệ thống
- Khóa chủ công khai mpk = R
- Xâu định danh IDb
- Khóa bí mật tương ứng skID
Đầu ra:
- Giá trị “hợp lệ” nếu skID phù hợp với parms, mpk và IDb và “không hợp lệ” trong trường hợp ngược lại.
Hoạt động: Thực hiện như sau.
a) Tính phần tử định danh M = H1(IDb).
b) Tính T = e(MQ1 + R,skID).
c) Nếu T = J thì đầu ra là giá trị “hợp lệ”, ngược lại đầu ra là giá trị “không hợp lệ”.
9.2.3 Bọc khóa phiên
Thao tác bọc lấy một xâu định danh tùy ý IDb trong {0,1}* và khóa chủ công khai mpk = R với các tham số hệ thống parms và đầu ra là cặp , trong đó K là khóa phiên được dùng để mã hóa thông điệp và CTKEM là giá trị bọc của K được truyền đến bên nhận.
Các bước để tính toán giá trị bọc như sau:
a) Sử dụng bộ sinh số ngẫu nhiên R1, sinh ra một thông báo ngẫu nhiên m gồm δ bit.
b) Tính r = H1(m).
c) Tính E = r(MQ1 + R).
d) Tính B = H2(Jr).
e) Đặt
f) Tính K = H3(m).
g) Đầu ra là .
(Mời xem tiếp trong file tải về)
Không có văn bản liên quan. |
TCVN 11367-5:2018 ISO/IEC 18033-5:2015 Các kỹ thuật an toàn-Thuật toán mật mã-Phần 5: Mật mã dựa trên định danh
In lược đồCơ quan ban hành: | Bộ Khoa học và Công nghệ |
Số hiệu: | TCVN 11367-5:2018 |
Loại văn bản: | Tiêu chuẩn Việt Nam |
Năm ban hành: | 0 |
Hiệu lực: | 01/01/2018 |
Lĩnh vực: | Khoa học-Công nghệ, Thông tin-Truyền thông |
Người ký: | |
Ngày hết hiệu lực: | Đang cập nhật |
Tình trạng: | Còn Hiệu lực |
File văn bản tiếng Việt đang được cập nhật, Quý khách vui lòng quay lại sau!