Tiêu chuẩn Quốc gia TCVN 7817-4:2010 quy định các cơ chế thiết lập khóa dựa trên bí mật yếu, tức là bí mật được con người ghi nhớ dễ dàng và do đó nó được chọn từ tập các khả năng khá nhỏ. Mời các bạn cùng tham khảo nội dung chi tiết.
TIÊU CHUẨN QUỐC GIA TCVN 7817-4:2010 ISO/IEC 11770-4:2006 CÔNG NGHỆ THÔNG TIN - KỸ THUẬT AN NINH - QUẢN LÝ KHĨA - PHẦN 4: CƠ CHẾ DỰA TRÊN BÍ MẬT YẾU Information technology - Security techniques - Key management - Part 4: Mechanisms based on weak secrets Lời nói đầu TCVN 7817-4 : 2010 hoàn toàn tương đương với ISO/IEC 11770-4 : 2006 TCVN 7817-4 : 2010 Tiểu ban Kỹ thuật Tiêu chuẩn quốc gia TCVN/JTC1/SC27 "Kỹ thuật mật mã" biên soạn, Tổng cục Tiêu chuẩn Đo lường Chất lượng đề nghị, Bộ Khoa học Công nghệ công bố Bộ tiêu chuẩn TCVN 7817 bao gồm TCVN sau: - TCVN 7817-1:2007 Công nghệ thông tin - Kỹ thuật mật mã - Quản lý khóa, phần 1: Khung tổng quát - TCVN 7817-2:2010 Công nghệ thông tin - Kỹ thuật an ninh - Quản lý khóa, phần 2: Cơ chế sử dụng kỹ thuật đối xứng - TCVN 7817-3:2007 Công nghệ thông tin - Kỹ thuật mật mã - Quản lý khóa, phần 3: Các chế sử dụng kỹ thuật không đối xứng - TCVN 7817-4:2010 Công nghệ thông tin - Kỹ thuật an ninh - Quản lý khóa, phần 4: Cơ chế dựa bí mật yếu CÔNG NGHỆ THÔNG TIN - KỸ THUẬT AN NINH - QUẢN LÝ KHÓA - PHẦN 4: CƠ CHẾ DỰA TRÊN BÍ MẬT YẾU Information technology - Security techniques - Key management - Part 4: Mechanisms based on weak secrets Phạm vi áp dụng Tiêu chuẩn quy định chế thiết lập khóa dựa bí mật yếu, tức bí mật người ghi nhớ dễ dàng chọn từ tập khả nhỏ Tiêu chuẩn quy định kỹ thuật mật mã thiết lập nhiều khóa bí mật dựa bí mật yếu dẫn xuất từ mật nhớ, ngăn chặn cơng vét cạn ngoại tuyến liên quan đến bí mật yếu Cụ thể chế thiết kế để đạt ba mục đích sau: 1) Thỏa thuận khóa xác thực mật cân bằng: thiết lập nhiều khóa bí mật hai thực thể dùng chung bí mật yếu Tại chế thỏa thuận khóa xác thực mật cân bằng, khóa bí mật dùng chung kết việc trao đổi liệu hai thực thể, khóa bí mật dùng chung thiết lập với điều kiện hai thực thể sử dụng bí mật yếu khơng có thực thể hai thực thể biết trước giá trị khóa bí mật dùng chung 2) Thỏa thuận khóa xác thực mật tăng cường: thiết lập nhiều khóa bí mật hai thực thể A B, A dùng bí mật yếu B có liệu xác minh bắt nguồn từ hàm chiều bí mật yếu mà A dùng Trong chế thỏa thuận khóa xác thực mật tăng cường, khóa bí mật dùng chung kết việc trao đổi liệu hai thực thể, khóa bí mật dùng chung thiết lập với điều kiện hai thực thể sử dụng bí mật yếu liệu xác minh tương ứng khơng có thực thể hai thực thể biết trước giá trị khóa bí mật dùng chung CHÚ THÍCH: Kiểu chế thỏa thuận khóa khơng có khả bảo vệ bí mật yếu thực thể A khỏi thăm dò từ thực thể B, lại tăng phí tổn cho kẻ cơng muốn biết bí mật yếu A từ B Do đó, kiểu chế thường dùng cho giao tiếp máy trạm (A) máy chủ (B) 3) Lấy lại khóa xác thực mật khẩu: thiết lập nhiều khóa bí mật cho thực thể (A) liên kết với thực thể khác (B), A dùng bí mật yếu B sử dụng bí mật mạnh liên kết với bí mật yếu A Trong chế lấy lại khóa xác thực mật khẩu, khóa bí mật lấy lại A (không thiết phải nhận từ B), kết việc trao đổi liệu hai thực thể Trong khóa bí mật thiết lập với điều kiện hai thực thể dùng bí mật yếu liên kết với bí mật mạnh Tuy nhiên, bí mật mạnh B liên kết với bí mật yếu A, bí mật mạnh (bản thân nó) khơng chứa thơng tin đầy đủ cho phép xác định phép bí mật yếu khóa bí mật thiết lập chế CHÚ THÍCH: Kiểu chế lấy lại khóa sử dụng A khơng có lưu trữ an tồn cho bí mật mạnh yêu cầu hỗ trợ từ B để lấy lại bí mật mạnh Kiểu chế thường sử dụng cho giao tiếp máy trạm (A) máy chủ (B) Tiêu chuẩn không bao gồm vấn đề chủ chốt khác như: - Quản lý vòng đời bí mật yếu, bí mật mạnh khóa bí mật thiết lập - Các chế để lưu trữ, nén, xóa, hủy, bí mật yếu, bí mật mạnh khóa bí mật thiết lập CHÚ THÍCH: Các khóa tạo lấy lại thơng qua việc sử dụng bí mật yếu khơng thể an tồn dựa vào tổng số bí mật yếu mà chúng có Vì chế quy định tiêu chuẩn khuyến khích sử dụng môi trường an ninh thấp Tài liệu viện dẫn Các tài liệu viện dẫn cần thiết cho việc áp dụng tiêu chuẩn Đối với tài liệu ghi năm cơng bố áp dụng phiên nêu Đối với tài liệu không ghi năm cơng bố áp dụng phiên nhất, bao gồm sửa đổi TCVN 7817-1:2007, Công nghệ thông tin - Kỹ thuật mật mã - Quản lý khóa - Phần 1: Khung tổng quát ISO/IEC 10118-3:2004, Information technology - Security techniques - Hash-functions - Part 3: Dedicated hash-functions (Công nghệ thông tin - Kỹ thuật an ninh - Hàm băm - Phần 3: Các hàm băm dành riêng) Thuật ngữ định nghĩa Tiêu chuẩn sử dụng định nghĩa sau: 3.1 Thỏa thuận khóa xác thực mật tăng cường (augmented passwordauthenticated key agreement) Thỏa thuận khóa xác thực mật tăng cường thực thể A sử dụng mật dựa bí mật yếu thực thể B xác minh liệu nhận từ hàm chiều bí mật yếu mà A dùng để thỏa thuận xác thực nhiều khóa bí mật dùng chung 3.2 Thỏa thuận khóa xác thực mật cân (balanced passwordauthenticated key agreement) Thỏa thuận khóa xác thực mật cân thực thể A B chia sẻ bí mật yếu dựa mật chung để thỏa thuận xác thực nhiều khóa bí mật dùng chung 3.3 Tấn cơng vét cạn (brute-force attack) Kiểu công vào hệ thống mật mã sử dụng phép vét cạn tập khóa, mật liệu khác 3.4 Hàm băm kháng xung đột (collision-resistant hash-function) Hàm băm thỏa mãn đặc tính sau: khơng thể tính tốn để tìm hai đầu vào khác mà ánh xạ tới đầu CHÚ THÍCH: Khả tính tốn phụ thuộc vào mơi trường yêu cầu bảo mật cụ thể [ISO/IEC 10118-1:2000] 3.5 Tấn công theo từ điển (trên hệ thống mật khẩu) (dictionary attack (on a password - based system)) Tấn cơng vào hệ thống mật mã sử dụng phép tìm kiếm danh mục mật CHÚ THÍCH: Tấn cơng theo từ điển hệ thống mật sử dụng danh sách giá trị mật lưu danh sách từ ngữ lấy từ điển ngôn ngữ tự nhiên 3.6 Tham số miền (domain parameter) Mục liệu chung nhận biết truy cập tới tất thực thể miền CHÚ THÍCH: Tập tham số miền chứa mục liệu thẻ định danh hàm băm, độ dài thẻ băm, độ dài phần thông điệp phản hồi, tham số trường hữu hạn, tham số đường cong elliptic, tham số khác quy định cho vấn đề an ninh tên miền [ISO/IEC 9796-3:2000] 3.7 Xác thực khóa tường minh từ A tới B (explicit key authentication from A to B) Đảm bảo cho thực thể B A thực thể khác B có quyền sở hữu khóa CHÚ THÍCH: Xác thực khóa khơng tường minh từ A tới B xác nhận khóa từ A tới B kết hợp với suy xác thực khóa tường minh từ A tới B [TCVN 7817-3:2007] 3.8 Hàm băm (hash tunction) Hàm ánh xạ chuỗi bit thành chuỗi bit có độ dài cố định, thỏa mãn hai tính chất sau đây: - Khơng có khả tính tốn đầu vào từ đầu cho trước; - Không có khả tính tốn đầu vào khác đầu vào cho trước mà lại có chung đầu CHÚ THÍCH: Khả tính tốn phụ thuộc vào mơi trường yêu cầu bảo mật cụ thể [ISO/IEC 10118-1:2000] 3.9 Mật băm (hashed password) Kết việc áp dụng hàm băm cho mật 3.10 Xác thực khóa khơng tường minh từ A tới B (implicit key authentication from A to B) Đảm bảo cho thực thể B A thực thể khác B có khả có quyền sở hữu khóa [TCVN 7817-3:2007] 3.11 Khóa (key) Chuỗi biểu tượng điều khiển thao tác phép biến đổi mật mã (ví dụ mã hóa, giải mã, tính tốn hàm kiểm tra mật mã xác minh chữ ký) [TCVN 7817-3:2007] 3.12 Thỏa thuận khóa (key agreement) Q trình thiết lập khóa bí mật dùng chung thực thể theo cách mà khơng thực thể xác định trước giá trị khóa [TCVN 7817-1:2007] 3.13 Xác nhận khóa từ A tới B (key confirmation from A to B) Đảm bảo thực thể B thực thể A có quyền sở hữu khóa [TCVN 7817-3:2007] 3.14 Kiểm sốt khóa (key control) Khả lựa chọn khóa tham số sử dụng việc tính tốn khóa [TCVN 7817-1:2007] 3.15 Hàm dẫn xuất khóa (key derivation function) Hàm sử dụng bí mật dùng chung tham số biết khác làm đầu vào cho đầu hay nhiều bí mật dùng chung mà sử dụng làm khóa 3.16 Thiết lập khóa (key establishment) Q trình tạo sẵn khóa bí mật dùng chung cho nhiều thực thể, thiết lập khóa bao gồm thỏa thuận khóa, chuyển khóa lấy lại khóa 3.17 Quản lý khóa (key management) Quản trị sử dụng để tạo ra, đăng ký, chứng thực, hủy bỏ, phân bổ, cài đặt, lưu trữ, nén, thu hồi, dẫn xuất phá hủy vật liệu khóa theo quy định an ninh [TCVN 7817-1:2007] 3.18 Lấy lại khóa (key retrieval) Q trình thiết lập khóa cho nhiều thực thể (được gọi thực thể lấy khóa) với nhiều thực thể khác (khơng bắt buộc có khả tiếp cận khóa sau q trình kết thúc) q trình thường đòi hỏi việc xác thực thực thể lấy lại khóa khóa 3.19 Thẻ khóa (key token) Thơng điệp thiết lập khóa gửi từ thực thể đến thực thể khác suốt trình thực chế thiết lập khóa 3.20 Hàm kiểm tra thẻ khóa (key token check function) Hàm sử dụng thẻ khóa tham số cơng khai đầu vào đầu giá trị Boolean suốt trình thực chế thiết lập khóa 3.21 Hệ số thẻ khóa (Key token factor) Giá trị giữ bí mật sử dụng kết hợp với bí mật yếu để tạo thẻ khóa 3.22 Hàm tạo thẻ khóa (key token generation function) Hàm tận dụng hệ số thẻ khóa số tham số khác làm đầu vào, đầu thẻ khóa suốt q trình thiết lập khóa 3.23 Xác thực khóa hai chiều (mutual key authentication) Đảm bảo cho hai thực thể có thực thể có khả có quyền sở hữu khóa 3.24 Hàm chiều (one-way function) Hàm với đặc tính dễ dàng tính tốn đầu với đầu vào cho trước khơng có khả tính tốn đầu vào với đầu cho trước [TCVN 7817-3:2007] 3.25 Mật (password) Chuỗi từ, cụm từ, số ký tự bí mật để sử dụng xác thực thực thể bí mật yếu dễ nhớ 3.26 Thỏa thuận khóa xác thực mật (password-authenticated key agreement) Quá trình thiết lập nhiều khóa bí mật dùng chung hai thực thể sử dụng phần thông tin dựa mật chia sẻ (có nghĩa hai chia sẻ mật thực thể có mật thực thể lại có liệu xác minh mật khẩu) khơng thực thể đốn trước giá trị khóa bí mật dùng chung 3.27 Lấy lại khóa xác thực mật (password-authenticated key retrieval) Q trình lấy lại khóa thực thể A dùng bí mật yếu mật thực thể B sở hữu bí mật mạnh liên kết với bí mật yếu từ A Hai thực thể sử dụng bí mật riêng chúng, thỏa thuận khóa bí mật mã khóa lấy lại lại từ A (không thiết phải nhận từ B) 3.28 Thẻ khóa làm rối mật (password-entangled key token) Thẻ khóa sinh từ bí mật yếu hệ số thẻ khóa 3.29 Dữ liệu xác minh mật (password verification data) Dữ liệu mà dùng để xác minh thông tin thực thể mật cụ thể 3.30 Hàm dẫn xuất phần tử ngẫu nhiên (random element derivation function) Hàm sử dụng mật tham số khác làm đầu vào đầu phần tử ngẫu nhiên 3.31 Salt Biến ngẫu nhiên thêm vào đầu vào thứ hai cho hàm mã hóa hàm chiều, để tạo liệu xác minh mật 3.32 Bí mật (secret) Giá trị mà có thực thể tạo giá trị biết 3.33 Hàm dẫn xuất giá trị bí mật (Secret value derivation function) Hàm sử dụng hệ số thẻ khóa, thẻ khóa vài tham số khác làm đầu vào đầu giá trị bí mật (để tính nhiều khóa bí mật) 3.34 Khóa bí mật (secret key) Khóa sử dụng kỹ thuật mã hóa đối xứng tập thực thể xác định 3.35 Bí mật mạnh (Strong secret) Bí mật với mức độ thích hợp entropy để việc dò sốt kiểu vét cạn bí mật khơng khả thi, chí với liệu cho trước cho phép đốn trước xác bí mật để phân biệt với giả định sai CHÚ THÍCH: Điều có thể, ví dụ: cách sử dụng ngẫu nhiên bí mật từ tập giá trị có độ lớn thích hợp với phân bố xác suất đặn 3.36 Bí mật yếu (Weak secret) Bí mật mà người ghi nhớ dễ dàng, đặc trưng phương pháp entropy bí mật bị giới hạn, việc dò sốt kiểu vét cạn bí mật khả thi, liệu cho trước cho phép phán đốn xác bí mật để phân biệt với giả định sai Ký hiệu từ viết tắt a1, a2 Hệ số đường cong elliptic A,B Định danh phân biệt thực thể b, bi bit (tức 1) BS2I Hàm biến đổi chuỗi bit thành số nguyên c Số nguyên xác định ≤ c ≤ q - C,CDL,CEC Hàm tạo thẻ khóa dựa mật hệ số thẻ khóa D,DDL,DEC Hàm tạo thẻ khóa dựa hệ số thẻ khóa E Đường cong elliptic xác định hai hệ số đường cong elliptic a1 a2 F(q) Trường hữu hạn có q phần tử FE2I Hàm biến đổi phần tử trường thành số nguyên FE2OS Hàm biến đổi phần tử trường thành chuỗi octet g,g1,ga,gb Các phần tử có bậc nhân r F(q) G,Ga,Gb Các điểm có bậc r E thuộc trường F(q) gq-1 Phần tử có bậc nhân q-1 F(q) GE2OSx Hàm có khả chuyển đổi phần tử nhóm thành chuỗi octet, phần tử nhóm điểm E, hàm chuyển tọa độ x điểm thành chuỗi octet mà bỏ qua tọa độ y H Hàm băm lấy chuỗi octet làm đầu vào cho đầu chuỗi bit Ví dụ: hàm băm định nghĩa ISO/IEC 10118-3 h(x, LK) Hàm băm lấy chuỗi octet x số nguyên Lk (chỉ độ dài theo bit đầu ra) làm đầu vào cho đầu chuỗi bit có độ dài Lk Ví dụ: hàm băm định nghĩa ISO/IEC 10118-3 I2FE Hàm biến đổi số nguyên thành phần tử trường I2OS Hàm biến đổi số nguyên thành chuỗi octet I2P Hàm biến đổi số nguyên thành điểm đường cong E J,JDL,JEC Hàm tạo phần tử xác minh mật từ mật k Phần phụ đại số tỉ số (q-1)/r tham số miền DL tỉ số #E/r tham số miền EC K Hàm dẫn xuất khóa từ giá trị bí mật tham số dẫn xuất khóa K1,K2, Các khóa bí mật thiết lập chế thiết lập khóa LK Độ dài (tính bit) khóa bí mật thiết lập m Một số nguyên Mi Một octet biểu diễn giá trị mã hex từ 00 đến FF mod Phép toán đồng dư, y = a mod b định nghĩa cho số nguyên y ≤ y < b (a -y) bội số nguyên b n Một số nguyên oA, oA', oB, oB' Chuỗi bit, dùng để xác định trình xác nhận khóa OS2I Hàm biến đổi chuỗi octet thành số nguyên p,pi Số nguyên tố lẻ P1,P2, Chuỗi octet tham số dẫn xuất khóa q Số phần tử trường hữu hạn F(q) Trong cấu hình EC, q p m số ngun m ≥ Trong cấu hình DL, q p CHÚ THÍCH: Tiêu chuẩn áp dụng cho trường nguyên tố trường nhị phân cấu hình EC trường nguyên tố cấu hình DL, trường hợp sử dụng rộng rãi chúng có đặc tính bảo mật cao nghiên cứu kỹ lưỡng r Bậc nhóm sử dụng (là số nguyên tố chia hết cho (q-1) cấu hình DL chia hết cho #E cấu hình EC) R, R1DL, R1EC, R2DL, R2EC Các hàm dẫn xuất phần tử ngẫu nhiên từ mật sA, sB Các hệ số thẻ khóa thực thể A B tương ứng với thẻ khóa w A wB CHÚ THÍCH: Các hệ số thẻ khóa nên tạo cách ngẫu nhiên từ tập chọn lựa làm cho tối đa hóa độ khó việc lấy lại hệ số thẻ khóa phương pháp tìm kiếm xung đột Các phương pháp tạo số ngẫu nhiên quy định ISO/IEC 18031 T Hàm kiểm tra tính hợp lệ thẻ khóa V, VA, VB, VADL, VAEC, VBDL, VBEC Hàm tạo giá trị bí mật wA, wB Các thẻ khóa thẻ khóa làm rối mật thực thể A B, tương ứng với hệ số thẻ khóa sA sB; chúng số nguyên cấu hình DL điểm cấu hình EC [x] x Y Tốn tử nhân cấu hình EC có đầu vào số nguyên X điểm Y đường cong E tạo điểm Z đường cong E, Z = [x] + Y = Y + Y + + Y, với x-1 lần số hạng Y x dương Các toán tử thỏa mãn [0] x Y = 0E (điểm vô cực) [-x] x Y = [x] x (-Y) z Giá trị bí mật sử dụng để dẫn xuất khóa, số ngun cấu hình DL điểm cấu hình EC { m-1, m-2, , 0} Các phần tử trường F(sm), s p βi số nguyên thỏa mãn ≤ βi ≤ s - Một chuỗi octet dựa mật thường bắt nguồn từ mật mật băm, thẻ định danh nhiều thực thể, thẻ định danh phiên giao tiếp nhiều phiên thực đồng thời, tùy chọn giá trị Salt liệu khác CHÚ THÍCH: Yêu cầu cần thiết đưa hay nhiều định danh thực thể định danh phiên liên lạc vào giá trị , điều tránh chế thiết lập khóa bị hư hỏng kiểu cơng chia sẻ khóa chưa biết trình bày [TC05] #E Số điểm đường cong elliptic E || Toán tử ghép nối áp dụng cho chuỗi octet 0E Điểm vô cực đường cong elliptic E Các yêu cầu Giả thiết thực thể nhận biết định danh thực thể khác Điều thực cách lồng định danh vào thông tin trao đổi hai thực thể, nhận từ ngữ cảnh sử dụng chế Giả thiết thực thể nhận biết tập tham số miền chung sử dụng để tính tốn tập hàm chế thiết lập khóa Mỗi chế sử dụng với hai tập tham số miền khác nhau, tùy thuộc vào việc chế vận hành nhóm giá trị nhân dãy F(q) nhóm phần tử cộng đường cong elliptic xác định dãy F(q) Trong trường hợp đầu, chế cho hoạt động cấu hình DL (lôgarit rời rạc) trường hợp thứ hai, chế cho hoạt động cấu hình EC (đường cong elliptic) CHÚ THÍCH: Điều quan trọng để thực xác thao tác chế tham số miền giữ xác bên tham gia Khi bên tham gia vơ tình hay cố ý sử dụng tham số miền bị lỗi tạo lỗi chế, kéo theo bên thứ ba khám phá khóa bí mật thiết lập Hai tập tham số miền là: Tập tham số miền DL bao gồm: F(q) - Trường hữu hạn q phần tử q - Số phần tử F(q), số nguyên tố r - Bậc nhóm phần tử sử dụng thuộc trường hữu hạn, ước số nguyên q1 g - Phần tử nhân bậc r thuộc F(q) (g gọi phần tử sinh nhóm gồm r phần tử F(q)) gq-1 - Phần tử nhân bậc q-1 thuộc F(q) CHÚ THÍCH: Phương pháp tạo gq-1 tìm thấy chương [MvV96] [Ka86] k - Giá trị (q-1)/r, gọi phần phụ đại số, thỏa mãn k = p p2 … pt số nguyên tố pi > r i = 1, 2, , t (Khi t = k = 2) Tập tham số miền EC bao gồm: F(q) - Trường hữu hạn q phần tử q - Số phần tử F(q), có giá trị - p số nguyên tố lẻ; hoặc, - 2m số nguyên dương m ≥ a1, a2 - Hai hệ số đường cong, phần tử F(q) xác định đường cong elliptic E E - Đường cong elliptic xác định hệ số đường cong elliptic a 1, a2 Và xác định hai phương trình sau với điểm 0E gọi điểm vô cực: - Y2 = X3 + a1X + a2 trường F(p), - Y2 + XY = X3 + a1X2 + a2 trường F(2m), #E - Số điểm E r - Bậc nhóm mong muốn, số nguyên chia hết cho #E G - Một điểm đường cong bậc r (G gọi phần tử sinh nhóm gồm r điểm E) k - Giá trị #E/r, gọi phần phụ đại số, thỏa mãn k = n p1 p2 pt n = {0, 1, 2} số nguyên tố pi > r i = 1, 2,…, t (Khi t = k = 2n) Khi thực thể sử dụng chế cụ thể cấu hình EC, giả định thực thể nhận biết hình thức biểu diễn điểm, nghĩa điểm biểu diễn dạng nén không nén dạng mẫu lai Các quy định kỹ thuật biểu diễn điểm xem thêm ISO/IEC 180332 Trong đặc tả kỹ thuật chế tiêu chuẩn này, phương pháp tạo số ngẫu nhiên tuân theo ISO/IEC 18031 phương pháp tạo số nguyên tố tuân theo ISO/IEC 18032 Cũng giả thiết thực thể nhận biết hàm băm H chung, ví dụ: hàm băm riêng quy định ISO/IEC 10118-3 Thỏa thuận khóa xác thực mật Điều khoản quy định ba chế thỏa thuận khóa xác thực mật Cơ chế quy định điều 6.1 chế thỏa thuận khóa xác thực mật cân đòi hỏi hai thực thể dùng chung bí mật yếu Các chế thứ hai thứ ba, quy định điều 6.2 6.3 chế thỏa thuận khóa xác thực mật tăng cường đòi hỏi hai thực thể có liệu xác minh bí mật yếu từ thực thể khác Tất ba chế thỏa thuận khóa xác thực mật thực sau trình khởi tạo q trình thiết lập khóa Q trình khởi tạo: Hai thực thể tham gia đồng ý sử dụng tập tham số miền hợp lệ, tập tham số dẫn xuất khóa tập hàm, tất công khai Hai thực thể đồng ý sử dụng bí mật yếu dựa mật chia sẻ mà họ biết thông tin dựa mật chia sẻ, nghĩa thực thể có bí mật yếu dựa mật thực thể lại có liệu xác minh mật tương ứng Q trình thiết lập khóa: 1) Tạo trao đổi thẻ khóa: thực thể hai thực thể liên quan lựa chọn ngẫu nhiên nhiều hệ số thẻ khóa liên kết với tham số miền, tạo thẻ khóa tương ứng mà liên kết với mật liệu xác minh mật (thẻ gọi thẻ làm rối mật khẩu) sau tạo thẻ khóa cho thực thể lại 2) Kiểm tra tính hợp lệ thẻ khóa: tùy thuộc vào thao tác trình sản xuất thẻ khóa bước 1, thực thể liên quan lựa chọn phương pháp thích hợp để xác nhận nhận thẻ khóa dựa tham số miền Nếu có xác nhận thất bại, đầu “không hợp lệ” q trình dừng lại 3) Thu khóa bí mật dùng chung: thực thể hai thực thể liên quan áp dụng hàm dẫn xuất giá trị bí mật định để sở hữu riêng hệ số thẻ khóa, thẻ khóa và/hoặc mật chia sẻ liệu xác minh mật thực thể khác nhằm tạo giá trị chia sẻ bí mật Mỗi thực thể áp dụng thêm hàm dẫn xuất khóa với giá trị chia sẻ bí mật tham số dẫn xuất khóa để thu nhiều khóa bí mật dùng chung 4) Kiểm tra xác minh khóa: hai thực thể liên quan sử dụng thiết lập khóa bí mật dùng chung với bước nhận khóa cho bên Bước tùy chọn chế bắt buộc chế 6.1 Cơ chế thỏa thuận khóa Đây chế thỏa thuận khóa thiết kế theo thỏa thuận khóa xác thực mật cân thiết lập hay nhiều khóa bí mật dùng chung hai thực thể A B với kiểm sốt khóa kết nối chia sẻ chuỗi octet dựa mật Cơ chế cung cấp xác thực khóa khơng tường minh hai chiều tùy chọn xác nhận khóa tường minh hai chiều Cơ chế làm việc hai cấu hình DL EC CHÚ THÍCH: Cơ chế dựa [Jab96] chế gọi {DL,EC}BPKAS-SPEKE [IEEEP1363.2] 6.1.1 Tham số chia sẻ trước Thỏa thuận khóa hai thực thể A B diễn môi trường chứa tham số sau đây: - Chuỗi octet dựa mật dùng chung - Tập tham số miền hợp lệ (tham số miền DL tham số miền EC) quy định Điều - Hàm dẫn xuất phần tử ngẫu nhiên, R - Hàm tạo thẻ khóa, D - Hàm kiểm tra thẻ khóa, T - Hàm dẫn xuất giá trị bí mật, V - Hàm dẫn xuất khóa, K - Giá trị Boolean b cho biết liệu phép nhân phần phụ đại số có yêu cầu hay khơng Nếu b=1, phép nhân phần phụ đại số u cầu, khác khơng u cầu - Một nhiều chuỗi octet tham số dẫn xuất khóa {P 1, P2, }, A B phải chấp nhận sử dụng giá trị Pi - Độ dài khóa bí mật dùng chung, LK CHÚ THÍCH: Phép nhân phần phụ đại số sử dụng để ánh xạ thẻ khóa nhận thành phần tử nhóm hợp lệ, tức phần tử nhóm chọn bậc r Trường hợp b=0 dùng chế mà đảm bảo nhận thẻ khóa phần tử nhóm hợp lệ Xem chi tiết phép nhân phần phụ đại số [ISO/IEC 159463:2002] 6.1.2 Các hàm 6.1.2.1 Hàm dẫn xuất phần tử ngẫu nhiên R Hàm dẫn xuất phần tử ngẫu nhiên R lấy chuỗi octet x làm đầu vào tạo đầu phần tử nhóm chọn R(x) Cơ chế thỏa thuận khóa sử dụng bốn hàm R sau: R1DL, R1EC, R2DL R2EC - R1DL tương ứng chế sử dụng tham số miền DL, tức hoạt động nhóm phần tử nhân xác định F(q) Với tham số miền DL cho trước (bao gồm k q) chuỗi octet x làm đầu vào ta có R1DL: R1DL(x) = (BS2l(H(x)))k mod q - R1EC tương ứng chế sử dụng tham số miền EC, tức hoạt động nhóm phần tử cộng thuộc đường cong elliptic xác định F(q) Với tham số miền EC cho trước (bao gồm k) chuỗi octet x làm đầu vào ta có R1EC: R1EC(x) = [k] x l2P(BS2l(H(x))) - R2DL tương ứng chế sử dụng tham số miền DL, tức hoạt động nhóm phần tử nhân xác định F(q) Với tham số miền DL cho trước (bao gồm q), hai phần tử ngẫu nhiên thuộc nhóm bậc r F(q) ga gb chuỗi octet x làm đầu vào ta có R2DL: R2DL(x) = ga gb BS2I(H(x)) mod q - R2EC tương ứng chế sử dụng tham số miền EC, tức hoạt động nhóm phần tử cộng thuộc đường cong elliptic xác định F(q) Với tham số miền EC cho trước, hai phần tử ngẫu nhiên thuộc nhóm bậc r E Ga Gb chuỗi octet x làm đầu vào ta có R2EC: R2EC(x) = Ga + [BS2l(H(x))] x Gb Hàm BS2I (chuyển chuỗi bit thành số nguyên) I2P (chuyển số nguyên thành điểm) miêu tả Phụ lục A CHÚ THÍCH 1: Bốn lựa chọn cho hàm R có đặc điểm hiệu suất giả thiết bảo mật khác Về hiệu suất, R2 sử dụng k >> r, sử dụng phần phụ đại số k nhỏ, R1 lại nhanh R2 CHÚ THÍCH 2: Khuyến cáo kết R1DL(x) R2DL(x) 1, kết R1EC(x) R2EC(x) 0E, đầu “khơng hợp lệ" q trình dừng lại Căn vào đặc tính ngẫu nhiên hàm băm H, xác suất xảy trường hợp Tuy nhiên không điểm yếu bảo mật bị phát hiện, hàm R cho đầu khơng ngừng có giá trị cấu hình DL điểm 0E cấu hình EC, giao thức hủy bỏ chạy hàm kiểm tra thẻ khóa T 6.1.2.2 Hàm tạo thẻ khóa D Hàm tạo thẻ khóa D lấy số nguyên x phần tử nhóm y làm đầu vào tạo đầu nhóm phần tử D(x, y) Cơ chế thiết lập khóa sử dụng hàm D sau: D DL DEC: - DDL tương ứng với chế sử dụng tham số miền DL, tức hoạt động nhóm phần tử nhân xác định F(q) Cho trước tham số miền DL (bao gồm q) hai đầu vào x từ {1, , r-1} số nguyên y đầu hàm R, DDL tính sau: DDL(x, y) = yx mod q - DEC tương ứng với chế sử dụng tham số miền EC, tức hoạt động nhóm phần tử cộng thuộc đường cong elliptic xác định F(q) Cho trước tham số miền EC hai đầu vào x - Tính o'A = H(hex(04) II I2OS(wA) II I2OS(wB) II I2OS(z) II I2OS(v)) - Nếu oA o'A đầu “khơng hợp lệ”, q trình dừng lại Xác minh khóa (B4 A4) (tùy chọn) B thực bước sau (B4): - Tính oB = H(hex(03) II I2OS(WA) II I2OS(wB) II I2OS(z) II I2OS(v)) - Chuyển oB cho A A thực bước sau (A4): - Nhận oB từ B - Tính o'B = H(hex(03) II I2OS(WA) II I2OS(wB) II I2OS(z) II I2OS(v)) - Nếu oB o'B đầu “khơng hợp lệ", q trình dừng lại Hàm I2OS (chuyển số nguyên thành chuỗi octet) miêu tả Phụ lục A CHÚ THÍCH: Thực thể B phải xác minh chứng thực thể A khóa thỏa thuận trước nhận thông tin thu từ khóa thỏa thuận Do A3/B3 phải thực trước A4/B4 6.3 Cơ chế thỏa thuận khóa Đây chế thỏa thuận khóa thiết kế theo thỏa thuận khóa xác thực mật tăng cường, thiết lập hay nhiều khóa bí mật dùng chung hai thực thể A B với kiểm sốt khóa kết nối Trong chế này, A có chuỗi octet dựa mật B có liệu xác minh mật v tương ứng với Cơ chế cung cấp thỏa thuận khóa tường minh chiều tùy chọn xác nhận khóa hai chiều Cơ chế làm việc cấu hình DL cấu hình EC CHÚ THÍCH 1: Trong ứng dụng sử dụng thỏa thuận khóa xác thực mật tăng cường, thực thể A phải đóng vai trò máy trạm thực thể B phải đóng vai trò máy chủ CHÚ THÍCH 2: Cơ chế dựa [Kw00] [Kw03] chế gọi {DL, EC}APKASAMP [IEEEP1363.2) 6.3.1 Tham số chia sẻ trước Thỏa thuận khóa hai thực thể A B diễn môi trường chứa tham số sau: - Chuỗi octet dựa mật sử dụng A - Tập tham số miền hợp lệ (tham số miền DL tham số miền EC) xác định Điều - Phần tử xác minh mật v = J( ) sử dụng B, J hàm dẫn xuất phần tử xác minh mật - Hàm tạo thẻ khóa D, sử dụng A - Hàm tạo thẻ khóa làm rối mật C, sử dụng B - Hàm kiểm tra thẻ khóa T - Hai hàm dẫn xuất giá trị bí mật VA VB tương ứng với thực thể - Hàm dẫn xuất khóa K - Một nhiều chuỗi octet tham số dẫn xuất khóa {P1, P2, }, A B phải chấp nhận sử dụng giá trị Pi - Độ dài khóa bí mật dùng chung, LK 6.3.2 Các hàm 6.3.2.1 Hàm dẫn xuất phần tử xác minh mật J Hàm dẫn xuất phần tử xác minh mật J lấy chuỗi octet dựa mật làm đầu vào tạo đầu phần tử nhóm chọn J( ) xác định F(q) Cơ chế thỏa thuận khóa sử dụng hàm JDL JEC sau: - JDL thỏa mãn cho chế sử dụng tham số miền DL, tức hoạt động nhóm phần tử nhân F(q) Cho trước tham số miền DL (bao gồm g q) chuỗi octet dựa mật JDL tính sau: JDL( ) = g BS2I(H( )) mod q - JEC thỏa mãn cho chế sử dụng tham số miền EC, tức hoạt động nhóm phần tử cộng thuộc đường cong elliptic F(q) Cho trước tham số miền EC (bao gồm G) chuỗi octet dựa mật JEC tính sau: JEC( ) = [BS2l(H( ))] x G Hàm BS2I (chuyển chuỗi bit thành số nguyên) xác định Phụ lục A 6.3.2.2 Hàm tạo thẻ khóa D Hàm tạo thẻ khóa D hoạt động số nguyên x từ {1,…, r - 1} làm đầu vào tạo đầu nhóm phần tử D(x) chọn Cơ chế thỏa thuận khóa sử dụng hai hàm D DL DEC: - DDL tương ứng với chế sử dụng tham số miền DL, tức hoạt động nhóm phần tử nhân xác định F(q) Cho trước tham số miền DL (bao gồm g q) đầu vào x từ {1,…, r - 1}, DDL tính sau: DDL(x) = gx mod q - DEC tương ứng với chế sử dụng tham số miền EC, tức hoạt động nhóm phần tử cộng thuộc đường cong elliptic xác định F(q) Cho trước tham số miền EC (bao gồm G) đầu vào x từ {1,…, r - 1}, DEC tính sau: DEC(x) = [x] x G 6.3.2.3 Hàm tạo thẻ khóa làm rối mật C Hàm tạo thẻ khóa làm rối mật C hoạt động ba đầu vào: số nguyên x từ {1, …,r-1} đầu v (hoặc V) hàm J đầu y (hoặc Y) hàm D tạo đầu phần tử nhóm chọn C(x, v, y) Cơ chế thỏa thuận khóa sử dụng hai hàm C DL CEC: - CDL tương ứng với chế sử dụng tham số miền DL, tức hoạt động nhóm phần tử nhân xác định F(q) Cho trước tham số miền DL (bao gồm q) ba đầu vào bao gồm: số nguyên x từ {1,…,r- 1} đầu v hàm J, đầu y hàm D, CDL tính sau: - Tính e = BS2I(H(I2OS(1) II GE2OSX (y))), - Tính CDL(x,v,y) = (v ye)x mod q, - Kiểm tra CDL(x,v,y) (q - 1) đầu “khơng hợp lệ”, q trình dừng lại Nếu khơng CDL(x,v,y) giá trị cần - CEC tương ứng với chế sử dụng tham số miền EC, tức hoạt động nhóm phần tử cộng thuộc đường cong elliptic xác định F(q) Cho trước tham số miền EC ba đầu vào: số nguyên x từ {1,…,r - 1} đầu V hàm J, đầu Y hàm D, CEC tính sau: - Tính e = BS2I(H(I2OS(1) II GE2OSx (Y))), - Tính CEC(x,V ,Y) =[x] x (V + [e] x Y), - Kiểm tra [4] x CEC(x, V, Y) = 0E đầu "khơng hợp lệ”, q trình dừng lại Nếu khơng CEC(x,V,Y) giá trị cần Hàm BS2I (chuyển chuỗi bit thành số nguyên) hàm I2OS (chuyển số nguyên thành chuỗi octet) hàm GE2OSx (chuyển phần tử nhóm thành chuỗi octet) miêu tả Phụ lục A 6.3.2.4 Hàm kiểm tra thẻ khóa T Hàm kiểm tra thẻ khóa T tương tự xác định Điều 6.1.2.3 6.3.2.5 Hàm dẫn xuất giá trị mật VA VB 1) Hàm dẫn xuất giá trị mật VA hoạt động bốn đầu vào: chuỗi octet dựa mật , số nguyên xA từ {1,…,r-1}, yA(hoặc yA) hàm D, số yB(hoặc YB) hàm C tạo đầu phần tử nhóm VA( , xA, yA, yB) 2) Hàm dẫn xuất giá trị mật \/B hoạt động ba đầu vào: số nguyên xB từ {1,…, r-1}, yA(hoặc yA) hàm D, số yB (hoặc YB) hàm C tạo đầu phần tử nhóm VB(xB, yA, yB) 3) VA VB thỏa mãn điều kiện VA( , xA, yA, yB) = VB(xB, yA, yB) Cơ chế thỏa thuận khóa sử dụng hai hàm VA là: VADL VAEC sử dụng hai hàm vB là: VBDL VBEC sau: VADL thỏa mãn chế sử dụng tham số miền DL, tức hoạt động nhóm nhân F(q) Cho trước tham số miền DL (bao gồm r q), chuỗi octet dựa mật , số nguyên xA từ {1,…, r-1}, đầu yA từ {2,…, q-2}, đầu yB từ {2,…,q-2} VADL tính sau: - Tính e = BS2I(H(I2OS(1) II GE2OSX (yA))), - Tính d = BS2I(H(I2OS(2) II GE2OSX (yA) II GE2OSX (yB))) - Tính u = (xA + d)/(xA * e + BS2l(H( ))) mod r, - Tính VADL( , xA, yA, yB) = yBu mod q - Đầu VADL( , xA, yA, yB) VBDL thỏa mãn chế sử dụng tham số miền DL, tức hoạt động nhóm nhân F(q) Cho trước tham số miền DL (bao gồm g q), số nguyên xB từ {1,…, r - 1}, đầu yA từ (2,…, q 2}, đầu yB từ {2,…,q - 2} VBDL tính sau: - Tính d = BS2I(H(I2OS(2) II GE2OSX (YA) II GE2OSx (yB))) - Tính VBDL(xB, yA, yB) = ( y A * g d ) X B mod q - Đầu VBDL(xB,yA,yB) VAEC thỏa mãn chế sử dụng tham số miền EC, tức hoạt động nhóm cộng thuộc đường cong elliptic F(q) Cho trước tham số miền EC (bao gồm r), chuỗi octet dựa mật , số nguyên xA từ {1,…,r- 1}, điểm YA ( 0E) E, đầu YB ( 0E) E VAEC tính sau: - Tính e = BS2I(H(I2OS(1) II GE2OSX (YA))), - Tính d = BS2I(H(I2OS(2) II GE2OSx (YA) II GE2OSx (YB))), - Tính u = (xA + d)/(xA e + BS2l(H( ))) mod r, - Tính VAEC ( , xA, YA, YB) = [u] x YB, - Đầu VAEC( , xA, YA, YB) VBEC thỏa mãn chế sử dụng tham số miền EC, tức hoạt động nhóm cộng thuộc đường cong elliptic F(q) Cho trước tham số miền EC (bao gồm G), số nguyên xB từ {1,… r-1}, điểm YA( 0E) E, đầu YB ( 0E) E VBEC tính sau: - Tính d = BS2I(H(I2OS(2) II GE2OSx (YA) II GE2OSX (YB))) - Tính VBEC(xB, YA, YB) = [xB] x (YA + [d] x G), - Đầu VBEC (xB, YA, YB) Hàm I2OS (chuyển số nguyên thành chuỗi octet) BS2I (chuyển chuỗi bit thành số nguyên) hàm GE2OSx (chuyển phần tử nhóm thành chuỗi octet) miêu tả Phụ lục A 6.3.2.6 Hàm dẫn xuất khóa K Hàm dẫn xuất khóa K tương tự xác định Điều 6.1.2.5 6.3.3 Thao tác thỏa thuận khóa Cơ chế yêu cầu hai A B chấp nhận dãy bốn bước, từ A1 - A4 B1 - B4 (các bước tương ứng với A B) Các bước tùy chọn A4 B4 Xây dựng thẻ khóa (A1) A tiến hành bước sau: - Chọn số nguyên sA ngẫu nhiên từ {1,…, r- 1} hệ số thẻ khóa - Tính wA = D(sA) thẻ khóa - Chuyển wA cho B Xây dựng thẻ khóa làm rối mật (B1) B tiến hành bước sau: - Nhận wA từ A - Kiểm tra tính hợp lệ wA sử dụng T(wA): T(wA) = 0, đầu "khơng hợp lệ”, q trình dừng lại, khác tiếp tục, - Chọn số nguyên sB ngẫu nhiên từ {1,…, r-1} làm hệ số thẻ khóa - Tính wB = C(sB, v, wA) thẻ khóa làm rối mật (nếu đầu hàm C “khơng hợp lệ" quay lại tìm sB khác với giá trị thích hợp), sau - Chuyển wB cho A Thu khóa bí mật dùng chung (A2) A tiến hành bước sau: - Nhận wB từ B - Kiểm tra tính hợp lệ wB sử dụng T(wB): T(wB) = 0, đầu “khơng hợp lệ”, trình dừng lại, khác tiếp tục, - Tính z = VA( , sA, wA, wB) giá trị thỏa thuận bí mật - Tính Ki = K(GE2OSx(z), Pi, Lk) khóa bí mật dùng chung cho tham số dẫn xuất khóa Pi Thu khóa bí mật dùng chung (B2) B tiến hành bước sau: - Tính z = VB(sB, wA, wB) giá trị thỏa thuận bí mật - Tính Ki = K(GE2OSx(z), Pi, Lk) khóa bí mật dùng chung cho tham số dẫn xuất khóa Pi Xác minh khóa (A3 B3) (bắt buộc) A thực bước sau (A3): - Tính oA = H(I2OS(4) II GE2OSx(wA) II GE2OSx(wB) II GE2OSx(z)) - Chuyển oA cho B B thực bước sau (B3): - Nhận oA từ A - Tính o'A = H(I2OS(4) II GE2OSx(wA) II GE2OSx(wB) II GE2OSx(z)) - Nếu oA o’A đầu "khơng hợp lệ”, q trình dừng lại Xác minh khóa (B4 A4) (tùy chọn) B thực bước sau (B4): - Tính oB = H(I2OS(3) II GE2OSx(wA) II GE2OSx(wB) II GE2OSx(z)) - Chuyển oB cho A A thực bước sau (A4): - Nhận oB từ B - Tính o'B = H(I2OS(3) II GE2OSx(wA) II GE2OSx(wB) II GE2OSx(z)) - Nếu oB o'B đầu "khơng hợp lệ”, q trình dừng lại Hàm GE2OSx (chuyển phần tử nhóm thành chuỗi octet) xác định Phụ lục A CHÚ THÍCH 1: Phần tử nhóm chế điểm đường cong E cấu hình EC, số nguyên thuộc dãy [1, q - 1) cấu hình DL CHÚ THÍCH 2: Thực thể B phải xác minh chứng thực thể A khóa thỏa thuận trước nhận thơng tin thu từ khóa thỏa thuận Do A3/B3 phải thực trước B4/A4 CHÚ THÍCH 3: Dựa kiểu cơng phân tích Pohlig-Hellman, giá trị bí mật thấp hai bit B sB bị nhận kẻ công, k chia cho Lấy lại khóa xác thực mật Điều quy định chế lấy lại khóa xác thực mật Trong chế, thực thể A có bí mật yếu dẫn xuất từ mật thực thể lại B có bí mật mạnh liên kết với bí mật yếu A Sử dụng bí mật tương ứng mình, hai thực thể thương lượng khóa bí mật, lấy lại từ A không thiết phải nhận từ B Kết trình A có giá trị khóa bí mật dẫn xuất từ bí mật yếu A bí mật mạnh B Thực thể B khơng cần biết bí mật A khóa bí mật nhận Bí mật B liên kết với bí mật A, (trong thân nó) khơng chứa đủ thơng tin phép xác định bí mật A khóa bí mật thiết lập, với cơng vét cạn CHÚ THÍCH: Trong ứng dụng sử dụng lấy lại khóa xác thực mật khẩu, A đóng vai trò máy khách B đóng vai trò máy chủ Thao tác lấy lại khóa xác thực mật thực sau q trình khởi tạo q trình thiết lập khóa Quá trình khởi tạo: Hai thực thể tham gia đồng ý sử dụng tập tham số miền hợp lệ tập hàm, tất công khai Thực thể A thiết lập bí mật yếu dựa mật thực thể lại B thiết lập bí mật mạnh liên kết với bí mật yếu A Q trình thiết lập khóa: 1) Tạo trao đổi thẻ khóa: Thực thể A lựa chọn hệ số thẻ khóa, kiến tạo thẻ khóa làm rối mật chuyển thẻ khóa cho thực thể B Sau nhận thẻ khóa làm rối mật từ A, thực thể B kiến tạo thẻ khóa chuyển cho A 2) Kiểm tra tính hợp lệ thẻ khóa (tùy chọn): tùy thuộc vào thao tác trình tạo thẻ khóa, thực thể liên quan lựa chọn phương pháp thích hợp để chấp nhận đóng góp khóa nhận tham số miền Nếu chấp nhận thất bại, đầu “khơng hợp lệ" chấm dứt q trình 3) Thu khóa bí mật dùng chung: A áp dụng thao tác giải mã hệ số thẻ khóa A thẻ khóa B để tạo giá trị bí mật áp dụng thêm hàm dẫn xuất khóa với giá trị bí mật nhiều tham số dẫn xuất khóa để thu nhiều khóa bí mật dùng chung 7.1 Cơ chế lấy lại khóa Cơ chế lấy lại khóa thiết lập giống lấy lại khóa xác thực mật Nó sử dụng mật dẫn xuất từ bên khởi tạo cho dạng thay đổi thỏa thuận khóa Diffie- Hellma Thực thể B xác định khóa phân phối cho A Cơ chế làm việc cấu hình DL cấu hình EC CHÚ THÍCH: Cơ chế dựa [FK00] chế gọi {DL,EC}PKRS-1 [IEEEP1363.2] 7.1.1 Tham số chia sẻ trước Thao tác lấy lại khóa yêu cầu hai thực thể A B thực môi trường bao gồm tham số: - Tập tham số miền hợp lệ (tham số miền DL tham số miền EC) xác định Điều - Chuỗi octet dựa mật A biết - Số nguyên bí mật sB {1,…, r - 1} sử dụng cho hệ số thẻ khóa B B biết - Hàm dẫn xuất phần tử ngẫu nhiên R, sử dụng A - Hàm tạo thẻ khóa D, sử dụng A B - Hàm kiểm tra thẻ khóa, T - Hàm dẫn xuất giá trị bí mật V, sử dụng A - Hàm dẫn xuất khóa K, sử dụng A - Một nhiều chuỗi octet tham số dẫn xuất khóa {P1, P2, , - Độ dài khóa bí mật, LK 7.1.2 Các hàm 7.1.2.1 Hàm dẫn xuất phần tử ngẫu nhiên R Đây hàm R1DL R1EC xác định Điều 6.1.2.1 7.1.2.2 Hàm tạo thẻ khóa D Hàm tạo thẻ khóa D giống quy định Điều 6.1.2.2 7.1.2.3 Hàm kiểm tra thẻ khóa T Hàm kiểm tra thẻ khóa T giống quy định Điều 6.1.2.3 7.1.2.4 Hàm dẫn xuất giá trị bí mật V Hàm dẫn xuất giá trị bí mật V lấy số nguyên x phần tử nhóm chọn y làm đầu vào tạo đầu phần tử nhóm V(x, y) Cơ chế lấy lại khóa sử dụng hai hàm V sau: VDL VEC - VDL thích hợp với chế sử dụng tham số miền DL, tức hoạt động nhóm phần tử nhân xác định F(q) Cho trước tham số miền DL (bao gồm r q), hai đầu vào: x từ {1,…,r-1} y từ {2,…,q-2}, VDL tính sau: VDL(x,y) = yx mod r mod q - VEC thích hợp với chế sử dụng tham số miền EC, tức hoạt động nhóm phần tử cộng thuộc đường cong elliptic xác định F(q) Cho trước tham số miền EC (bao gồm r), hai đầu vào: x từ {1, ,r-1} điểm Y 0E, VEC tính sau: VEC(x, Y) = [x-1 mod r] x Y 7.1.2.5 Hàm dẫn xuất khóa K Đây hàm giống hàm quy định Điều 6.1.2.5 7.1.3 Thao tác lấy lại khóa Cơ chế yêu cầu thực thể A phải thực hai bước A1 A2, thực thể B thực bước B1 Xây dựng thẻ khóa (A1) A thực bước sau: - Tính g1 = R( ) làm phần tử sở thẻ khóa, - Chọn ngẫu nhiên sA từ {1,…,r - 1} làm hệ số thẻ khóa, - Thẻ khóa wA = D(sA, g1) - Gửi wA cho thực thể B Xây dựng thẻ khóa (B1) B thực bước sau: - Nhận wA từ thực thể A, - Kiểm tra tính hợp lệ wA với T(wA): T(wA) = đầu “khơng hợp lệ”, trình dừng lại, khác tiếp tục, - Thẻ khóa wB = D(sB, wA) - Gửi wB cho thực thể A Dẫn xuất khóa bí mật (A2) A thực bước sau: - Nhận wB từ thực thể B - Kiểm tra tính hợp lệ wB với T(wB): T(wB) = đầu “khơng hợp lệ", q trình dừng lại, khác tiếp tục, - Tính z = V(sA, wB) mã hóa cứng - Tính khóa bí mật Ki = K(GE2OSx(z), Pi, Lk) cho chuỗi octet tham số dẫn xuất khóa P i {P1, P2,… Hàm GE2OSx (chuyển phần tử nhóm thành chuỗi octet) xác định Phụ lục A CHÚ THÍCH 1: Phần tử nhóm chế điểm thuộc đường cong E cấu hình EC, số nguyên thuộc dãy [1, q - 1] cấu hình DL CHÚ THÍCH 2: Dựa kiểu cơng phân tích Pohlig-Hellman, hai bit thấp giá trị bí mật sB thực thể B bị nhận người công, k chia hết cho Phụ lục A (quy định) Hàm chuyển đổi kiểu liệu Phụ lục quy định hàm chuyển đổi kiểu liệu sử dụng chế thiết lập khóa tiêu chuẩn A.1 I2OS & OS2I Mục quy định hàm I2OS (chuyển đổi số nguyên thành chuỗi octet) OS2I (chuyển đổi chuỗi octet thành số nguyên) Hàm I2OS lấy đầu vào số nguyên không âm x tạo đầu chuỗi octet Ml-1, Ml2 M0 với chiều dài l Trong l = [log256(x + 1)] chiều dài x tính octet Khi I2OS tính sau: Viết x dạng biểu diễn chuỗi đơn I chữ số 256 bit: x = xl-1 256 l-1 + xl-2256 l-2 + + x1 256 + x0, ≤ xi < 256 Giả sử octet Mi có giá trị xi với ≤ i ≤ l - Đầu chuỗi octet Ml-1, Ml-2,… M0 Cho ví dụ: l2OS(10945) = 2A C1 Hàm OS2I lấy chuỗi octet Ml-1, Ml-2 M0 làm đầu vào tạo đầu số nguyên không âm y Hàm tính sau: Lấy số ngun yi có giá trị octet Mi với ≤ i ≤ l - Tính số nguyên y = yl-1256 l-1 + yl-2256 l-2 + + y1 256 + y0 Đầu y Cho ví dụ: OS2l(2A C1) = 10945 Chú ý chuỗi octet có chiều dài (chuỗi octet rỗng) chuyển thành số nguyên ngược lại A.2 BS2I Mục xác định hàm BS2I (chuyển chuỗi bit thành số nguyên): Hàm BS2I sử dụng chuỗi bit bl-1 bl-2 …b0 làm đầu vào tạo đầu số nguyên không âm Hàm tính sau: Lấy số ngun yi có giá trị bit bi với ≤ i ≤ l - Tính số nguyên y = yl-22 l-1 + yl-2 l-2 + + y1 + y0 Đầu y Ví dụ: l = 19, BS2l(000 0010 1010 1100 0001) = 10945 Chú ý chuỗi bit có độ dài (chuỗi bit rỗng) chuyển thành số nguyên A.3 FE2I & I2FE Mục xác định hàm FE2I (chuyển phần tử trường thành số nguyên) hàm I2FE (chuyển số nguyên thành phần tử trường) Lấy phần tử thuộc trường hữu hạn F(sm) (trong s p 2) biểu diễn dãy {βm-1, βm-2, β0} βi số nguyên thỏa mãn ≤ βi ≤ s - Hàm FE2I sử đụng phần tử trường {βm-1, βm-2, β0} làm đầu vào đầu số nguyên không âm Hàm xác định sau: Lấy số nguyên yi có giá trị βi với ≤ i ≤ m - Tính số nguyên y = ym-1s m-1 + ym-2 s m-2 + + y1 s + y0 Đầu y Hàm I2FE lấy số nguyên không âm x làm đầu vào đầu trường phần tử {βm-1, βm-2, β0} Hàm xác định sau: Viết x dạng dãy s với m chữ số biểu diễn sau: x = xm-1 s m-1 + xm-2 s m-2 + + x1s + x0 ≤ xi < s (chú ý nhiều số đầu x < sm-1) Lấy βi có giá trị xi với ≤ i ≤ m - Đầu {βm-1, βm-2, β0} A.4 FE2OS Mục xác định hàm FE2OS (chuyển phần tử trường thành chuỗi octet) Hàm FE2OS sử dụng dãy phần tử {βm-1, βm-2, β0} làm đầu vào tạo đầu chuỗi octet y Hàm xác định sau: Chuyển dãy {βm-1, βm-2, β0} thành số nguyên x hàm FE2I Chuyển x thành chuỗi octet y hàm I2OS A.5 GE2OSx Mục xác định hàm GE2OSx (chuyển phần tử nhóm thành chuỗi octet) Hàm GE2OSx sử dụng phần tử nhóm làm đầu vào tạo đầu chuỗi octet Hàm định nghĩa sau: Trong cấu hình DL, phần tử nhóm phần tử F(q) Cho u phần tử nhóm, đầu GE2OSx(u): Biểu diễn u dạng phần tử trường Chuyển kết bước (1) thành chuỗi octet hàm FE2OS Đầu kết bước (2) Trong cấu hình EC, phần tử nhóm điểm đường cong elliptic E Cho Q = (xQ, yQ) điểm E, xQ hồnh độ x Q yQ tung độ y Q; hai xQ yQ F(q) Với mục đích chế quy định tiêu chuẩn hàm GE2OSx(Q) chuyển hồnh độ x Q thành chuỗi octet bỏ qua tung độ y Q Đầu hàm GE2OSx(Q) xác định sau: Biểu diễn xQ dạng phần tử trường Chuyển kết bước (1) thành chuỗi octet hàm FE2OS Đầu kết bước (2) CHÚ THÍCH: Phép chuyển đổi khơng phải ánh xạ - Ví dụ: phép chuyển đổi liên kết điểm đường cong elliptic Q -Q với chuỗi octet A.6 I2P Mục xác định hàm I2P (chuyển số nguyên thành điểm) Cho trước tập tham số miền EC (E, q, p, m, r, k, a1, a2), hàm I2P lấy số nguyên u làm đầu vào tạo đầu điểm T thuộc đường cong E F(q), T = l2P(u) Trong quy định đây, toán tử cộng nhân phần tử trường hữu hạn theo quy định ISO/IEC 15946-1 Thiết lập v = BS2I(H(I2OS(u))) mod q - Nếu v = 0, đầu “khơng hợp lệ”, q trình dừng lại Thiết lập = u mod Nếu q số nguyên tố (q = p) đường cong E Y2 = X3 + a1X + a2 thuộc F(q) Điểm T xác định sau: (a) Thiết lập x = v (b) Tính tốn trường phần tử - Nếu = x3 + a1x + a2 mod p = 0, đầu “không hợp lệ” trình phải ngừng lại (c) Tìm bậc hai β mod p (tức số nguyên β với < β < p cho β2 = chứng minh không tồn bậc hai, - Để kiểm tra tính tồn bậc hai, tính Ngược lại β khơng tồn - Nếu - Nếu = (p-1)/2 mod p Nếu thu mod p) = 1, β tồn ta lập lại bước với u = u + mod p = 1, tìm β CHÚ THÍCH: Các thao tác tìm phần tử trường β cho β2 = X9.62] [IEEE P1363] mod p quy định [ANSI (d) Thiết lập y = (p - 1) x β (e) Thiết lập điểm T = (x, y) đầu Nếu q chẵn (q = 2m) đường cong E Y2 + XY = X3 + a1X2 + a2 F(2m) Điểm T xác định sau: (a) Thiết lập x = l2FE(v) (b) Thiết lập = x + a1 + a2x (-2) F(2m) (c) Tìm phần tử trường β cho β2 + β F(2m) xác minh không tồn Nếu khơng tồn cho u = u + mod q quay lại bước CHÚ THÍCH: Các thao tác xác minh tồn tìm phần tử trường β cho β2 + β = F(2m) quy định [ANSI X9.62] [IEEE P1363] (d) Thiết lập y = (β + I2FE( )) x x (e) Thiết lập điểm T = (x, y) làm đầu Phụ lục B (quy định) Mô đun ASN.1 Sau mô đun ASN.1 dành cho chế quản lý khóa quy định tiêu chuẩn Phụ lục C (tham khảo) Hướng dẫn lựa chọn tham số Sau hướng dẫn lựa chọn tham số cho chế quản lý khóa tiêu chuẩn C.1 Tham số q, r k Như đề cập Điều 4, tiêu chuẩn xử lý trường số nguyên tố F(q) trường nhị phân F(2m) cấu hình EC xử lý trường số nguyên tố cấu hình DL, trường hợp sử dụng rộng rãi đặc tính bảo mật chúng tốt Trong cấu hình DL, kiến nghị rằng: - q số nguyên tố lớn, với độ lớn 1024 bit - r ước số nguyên tố lớn q-1, với độ lớn 160 bit - k = (q-1)/r Để giảm độ phức tạp việc kiểm tra tính hợp lệ thơng điệp nhận chế thiết lập khóa quy định tiêu chuẩn này, yêu cầu thỏa mãn k = 2p1p2 pt, với số nguyên tố pi > r, i = 1, 2,…, t Tùy chọn k = 2, trường hợp này, q = 2r + số nguyên tố an toàn Trong cấu hình EC, kiến nghị rằng: - Trong trường số nguyên tố F(q) q số nguyên tố lớn; trường số nhị phân F(2m) q 2m , m ≥ số nguyên dương - r ước số nguyên tố lớn #E, với độ lớn 160 bit - k = #E/r Để giảm độ phức tạp việc kiểm tra tính hợp lệ thơng điệp nhận chế thiết lập khóa quy định tiêu chuẩn này, yêu cầu thỏa mãn k = 2np1 p2 pt n = {0, 1, 2}, với số nguyên tố pi > r, i = 1, 2, , t Tùy chọn k = 2n CHÚ THÍCH: Thơng tin chung đường cong elliptic F(q) tìm thấy ISO/IEC 15946-1 C.2 Tham số chế lấy lại khóa Điều quan trọng chế lấy lại khóa quy định Điều 7.1, cung cấp chế tiên đoán Static Diffie-Hellman (SDH) cho kẻ công bị khai thác công SDH [BG04] Kiểu công cải thiện đáng kể khả kẻ công nhằm biết khóa bí mật x SDH, trước chấp nhận truy cập vào thẻ cung cấp gx cho giá trị g Trong trường hợp “tối ưu”, lực ngoại tuyến kẻ công nhỏ nhất, lực giảm từ r 1/2 xuống r1/3, r số bậc phần tử g Tuy nhiên, trường hợp "tối ưu” sử dụng kiểu công SDHP đòi hỏi tới r1/3 thẻ truy vấn, điều xem không thực tế đặc biệt không thực tế phương pháp dùng mật Vì vậy, kết có nghĩa hay không phụ thuộc vào tham số miền cách mà sơ đồ sử dụng Có số cách lựa chọn giá trị r để tránh kiểu công SDH: Giá trị r chọn cho khơng tồn nghiệm phương trình r = uv +1 với tính chất ≤ u < a ≤ v < b, a b số nguyên nhỏ cho lũy thừa a/2 dẫn chứng b chế coi khơng thể tính tốn Sử dụng nhóm lớn hơn, ví dụ kích thước r 240 bit thay lớn 160 bit Đảm bảo (r - 1) khơng có ước số khoảng [C, r 1/2] Tại điểm cuối thấp nhất, C giá trị nhỏ “cắt rời" Tại điểm cuối cao nhất, r1/2 bị phá hủy, lại dễ nhớ Khi giá trị (r - 1) ước số phạm vi này, công không lợi phương pháp trước Gợi ý (r - 1)/2 số nguyên tố Chú ý điều khác với trường hợp k = cấu hình DL TÀI LIỆU THAM KHẢO [1] [ANSI X9.62] American National Standards Institute Public key cryptography for the financial services industry: the elliptic curve digital signature algorithm ANSI X9.62:1998,January 1999 (ANSI X9.62 Viện Tiêu chuẩn quốc gia Mỹ Mật mã hóa khóa cơng khai cho ngành dịch vụ tài chính: thuật tốn ký số đường cong elliptic) [2] [BG04] D Brown and R Gallant, The Static Diffie-Hellman Problem Cryptology ePrint Archive: Report 2004/306, 15 Nov 2004 (Báo cáo chế tiên đoán Static Diffie- Hellman) [3] [FK00] W Ford and B Kaliski Server-assisted generation of a strong secret from a password In the Proceedings of the IEEE 9th International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises, pp 176 - 180, IEEE, June 2000 (Việc tạo bảo mật mạnh từ mật trợ giúp cho máy chủ Báo cáo hội thảo quốc tế IEEE lần thứ 9) [4] [IEEEP1363] IEEE P1363 Standard for public key cryptography, 2000 (Chuẩn mật mã hóa khóa cơng khai) [5] [IEEEP1363a] IEEE 1363A-2004: Standard Specifications For Public Key Cryptography Amendment 1: Additional Techniques (Các đặc tả cho mật mã hóa khóa cơng khai - Bổ sung 1: Các kỹ thuật bổ sung) [6] [IEEEP1363.2] IEEE P1363.2/D21:2005-07-17 Standard specifications for password-based public key cryptographic techniques (Các đặc tả cho kỹ thuật mật mã hóa khóa cơng khai dựa mật khẩu) [7] [ISO/IEC 9796-3:2000] ISO/IEC 9796-3:2000, Information technology - Security techniques Digital signature schemes giving message recovery - Part 3: Discrete logarithm based mechanisms (Công nghệ thông tin - Kỹ thuật an ninh - Lược đồ chữ ký số để phục hồi thông điệp - Phần 3: Cơ chế dựa logarit rời rạc) [8] [ISO/IEC 9798-3:1998] ISO/IEC 9798-3:1998, Information technology - Security techniques Entity authentication - Part 3: Mechanisms using digital signature techniques (Công nghệ thông tin - Kỹ thuật an ninh - Xác thực thực thể - Phần 3: Cơ chế sử dụng kỹ thuật chữ ký số) [9] [ISO/IEC 10118-1:2000] ISO/IEC 10118-1:2000, Information technology - Security techniques - Hash-functions - Part 1: General (Công nghệ thông tin - Kỹ thuật an ninh - Hàm băm - Phần 1: Khái quát) [10] [TCVN 7817-3:2007] TCVN 7817-3:2007 Công nghệ thông tin - Kỹ thuật mật mã - Quản lý khóa, phần 3: Các chế sử dụng kỹ thuật không đối xứng [11] [ISO/IEC 15946-1:2002] ISO/IEC 15946-1:2002, Information technology - Security techniques - Cryptographic techniques based on elliptic curves - Part 1: General (Công nghệ thông tin - Kỹ thuật an ninh - Kỹ thuật mật mã hóa dựa đường cong elliptic) [12] [ISO/IEC 15946-3:2002] ISO/IEC 15946-3:2002, Information technology - Security techniques - Cryptographic techniques based on elliptic curves - Part 3: Key establishment (Công nghệ thông tin - Kỹ thuật an ninh - Kỹ thuật mật mã hóa dựa đường cong elliptic Phẩn 3: Thiết lập khóa) [13] [ISO/IEC 18031:2005] ISO/IEC 18031:2005, Information technology - Security techniques Random bit generation (Công nghệ thông tin - Kỹ thuật an ninh - Tạo bit ngẫu nhiên) [14] [ISO/IEC 18032:2005] ISO/IEC 18032:2005, Information technology - Security techniques Prime number generation (Công nghệ thông tin - Kỹ thuật an ninh - Tạo số nguyên tố) [15] [ISO/IEC 18033-1:2005] ISO/IEC 18033-1:2005, Information technology - Security techniques - Encryption algorithms - Part 1: General (Công nghệ thơng tin - Kỹ thuật an ninh Thuật tốn mã hóa - Phần 1: Khái quát) [16] [ISO/IEC 18033-2] ISO/IEC 18033-2, Information technology - Security techniques Encryption algorithms - Part 2: Asymmetric ciphers (Công nghệ thông tin - Kỹ thuật an ninh Thuật tốn mã hóa - Phần 3: Mật mã phi đối xứng) [17] [Jab96] D Jablon Strong password-only authenticated key exchange Computer Communication Review, ACM SIGCOMM, 26(5):5-26, October 1996 (Trao đổi khóa xác thực mật mạnh) [18] [Ka86] B Kaliski A pseudo random bit generator based on elliptic logarithms In Advances in Cryptology -CRYPTO '86, A M Odlyzko, Ed., vol 263 of Lecture Notes in Computer Science, pp 84-103, Springer-Verlag, 1987 (Bộ tạo bit giả ngẫu nhiên dựa thuật toán logarit elliptic) [19] [Kw00) T Kwon Ultimate solution to authentication via memorable password Submission to the IEEE P1363 study group for future PKC standards, May 30, 2000 (Giải pháp xác thực thông qua mật nhớ) [20] [Kw03] T Kwon Addendum to summary of AMP Submission to the IEEE P1363 study group for future PKC standards, November 19, 2003 (Các phần bổ sung cho AMP) [21] [MvV96] A J Menezes, P C van Oorschot and S A Vanstone Handbook of Applied Cryptography CRC Press, 1996 (Hướng dẫn áp dụng mật mã hóa) [22] [TC05] Q Tang and C Mitchell On the security of some password-based key agreement schemes Cryptology ePrint Archive: Report 2005/156 (Các vấn đề an ninh lược đồ thỏa thuận khóa dựa mật khẩu) [23] [Wu02] T Wu SRP-6: improvements and refinements to the secure remote password protocol Submission to IEEE P1363 Working Group, October 29, 2002 (Tăng cường tinh chỉnh cho giao thức đảm bảo mật từ xa) MỤC LỤC Lời nói đầu Phạm vi áp dụng Tài liệu viện dẫn Thuật ngữ định nghĩa Ký hiệu từ viết tắt Các yêu cầu Thỏa thuận khóa xác thực mật 6.1 Cơ chế thỏa thuận khóa 6.2 Cơ chế thỏa thuận khóa 6.3 Cơ chế thỏa thuận khóa Lấy lại khóa xác thực mật 7.1 Cơ chế lấy lại khóa Phụ lục A A.1 I2OS & OS2I A.2 BS2I A.3 FE2I & I2FE A.4 FE2OS A.5 GE2OSx A.6 I2P Phụ lục B Phụ lục C C.1 Tham số q, r k C.2 Tham số chế lấy lại khóa Tài liệu tham khảo ... sửa đổi TCVN 781 7-1 :2007, Công nghệ thông tin - Kỹ thuật mật mã - Quản lý khóa - Phần 1: Khung tổng quát ISO/IEC 1011 8-3 :2004, Information technology - Security techniques - Hash-functions - Part... tin - Kỹ thuật an ninh - Xác thực thực thể - Phần 3: Cơ chế sử dụng kỹ thuật chữ ký số) [9] [ISO/IEC 1011 8-1 :2000] ISO/IEC 1011 8-1 :2000, Information technology - Security techniques - Hash-functions... Hash-functions - Part 1: General (Công nghệ thông tin - Kỹ thuật an ninh - Hàm băm - Phần 1: Khái quát) [10] [TCVN 781 7-3 :2007] TCVN 781 7-3 :2007 Công nghệ thông tin - Kỹ thuật mật mã - Quản lý khóa,