Information\r\ntechnology - Cryptographic technique - Key management - Part 3: Mechanisms using\r\nasymmetric techniques
\r\n\r\nLời nói đầu
\r\n\r\nTCVN 7817-3 : 2007 hoàn toàn tương\r\nđương với ISO/IEC 11770-3 : 1999
\r\n\r\nTCVN 7817-3 : 2007 do Tiểu ban Kỹ thuật\r\nTiêu chuẩn TCVN/JTC 1/SC27 "Các kỹ thuật mật mã" biên soạn, Ban Cơ\r\nyếu Chính phủ đề nghị, Bộ khoa học và công nghệ công bố
\r\n\r\n\r\n\r\n
CÔNG NGHỆ THÔNG TIN -\r\nKỸ THUẬT MẬT MÃ QUẢN LÝ KHÓA - PHẦN 3: CÁC CƠ CHẾ SỬ DỤNG KỸ THUẬT KHÔNG ĐỐI\r\nXỨNG
\r\n\r\nInformation\r\ntechnology - Cryptographic technique - Key management - Part 3: Mechanisms\r\nusing asymmetric techniques
\r\n\r\n\r\n\r\nTiêu chuẩn này xác định cơ chế quản lý khóa\r\ndựa trên kỹ thuật mật mã phi đối xứng. Đặc biệt, nó sử dụng các kỹ thuật phi\r\nđối xứng để đạt được các mục tiêu sau:
\r\n\r\n1. Thiết lập khóa bí mật dùng chung sử dụng\r\ncho kỹ thuật mật mã đối xứng giữa hai thực thể A và B bằng việc\r\nthỏa thuận khóa. Trong một cơ chế thỏa thuận khóa bí mật thì khóa bí mật là kết\r\nquả của việc trao đổi dữ liệu giữa hai thực thể A và B. Không thể nào torng hai\r\nthực thể có thể định trước giá trị của khóa bí mật dùng chung này.
\r\n\r\n2. Thiết lập khóa bí mật dùng chung cho kỹ\r\nthuật mật mã đối xứng giữa hai thực thể A và B bằng việc vận\r\nchuyển khóa. Trong một cơ chế vận chuyển khóa bí mật thì khóa bí mật được chọn\r\nbởi một thực thể A được truyền đến thưc thể B, quá trình vận\r\nchuyển khóa được bảo vệ một cách thích hợp bằng các kỹ thuật phi đối xứng.
\r\n\r\n3. Làm cho khóa công khai của một thực thể\r\nsẵn có đối với một thực thể khác bằng việc vận chuyển khóa. Trong cơ chế vận\r\nchuyển khóa công khai, một khóa công khai của thực thể A được truyền đến\r\nmột thực thể khác theo một phương thức có xác thực nhưng không bắt buộc phải\r\ngiữ bí mật.
\r\n\r\nMột số cơ chế trong tiêu chuẩn này dựa trên\r\ncác cơ chế xác thực tương ứng ở ISO/IEC 9798-3.
\r\n\r\nTiêu chuẩn này không đề cập đến các khía cạnh\r\nvề quản lý khóa sau:
\r\n\r\n- Quản lý vòng đời của khóa,
\r\n\r\n- Các cơ chế sinh ra hoặc kiểm tra cặp khóa\r\nphi đối xứng,
\r\n\r\n- Các cơ chế dự trữ, lưu trữ, xóa, hủy,…\r\nkhóa.
\r\n\r\nMặc dù tiêu chuẩn này không đề cập cụ thể đến\r\nviệc phân phối khóa bí mật từ bên thứ ba tin cậy đến một thực thể (trong một\r\ncặp khóa phi đối xứng) yêu cầu khóa nhưng mô tả về các cơ chế vận chuyển khóa ở\r\nđây vẫn có thể được sử dụng để đạt được mục tiêu phân phối khóa bí mật.
\r\n\r\nTiêu chuẩn này cũng không đề cập đến việc\r\nthực thi các phép biến đổi sử dụng trong các cơ chế thỏa thuận khóa.
\r\n\r\nCHÚ THÍCH: Để đạt được tính xác thực của các\r\nthông điệp quản lý khóa thì có thể tạo một dự trữ sẵn về tính xác thực bên\r\ntrong giao thức thiết lập khóa hoặc sử dụng hệ thống chữ ký khóa công khai để\r\nký các thông điệp trao đổi khóa.
\r\n\r\n\r\n\r\nCác tài liệu viện dẫn dưới đây rất cần thiết\r\ncho việc áp dụng tiêu chuẩn này. Đối với các tài liệu ghi năm công bố thì áp\r\ndụng bản được nêu. Đối với các tài liệu không ghi năm công bố thì áp dụng bản\r\nmới nhất, bao gồm cả sửa đổi.
\r\n\r\n- ISO 7498-2:1989, Information processing\r\nsystems - Open Systems Interconnection - Basic Reference Model - Part 2:\r\nSecurity Architecture (Các hệ thống xử lý thông tin - Liên kết các Hệ thống mở\r\n- Mô hình tham chiếu cơ bản - Phần 2: Cấu trúc an toàn).
\r\n\r\n- ISO/IEC 9594-8:1995, Information technology\r\n- Open systems Interconnection - The directory: Authentication framework (Công\r\nnghệ thông tin - Liên kết các Hệ thống mở - Thư mục: Khung xác thực).
\r\n\r\n- ISO/IEC 9798-3:1998, Information technology\r\n- Security techniques - Entity authentication - Part 3: Mechanisms using\r\ndigital signature techniques (Công nghệ thông tin - Kỹ thuật mật mã- Xác thực\r\nthực thể - Phần 3: Các cơ chế sử dụng kỹ thuật chữ ký số).
\r\n\r\n- ISO/IEC 10118-1:1994, Information\r\ntechnology - Security techniques - Hash-functions - Part 1: General (Công nghệ\r\nthông tin - Kỹ thuật mật mã - Hàm băm - Phần 1: Tổng quát).
\r\n\r\n- ISO/IEC 10181-1:1996, Information\r\ntechnology – Open systems Interconnection – Security frameworks for open\r\nsystems Overview (Công nghệ thông tin – Liên kết các Hệ thống mở - Tổng quát về\r\nkhung an toàn cho các hệ thống mở).
\r\n\r\n- TCVN 11770-1 : 2007 (ISO/IEC 11770-1:1999),\r\nInformation technology - Security techniques - Key management - Part 1: Frameworks\r\n(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).
\r\n\r\n\r\n\r\nTiêu chuẩn này sử dụng các định nghĩa sau:
\r\n\r\n3.1
\r\n\r\nKỹ thuật mật mã phi đối xứng (asymmetric\r\ncryptographic technique)
\r\n\r\nKỹ thuật mật mã sử dụng hai phép biến đổi có\r\nliên quan đến nhau, phép biến đổi công khai (được xác định bởi một khóa công\r\nkhai) và phép biến đổi bí mật (được xác định bởi một khóa bí mật). Cả hai phép\r\nbiến đổi này có đặc tính là khi đã biết phép biến đổi công khai cũng không thể\r\ntính toán ra được phép biến đổi bí mật.
\r\n\r\nCHÚ THÍCH: Một hệ thống dựa trên kỹ thuật mật\r\nmã phi đối xứng có thể là một hệ mật, một hệ chữ ký, một hệ thống kết hợp giữa\r\nhệ mật và hệ chữ ký hoặc một hệ thống thỏa thuận khóa. Có bốn phép biến đổi cơ\r\nbản đối với kỹ thuật mật mã phi đối xứng: ký và kiểm tra chữ ký cho hệ chữ ký,\r\nmã hóa và giải mã cho hệ mật. Phép biến đổi ký và phép giải mã được giữ bí mật\r\nbởi thực thể sở hữu nó trong khi phép mã hóa và phép kiểm tra chữ ký lại được\r\ncông bố. Tồn tại một số hệ mật phi đối xứng (như RSA) mà bốn hàm cơ bản có thể\r\nđược thực hiện chỉ nhờ hai phép chuyển đổi: một phép biến đổi bí mật dùng cho\r\ncả ký và giải mã thông điệp, một phép biến đổi công khai dùng cho cả kiểm tra\r\nvà mã hóa thông điệp. Tuy nhiên, vì điều này không tuân theo nguyên tắc tách\r\nbạch khóa theo chức năng, bởi vậy trong tiêu chuẩn này bốn phép biến đổi cơ sở\r\nvà các khóa tương ứng đều được tách bạch.
\r\n\r\n3.2
\r\n\r\nHệ mã hóa phi đối xứng (asymmetric\r\nencipherment system)
\r\n\r\nMột hệ thống dựa trên kỹ thuật mật mã phi đối\r\nxứng trong đó một phép biến đổi công khai được sử dụng để mã hóa và một phép\r\nbiến đổi bí mật được sử dụng để giải mã.
\r\n\r\n3.3 Cặc khóa phi đối xứng (asymmetric key\r\npair): Một cặp của các khóa liên quan trong đó một khóa riêng xác định một phép\r\nbiến đổi bí mật và khóa công khai xác định một phép biến đổi công khai.
\r\n\r\n3.4
\r\n\r\nTổ chức chứng thực (CA - certification\r\nauthority)
\r\n\r\nTrung tâm được tin cậy tạo và gán các chứng\r\nchỉ khóa công khai. Theo tùy chọn, CA có thể đảm nhận việc tạo và gán khóa cho\r\ncác thực thể.
\r\n\r\n3.5
\r\n\r\nHàm kiểm tra mật mã (cryptographic check\r\nfunction)
\r\n\r\nPhép biến đổi mật mã nhận đầu vào là một khóa\r\nbí mật và một chuỗi tùy ý, cho đầu ra là một giá trị kiểm tra mật mã. Việc tính\r\ntoán một giá trị kiểm tra đúng mà không biết khóa mã là không thể thực hiện\r\nđược [ISO/IEC 9798-1:1997].
\r\n\r\n3.6
\r\n\r\nGiá trị kiểm tra mật mã (cryptographic check\r\nvalue)
\r\n\r\nThông tin nhận được bắt nguồn bằng việc trình\r\nbày một phép biến đổi mật mã trên một đơn vị dữ liệu [ISO/IEC 9798-4:1995].
\r\n\r\n3.7
\r\n\r\nGiải mã (dicipherment)
\r\n\r\nPhép nghịch đảo của phép mã hóa tương ứng\r\n[TCVN 7817-1 : 2007 (ISO/IEC 11770-1:1996)].
\r\n\r\n3.8
\r\n\r\nChữ ký số (digital signature)
\r\n\r\nDữ liệu được thêm vào, hoặc là phép biến đổi\r\nmật mã của một đơn vị dữ liệu mà cho phép người nhận đơn vị dữ liệu chứng minh\r\nđược nguồn gốc và tính toàn vẹn của đơn vị dữ liệu và bảo vệ người gửi và người\r\nnhận của đơn vị dữ liệu chống lại sự giả mạo của bên thứ ba, và người gửi được\r\nbảo vệ chống lại sự giả mạo bên nhận.
\r\n\r\n3.9
\r\n\r\nThẻ định danh phân biệt (distinguishing\r\nidentifier)
\r\n\r\nThông tin phân biệt một cách rõ ràng một thực\r\nthể [TCVN 7817-1 : 2007 (ISO/IEC 11770-1:1996)].
\r\n\r\n3.10
\r\n\r\nMã hóa (encipherment)
\r\n\r\nPhép biến đổi khả nghịch (có ngược) của dữ\r\nliệu bằng một thuật toán mật mã để tạo ra bản mã, tức là để dấu nội dung thông\r\ntin của dữ liệu [TCVN 7817-1 : 2007 (ISO/IEC 11770-1:1996)].
\r\n\r\n3.11
\r\n\r\nXác thực thực thể (entity\r\nauthentication)
\r\n\r\nSự chứng nhận rằng một thực thể là thực thể\r\nđược tuyên bố [ISO/IEC 9798-1:1997].
\r\n\r\n3.12
\r\n\r\nXác thực thực thể của A đối với B (entity\r\nauthentication of A to B)
\r\n\r\nSự đảm bảo về định danh của thực thể A đối\r\nvới thực thể B.
\r\n\r\n3.13
\r\n\r\nXác thực khóa tường minh của A đối với B (explicit key\r\nauthentication from A to B)
\r\n\r\nSự đảm bảo cho B rằng chỉ có A là thực thể sở\r\nhữu khóa đúng.
\r\n\r\nCHÚ THÍCH: Việc kết hợp giữa xác thực khóa ẩn\r\ncủa A đối với B và xác nhận khóa của A đối với B sẽ đảm bảo tính xác thực khóa\r\ntường minh của A đối với B.
\r\n\r\n3.14
\r\n\r\nXác thực khóa ẩn của A đối với B (implicit key\r\nauthentication from A to B)
\r\n\r\nSự đảm bảo cho B rằng chỉ có A là thực thể có\r\nkhả năng sở hữu khóa đúng.
\r\n\r\n3.15
\r\n\r\nKhóa (key)
\r\n\r\nMột dãy ký tự điều khiển hoạt động của phép\r\nbiến đổi mật mã (ví dụ mã hóa, giải mã, tính hàm kiểm tra mật mã, tạo hoặc kiểm\r\ntra chữ ký số) [TCVN 7817-1 : 2007 (ISO/IEC 11770-1:1999)].
\r\n\r\n3.16
\r\n\r\nThoả thuận khóa (key agreement)
\r\n\r\nTiến trình kiến tạo một khóa bí mật dùng\r\nchung giữa hai thực thể theo cách mà không có bên nào có thể định trước được\r\ngiá trị cho khóa.
\r\n\r\n3.17
\r\n\r\nXác nhận khóa của A đối với B (key confirmation\r\nfrom A to B)
\r\n\r\nSự đảm bảo đối với thực thể B rằng thực thể A\r\nsở hữu một khóa đúng.
\r\n\r\n3.18
\r\n\r\nKiểm soát khóa (key control)
\r\n\r\nKhả năng lựa chọn khóa hoặc tham số sử dụng\r\ntrong một phép tính toán khóa.
\r\n\r\n3.19
\r\n\r\nThiết lập khóa (key establishment)
\r\n\r\nQuá trình tạo nên sự khả dụng một khóa bí mật\r\ndùng chung cho một hoặc nhiều thực thể. Thiết lập khóa bao gồm thỏa thuận khóa\r\nvà vận chuyển khóa.
\r\n\r\n3.20
\r\n\r\nThẻ khóa (key token)
\r\n\r\nThông điệp quản lý khóa gửi từ một thực thể\r\nđến một thực thể khác trong quá trình thực hiện một cơ chế quản lý khóa.
\r\n\r\n3.21
\r\n\r\nVận chuyển khóa (key transport)
\r\n\r\nTiến trình truyền một khóa từ một thực thể\r\nđến một thực thể khác với sự bảo vệ thích hợp.
\r\n\r\n3.22
\r\n\r\nXác thực thực thể lẫn nhau (mutual entity\r\nauthentication)
\r\n\r\nSự xác thực giữa hai thực thể để đảm bảo về\r\nđịnh danh của mỗi thực thể.
\r\n\r\n3.23
\r\n\r\nHàm một chiều (one-way function)
\r\n\r\nHàm có tính chất dễ dàng tính được đầu ra đối\r\nvới đầu vào cho trước nhưng lại không thể tìm được đầu vào tương ứng nếu cho\r\ntrước đầu ra.
\r\n\r\n3.24
\r\n\r\nKhóa riêng (private key)
\r\n\r\nKhóa thuộc một cặp khóa phi đối xứng của một\r\nthực thể chỉ được sử dụng bởi thực thể đó.
\r\n\r\nCHÚ THÍCH: Trong hệ thống chữ ký phi đối\r\nxứng, khóa riêng xác định phép biến đổi ký. Trong hệ mật phi đối xứng, khóa\r\nriêng xác định phép biến đổi giải mã.
\r\n\r\n3.25
\r\n\r\nKhóa công khai (public key)
\r\n\r\nThành phần khóa thuộc cặp khóa phi đối xứng\r\ncủa một thực thể được công bố công khai.
\r\n\r\nCHÚ THÍCH: Trong hệ chữ ký phi đối xứng, khóa\r\ncông khai xác định phép biến đổi kiểm tra chữ ký. Trong hệ mật phi đối xứng,\r\nkhóa công khai xác định phép biến đổi mã hóa. Một khóa "được biết một cách\r\ncông khai" không nhất thiết phải luôn khả dụng cho mọi đối tượng. Khóa đó\r\ncó thể chỉ khả dụng đối với tất cả thành viên thuộc một nhóm định trước.
\r\n\r\n3.26
\r\n\r\nChứng chỉ khóa công khai (public key\r\ncertificate)
\r\n\r\nThông tin khóa công khai của một thực thể được\r\nký bởi Tổ chức chứng thực vì thế không thể giả mạo.
\r\n\r\n3.27
\r\n\r\nThông tin khóa công khai (public key\r\ninformation)
\r\n\r\nThông tin chứa ít nhất định danh phân biệt và\r\nkhóa công khai của một thực thể. Thông tin khóa công khai được giới hạn bằng dữ\r\nliệu liên quan đến một thực thể và khóa công khai của thực thể đó. Ngoài ra,\r\nthông tin khóa công khai có thể bao gồm các thông tin tĩnh khác như cơ quan\r\nchứng thực, thực thể, khóa công khai, các giới hạn sử dụng khóa, thời gian hiệu\r\nlực hoặc thuật toán được sử dụng.
\r\n\r\n3.28
\r\n\r\nKhóa bí mật (secret key)
\r\n\r\nKhóa sử dụng trong kỹ thuật mật mã đối xứng\r\nbởi một tập thực thể xác định.
\r\n\r\n3.29
\r\n\r\nSố tuần tự (sequence number)
\r\n\r\nMột tham số biến thiên theo thời gian có giá\r\ntrị nhận từ một dãy xác định sao cho không có sự lặp lại trong một khoảng thời\r\ngian nhất định [TCVN 7817-1 : 2007 (ISO/IEC 11770-1:1999)].
\r\n\r\n3.30
\r\n\r\nHệ chữ ký (signature system)
\r\n\r\nHệ thống dựa trên kỹ thuật mật mã phi đối\r\nxứng trong đó một phép biến đổi bí mật được dùng để ký và một phép biến đổi\r\ncông khai được dùng để xác minh.
\r\n\r\n3.31
\r\n\r\nTem thời gian (time stamp)
\r\n\r\nMột mục dữ liệu đánh dấu một thời điểm dùng\r\nđể tham chiếu về mặt thời gian.
\r\n\r\n3.32
\r\n\r\nTổ chức cung cấp tem thời gian (time stamping\r\nauthority)
\r\n\r\nBên thứ ba tin cậy được tin tưởng trong việc\r\ncung cấp bằng chứng bao gồm thời điểm mà tại đó tem thời gian an toàn được tạo\r\nra [ISO/IEC 13888-1:1997].
\r\n\r\n3.33
\r\n\r\nTham số biến thời gian (time variant\r\nparameter)
\r\n\r\nMột mục dữ liệu sử dụng để xác nhận rằng một\r\nthông điệp là không được sử dụng lại. Tham số biến thiên theo thời gian có thể\r\nlà một số ngẫu nhiên, một số tuần tự hoặc một tem thời gian.
\r\n\r\n3.34
\r\n\r\nBên thứ ba tin cậy (trusted third\r\nparty)
\r\n\r\nMột tổ chức có thẩm quyền về an toàn, hoặc\r\nđại diện đủ tư cách của cơ quan đó, được tin cậy bởi các thực thể khác về khía\r\ncạnh hoạt động liên quan đến an toàn [ISO/IEC 10181-1:1996].
\r\n\r\n\r\n\r\nTiêu chuẩn này sử dụng các ký hiệu và từ viết\r\ntắt sau đây:
\r\n\r\nA, B Các thẻ định danh riêng biệt của các\r\nthực thể A và thực thể B.
\r\n\r\nBE Khối dữ liệu được mã hóa.
\r\n\r\nBS Khối dữ liệu được ký.
\r\n\r\nCA Cơ quan chứng thực.
\r\n\r\nCertA Chứng chỉ khóa công\r\nkhai của thực thể A.
\r\n\r\nDA Phép giải mã bằng\r\nkhóa riêng của thực thể A.
\r\n\r\ndA Khóa giải mã bí mật\r\ncủa thực thể A.
\r\n\r\nEA Phép mã hóa công\r\nkhai của thực thể A.
\r\n\r\neA Khóa mã công khai\r\ncủa thực thể A.
\r\n\r\nF(h,g) Hàm thỏa thuận khóa.
\r\n\r\nf Hàm kiểm tra mật mã.
\r\n\r\nfK(Z) Giá trị kiểm tra mật\r\nmã, là kết quả thu được từ việc áp dụng hàm kiểm tra mật mã f khi sử\r\ndụng đầu vào là một khóa bí mật K và chuỗi dữ liệu tùy ý Z.
\r\n\r\ng Một phần tử chung được chia sẻ công khai\r\ngiữa tất cả các thực thể cùng sử dụng một hàm thỏa thuận khóa F.
\r\n\r\nhA Khóa riêng của thực\r\nthể A dùng để thỏa thuận khóa.
\r\n\r\nhash Hàm Băm.
\r\n\r\nH Tập các phần tử.
\r\n\r\nG Tập các phần tử.
\r\n\r\nK Một khóa bí mật dùng cho hệ mật đối xứng
\r\n\r\nKAB Khóa bí mật dùng\r\nchung giữa hai thực thể A và B.
\r\n\r\nCHÚ THÍCH: Khi thực thi trong thực tế, khóa\r\nbí mật dùng chung có thể là đối tượng cần được xử lý thêm trước khi sử dụng cho\r\nhệ mật đối xứng.
\r\n\r\nKT Thẻ khóa.
\r\n\r\nKTAi Thẻ khóa được gửi\r\nbởi thực thể A sau pha xử lý thứ i.
\r\n\r\npA Khóa dùng để thỏa\r\nthuận khóa công khai của thực thể A.
\r\n\r\nPKIA Thông tin khóa công\r\nkhai của thực thể A.
\r\n\r\nr Một số ngẫu nhiên được sinh ra theo một cơ\r\nchế nào đó
\r\n\r\nrA Một số ngẫu nhiên\r\nđược cấp bởi thực thể A trong một cơ chế thỏa thuận khóa.
\r\n\r\nSA Phép biến đổi ký sử\r\ndụng khóa bí mật của thực thể A.
\r\n\r\nsA Khóa bí mật của thực\r\nthể A được sử dụng để ký.
\r\n\r\nTexti Một trường dữ liệu tùy chọn được sử dụng\r\ntrong phạm vi áp dụng của tiêu chuẩn này.
\r\n\r\nTVP Tham số biến đổi theo thời gian, ví dụ như\r\nmột số ngẫu nhiên, tem thời gian hoặc một số tuần tự.
\r\n\r\nVA Phép biến đổi kiểm\r\ntra công khai của thực thể A.
\r\n\r\nvA Khóa kiểm tra công khai\r\ncủa thực thể A.
\r\n\r\nw Hàm một chiều.
\r\n\r\nå\r\nChữ ký số.
\r\n\r\nII Phép nối hai phần tử dữ liệu với nhau.
\r\n\r\nCHÚ THÍCH:
\r\n\r\n1. Không có giả định nào được tạo ra đối với\r\nbản chất phép biến đổi ký. Đối với hệ chữ ký có khôi phục thông điệp thì SA(m)\r\nlà ký hiệu của chính chữ ký å.\r\nTrong trường hợp hệ chữ ký kèm phụ lục thì SA(m) là ký hiệu\r\nlà thông điệp m kèm theo chữ ký å.
\r\n\r\n2. Các khóa của một hệ mật phi đối xứng được\r\nký hiệu bằng chữ thường (thể hiện chức năng của khóa đó) và được đánh chỉ số là\r\nđịnh danh của thực thể sở hữu khóa, ví dụ khóa kiểm tra công khai của thực thể A\r\nđược ký hiệu là VA. Phép biến đổi tương ứng được ký hiệu\r\nbằng chữ hoa và được đánh chỉ số theo tên chủ sở hữu, ví dụ phép biến đổi để\r\nkiểm tra khóa công khai của thực thể A được ký hiệu là VA.
\r\n\r\n\r\n\r\nGiả sử rằng các thực thể đều biết được định\r\ndanh được tuyên bố của thực thể khác. Có thể đạt được điều này bằng việc đưa\r\ncác định danh vào thông tin trao đổi giữa hai thực thể, hoặc điều này là hiển\r\nnhiên torng ngữ cảnh sử dụng cơ chế. Kiểm tra một định danh có nghĩa là xác\r\nminh xem trường định danh nhận được có phù hợp với một số giá trị đã biết (được\r\ntin cậy) hoặc sự mong đợi trước đó hay không.
\r\n\r\nNếu một khóa công khai được đăng ký cho một\r\nthực thể thì thực thể đó sẽ tạo nên được sự tin tưởng rằng thực thể đã đăng ký\r\nkhóa công khai đang sở hữu một khóa riêng tương ứng (xem phần đăng ký khóa ở\r\nPhần tiêu chuẩn tổng quát).
\r\n\r\n\r\n\r\nThỏa thuận khóa là tiến trình thiết lập một\r\nkhóa bí mật dùng chung giữa hai thực thể A và B bằng một phương\r\npháp mà không ai trong số A hoặc B có thể định trước được giá trị\r\ncho khóa bí mật dùng chung này. Các cơ chế thỏa thuận khóa có thể cung cấp tính\r\nxác thực khóa ẩn. Trong ngữ cảnh của việc thiết lập khóa, xác thực khóa ẩn có\r\nnghĩa là sau khi thực thi cơ chế chỉ có một thực thể đã được chỉ ra là có thể\r\nnắm giữ được khóa bí mật dùng chung hợp lệ.
\r\n\r\nThỏa thuận khóa giữa hai thực thể A và\r\nB diễn ra trong một hoàn cảnh được chia sẻ bởi hai thực thể. Hoàn cảnh\r\nnày bao gồm các đối tượng sau: một tập G, một tập H và một hàm F.\r\nHàm F phải thỏa mãn các yêu cầu sau:
\r\n\r\n1. Hàm F nhận 2 đầu vào, một phần tử h\r\nthuộc tập H và một phần tử g thuộc G cho đầu ra là y\r\nthuộc G, sao cho y = F(h,g).
\r\n\r\n2. F thỏa mãn điều kiện giao hoán: F(hA,\r\nF(hB,g)) = F(hB, F(hA,g)).
\r\n\r\n3. Không thể tìm được F(h1,\r\nF(h2,g)) từ F(h1,g), F(h2,g)\r\nvà g. Tính chất này chỉ ra rằng F(.,g) là hàm một chiều.
\r\n\r\n4. Các thực thể A và B chia sẻ\r\nmột phần tử chung g thuộc G, phần tử này có thể được biết một\r\ncách công khai.
\r\n\r\n5. Các thực thể tham gia thiết lập này có thể\r\ntính các giá trị của hàm F(h,g) và có thể sinh ra các phần tử ngẫu nhiên\r\nthuộc H một cách hiệu quả.
\r\n\r\nTùy thuộc vào từng cơ chế thỏa thuận khóa cụ\r\nthể mà có thể có thêm một số điều kiện khác.
\r\n\r\nCHÚ THÍCH:
\r\n\r\n1. Ví dụ về hàm F được đưa ra ở Phụ\r\nlục B.
\r\n\r\n2. Trong các cài đặt thực tế về cơ chế thỏa\r\nthuận khóa, khóa bí mật dùng chung có thể là đối tượng phải xử lý thêm. Một\r\nkhóa bí mật dùng chung dẫn xuất có thể được tính theo (1) bằng cách trích trực\r\ntiếp ra các bít từ một khóa bí mật dùng chung KAB một cách\r\ntrực tiếp, hoặc theo (2) bằng cách truyền một khóa bí mật dùng chung KAB\r\nvà dữ liệu không bí mật tùy chọn khác thông qua một hàm một chiều và trích ra\r\ncác bít từ đầu ra.
\r\n\r\n3. Thông thường sẽ cần phải kiểm tra giá trị\r\nhàm nhận được F(h,g) đối với các giá trị yếu. Nếu phát hiện ra các giá\r\ntrị yếu thì giao thức sẽ bị dừng lại. Một ví dụ điển hình là cơ chế thỏa thuận\r\nkhóa Diffie-Hellman ở điều B.5 của phụ lục B.
\r\n\r\n6.1 Cơ chế thỏa thuận\r\nkhóa 1
\r\n\r\nCơ chế thỏa thuận khóa này không tương tác\r\ndùng để thiết lập một khóa bí mật dùng chung giữa hai thực thể A và B\r\ncó sự xác thực khóa ẩn lẫn nhau. Các yêu cầu sau phải được thỏa mãn:
\r\n\r\n1. Mỗi thực thể X có một khóa riêng\r\ndùng để thỏa thuận khóa là hX thuộc H và một khóa công\r\nkhai dùng để thỏa thuận khóa px = F(hx,g).
\r\n\r\n2. Mỗi thực thể có khả năng truy cập được tới\r\nbản sao có xác thực của khóa công khai dùng để thỏa thuận khóa của thực thể\r\nkia. Điều kiện này có thể đạt được bằng việc sử dụng cơ chế ở điều 8.
\r\n\r\nHình 1 - Cơ chế thỏa\r\nthuận khóa 1
\r\n\r\nKiến thiết khóa (A1): A sử dụng\r\nkhóa riêng dùng để thỏa thuận khóa hA của mình và khóa công\r\nkhai dùng để thỏa thuận khóa pB của B để tính ra khóa\r\nbí mật dùng chung:
\r\n\r\nKAB = F(hA,pB)
\r\n\r\nKiến thiết khóa (B1): B sử dụng\r\nkhóa riêng dùng để thỏa thuận khóa hB của mình và khóa công\r\nkhai dùng để thỏa thuận khóa bộ phận của A để tính toán ra khóa bí mật chia sẻ:
\r\n\r\nKAB = F(hB,pA)
\r\n\r\nNhư một hệ quả của yêu cầu 2 đối với hàm F,\r\nhai giá trị đã được tính cho khóa KAB là giống nhau.
\r\n\r\nCHÚ THÍCH: Cơ chế thỏa thuận khóa này có các\r\ntính chất sau:
\r\n\r\n1. Số lần truyền: 0. Như một hệ quả, khóa bí\r\nmật dùng chung luôn có cùng một giá trị (xem thêm chú thích 2 mục 6).
\r\n\r\n2. Xác thực khóa: Cơ chế này cung cấp tính\r\nxác thực khóa ẩn lẫn nhau.
\r\n\r\n3. Xác nhận khóa: Cơ chế này không cung cấp\r\nkhả năng xác nhận khóa.
\r\n\r\n4. Đây là một cơ chế thỏa thuận khóa vì khóa\r\nđược thiết lập là hàm một chiều của các khóa dùng để thỏa thuận khóa bí mật hA\r\ncủa thực thể A và hB của thực thể B. Tuy nhiên,\r\nmột thực thể có thể biết được khóa công khai của thực thể kia trước khi chọn\r\nkhóa bí mật cho cả hai. Để thực hiện được điều này, trong khoảng thời gian tìm\r\nra khóa công khai của thực thể kia và chọn khóa bí mật cho cả hai, một thực thể\r\ncó thể chọn ra xấp xỉ s bít từ khóa đã thiết lập, với chi phí 2s\r\ngiá trị có thể, sử dụng cho khóa dùng để thỏa thuận khóa bí mật dùng chung.
\r\n\r\n5. Ví dụ: Cơ chế thỏa thuận khóa Diffie-Hellman\r\nđược đưa ra ở điều B.5.
\r\n\r\n6.2 Cơ chế thỏa thuận\r\nkhóa 2
\r\n\r\nCơ chế thỏa thuận khóa này thiết lập một khóa\r\nbí mật dùng chung giữa 2 thực thể A và B chỉ trong một lần\r\ntruyền, có cung cấp tính xác thực khóa ẩn của B đối với A nhưng không\r\ncung cấp tính xác thực thực thể của A đối với B (B không\r\nbiết đang thiết lập khóa bí mật dùng chung với ai). Trong cơ chế thỏa thuận\r\nkhóa này, các yêu cầu sau cần phải được thỏa mãn:
\r\n\r\n1. Thực thể B có một khóa riêng dùng\r\nđể thỏa thuận khóa là hB thuộc H và một khóa công khai\r\ndùng để thỏa thuận khóa là pB = F(hB,g).
\r\n\r\n2. Thực thể A có khả năng truy cập được tới\r\nbản sao có xác thực của khóa công khai dùng để thỏa thuận khóa pB\r\ncủa B. Điều đạt được nhờ sử dụng cơ chế ở điều 8.
\r\n\r\nHình 2 - Cơ chế thỏa\r\nthuận khóa 2
\r\n\r\nKiến thiết thẻ khóa (A1): Trước tiên, A\r\nsinh ngẫu nhiên và bí mật giá trị r thuộc H, tính F(r,g)\r\nvà gửi thẻ khóa KTA1 tới B:
\r\n\r\nKTA1 =\r\nF(r,g) ||\r\nText
\r\n\r\nKiến thiết khóa (A2): Tiếp đó, A\r\ntính khóa bí mật dùng chung cho mình như sau:
\r\n\r\nKAB =\r\nF(r,pB)
\r\n\r\nKiến thiết khóa (B1): B trích giá\r\ntrị F(r,g) từ thẻ khóa KTA1 vừa nhận được và tính khóa\r\nbí mật dùng chung như sau:
\r\n\r\nKAB = F(hB,F(r,g))
\r\n\r\nTheo yêu cầu 2 của hàm F thì kết quả\r\ncủa hai giá trị tính toán tạo ra KAB ở trên là giống nhau.
\r\n\r\nCHÚ THÍCH: Cơ chế thỏa thuận khóa này có các\r\ntính chất sau:
\r\n\r\n1. Số lần chuyển: 1.
\r\n\r\n2. Xác thực khóa: Cơ chế này cung cấp tính\r\nxác thực khóa ẩn của B đối với A (B là thực thể duy nhất\r\nngoài A có thể tính được khóa bí mật dùng chung).
\r\n\r\n3. Xác nhận khóa: Cơ chế này không cung cấp\r\ntính xác nhận khóa.
\r\n\r\n4. Đây là một cơ chế thỏa thuận khóa vì khóa\r\nđược thiết lập là hàm một chiều của giá trị ngẫu nhiên r cung cấp bởi A\r\nvà khóa dùng để thỏa thuận khóa bí mật của b. Tuy nhiên, do thực thể A\r\ncó thể biết được khóa công khai của thực thể B trước khi chọn giá trị r\r\nnên A có thể chọn ra xấp xỉ s bít từ khóa đã thiết lập với chi phí 2s\r\ngiá trị có thể trong khoảng thời gian tìm ra khóa công khai của B và\r\ngửi KTA1.
\r\n\r\n5. Ví dụ: Một ví dụ cho cơ chế thỏa thuận\r\nkhóa này là cơ chế thỏa thuận khóa EIGamal mô tả ở điều B.3.
\r\n\r\n6. Sử dụng khóa: Do B nhận khóa KAB\r\ntừ thực thể không được xác thực A nên việc sử dụng an toàn KAB\r\nở đầu cuối B được giới hạn trong các chức năng không đòi hỏi tính tin\r\ncậy trong tính chất xác thực của A chẳng hạn như giải mã và tạo các mã\r\nxác thực thông điệp.
\r\n\r\n6.3 Cơ chế thỏa thuận\r\nkhóa 3
\r\n\r\nCơ chế thỏa thuận khóa này thiết lập một khóa\r\nbí mật dùng chung giữa 2 thực thể A và B bằng một lần truyền,\r\ncung cấp tính chất xác thực khóa ẩn lẫn nhau và xác thực thực thể của A\r\nđối với B. Đối với cơ chế này, các yêu cầu sau phải được thỏa mãn:
\r\n\r\n1. Thực thể A có một hệ chữ ký phi đối\r\nxứng (SA, VA).
\r\n\r\n2. Thực thể B phải truy cập được tới\r\nbản sao có xác thực của phép kiểm tra công khai VA.
\r\n\r\n3. Thực thể B có một hệ thỏa thuận\r\nkhóa (hB,pB).
\r\n\r\n4. Thực thể A có khả năng truy cập\r\nđược đến một bản sao khóa thỏa thuận khóa công khai có xác thực pB\r\ncủa thực thể B. Điều kiện này được thỏa mãn nhờ sử dụng cơ chế ở mục 8.
\r\n\r\n5. TVP: TVP có thể là một tem thời\r\ngian hoặc là số tuần tự. Nếu tem thời gian được sử dụng thì cần có sự an toàn\r\nvà đồng bộ về mặt thời gian. Nếu số tuần tự được sử dụng thì cần có khả năng\r\nduy trì và kiểm tra các bộ đếm của 2 bên.
\r\n\r\n6. Cả thực thể A và thực thể B\r\nthỏa thuận với nhau cùng sử dụng một hàm kiểm tra mật mã f (chẳng hạn\r\nnhư các hàm được quy định trong ISO/IEC 9797) và một cách kết hợp KAB\r\nnhư là khóa trong hàm kiểm tra này.
\r\n\r\nHình 3 - Cơ chế thỏa\r\nthuận khóa 3
\r\n\r\nKiến thiết khóa (A1.1): Trước hết, thực thể A\r\nsinh ngẫu nhiên và bí mật r thuộc H và tính F(r,g). Tiếp\r\nđó, A tính khóa bí mật dùng chung như sau:
\r\n\r\nKAB = F(r,pB)\r\nSử dụng khóa bí mật dùng chung KAB, A tính giá trị\r\nkiểm tra mật mã dựa trên phép nối định danh phân biệt của người gửi A và\r\nsố tuần tự hoặc tem thời gian TVP.
\r\n\r\nChữ ký thẻ khóa (A1.2): A thực hiện\r\nký giá trị kiểm tra mật mã sử dụng phép biến đổi chữ ký bí mật SA\r\ncủa mình. Sau đó A tạo thẻ khóa KTA1, bao gồm định\r\ndanh phân biệt của người gửi A, đầu vào khóa F(r,g), TVP,\r\ngiá trị kiểm tra mật mã đã được đăng ký và dữ liệu tùy chọn nào đó rồi gửi tới B:
\r\n\r\nKTA1 = A || F(r,g)\r\n|| TVP ||
\r\n\r\nSA(fKAB(IDA\r\n|| TVP))\r\n|| Text1
\r\n\r\nKiến thiết khóa (B1.1): Thực thể B\r\ntrích giá trị F(r,g) từ thẻ khóa nhận được KTA1 và\r\ntính khóa bí mật dùng chung bằng cách sử dụng khoá riêng dùng để thỏa thuận\r\nkhóa hB như sau:
\r\n\r\nKAB = F(hB,F(r,g))
\r\n\r\nSử dụng khóa bí mật dùng chung KAB\r\nB để tính giá trị kiểm tra mật mã trên định danh phân biệt của người gửi A\r\nvà TVP.
\r\n\r\nKiểm tra chữ ký (B1.2): Thực thể B sử\r\ndụng phép kiểm tra công khai VA để kiểm tra chữ ký của A\r\nbằng hàm VA, kiểm tra tính toàn vẹn cùng và nguồn gốc của thẻ\r\nkhóa đã nhận được KTA1. Sau đó, B xác nhận tính phụ\r\nthuộc vào thời gian của thẻ (bằng cách xem xét TVP).
\r\n\r\nCHÚ THÍCH: Cơ chế thỏa thuận khóa này có một\r\nsố tính chất sau:
\r\n\r\n1. Số lần chuyển: 1.
\r\n\r\n2. Xác thực khóa: Cơ chế này cung cấp tính\r\nxác thực khóa hiện của A đối với B và tính xác thực khóa ẩn của B\r\nđối với A.
\r\n\r\n3. Xác nhận khóa: Cơ chế này cung cấp tính\r\nxác nhận khóa của A đối với B.
\r\n\r\n4. Đây là cơ chế thỏa thuận khóa vì khóa được\r\nthiết lập là hàm một chiều của giá trị ngẫu nhiên r được cung cấp bởi A\r\nvà khóa riêng dùng để thỏa thuận khóa của B. Tuy nhiên, do thực thể A\r\ncó thể biết được khóa công khai của thực thể B trước khi A chọn\r\ngiá trị ngẫu nhiên r nên thực thể A có thể chọn trước khoảng s\r\nbit của khóa được thiết lập với chi phí phải sinh khoảng 2s giá\r\ntrị có thể cho r trong khoảng thời gian tìm ra khóa công khai của thực\r\nthể B và gửi KTA1.
\r\n\r\n5. TVP: cung cấp Sự xác thực thực thể\r\ncủa A đối với B và ngăn ngừa việc dùng lại thẻ khóa.
\r\n\r\n6. Ví dụ: Một ví dụ về cơ chế thỏa thuận khóa\r\ndạng này là thỏa thuận khóa Nyberg-Rueppel mô tả ở điều B.4.
\r\n\r\n7. Chứng chỉ khóa công khai: Nếu trường Text1\r\nđược sử dụng để truyền chứng khóa công khai của A thì yêu cầu thứ 2 tại\r\nphần đầu của mục này có thể được nới nhẹ rằng đòi hỏi B phải nắm giữ bản\r\nsao có xác thực của khóa kiểm tra công khai của CA.
\r\n\r\n6.4 Cơ chế thỏa thuận\r\nkhóa 4
\r\n\r\nCơ chế thỏa thuận khóa này thiết lập một khóa\r\nbí mật dùng chung giữa 2 thực thể A và B trong hai lần chuyển,\r\nkết hợp với việc kiểm soát khóa không có sự trao đổi trước thông tin về khóa.\r\nCơ chế này không cung cấp tính xác thực khóa và xác thực thực thể.
\r\n\r\nHình 4 - Cơ chế thỏa\r\nthuận khóa 4
\r\n\r\nKiến thiết thẻ khóa (A1): Thực thể sinh ra\r\nngẫu nhiên và bí mật rA thuộc H, tính F(rA,g),\r\ntạo thẻ khóa KTA1 và gửi tới B:
\r\n\r\nKTA1 = F(rA,g)\r\n|| Text1
\r\n\r\nKiến thiết thẻ khóa (B1): Thực thể B\r\nsinh ra ngẫu nhiên và bí mật rB thuộc H, tính F(rB,g),\r\nkiến thiết thẻ khóa KTB1 và gửi tới A:
\r\n\r\nKTB1 = F(rB,g)\r\n|| Text2
\r\n\r\nKiến thiết khóa (A2): Thực thể A\r\ntrích giá trị F(rB,g) từ thẻ khóa nhận được KTB1\r\nvà tính khóa bí mật dùng chung như sau:
\r\n\r\nKAB = F(rA,F(rB,g))
\r\n\r\nKiến thiết khóa (B2): Thực thể B\r\ntrích giá trị F(rA,g) từ thẻ khóa nhận được KTA1\r\nvà tính khóa bí mật dùng chung như sau:
\r\n\r\nKAB = F(rB,F(rA,g))
\r\n\r\nCHÚ THÍCH: Cơ chế thỏa thuận khóa này có các\r\ntính chất sau:
\r\n\r\n1. Số lần chuyển: 2.
\r\n\r\n2. Xác thực khóa: Cơ chế này không cung cấp\r\ntính xác thực khóa. Tuy nhiên, cơ chế này có thể hữu dụng trong các môi trường\r\nmà ở đó tính xác thực của thẻ khóa được kiểm tra bằng một phương pháp khác.\r\nChẳng hạn, một mã băm của các thẻ khóa có thể được trao đổi giữa các thực thể\r\nbằng cách sử dụng một kênh truyền thông thứ hai. Xem thêm phần Cơ chế vận\r\nchuyển khóa công khai 2.
\r\n\r\n3. Xác nhận khóa: Cơ chế này không cung cấp\r\ntính xác nhận khóa.
\r\n\r\n4. Đây là một cơ chế thỏa thuận khóa vì khóa\r\nđược thiết lập là hàm một chiều của các giá trị ngẫu nhiên rA\r\ncung cấp tương ứng bởi A và rB được cung cấp bởi B.\r\nTuy nhiên, do thực thể B có thể biết được F(rA,g) trước\r\nkhi B chọn giá trị ngẫu nhiên rB nên B có thể\r\nchọn trước khoảng s bit trong giá trị khóa đã thiết lập với chi phí khoảng 2s giá\r\ntrị có thể cho rB trong khoảng thời gian nhận KTA1\r\nvà gửi KTB1.
\r\n\r\n5. Ví dụ: Một ví dụ về cơ chế thỏa thuận khóa\r\ndạng này là thỏa thuận khóa Diffie-Hellman trình bày ở phụ lục B.5.
\r\n\r\n6.5 Cơ chế thỏa thuận\r\nkhóa 5
\r\n\r\nCơ chế thỏa thuận khóa này thiết lập một khóa\r\nbí mật dùng chung giữa 2 thực thể A và B trong hai lần truyền có\r\nsự xác thực khóa ẩn lẫn nhau và cùng kiểm soát khóa. Trong cơ chế này, các yêu\r\ncầu sau phải thỏa mãn:
\r\n\r\n1. Thực thể X có một khóa riêng dùng\r\nđể thỏa thuận khóa là hx thuộc H và một khóa công khai\r\ndùng để thỏa thuận khóa là px = F(hx,g).
\r\n\r\n2. Mỗi thực thể có khả năng truy cập được đến\r\nbản sao khóa công khai dùng để thỏa thuận khóa có xác thực của thực thể kia.\r\nĐiều kiện này có thể đạt được nhờ sử dụng cơ chế ở điều 8.
\r\n\r\n3. Cả hai thực thể thỏa thuận cùng sử dụng\r\nhàm một chiều w.
\r\n\r\nHình 5 - Cơ chế thỏa\r\nthuận khóa 5
\r\n\r\nKiến thiết thẻ khóa (A1): Thực thể A\r\nsinh ngẫu nhiên và bí mật rA thuộc H, tính F(rA,g),\r\ntạo thẻ khóa KTA1 và gửi tới B:
\r\n\r\nKTA1 = F(ra,g)\r\n|| Text1
\r\n\r\nKiến thiết thẻ khóa (B1): Thực thể B\r\nsinh ngẫu nhiên và bí mật rB thuộc H, tính F(rB,g),\r\ntạo thẻ khóa KTA1 và gửi tới A:
\r\n\r\nKTB1 = F(rB,g)\r\n|| Text2
\r\n\r\nKiến thiết khóa (B2): Thực thể B\r\ntrích lấy giá trị F(rA,g) trong thẻ khóa KTA1\r\nnhận được rồi tính khóa bí mật dùng chung như sau:
\r\n\r\nKAB = w(F(rB,F(rA,g)),F(rB,pA))
\r\n\r\nKiến thiết khóa (A2): Thực thể A\r\ntrích lấy giá trị F(rB,g) trong thẻ khóa KTB1\r\nnhận được rồi tính khóa bí mật dùng chung như sau:
\r\n\r\nKAB = w(F(rA,F(rB,g)),F(rA,pB))
\r\n\r\nCHÚ THÍCH: Cơ chế thỏa thuận khóa này có các\r\ntính chất sau đây:
\r\n\r\n1. Số lần chuyển: 2.
\r\n\r\n2. Xác thực khóa: Cơ chế này có cung cấp tính\r\nxác thực khóa ẩn lẫn nhau. Nếu trường dữ liệu Text2 chứa giá trị kiểm\r\ntra mật mã (trên dữ liệu đã biết( được tính bằng cách sử dụng khóa KAB\r\nthì cơ chế này cung cấp tính xác thực khóa tường minh của B đối với A.
\r\n\r\n3. Xác nhận khóa: Nếu trường dữ liệu Text2\r\nchứa giá trị kiểm tra mật mã (trên dữ liệu đã biết) được tính bằng cách sử\r\ndụng khóa KAB thì cơ chế trao đổi khóa này cung cấp tính xác\r\nnhận khóa của B đối với A.
\r\n\r\n4. Đây là một cơ chế thỏa thuận khóa vì khóa\r\nđược thiết lập là hàm một chiều của các giá trị ngẫu nhiên rA\r\ncung cấp tương ứng bởi A và rB cung cấp bởi B.\r\nTuy nhiên, do thực thể B có thể biết được F(rA,g) trước\r\nkhi B chọn giá trị ngẫu nhiên rB nên B có thể\r\nchọn trước khoảng s bit trong giá trị khóa đã thỏa thuận với chi phí khoảng 2s\r\ngiá trị có thể cho rB trong khoảng thời gian nhận KTA1\r\nvà gửi KTB1.
\r\n\r\n5. Ví dụ: Một ví dụ về cơ chế thỏa thuận khóa\r\ndạng này là cơ chế thỏa thuận khóa Matsumoto-Takashima-Imai A(0) sẽ được nói\r\nđến ở Phụ lục B.6. Một ví dụ khác là giao thức Goss.
\r\n\r\n6. Hàm w che giấu các đầu vào của nó theo\r\nchiều hướng từ giá trị của hàm và một trong các giá trị đầu vào sao cho không\r\nthể tính toán được các thành phần đầu vào liên quan khác. Điều này có thể thực\r\nhiện nhờ sử dụng hàm băm mô tả trong ISO/IEC 10118 (tuy nhiên không cần đến hàm\r\nbăm kháng va chạm).
\r\n\r\n7. Các chứng chỉ khóa công khai: Nếu Text1\r\nvà Text2 chứa các chứng chỉ khóa công khai của các khóa thỏa thuận khóa\r\ncủa thực thể A và B tương ứng thì yêu cầu 2 ở phần đầu của điều\r\nnày có thể được thay bằng yêu cầu rằng mỗi thực thể phải nắm giữ được bản sao\r\ncó xác thực của khóa kiểm tra công khai của CA.
\r\n\r\n6.6 Cơ chế thỏa thuận\r\nkhóa 6
\r\n\r\nCơ chế thỏa thuận khóa này thiết lập một khóa\r\nbí mật dùng chung giữa thực thể A và thực thể B trong 2 lần\r\ntruyền, có cung cấp tính xác thực khóa ẩn lẫn nhau và kiểm soát khóa chung. Cơ\r\nchế này phải sử dụng một hệ thống gồm một hệ mật phi đối xứng và một hệ chữ ký.\r\nCác yêu cầu sau cần phải thỏa mãn:
\r\n\r\n1. Thực thể A có một hệ mật phi đối\r\nxứng với các biến đổi (EA,DA).
\r\n\r\n2. Thực thể B có một hệ chữ ký phi đối\r\nxứng với các biến đổi (SB,VB).
\r\n\r\n3. Thực thể A truy cập được tới bản\r\nsao có xác thực của phép kiểm tra công khai VB của B.\r\nĐiều kiện này có thể được thỏa mãn nhờ sử dụng cơ chế ở điều 8.
\r\n\r\n4. Thực thể B truy cập được tới bản\r\nsao có xác thực của phép mã hóa hóa công khai EA của Điều\r\nkiện này có thể thực hiện được nhờ các cơ chế ở điều 8.
\r\n\r\nHình 6 - Cơ chế trao\r\nđổi khóa 6
\r\n\r\nKiến thiết thẻ khóa (A1): Thực thể A\r\nsinh ngẫu nhiên và bí mật rA, tính toàn thẻ khóa KTA1\r\nrồi gửi tới thực thể B:
\r\n\r\nKTA1 = rA ||\r\nText1
\r\n\r\nXử lý thẻ khóa (B1): Thực thể B sinh ngẫu\r\nnhiên và bí mật rB, thực hiện ký khối dữ liệu gồm định danh\r\nphân biệt của A, số ngẫu nhiên rA, số ngẫu nhiên rB\r\nvà một vài dữ liệu tùy chọn Text2 bằng cách sử dụng phép biến đổi ký\r\nbí mật SB của mình:
\r\n\r\nBS = SB(A\r\n|| rA || rB || Text2)
\r\n\r\nTiếp đó, B mã hóa khối dữ liệu gồm\r\nđịnh danh phân biệt của B (tùy chọn), khối đã được ký BS và một\r\nvài dữ liệu tùy chọn Text3 bằng cách sử dụng phép mã hóa công khai EA\r\ncủa A và gửi thẻ khóa KTB1 thu được ngược trở lại cho A:
\r\n\r\nKTB1 = EA(B ||\r\nBS || Text3) || Text4
\r\n\r\nKiến thiết khóa (B2): Khóa bí mật dùng\r\nchung bao gồm tất cả hoặc một phần chữ ký å\r\ncủa B được chứa trong khối đã ký BS (xem Chú thích 1 của Mục 4).
\r\n\r\nXử lý thẻ khóa (A2): Thực thể A sử\r\ndụng phép biến đổi giải mã bí mật DA của mình để giải mã\r\nthẻ khóa KTB1, tiếp đến kiểm tra định danh của người gửi B\r\ntheo tùy chọn rồi sử dụng phép kiểm tra công khai VB của B\r\nđể kiểm tra chữ ký số của khối đã được ký BS. Tiếp nữa, A kiểm\r\ntra định danh người nhận A và tính vững chắc của số ngẫu nhiên rA\r\ntrong khối đã ký BS rồi đem so với số ngẫu nhiên rA\r\nđược gửi đến trong thẻ KTA1. Nếu tất cả quá trình kiểm tra\r\nthành công thì thực thể A chấp nhận tất cả hoặc một phần chữ ký å của B thuộc khối đã ký BS\r\nnhư là khóa bí mật dùng chung.
\r\n\r\nCHÚ THÍCH: Cơ chế thỏa thuận khóa này có một\r\nsố tính chất sau:
\r\n\r\n1. Số lần chuyển: 2.
\r\n\r\n2. Xác thực khóa: Cơ chế này cung cấp tính\r\nxác thực khóa ẩn của A đối với B và xác thực khóa tường minh của B\r\nđối với A.
\r\n\r\n3. Xác nhận khóa: Nếu trường dữ liệu Text3\r\nchứa giá trị kiểm tra mật mã (trên dữ liệu đã biết) được tính toán bằng cách sử\r\ndụng khóa KAB thì cơ chế trao đổi khóa này cung cấp tính xác\r\nnhận khóa của B đối với A.
\r\n\r\n4. Đây là một cơ chế thỏa thuận khóa vì khóa\r\nthiết lập là hàm một chiều của các giá trị ngẫu nhiên rA của\r\nthực thể A và rB của thực thể B. Tuy nhiên, do\r\nthực thể B có thể biết được F(rA,g) trước khi B\r\nchọn giá trị ngẫu nhiên rB nên thực thể B có thể chọn\r\ntrước xấp xỉ s bít trong giá trị khóa đã thiết lập với chi phí khoảng 2s\r\ngiá trị có thể cho rB trong khoảng thời gian nhận KTA1\r\nvà gửi KTB1.
\r\n\r\n5. Ví dụ: Một ví dụ về cơ chế thỏa thuận khóa\r\ndạng này là giao thức hai lần truyền của Beller và Yacobi sẽ được nói rõ ở Phụ\r\nlục B.7.
\r\n\r\n6. Chứng chỉ khóa công khai: Nếu trường Text1\r\nvà Text4 có chứa chứng chỉ khóa công khai dùng cho khóa mã của A\r\nvà chứng chỉ khóa công khai dùng cho khóa kiểm tra của B thì yêu cầu thứ\r\n3 và 4 ở cơ chế này có thể được giảm nhẹ thành một yêu cầu rằng mỗi thực thể\r\nphải có khả năng truy cập được đến bản sao có xác thực của khóa kiểm tra công\r\nkhai cung cấp bởi CA.
\r\n\r\n7. Một đặc điểm quan trọng cơ chế này là định\r\ndanh của thực thể B có thể vẫn được giữ ở dạng nặc danh đối với các kẻ\r\nthu trộm, đây là ưu điểm rõ rệt trong môi trường mạng không dây - môi trường\r\nchính cho ứng dụng cơ chế này.
\r\n\r\n6.7 Cơ chế thỏa thuận\r\nkhóa 7
\r\n\r\nĐây là cơ chế thỏa thuận khóa dựa trên cơ chế\r\nxác thực 3 lần truyền trong chuẩn ISO/IEC 9798-3. Cơ chế này thiết lập một khóa\r\nbí mật dùng chung giữa 2 thực thể A và B trong 3 lần truyền thông\r\ntin. Trong cơ chế này, một số yêu cầu sau cần được thỏa mãn:
\r\n\r\n1. Mỗi thực thể X sử dụng một hệ chữ\r\nký (SX,VX).
\r\n\r\n2. Mỗi thực thể đều có khả năng truy cập đến\r\nbản sao có xác thực của phép kiểm tra công khai của thực thể kia. Điều kiện này\r\ncó thể thực hiện nhờ các cơ chế ở điều 8.
\r\n\r\n3. Mỗi thực thể có một hàm kiểm tra mật mã\r\nchung f.
\r\n\r\nHình 7 - Cơ chế trao\r\nđổi khóa 7
\r\n\r\nKiến thiết thẻ khóa (A1): A sinh ra một giá\r\ntrị ngẫu nhiên và bí mật rA thuộc H, tính F(rA,g),\r\nkiến thiết thẻ khóa KTA1 và gửi nó tới B:
\r\n\r\nKTA1 = FA(rA,g)\r\n|| Text1
\r\n\r\nXử lý thẻ khóa và Kiến thiết khóa (B1): B sinh ra một\r\ngiá trị ngẫu nhiên và bí mật rB thuộc H, tiếp đó tính F(rB,g)\r\nrồi tính khóa bí mật dùng chung:
\r\n\r\nKAB = F(rB,F(rA,g))
\r\n\r\nTiếp theo, B tạo nên thẻ khóa được ký\r\nnhư sau:
\r\n\r\nKTB1 = SB(DB1)\r\n|| fKAB(DB1) || Text 3
\r\n\r\ntrong đó
\r\n\r\nDB1 = F(rB,g)\r\n|| F(rA,g) || A || Text 2
\r\n\r\nvà gửi nó ngược trở lại A.
\r\n\r\nTính xác nhận khóa được cung cấp bằng việc\r\ngửi fKAB(DB1) trong thông báo KTB1.\r\nNhư một sự lựa chọn, nếu cả hai bên đều có một hệ mật đối xứng dùng chung thì\r\nsự xác nhận khóa có thể đạt được bởi thành phần mã hóa thẻ khóa như sau: thay\r\nthế KTB1 bởi F(rB,g) || EKAB(SB(DB1)).
\r\n\r\nXử lý thẻ khóa (A2): Thực thể A\r\nkiểm tra chữ ký của B trên thẻ khóa KTB1 bằng cách sử\r\ndụng khóa kiểm tra công khai của B, kiểm tra định danh phân biệt của A\r\nvà giá trị F(rA,g) đã được gửi ở bước (A1). Nếu quá trình\r\nkiểm tra thành công thì A sẽ tính khóa bí mật dùng chung là:
\r\n\r\nKAB = F(rA,F(rB,g))
\r\n\r\nThực thể A lại sử dụng khóa bí mật\r\ndùng chung KAB để kiểm tra giá trị kiểm tra mật mã fKAB(DB1).\r\nSau đó A tạo một thẻ khóa được ký như sau:
\r\n\r\nKTA2 = SA(DB2)\r\n|| fKAB(DB2) || Text5
\r\n\r\ntrong đó
\r\n\r\nDB2 = F(rA,g) || F(rB,g)\r\n|| A || Text4
\r\n\r\nvà gửi thẻ này tới thực thể B.
\r\n\r\nTính xác nhận khóa cung cấp bằng việc gửi fKAB(DB2)\r\ntrong thông báo KTA2. Như một sự lựa chọn, sự xác nhận khóa\r\ncó thể đạt được bằng thành phần mã hóa thẻ khóa như sau: thay thế KTA2\r\nbởi F(rB,g) || EKAB(SA(DB2)).
\r\n\r\nXử lý thẻ khóa (B2): Thực thể B\r\nkiểm tra chữ ký của A trên thẻ khóa KTA2 sử dụng khóa\r\nkiểm tra công khai của A, sau đó nó kiểm tra định danh phân biệt của B\r\nvà kiểm tra các giá trị F(rA,g) và F(rB,g)\r\nxem có phù hợp với các giá trị được trao đổi ở các bước trước hay không. Nếu\r\nquá trình kiểm tra thành công thì B sẽ kiểm tra giá trị kiểm tra mật mã fKAB(DB2)\r\nbằng cách tính:
\r\n\r\nKAB = F(rB,F(rA,g))
\r\n\r\nCHÚ THÍCH: Cơ chế thỏa thuận khóa này có các\r\ntính chất sau:
\r\n\r\n1. Số lần chuyển: 3
\r\n\r\n2. Xác thực thực thể và xác thực khóa: Cơ chế\r\nnày cung cấp tính xác thực khóa tường minh và xác thực thực thể lẫn nhau.
\r\n\r\n3. Xác nhận khóa: Cơ chế này cung cấp tính\r\nxác nhận khóa cho cả hai bên.
\r\n\r\n4. Đây là một cơ chế thỏa thuận khóa bởi vì\r\nkhóa được thiết lập là hàm một chiều của các giá trị ngẫu nhiên rA\r\ncung cấp bởi thực thể A và rB được cung cấp bởi thực thể B.\r\nTuy nhiên, do thực thể B có thể biết giá trị F(rA,g)\r\ntrước khi chọn giá trị rB vì thế thực thể B có thể lựa chọn\r\nxấp xỉ s bit trong khóa đã thiết lập với chi phí khoảng 2s giá trị\r\ncó thể cho rB trong khoảng thời gian từ khi B nhận KTA2\r\nvà gửi KTB1.
\r\n\r\n5. Ví dụ: Một ví dụ về cơ chế thỏa thuận khóa\r\ndạng này là cơ chế Diffie-Hellman mô tả ở Phụ lục B và một cơ chế chữ ký số mô\r\ntả trong ISO/IEC 9796.
\r\n\r\n6. Phù hợp tiêu chuẩn: Cơ chế này phù hợp với\r\nISO/IEC 9798-3, Entity authentication using a public key algorithm (Xác thực\r\nthực thể sử dụng thuật toán khóa công khai). KTA1, KTB1\r\nvà KTA2 là giống hệt nhau trong các thẻ gửi đến ở ba lần\r\ntruyền của cơ chế xác thực mô tả ở mục 5.2.2 trong ISO/IEC 9798-3. Các trường\r\ndữ liệu cũng đồng nhất các thay đổi sau về việc sử dụng:
\r\n\r\na. Trường dữ liệu RA (trình\r\nbày trong cả ba thẻ ở điều 5.2.2 của ISO/IEC 9798-3) biến đổi thành giá trị hàm\r\nngẫu nhiên F(rB,g).
\r\n\r\nb. Trường dữ liệu RB (trình\r\nbày trong cả ba thẻ ở điều 5.2.2 của ISO/IEC 9798-3) biến đổi thành giá trị hàm\r\nngẫu nhiên F(rB,g).
\r\n\r\n7. Chứng chỉ khóa công khai: Nếu trường dữ\r\nliệu Text1 và Text3 (hoặc Text5 và Text3) chứa\r\nchứng chỉ số của thực thể A và B thì yêu cầu 2 của mục này có thể\r\nđược giảm nhẹ và chỉ đòi hỏi rằng tất cả các thực thể phải có bản sao được xác\r\nthực khóa kiểm tra công khai cung cấp bởi CA.
\r\n\r\n8. Phép biến đổi ký: Nếu một cơ chế chữ ký số\r\ncó băm văn bản thì F(rA,g) và/hoặc F(rB,g)\r\nkhông cần được gửi kèm trong thẻ khóa KTB1. Tương tự, F(rA,g)\r\nvà F(rB,g) cũng không được gửi kèm trong thẻ KTA2.\r\nTuy nhiên, phải đảm bảo rằng các số ngẫu nhiên phải được bao gồm trong quá\r\ntrình tính toán chữ ký.
\r\n\r\n\r\n\r\nTiêu chuẩn này sẽ trình bày về các cơ chế vận\r\nchuyển một khóa bí mật được chọn bởi một thực thể (hoặc chọn bởi trung tâm tin\r\ncậy) cho một thực thể khác với sự bảo vệ thích hợp bằng kỹ thuật phi đối xứng.
\r\n\r\nCHÚ THÍCH: Trong thực tế thực thi các cơ chế\r\nvận chuyển khóa, một khối dữ liệu khóa có thể là đối tượng cần được xử lý trước\r\nkhi tiến hành mã hóa. Chẳng hạn, một khối dữ liệu khóa có thể được áp dụng phép\r\nXOR với một mẫu bit (giả) ngẫu nhiên để hủy bỏ bất cứ cấu trúc bên ngoài nào\r\ncủa khối dữ liệu khóa.
\r\n\r\n7.1 Cơ chế vận chuyển\r\nkhóa 1
\r\n\r\nCơ chế vận chuyển khóa này thực hiện truyền\r\nmột lần một khóa bí mật từ thực thể A đến thực thể B có cung cấp\r\ntính xác thực khóa ẩn của B đối với A. Các yêu cầu sau cần được\r\nthỏa mãn:
\r\n\r\n1. Thực thể B có một hệ mật phi đối\r\nxứng (EB,DB).
\r\n\r\n2. Thực thể A có khả năng truy cập\r\nđược đến bản sao có xác thực của phép mã hóa công khai của B. Điều kiện\r\nnày có thể thực hiện được nhờ việc sử dụng các cơ chế ở mục 8.
\r\n\r\n3. Một giá trị TVP tùy ý có thể là một\r\ntem thời gian hoặc một số tuần tự được sử dụng. Nếu tem thời gian được sử dụng\r\nthì thực thể A và thực thể B cần duy trì sự đồng bộ về thời gian\r\nhoặc sử dụng một tem thời gian cung cấp bởi bên thứ ba tin cậy. Nếu số tuần tự\r\nđược sử dụng thì A và B phải cùng duy trì một bộ đếm.
\r\n\r\nHình 8 - Cơ chế vận\r\nchuyển khóa 1
\r\n\r\nKiến thiết thẻ khóa (A1): A có một\r\nkhóa K và muốn chuyển giao nó một cách an toàn đến B. Trước tiên,\r\nA kiến tạo một khối dữ liệu khóa bao gồm định danh riêng biệt của nó\r\n(không bắt buộc), khóa K, một giá trị TVP và trường dữ liệu tùy ý\r\nText1. Tiếp đó A mã hóa khối dữ liệu khóa sử dụng phép mã hóa\r\ncông khai của bên nhận EB và gửi thẻ khóa sang cho B:
\r\n\r\nKTA1 = EB(A || K || TVP\r\n|| Text1) || Text2
\r\n\r\nKiến tạo lại thẻ khóa (B1): B nhận được\r\nthẻ khóa KTA1 sẽ tiến hành giải mã bằng cách sử dụng phép\r\ngiải mã bí mật DB của chính nó. Tiếp đó, phục hồi lại khóa K,\r\nkiểm tra giá trị TVP tùy ý và kết hợp khóa K phục hồi được với\r\nbên truyền A.
\r\n\r\nCHÚ THÍCH: Cơ chế vận chuyển khóa này có các\r\ntính chất sau:
\r\n\r\n1. Số lần truyền: 1.
\r\n\r\n2. Xác thực khóa: Cơ chế này cung cấp việc\r\nxác thực khóa ẩn của B đối với A bởi vì chỉ có B mới có khả\r\nnăng phục hồi lại khóa K.
\r\n\r\n3. Xác nhận khóa: Cơ chế này không cung cấp\r\ntính xác nhận khóa.
\r\n\r\n4. Kiểm soát khóa: A có thể lựa chọn khóa.
\r\n\r\n5. TVP: Một giá trị TVP tùy ý\r\nđược sử dụng để ngăn ngừa việc dùng lại thẻ khóa.
\r\n\r\n6. Cách sử dụng khóa: Khi B nhận một\r\nkhóa K từ một thực thể không được xác thực A, để sử dụng an toàn\r\nkhóa K thì B sẽ hạn chế sử dụng cho các hàm không yêu cầu phải\r\nxác thực A như hàm giải mã và hàm tạo các mã xác thực thông điệp.
\r\n\r\n7. Ví dụ: Một ví dụ về cơ chế vận chuyển khóa\r\ndạng này là vận chuyển khóa EIGamal sẽ được mô tả ở điều B.8. Một ví dụ khác là\r\ncơ chế vận chuyển khóa RSA sẽ được mô tả ở điều B.10.
\r\n\r\n7.2 Cơ chế vận chuyển\r\nkhóa 2
\r\n\r\nCơ chế vận chuyển khóa này là một mở rộng của\r\ncơ chế xác thực thực thể một lần truyền trong ISO/IEC 9798-3. Nó truyền một\r\nkhóa bí mật được mã hóa và ký từ một thực thể A đến một thực thể B\r\ncó cung cấp tính xác thực khóa ẩn từ A đối với B. Đối với cơ chế\r\nnày, các yêu cầu sau cần được thỏa mãn:
\r\n\r\n1. Thực thể A có một hệ chữ ký phi đối\r\nxứng (SA,VA).
\r\n\r\n2. Thực thể B có một hệ mã hóa phi đối\r\nxứng (EB,DB).
\r\n\r\n3. Thực thể A phải truy cập được đến\r\nbản sao có xác thực của phép mã hóa công khai EB của B.
\r\n\r\nĐiều kiện này có thể đạt được nhờ sử dụng các\r\ncơ chế ở điều 8.
\r\n\r\n4. Thực thể B phải truy cập được vào\r\nbản sao có xác thực của phép kiểm tra công khai VA của A.\r\nĐiều kiện này có thể đạt được nhờ sử dụng các cơ chế ở điều 8.
\r\n\r\n5. Cần có một giá trị TVP tùy ý có thể\r\nlà một tem thời gian hoặc một số tuần tự. Nếu tem thời gian được sử dụng thì\r\nthực thể A và thực thể B cần duy trì sự đồng bộ về thời gian hoặc\r\nsử dụng một tem thời gian cung cấp bởi bên thứ ba tin cậy. Nếu số tuần tự được\r\nsử dụng thì A và B phải cùng duy trì một bộ đếm.
\r\n\r\nHình 9 - Cơ chế vận\r\nchuyển khóa 2
\r\n\r\nMã hóa khóa (A1.1): A có một khóa\r\nK và muốn chuyển giao nó một cách an toàn sang cho B. Trước tiên,\r\nA tạo ra một khối dữ liệu khóa bao gồm định danh riêng biệt của bên gửi A,\r\nkhóa K và trường dữ liệu tùy chọn Text1. Sau đó A mã hóa\r\nkhối dữ liệu khóa này bằng phép mã hóa công khai EB của B\r\nđể tạo thành một khối đã mã như sau:
\r\n\r\nBE = EB(A\r\n|| K || Text1)
\r\n\r\nKiến thiết thẻ khóa (A1.2): A tạo ra khối\r\ndữ liệu thẻ bao gồm định danh riêng biệt bên nhận B, một tem thời gian\r\nhoặc số tuần tự TVP, khối mã BE và trường dữ liệu tùy chọn Text2.\r\nTiếp đó, A ký khối dữ liệu thẻ này bằng phép ký bí mật SA\r\ncủa mình và gửi thẻ khóa kết quả sang cho B:
\r\n\r\nKTA = SA(B\r\n|| TVP || BE || Text2) || Text 3
\r\n\r\nKiểm tra thẻ khóa (B1.1): B sử dụng\r\nphép kiểm tra công khai của bên gửi VA để kiểm tra thẻ khóa\r\nnhận được KTA. Tiếp đó, B kiểm tra định danh bên nhận\r\nB và giá trị TVP.
\r\n\r\nGiải mã khóa (B1.2): B tiến hành\r\ngiải mã khối BE bằng phép giải mã bí mật DE của mình.\r\nTiếp đó so sánh trường định danh A trong khối BE với định danh\r\ncủa thực thể đã ký. Nếu tất cả kiểm tra đều thành công thì B chấp nhận\r\nkhóa K.
\r\n\r\nCHÚ THÍCH: Cơ chế vận chuyển khóa này có các\r\ntính chất sau:
\r\n\r\n1. Số lần truyền: 1.
\r\n\r\n2. Xác thực khóa và xác thực thực thể: Cơ chế\r\nnày cung cấp tính xác thực thực thể của A đối với B nếu trường\r\ntùy chọn TVP được sử dụng. Ngoài ra, cơ chế này còn cung cấp tính xác\r\nthực khóa ẩn của B đối với A.
\r\n\r\n3. Xác nhận khóa: Có sự xác nhận khóa của\r\nA đối với B. B có thể đảm bảo rằng nó chia sẻ chính xác khóa\r\nvới A nhưng A thì chỉ có thể đảm bảo rằng B thực sự nhận\r\nđược khóa sau khi có sự phản hồi khẳng định từ B.
\r\n\r\n4. Kiểm soát khóa: A có thể lựa chọn khóa.
\r\n\r\n5. TVP (tùy chọn): Cung cấp sự xác\r\nthực thực thể của A đối với B và ngăn ngừa việc dùng lại thẻ\r\nkhóa. Để ngăn ngừa việc dùng lại khối dữ liệu khóa BS thì một giá trị TVP\r\nthêm vào có thể cũng được bao gồm trong Text1.
\r\n\r\n6. Trường dữ liệu A: Định danh riêng\r\nbiệt của A được bao gồm trong khối mã hóa BE giúp chống lại việc A\r\nbị lộ khối khóa mã khi sử dụng bởi thực thể khác. Điều này có thể thực hiện\r\nbằng việc so sánh định danh của A với chữ ký của A trên thẻ.
\r\n\r\n7. Phù hợp tiêu chuẩn: Cơ chế này phù hợp với\r\ntiêu chuẩn ISO/IEC 9798-3, Entity authentication using a public key\r\nalgorithm (Xác thực thực thể sử dụng thuật toán khóa công khai. KTA1\r\nphù hợp với thẻ được gửi một lần với cơ chế xác thực mô tả ở điều 5.1.1\r\ncủa ISO/IEC 9798-3. Thẻ này giúp điều chỉnh việc vận chuyển khóa K thông\r\nqua sử dụng trường dữ liệu tùy chọn: Text1 được thay thế bằng BE\r\n|| Text2.
\r\n\r\n8. Chứng chỉ khóa công khai: Trường dữ liệu Text3\r\ncó thể được sử dụng để phân phối chứng chỉ khóa công khai của thực thể A.\r\nVì thế, yêu cầu 4 của mục này có thể được giảm nhẹ và chỉ đòi hỏi rằng thực thể\r\nB phải có khả năng sở hữu một bản sao chứng chỉ của khóa kiểm tra công\r\nkhai cung cấp bởi CA.
\r\n\r\n9. Xác thực thực thể lẫn nhau và kiểm soát\r\nkhóa chung: Nếu hai bước thực thi của cơ chế vận chuyển khóa này được kết hợp\r\nvới nhau (A đến B và B đến A) thì việc xác thực\r\nthực thể lẫn nhau và cùng kiểm soát khóa có thể được cung cấp (phụ thuộc vào\r\nviệc có sử dụng trường TVP hay không).
\r\n\r\n10. Cách sử dụng: Cơ chế vận chuyển khóa này\r\nhướng đến sử dụng cho các môi trường mà tính bí mật của các thành phần thông\r\nđiệp là cần thiết. Chẳng hạn, thông điệp có chứa nhiều phần tử không bí mật\r\ncũng như các khóa mã.
\r\n\r\n11. Ví dụ: Các ví dụ về cơ chế này được mô tả\r\nở điều B.9 và C.7.
\r\n\r\n7.3 Cơ chế vận chuyển\r\nkhóa 3
\r\n\r\nCơ chế vận chuyển khóa này thực hiện truyền\r\nmột lần một khóa mã được ký và mã hóa từ thực thể A đến thực thể B\r\nvới sự xác thực khóa một bên. Các yêu cầu sau cần được thỏa mãn:
\r\n\r\n1. Thực thể A có một hệ chữ ký phi đối\r\nxứng (SA,VA).
\r\n\r\n2. Thực thể B có một hệ mật phi đối\r\nxứng (EB,DB).
\r\n\r\n3. Thực thể A phải truy cập được vào\r\nbản sao có xác thực của phép mã hóa công khai EB của B.\r\nĐiều kiện này có thể đạt được nhờ sử dụng các cơ chế ở điều 8.
\r\n\r\n4. Thực thể B phải truy cập được vào\r\nbản sao có xác thực của phép kiểm tra công khai VA của A.\r\nĐiều kiện này có thể đạt được nhờ sử dụng các cơ chế ở điều 8.
\r\n\r\n5. Cần có một giá trị TVP tùy ý có thể\r\nlà một tem thời gian hoặc một số tuần tự. Nếu tem thời gian được sử dụng thì\r\nthực thể A và thực thể B cần duy trì sự đồng bộ về thời gian hoặc\r\nsử dụng một tem thời gian cung cấp bởi bên thứ ba tin cậy. Nếu số tuần tự được\r\nsử dụng thì A và B phải cùng duy trì một bộ đếm.
\r\n\r\nHình 10 - Cơ chế vận\r\nchuyển khóa 3
\r\n\r\nChữ ký khối khóa (A1.1): A có một khóa\r\nK và muốn truyền bí mật khóa này sang cho B. Trước hết A\r\ntạo ra một khối dữ liệu khóa bao gồm định danh riêng biệt của bên nhận B,\r\nkhóa K, một số tuần tự hoặc tem thời gian TVP và một vài dữ liệu\r\ntùy chọn khác. Tiếp đó A ký khối khóa này sử dụng phép ký bí mật SA\r\ncủa mình để thu được khối đã ký BS:
\r\n\r\nBS = SA (B\r\n|| K || TVP || Text1)
\r\n\r\nKiến tạo thẻ khóa (A1.2): A tạo ra một\r\nkhối dữ liệu thẻ bao gồm khối đã ký BS và một số giá trị tùy chọn Text2.\r\nTiếp đó A mã hóa khối dữ liệu thẻ khóa này sử dụng phép mã hóa công khai\r\nEB của bên nhận và gửi kết quả sang cho B:
\r\n\r\nKTA1 = EB (BS\r\n|| Text2) || Text3
\r\n\r\nGiải mã thẻ khóa (B1.1): B giải mã thẻ\r\nkhóa KTA1 nhận được sử dụng phép giải mã bí mật DB\r\ncủa mình.
\r\n\r\nKiểm tra khối khóa (B1.2): B sử dụng\r\nphép kiểm tra công khai VA của bên gửi để kiểm tra tính toàn\r\nvẹn và nguồn gốc của BS. B xác nhận rằng B đúng là người\r\nnhận thẻ (với sự thẩm tra định danh B) và rằng (tùy ý) thẻ đã được gửi\r\ntheo thời gian xác định (bằng việc thẩm tra TVP). Nếu sự xác nhận thành\r\ncông thì B sẽ chấp nhận khóa K.
\r\n\r\nCHÚ THÍCH: Cơ chế vận chuyển khóa này có các\r\ntính chất sau:
\r\n\r\n1. Số lần truyền của giao thức 1.
\r\n\r\n2. Xác thực khóa và xác thực thực thể: Cơ chế\r\nnày cung cấp việc xác thực thực thể của A đối với B nếu trường\r\ntùy chọn TVP được sử dụng và cung cấp sự xác thực khóa ẩn của B\r\nđối với A.
\r\n\r\n3. Xác nhận khóa: Có sự xác nhận khóa của A\r\nđối với B. B có thể đảm bảo rằng nó chia sẻ chính xác khóa với A\r\nnhưng A chỉ có thể đảm bảo rằng B thực sự nhận được khóa sau khi\r\ncó sự phản hồi khẳng định từ B.
\r\n\r\n4. Kiểm soát khóa: A có thể lựa chọn\r\nkhoá.
\r\n\r\n5. TVP (tùy chọn): Cung cấp tính xác\r\nthực thực thể của A đối với B và ngăn ngừa việc dùng lại thẻ\r\nkhóa.
\r\n\r\n6. Trường dữ liệu B: Định danh riêng\r\nbiệt của B được bao gồm trong khối mã hóa BS giúp chỉ ra cụ thể\r\nbên nhận khóa vì thế chống được việc sử dụng sai khối đã ký BS bởi B.
\r\n\r\n7. Các chứng chỉ khóa công khai: Trường dữ\r\nliệu Text3 có thể được sử dụng để phân phối chứng chỉ khóa công khai của\r\nthực thể A. Vì thế, yêu cầu 4 của mục này có thể được giảm nhẹ rằng chỉ\r\nyêu cầu thực thể B có được một bản sao chứng chỉ của khóa kiểm tra công\r\nkhai cung cấp bởi CA.
\r\n\r\n8. Xác thực thực thể lẫn nhau và kiểm soát\r\nkhóa chung: Nếu hai bước thực thi của cơ chế vận chuyển khóa này được kết hợp\r\nvới nhau (A đến B và B đến A) thì việc xác thực\r\nthực thể lẫn nhau và cùng kiểm soát khóa có thể được cung cấp (phụ thuộc vào\r\nviệc có sử dụng trường TVP hay không).
\r\n\r\n7.4 Cơ chế vận chuyển\r\nkhóa 4
\r\n\r\nCơ chế vận chuyển khóa này dựa trên cơ chế\r\nxác thực hai lần truyền trong ISO/IEC 9798-3 dùng để truyền một khóa bí mật từ\r\nthực thể B đến thực thể A. Các yêu cầu sau cần được thỏa mãn:
\r\n\r\n1. Thực thể A có một hệ mật phi đối\r\nxứng (EA,DA).
\r\n\r\n2. Thực thể B có một hệ chữ ký phi đối\r\nxứng (SB,VB).
\r\n\r\n3. Thực thể A phải truy cập được vào\r\nbản sao có xác thực của phép kiểm tra công khai VB của B.\r\nĐiều kiện này có thể đạt được nhờ sử dụng các cơ chế ở mục 8.
\r\n\r\n4. Thực thể B phải truy cập được vào\r\nbản sao có xác thực của phép mã hóa công khai EA của A.\r\nĐiều này có thể đạt được nhờ sử dụng các cơ chế ở mục 8.
\r\n\r\nKiến tạo thẻ khóa (A1): A tạo ra một\r\nthẻ khóa KTA1 bao gồm một số ngẫu nhiên rA\r\nvà một trường dữ liệu tùy chọn Text1:
\r\n\r\nKTA1 = rA || Text1
\r\n\r\nVà gửi cho B.
\r\n\r\nMã hóa khối khóa (B1.1): B có một khóa\r\nK muốn gửi an toàn cho A. Trước hết B tạo ra khối dữ liệu\r\nkhóa bao gồm định danh riêng biệt của bên gửi B, khóa K và trường\r\ndữ liệu tùy chọn Text2. B mã hóa khối dữ liệu khóa này bằng phép\r\nmã công khai EA của A để được một khối mã:
\r\n\r\nBE = EA(B || K || Text\r\n2)
\r\n\r\nKiến tạo thẻ khóa (B1.2): B tạo ra một\r\nkhối thẻ khóa bao gồm định danh riêng biệt của bên nhận A, số ngẫu nhiên\r\nrA nhận được ở bước 1, số ngẫu nhiên mới rB (tùy\r\nchọn), khối đã mã BE và một trường dữ liệu tùy chọn Text3. Tiếp\r\nđó, B tiến hành ký khối dữ liệu thẻ khóa này bằng phép ký bí mật của\r\nmình và gửi kết quả cho A:
\r\n\r\nKTB1 = SB(A\r\n|| rA || rB || BE || Text3)\r\n|| Text4
\r\n\r\nKiểm tra thẻ khóa (A2.1): A sử dụng phép kiểm tra\r\ncông khai của bên gửi VB để kiểm tra chữ ký của thẻ khóa nhận\r\nđược KTB1. Tiếp đó A kiểm tra định danh riêng biệt A\r\nvà kiểm tra giá trị nhận được rA xem có khớp với số ngẫu\r\nnhiên ở bước 1 (A1) hay không.
\r\n\r\nGiải mã khối khóa (A2.2): A tiến hành giải mã\r\nkhối BE bằng phép giải mã bí mật của mình. Tiếp đó, A kiểm tra\r\nđịnh danh riêng biệt của bên gửi B. Nếu tất cả kiểm tra đều thành công\r\nthì A chấp nhận khóa K.
\r\n\r\nHình 11 - Cơ chế vận\r\nchuyển khóa 4
\r\n\r\nCHÚ THÍCH: Cơ chế vận chuyển khóa này có các\r\ntính chất sau:
\r\n\r\n1. Số lần truyền: 2.
\r\n\r\n2. Xác thực khóa và xác thực thực thể: Cơ chế\r\nnày cung cấp sự xác thực thực thể của B đối với A và xác thực\r\nkhóa ẩn của A đối với B.
\r\n\r\n3. Xác nhận khóa: Có sự xác nhận khóa của B\r\nđối với A. A có thể đảm bảo rằng nó chia sẻ chính xác một khóa K\r\nvới B nhưng B chỉ có thể đảm bảo rằng A nhận được hoàn\r\ntoàn khóa sau khi nó có được thông điệp an toàn xác nhận từ A.
\r\n\r\n4. Kiểm soát khóa: B có thể lựa chọn\r\nkhóa.
\r\n\r\n5. Tiêu chuẩn: Phù hợp với ISO/IEC 9798-3, Entity\r\nauthentication using a public key algorithm (Xác thực thực thể sử dụng thuật\r\ntoán khóa công khai). Thẻ KTA1 và KTB1\r\ntương thích với các thẻ được gửi trong cơ chế xác thực hai lần truyền ở điều\r\n5.1.2 của ISO/IEC 9798-3 (chú thích rằng các vai trò của A và B\r\nđược biến đổi cho nhau). Thẻ KTB1 cung cấp một khóa K\r\nthông qua việc sử dụng trường dữ liệu tùy chọn Text2 có thể thay thế\r\nbằng BE || Text3.
\r\n\r\n6. Phù hợp tiêu chuẩn: Nếu cơ chế vận chuyển\r\nkhóa này thực thi song song hai lần giữa hai thực thể thì kết quả thu được của\r\ncơ chế thỏa thuận khóa lẫn nhau là phù hợp với cơ chế được mô tả trong điều\r\n5.2.3 của ISO/IEC 9798-3, Two pass parallel authentication (Xác thực song\r\nsong hai lần truyền).
\r\n\r\n7. Trường dữ liệu rB:\r\nTrường này trình bày để tương thích với ISO/IEC 9798-3. Do đã bao gồm BE\r\ntrong KTB1 nên trường rB không cần thiết phải\r\ncó và vì thế nó là tùy chọn trong cơ chế này.
\r\n\r\n8. Xác thực thực thể lẫn nhau và dùng chung\r\nkhóa: Nếu hai thực thi cơ chế vận chuyển khóa này được kết hợp với nhau (từ A\r\nđến B và từ B đến A) thì sự xác thực thực thể lẫn nhau và\r\ndùng chung khóa được cung cấp.
\r\n\r\n7.5 Cơ chế vận chuyển\r\nkhóa 5
\r\n\r\nCơ chế vận chuyển khóa này dựa trên cơ chế\r\nxác thực ba lần truyền của ISO/IEC 9798-3 dùng để truyền hai khóa bí mật qua ba\r\nlần vận chuyển, có cung cấp tính xác thực thực thể lẫn nhau và xác nhận khóa.\r\nMột khóa được truyền từ thực thể A đến thực thể B và một khóa\r\nđược truyền từ thực thể B đến thực thể A. Các yêu cầu sau cần\r\nphải được thỏa mãn:
\r\n\r\n1. Mỗi thực thể X phải có một hệ chữ\r\nký phi đối xứng (SX,VX).
\r\n\r\n2. Mỗi thực thể X phải có một hệ mật\r\nphi đối xứng (EX,DX).
\r\n\r\n3. Mỗi thực thể đều có thể truy cập được vào\r\nbản sao có xác thực của phép kiểm tra công khai của thực thể kia. Điều kiện này\r\ncó thể thực hiện được nhờ sử dụng các cơ chế ở điều 8.
\r\n\r\n4. Mỗi thực thể có thể truy cập được vào bản\r\nsao có xác thực của phép mã hóa công khai của thực thể kia. Điều này có thể\r\nthực hiện được nhờ sử dụng các cơ chế ở điều 8.
\r\n\r\nKiến thiết thẻ khóa (A1): A tạo ra một\r\nthẻ khóa KTA1 bao gồm một số ngẫu nhiên rA\r\nvà một trường dữ liệu tùy chọn Text1 rồi gửi nó cho B:
\r\n\r\nKTA1 = rA\r\n|| Text1
\r\n\r\nMã khóa khối khóa (B1.1): B có một khóa\r\nKB muốn gửi an toàn cho A. Trước hết B tạo ra\r\nkhối dữ liệu khóa bao gồm định danh riêng biệt của bên gửi B, khóa KB\r\nvà trường dữ liệu tùy chọn Text2. B mã hóa khối dữ liệu khóa này\r\nbằng phép mã công khai EA của A để được một khối mã:
\r\n\r\nBE1 = EA(B\r\n|| KB || Text2)
\r\n\r\nKiến thiết thẻ khóa (B1.2): B tạo ra một\r\nkhối thẻ khóa bao gồm định danh riêng biệt của bên nhận A, một số ngẫu\r\nnhiên rA nhận được ở bước 1, một số ngẫu nhiên mới rB\r\n(tùy chọn) do B tạo ra, khối đã mã BE1 và một trường\r\ndữ liệu tùy chọn Text3. Tiếp đó, B tiến hành ký khối dữ liệu thẻ\r\nbằng phép ký bí mật của mình và gửi kết quả cho A:
\r\n\r\nKTB1 = SB(rB\r\n|| rA || A || BE1 || Text3)\r\n|| Text4
\r\n\r\nKiểm tra thẻ khóa (A2.1): A sử dụng phép kiểm\r\ntra công khai của bên gửi VB để kiểm tra chữ ký số của thẻ\r\nkhóa nhận được KTB1. Tiếp đó A kiểm tra định danh\r\nriêng biệt A và kiểm tra giá trị nhận được rA xem có\r\nkhớp với số ngẫu nhiên ở bước 1 (A1) hay không.
\r\n\r\nGiải mã khối khóa (A2.2): A tiến hành\r\ngiải mã khối BE1 bằng phép giải mã bí mật DA\r\ncủa mình. Tiếp đó, A kiểm tra định danh riêng biệt của bên gửi B.\r\nNếu tất cả kiểm tra đều thành công thì A chấp nhận khóa KB.
\r\n\r\nMã khóa khối khóa (A2.3): A có một khóa\r\nKA muốn gửi an toàn cho B. Trước hết, A tạo ra\r\nkhối dữ liệu khóa bao gồm định danh riêng biệt của bên gửi A, khóa KA\r\nvà trường dữ liệu tùy chọn Text5. Tiếp đến, A mã hóa khối dữ\r\nliệu khóa này bằng phép mã công khai EB của B để được\r\nmột khối mã:
\r\n\r\nBE2 = EB(A\r\n|| KA || Text5)
\r\n\r\nKiến thiết thẻ khóa (A2.4): A tạo ra một\r\nkhối thẻ khóa bao gồm định danh riêng biệt của bên nhận B, một số ngẫu\r\nnhiên rA do A tạo ra bước 1 (A1), một số ngẫu nhiên\r\nmới rB do B tạo ra ở (B1.2), khối đã mã BE2\r\nvà một trường dữ liệu tùy chọn Text6. Tiếp đó, A tiến hành ký\r\nkhối dữ liệu thẻ bằng phép ký bí mật của mình và gửi kết quả cho B:
\r\n\r\nKTA2 = SA(rA\r\n|| rB || B || BE2 || Text6)\r\n|| Text7
\r\n\r\nHình 12 - Cơ chế vận\r\nchuyển khóa 5
\r\n\r\nKiểm tra thẻ khóa (B2.1): B nhận được KTA2\r\nsử dụng phép kiểm tra công khai của bên gửi VA để kiểm tra\r\nchữ ký số của thẻ khóa nhận được KTA2. Tiếp đó B kiểm\r\ntra định danh riêng biệt B của mình và kiểm tra giá trị nhận được rB\r\nxem có khớp với số ngẫu nhiên ở bước (B1.2) hay không. Ngoài ra, B cũng\r\nkiểm tra giá trị ngẫu nhiên nhận được rA xem có khớp với số\r\nngẫu nhiên ở bước (A1) hay không.
\r\n\r\nGiải mã khối khóa (B2.2): B tiến hành\r\ngiải mã khối BE2 bằng phép giải mã bí mật DB của\r\nmình. Tiếp đó, B kiểm tra định danh riêng biệt của bên gửi A. Nếu\r\ntất cả kiểm tra điều thành công thì B chấp nhận khóa KA.
\r\n\r\nCHÚ THÍCH: Cơ chế vận chuyển khóa này có các\r\ntính chất sau:
\r\n\r\n1. Số lần truyền: 3.
\r\n\r\n2. Xác thực khóa và xác thực thực thể: Cơ chế\r\nnày cung cấp sự xác thực thực thể lẫn nhau, cung cấp xác thực khóa ẩn KA\r\ncủa B đối với A và xác thực khóa ẩn KB của A\r\nđối với B.
\r\n\r\n3. Xác nhận khóa: Cơ chế này cung cấp tính\r\nxác nhận khóa từ bên gửi đến bên nhận đối với cả hai khóa KA\r\nvà KB. Nếu A bao gồm giá trị kiểm tra mật mã Text6\r\nvà KB vào KTA2 thì cơ chế này cung cấp sự\r\nxác thực khóa lẫn nhau đối với KB.
\r\n\r\n4. Kiểm soát khóa: A có thể lựa chọn\r\nkhóa KA, khi đó A là thực thể khởi tạo. Tương tự, B\r\ncó thể lựa chọn thực thể khóa KB, khi đó B lại là\r\nthực thể khởi tạo. Việc kiểm soát khóa chung có thể thực hiện bởi mỗi thực thể\r\nbằng cách kết hợp hai khóa KA và KB của hai\r\nbên thành một khuôn dạng khóa bí mật dùng chung duy nhất KAB.\r\nTuy nhiên, hàm kết hợp phải là một chiều, ngoài ra, A phải là bên lựa\r\nchọn khóa. Cơ chế này có thể xem như là một cơ chế thỏa thuận khóa.
\r\n\r\n5. Phù hợp tiêu chuẩn: Cơ chế này phù hợp với\r\nISO/IEC 9798-3, Entity authentication using a public key algorithm (Xác thực\r\nthực thể sử dụng thuật toán khóa công khai). Các thẻ KTA1,\r\nKTB1 và KTA2 tương thích với các thẻ được gửi\r\ntrong cơ chế xác thực ba lần truyền ở điều 5.2.2 của ISO/IEC 9798-3. Thẻ KTB1\r\ncó thể cung cấp một khóa KB thông qua việc sử dụng trường dữ\r\nliệu tùy chọn Text2 có thể thay thế bằng BE1 || Text3.\r\nThẻ KTA2 có thể cung cấp một khóa KA thông\r\nqua việc sử dụng trường dữ liệu tùy chọn Text4 có thể thay thế bằng Be2\r\n|| Text6. Thẻ thứ ba cũng có thể bao gồm một giá trị kiểm tra mật mã\r\nText6.
\r\n\r\n6. Chứng chỉ khóa công khai: Nếu mỗi trường\r\ndữ liệu Text1 và Text4 (hoặc Text7 và Text4) đều\r\nbao gồm chứng chỉ khóa công khai của A và B thì các yêu cầu 3 và\r\n4 ở điều này có thể làm giảm nhẹ với yêu cầu rằng tất cả thực thể đều phải truy\r\ncập được đến bản sao có xác thực của khóa kiểm tra công khai cung cấp bởi CA.
\r\n\r\n7. Phép biến đổi ký: Nếu một cơ chế chữ ký số\r\ncó băm văn bản được sử dụng thì số ngẫu nhiên tùy chọn rA\r\nkhông cần phải gửi kèm theo thẻ khóa KTB1. Tương tự, cả rA\r\nvà rB không cần phải được gửi cùng trong thẻ khóa KTA2.\r\nTuy nhiên, cần phải bao gồm các số ngẫu nhiên để phục vụ cho việc tính toán các\r\nchữ ký tương ứng.
\r\n\r\n7.6 Cơ chế vận chuyển\r\nkhóa 6
\r\n\r\nCơ chế vận chuyển khóa này sử dụng để truyền\r\nan toàn hai khóa bí mật bằng ba lần chuyển, một khóa được truyền từ A\r\nđến B và một khóa được truyền từ B đến A. Ngoài ra, cơ chế\r\nnày còn cung cấp việc xác thực thực thể lẫn nhau và xác nhận khóa lẫn nhau\r\ntương ứng với từng khóa. Cơ chế này dựa trên các yêu cầu sau đây:
\r\n\r\n1. Mỗi thực thể X phải có một hệ mật\r\nphi đối xứng (EX,DX).
\r\n\r\n2. Mỗi thực thể có thể truy cập được vào bản\r\nsao có xác thực của phép mã hóa công khai của thực thể kia. Điều kiện này có\r\nthể thực hiện được nhờ sử dụng các cơ chế ở điều 8.
\r\n\r\nKiến thiết thẻ khóa (A1): A có một khóa\r\nKA muốn gửi an toàn cho B. Trước hết, A tạo ra\r\nmột số ngẫu nhiên rA. Tiếp đến, A kiến tạo khối dữ\r\nliệu khóa bao gồm định danh riêng biệt của bên gửi A, khóa KA,\r\nsố ngẫu nhiên rA và trường dữ liệu tùy chọn Text1. A\r\nmã hóa khối dữ liệu khóa này bằng phép mã công khai EB của B\r\nđể được một khối mã:
\r\n\r\nBE1 = EA(A\r\n|| KA || rA || Text1)
\r\n\r\nA lại tạo ra tiếp một thẻ khóa KTA1\r\nbao gồm khối dữ liệu đã mã hóa BE1 và một số trường dữ\r\nliệu tùy chọn Text2:
\r\n\r\nKTA1 = BE1\r\n|| Text2
\r\n\r\nrồi gửi cho B.
\r\n\r\nHình 13 - Cơ chế vận\r\nchuyển khóa 6
\r\n\r\nKiến thiến thẻ khóa (B1): B nhận được KTA1\r\nsẽ trích rút ra khối khóa đã mã BE1 rồi tiến hành giải\r\nmã bằng phép giải mã bí mật DB của mình. B cũng tiến\r\nhành kiểm tra thông tin định danh của bên gửi A.
\r\n\r\nGiả sử B có một khóa bí mật KB\r\nmuốn gửi an toàn đến cho A. Trước hết, B lựa chọn một số ngẫu\r\nnhiên rB và kiến tạo ra một khối dữ liệu khóa bao gồm định\r\ndanh riêng biệt của bên gửi B, khóa KB, số ngẫu nhiên rB,\r\nsố ngẫu nhiên rA nhận được ở bước (A1) và một trường dữ liệu\r\ntùy chọn Text3. Tiếp đó, B tiến hành mã hóa khối dữ liệu khóa\r\nbằng phép mã hóa công khai EA của A để tạo\r\nra khối dữ liệu mã:
\r\n\r\nBE2 = EA(B\r\n|| KB || rA || rB\r\n|| Text3)
\r\n\r\nTiếp đó, B tạo ra thẻ khóa KTB1\r\nbao gồm khối mã BE2 và một trường dữ liệu tùy chọn Text4:
\r\n\r\nKTB1 = BE2\r\n|| Text4
\r\n\r\nrồi gửi cho A.
\r\n\r\nKiểm tra khóa và thực thể (A2.1): A trích rút\r\nkhối khóa đã mã hóa BE2 từ thẻ khóa KTB1\r\nnhận được và tiến hành giải mã sử dụng phép giải mã bí mật DA của\r\nmình. Tiếp đó, A kiểm tra tính hợp lệ của thẻ khóa thông qua việc so\r\nsánh số ngẫu nhiên rA nhận được từ khối BE2\r\nvới số rA do A sinh ra ở bước (A1). Nếu kiểm tra cho\r\nkết quả hợp lệ thì A đã xác thực được B và như thế có nghĩa là\r\nkhóa KA đã được gửi an toàn đến B.
\r\n\r\nHồi âm thẻ khóa (A2.2): A trích rút\r\nsố ngẫu nhiên rB từ khối đã được giải mã và kiến tạo nên một\r\nthẻ khóa KTA2 bao gồm số ngẫu nhiên rB và\r\nmột trường dữ liệu tùy chọn Text5:
\r\n\r\nKTA2 = rB ||\r\nText5
\r\n\r\nrồi gửi sang cho B.
\r\n\r\nKiểm tra khóa và thực thể (B2): B kiểm tra\r\nthông tin kiểm tra KTA2 để trích rút ra rB và\r\nso sánh với rB do mình tạo ra. Nếu sự kiểm tra cho kết quả\r\nhợp lệ thì B đã xác thực được A, điều này đồng nghĩa với việc KB\r\nđã được tiếp nhận an toàn bởi A.
\r\n\r\nCHÚ THÍCH: Cơ chế vận chuyển khóa này có các\r\ntính chất sau:
\r\n\r\n1. Số lần truyền: 3.
\r\n\r\n2. Xác thực khóa và xác thực thực thể: Cơ chế\r\nnày cung cấp tính xác thực thực thể lẫn nhau, cung cấp xác thực khóa ẩn KA\r\ncủa B đối với A và xác thực khóa ẩn KB của A\r\nđối với B.
\r\n\r\n3. Xác nhận khóa: Cơ chế này cung cấp sự xác\r\nnhận khóa lẫn nhau.
\r\n\r\n4. Kiểm soát khóa: A có thể lựa chọn\r\nkhóa KA, khi đó A là thực thể khởi tạo. Tương tự, B\r\ncó thể lựa chọn thực thể khóa KB, khi đó B lại là thực\r\nthể khởi tạo. Việc kiểm soát khóa chung có thể thực hiện bởi mỗi thực thể bằng\r\ncách kết hợp hai khóa KA và KB của hai bên\r\nthành một khuôn dạng khóa bí mật dùng chung duy nhất KAB. Tuy\r\nnhiên, hàm kết hợp phải là một chiều, ngoài ra, A phải là bên lựa chọn\r\nkhóa. Cơ chế này có thể xem như là một cơ chế thỏa thuận khóa.
\r\n\r\n5. Sử dụng khóa: Cơ chế này sử dụng kỹ thuật\r\nphi đối xứng để truyền hai khóa bí mật cho nhau. KA được\r\ntruyền từ A đến B và KB được truyền từ B\r\nđến A. Các phương pháp sử dụng mật mã riêng biệt sau đây có thể vận dụng\r\ntừ cơ chế này: A sử dụng khóa KA của nó để mã hóa\r\nthông điệp và gửi cho B rồi kiểm tra mã xác thực từ B. Tiếp đó, B sử dụng khóa\r\nKA để giải mã thông điệp và gửi từ A và tạo ra mã xác thực gửi trở\r\nlại cho A. Phương pháp mật mã xuất phát từ B cũng thực hiện tương\r\ntự. Trong mỗi phương pháp ở đây, cơ sở phi đối xứng của cơ chế vận chuyển khóa\r\ncó thể được mở rộng để sử dụng các khóa bí mật.
\r\n\r\n6. Ví dụ: Một ví dụ về cơ chế vận chuyển khóa\r\ndạng này là giao thức COMSET (xem bài báo của Brandt ở phần Tài liệu tham\r\nkhảo).
\r\n\r\n8. Vận chuyển khóa\r\ncông khai
\r\n\r\nPhần này mô tả về các cơ chế quản lý khóa để\r\nđưa khóa công khai của các thực thể trở nên khả dụng đối với các thực thể khác\r\ntheo cách có xác thực. Việc phân phối có xác thực các khóa công khai là một yêu\r\ncầu an toàn cơ bản. Điều này có thể thực hiện được theo một số cách khác nhau:
\r\n\r\n1. Phân phối khóa công khai không cần đến bên\r\nthứ ba tin cậy;
\r\n\r\n2. Phân phối khóa công khai cần đến bên thứ\r\nba tin cậy như thông quan Tổ chức chứng thực (CA).
\r\n\r\nKhóa công khai của một thực thể A là\r\nmột phần nằm trong thông tin khóa công khai mà A muốn công bố. Thông tin\r\nkhóa công khai này bao gồm ít nhất định danh riêng biệt của A và khóa\r\ncông khai của A.
\r\n\r\n8.1 Phân phối khóa\r\ncông khai không cần đến bên thứ ba tin cậy
\r\n\r\nĐiều này mô tả về các cơ chế phân phối khóa\r\ncông khai có xác thực không cần đến bên thứ ba tin cậy.
\r\n\r\n8.1.1 Cơ chế vận chuyển khóa công khai 1
\r\n\r\nNếu A có thể truy cập vào một kênh\r\nđược bảo vệ (chẳng hạn kênh có cung cấp tính xác thực nguồn gốc toàn vẹn dữ\r\nliệu) như đường truyền tin thoại, đường truyền thư tín đăng ký trước,… của B\r\nthì A có thể truyền trực tiếp thông tin khóa công khai cho B\r\nthông qua các kênh được bảo vệ này. Đây là dạng cơ bản nhất của vận chuyển khóa\r\ncông khai. Các yêu cầu sau cần phải được thỏa mãn:
\r\n\r\n1. Thông tin khóa công khai PKIA\r\ncủa thực thể A phải bao gồm ít nhất định danh riêng biệt của A và\r\nkhóa công khai của A. Ngoài ra, nó có thể gồm số serial, thời hạn hiệu\r\nlực, tem thời gian và một số phần tử thông tin khác.
\r\n\r\n2. Do thông tin khóa công khai PKI\r\nkhông bao gồm bất cứ dạng dữ liệu mật nào nên kênh truyền không cần phải cung\r\ncấp tính bí mật.
\r\n\r\nHình 14 - Cơ chế vận\r\nchuyển khóa công khai 1
\r\n\r\nKiến thiết thẻ khóa (A1): A tạo ra một thẻ\r\nkhóa KTA1 bao gồm thông tin khóa công khai của A và\r\nmột vài trường dữ liệu tùy chọn Text khác. Tiếp đó, A gửi thẻ\r\nkhóa thông qua một kênh truyền có bảo vệ cho B:
\r\n\r\nKTA1 = PKIA\r\n|| Text
\r\n\r\nTiếp nhận thẻ khóa (B1): B nhận được\r\nthẻ khóa từ A thông qua kênh truyền được bảo vệ tiến hành bóc tách lấy\r\nthông tin khóa công khai PKIA và lưu trữ khóa công khai của A\r\nvào một danh sách bao gồm các khóa công khai đang hoạt động (danh sách này được\r\nbảo vệ chống lại sự giả mạo hoặc xáo trộn).
\r\n\r\nCHÚ THÍCH: Cơ chế vận chuyển khóa công khai\r\nnày có một số tính chất sau:
\r\n\r\n1. Cơ chế này có thể được sử dụng để truyền\r\ncác khóa kiểm tra công khai (cho một hệ chữ ký phi đối xứng) hoặc khóa mã công\r\nkhai (cho một hệ mật phi đối xứng) hoặc khóa thỏa thuận khóa công khai.
\r\n\r\n2. Xác thực trong trường hợp này bao gồm cả\r\ntoàn vẹn dữ liệu và xác thực nguồn gốc dữ liệu (như được đưa ra trong ISO\r\n7498-2:1989).
\r\n\r\n8.1.2 Cơ chế vận chuyển khóa công khai 2
\r\n\r\nCơ chế này truyền thông tin khóa công khai từ\r\nmột thực thể A đến một thực thể B bằng kênh truyền không được bảo\r\nvệ. Để kiểm tra tính toàn vẹn và nguồn gốc của thông tin khóa công khai nhận\r\nđược thì một kênh truyền có xác thực thứ hai được sử dụng. Cơ chế này hữu dụng\r\nkhi thông tin khóa công khai PKI được truyền trên kênh băng thông rộng,\r\ntrong khi việc xác thực thông tin khóa được thực hiện nhờ một kênh truyền băng\r\nthông hẹp chẳng hạn như đường tin thoại, đường truyền thư tín đăng ký trước.\r\nMột yêu cầu mở rộng là các thực thể có thể chia sẻ chung một hàm băm được định\r\nnghĩa trong ISO/IEC 10118-1. Đối với cơ chế này, các yêu cầu sau cần được thỏa\r\nmãn:
\r\n\r\n1. Thông tin khóa công khai PKIA\r\ncủa thực thể A phải bao gồm ít nhất định danh riêng biệt của A và\r\nthông tin khóa công khai của A. Ngoài ra có thể bao gồm số serial, thời\r\ngian hiệu lực, tem thời gian và một số phần tử dữ liệu khác.
\r\n\r\n2. Do thông tin khóa công khai PKI không\r\nbao gồm bất cứ dạng dữ liệu mật nào nên kênh truyền không cần phải cung cấp\r\ntính bí mật.
\r\n\r\nHình 15 - Cơ chế vận\r\nchuyển khóa công khai 2
\r\n\r\nKiến thiết thẻ khóa (A1): A tạo ra một\r\nthẻ khóa KTA1 bao gồm thông tin khóa công khai của A\r\nvà gửi đến cho B:
\r\n\r\nKTA1 = PKIA\r\nII Text1
\r\n\r\nTiếp nhận thẻ khóa (B1): B tiếp nhận\r\nđược thẻ khóa, bóc tách lấy thông tin khóa công khai PKIA.\r\nHoặc B sẽ thực hiện kiểm tra khóa kiểm tra của A hoặc sẽ lưu trữ\r\nnó ở nơi tránh được giả mạo để cho lần kiểm tra sau hoặc sẽ sử dụng nó.
\r\n\r\nKiến tạo thẻ kiểm tra (A2): A tính toán\r\ngiá trị kiểm tra hash(PKIA) đối với thông tin khóa công khai\r\ncủa nó và gửi giá trị kiểm tra này cùng với các định danh tùy chọn riêng biệt\r\ncủa A và B rồi gửi đến thực thể B sử dụng một kênh truyền\r\ncó xác thực và độc lập thứ hai (ví dụ kênh truyền điện báo hoặc đường truyền\r\nthư đăng ký trước).
\r\n\r\nKTA2 = A || B\r\n|| hash(PKIA) || Text2
\r\n\r\nKiểm tra thẻ khóa (B2): Dựa vào thông tin\r\nthẻ khóa nhận được KTA2, B có thể tùy chọn kiểm tra\r\nđịnh danh riêng biệt của A và B, tính toán ra giá trị kiểm tra\r\nthông tin khóa công khai của A nhận được từ thẻ khóa KTA1\r\nvà so sánh với giá trị kiểm tra nhận được từ thẻ khóa KTA2.\r\nNếu kết quả kiểm tra thành công thì B lấy khóa công khai của A\r\nđưa lên danh sách các khóa đang hoạt động (danh sách này được bảo vệ chống lại\r\nsự giả mạo).
\r\n\r\nCHÚ THÍCH: Cơ chế vận chuyển khóa công khai\r\nnày có các tính chất sau:
\r\n\r\n1. Cơ chế này sử dụng để truyền các khóa kiểm\r\ntra công khai (cho một hệ chữ ký phi đối xứng) hoặc khóa mã công khai (cho một\r\nhệ mật phi đối xứng) hoặc khóa thỏa thuận khóa công khai.
\r\n\r\n2. Xác thực trong trường hợp này bao gồm cả\r\ntoàn vẹn dữ liệu và xác thực nguồn gốc dữ liệu.
\r\n\r\n3. Nếu khóa công khai được hỗ trợ là một khóa\r\ndùng cho hệ chữ ký phi đối xứng không cung cấp tính năng phục hồi thông điệp\r\nthì A có thể ký thẻ KTA1 sử dụng khóa bí mật tương\r\nứng. Trong trường hợp đó, việc kiểm tra chữ ký của A ở bước (B1) sử dụng\r\nkhóa kiểm tra công khai nhận được để xác nhận rằng A được biết như là\r\nbên có khóa bí mật tương ứng, và rằng chỉ có một thực thể biết khóa bí mật\r\ntương ứng tại thời điểm thẻ khóa được tạo ra. Nếu tem thời gian được sử dụng\r\ntrong PKI thì việc kiểm tra để xác nhận rằng A hiện đang biết\r\nkhóa ký bí mật tương ứng.
\r\n\r\n4. Một chữ ký tay giữa hai bên có thể được sử\r\ndụng cho việc kiểm tra thẻ khóa.
\r\n\r\n8.2 Phân phối khóa sử\r\ndụng bên thứ ba tin cậy
\r\n\r\nTính xác thực đối với khóa công khai của các\r\nthực thể có thể được đảm bảo bằng cách trao đổi khóa công khai theo khuôn dạng\r\ncủa chứng chỉ khóa công khai. Một chứng chỉ khóa công khai bao gồm thông tin\r\nkhóa công khai, chữ ký xác nhận lẫn nhau thông qua một bên thứ ba tin cậy là Tổ\r\nchức chứng thực (CA). Các tài liệu giới thiệu tại sao CA giúp làm giảm bớt vấn\r\nđề phân phối khóa công khai có xác thực, việc phân phối khóa có xác thực khóa\r\ncông khai của CA và chi phí cho trung tâm CA có thể tìm thấy trong ISO/IEC\r\n9594-8 và 11770-1 (Phụ lục A).
\r\n\r\n8.2.1 Cơ chế vận chuyển khóa công khai 3
\r\n\r\nCơ chế này truyền một khóa công khai từ một\r\nthực thể A đến một thực thể B theo phương thức có xác thực. Nó\r\ndựa trên giả định rằng chứng chỉ khóa công khai CertA hợp lệ\r\ncủa thông tin khóa công khai PKIA của A được ban hành\r\nbởi một số Tổ chức chứng thực (CA) và B có thể truy cập vào một bản sao\r\ncó xác thực của phép kiểm tra công khai VCA của Tổ chức chứng\r\nthực CA (là bên đã ban hành các chứng chỉ khóa công khai)
\r\n\r\nHình 15 - Cơ chế vận\r\nchuyển khóa công khai 2
\r\n\r\nKiến thiết thẻ khóa (A1): A tạo ra một\r\nthẻ khóa KTA bao gồm chứng chỉ khóa công khai của A\r\nvà gửi nó cho B:
\r\n\r\nKTA = CertA\r\n|| Text
\r\n\r\nKiểm tra chứng chỉ (B1): Dựa trên thông tin\r\nnhận được về chứng chỉ khóa công khai, B sử dụng phép kiểm tra công khai\r\nVCA của CA để kiểm tra tính xác thực của thông tin khóa công\r\nkhai và kiểm tra cả tính hợp lệ đối với khóa công khai của A.
\r\n\r\nNếu B muốn đảm bảo rằng chứng chỉ khóa\r\ncông khai của A chưa bị thu hồi ở thời gian hiện hành thì B nên\r\ntra cứu (tham khảo) một bên thứ ba tin cậy (như một CA) qua một kênh truyền xác\r\nthực.
\r\n\r\nCHÚ THÍCH: Cơ chế vận chuyển khóa công khai\r\nnày có các tính chất sau:
\r\n\r\n1. Số lần truyền: 1. Tuy nhiên, có thể xảy ra\r\ntrường hợp B yêu cầu A gửi cho B một chứng chỉ khóa công\r\nkhai, trường hợp này không được đề cập ở đây. Chứng chỉ khóa công khai của A\r\ncũng có thể được phân phối ở một thư mục công khai, trong trường hợp đó cơ chế\r\nvận chuyển khóa chỉ được thực hiện giữa B và thư mục đó mà thôi.
\r\n\r\n2. Xác thực thực thể: Cơ chế này không cung\r\ncấp tính xác thực thực thể.
\r\n\r\n3. Xác nhận khóa: Việc nhận một chứng chỉ\r\nkhóa công khai đã xác nhận rằng khóa công khai đã được chứng nhận bởi một CA.
\r\n\r\n4. Khóa kiểm tra công khai VCA\r\ncủa CA sẽ được đưa lên sao cho nó luôn khả dụng đối với B theo một cách nào\r\nđó có cung cấp tính xác thực. Điều này có thể thực hiện được nhờ cơ chế ở điều\r\n8.
\r\n\r\n\r\n\r\n\r\n\r\n
(tham khảo)
\r\n\r\nMột\r\nsố tính chất của các cơ chế thiết lập khóa
\r\n\r\nHai bảng sau tổng kết các thuộc tính chính\r\ncủa các cơ chế thiết lập/vận chuyển khóa được đặc tả trong tiêu chuẩn này.
\r\n\r\nCác ký hiệu được sử dụng trong bảng:
\r\n\r\n\r\n A \r\n | \r\n \r\n Cơ chế cung cấp tính chất liên quan đến\r\n thực thể A. \r\n | \r\n
\r\n A,B \r\n | \r\n \r\n Cơ chế cung cấp tính chất liên quan đến cả\r\n thực thể A và thực thể B. \r\n | \r\n
\r\n Không \r\n | \r\n \r\n Cơ chế không cung cấp tính chất này. \r\n | \r\n
\r\n opt \r\n | \r\n \r\n Cơ chế có thể cung cấp tính chất như một sự\r\n tùy chọn nếu có sử dụng các công cụ bổ sung. \r\n | \r\n
\r\n (A) \r\n | \r\n \r\n Cơ chế có thể tùy ý cung cấp tính chất liên\r\n quan đến thực thể A nếu sử dụng các công cụ tùy chọn. \r\n | \r\n
Số thao tác khóa công khai: Là số lượng phép\r\ntính toán khi thực hiện phép biến đổi phi đối xứng. Ví dụ "2,1" có\r\nnghĩa là thực thể A cần 2 phép tính toán đối với hàm F và thực\r\nthể B cần 1 phép tính toán đối với hàm F trong cơ chế thỏa thuận\r\nkhóa 2.
\r\n\r\nCác tính chất của các Cơ chế thỏa thuận khóa:
\r\n\r\n\r\n Cơ chế \r\n | \r\n \r\n 1 \r\n | \r\n \r\n 2 \r\n | \r\n \r\n 3 \r\n | \r\n \r\n 4 \r\n | \r\n \r\n 5 \r\n | \r\n \r\n 6 \r\n | \r\n \r\n 7 \r\n | \r\n
\r\n Số lần truyền \r\n | \r\n \r\n 0 \r\n | \r\n \r\n 1 \r\n | \r\n \r\n 1 \r\n | \r\n \r\n 2 \r\n | \r\n \r\n 2 \r\n | \r\n \r\n 2 \r\n | \r\n \r\n 2 \r\n | \r\n
\r\n Xác thực khóa ẩn \r\n | \r\n \r\n A,B \r\n | \r\n \r\n B \r\n | \r\n \r\n A,B \r\n | \r\n \r\n Không \r\n | \r\n \r\n A,B \r\n | \r\n \r\n A,B \r\n | \r\n \r\n A,B \r\n | \r\n
\r\n Xác nhận khóa \r\n | \r\n \r\n Không \r\n | \r\n \r\n Không \r\n | \r\n \r\n B \r\n | \r\n \r\n Không \r\n | \r\n \r\n opt \r\n | \r\n \r\n opt \r\n | \r\n \r\n A,B \r\n | \r\n
\r\n Xác thực thực thể \r\n | \r\n \r\n Không \r\n | \r\n \r\n Không \r\n | \r\n \r\n (A) \r\n | \r\n \r\n Không \r\n | \r\n \r\n Không \r\n | \r\n \r\n B \r\n | \r\n \r\n A,B \r\n | \r\n
\r\n Số thao tác khóa công khai \r\n | \r\n \r\n 1,1 \r\n | \r\n \r\n 2,1 \r\n | \r\n \r\n 3(2),2 \r\n | \r\n \r\n 2,2 \r\n | \r\n \r\n 2,2 \r\n | \r\n \r\n 2,2 \r\n | \r\n \r\n 3,3 \r\n | \r\n
Các tính chất của các cơ chế vận chuyển khóa:
\r\n\r\n\r\n Cơ chế \r\n | \r\n \r\n 1 \r\n | \r\n \r\n 2 \r\n | \r\n \r\n 3 \r\n | \r\n \r\n 4 \r\n | \r\n \r\n 5 \r\n | \r\n \r\n 6 \r\n | \r\n
\r\n Số lần truyền \r\n | \r\n \r\n 1 \r\n | \r\n \r\n 1 \r\n | \r\n \r\n 1 \r\n | \r\n \r\n 2 \r\n | \r\n \r\n 3 \r\n | \r\n \r\n 3 \r\n | \r\n
\r\n Xác thực khóa ẩn \r\n | \r\n \r\n B \r\n | \r\n \r\n B \r\n | \r\n \r\n B \r\n | \r\n \r\n A \r\n | \r\n \r\n A,B \r\n | \r\n \r\n A,B \r\n | \r\n
\r\n Xác nhận khóa \r\n | \r\n \r\n Không \r\n | \r\n \r\n B \r\n | \r\n \r\n B \r\n | \r\n \r\n A \r\n | \r\n \r\n (A),B \r\n | \r\n \r\n A,B \r\n | \r\n
\r\n Kiểm soát khóa \r\n | \r\n \r\n A \r\n | \r\n \r\n A \r\n | \r\n \r\n A \r\n | \r\n \r\n B \r\n | \r\n \r\n A đáp B \r\n | \r\n \r\n (A),B \r\n | \r\n
\r\n Xác thực thực thể \r\n | \r\n \r\n Không \r\n | \r\n \r\n (A) \r\n | \r\n \r\n (A) \r\n | \r\n \r\n B \r\n | \r\n \r\n A,B \r\n | \r\n \r\n A,B \r\n | \r\n
\r\n Số thao tác khóa công khai \r\n | \r\n \r\n 1,1 \r\n | \r\n \r\n 2,2 \r\n | \r\n \r\n 2,2 \r\n | \r\n \r\n 4,4 \r\n | \r\n \r\n 4,4 \r\n | \r\n \r\n 2,2 \r\n | \r\n
\r\n\r\n\r\n\r\n
(tham khảo)
\r\n\r\nMột\r\nsố ví dụ về các cơ chế thiết lập khóa
\r\n\r\nThông tin cung cấp ở phụ lục này đưa ra các\r\nví dụ về các cơ chế thiết lập khóa đã mô tả trong các phần trước của tiêu chuẩn\r\nnày.
\r\n\r\nTrước hết, chúng ta lấy một ví dụ về hàm F,\r\ncùng với các tập G và H thỏa mãn 5 tính chất đã liệt kê ở trên,\r\ncác tham số được chọn một cách thích hợp.
\r\n\r\nCho p là một số nguyên tố lớn, G\r\nlà tập các phần tử của trường Galois có p phần tử ký hiệu là Fp,\r\nvà tập H = {1,…,p-2}. Cho g là phần tử nguyên thủy của Fp.\r\nThiết lập hàm F như sau:
\r\n\r\nF(h,g) = gh mod p
\r\n\r\nHàm F có tính chất giao hoàn với đối\r\nsố là h như sau:
\r\n\r\n(ghB)hA = (ghA)hB\r\n= ghAhB mod p
\r\n\r\nSố nguyên tố p phải đủ lớn để F(.,g) có\r\nthể được coi là hàm một chiều. Cho thực thể X có khóa riêng là hX\r\nthuộc H, khóa riêng này chỉ được biết bởi X, và một khóa công\r\nkhai là pX = ghX mod p được biết bởi\r\ntất cả các thực thể.
\r\n\r\nCHÚ THÍCH: Các chú thích khi lựa chọn tham\r\nsố:
\r\n\r\n- Đối với nguyên tố là module logarithm rời\r\nrạc: Kích cỡ của số nguyên tố nên được chọn sao cho việc tính logarithm rời rạc\r\ntrong nhóm cyclic là không thể thực hiện. Một vài điều kiện khác về số nguyên\r\ntố lớn có thể được áp đặt để làm cho việc tính logarithm rời rạc là không thể.
\r\n\r\n- Khuyến cáo để chọn p là số nguyên tố\r\nmạnh sao cho p -1 có thừa số là một số nguyên tố lớn hoặc chọn g là\r\nmột phần tử sinh của một nhóm có bậc nguyên tố lớn q.
\r\n\r\n- Đối với hợp số là module logarithm rời rạc:\r\nnên chọn modulus được tạo từ hai số nguyên tố lẻ khác nhau và chúng được giữ bí\r\nmật. Kích cỡ của số nguyên tố nên được chọn sao cho việc phân tích modulus là\r\nkhông thể tính toán được. Một vài điều kiện khác về chọn các số nguyên tố có\r\nthể được áp đặt để làm cho việc phân tích modulo là không thể về mặt tính toán.
\r\n\r\nB.1 Lược đồ thỏa thuận khóa Diffie-Hellman\r\nkhông tương tác
\r\n\r\nĐây là một ví dụ về Cơ chế thỏa thuận khóa 1.
\r\n\r\nKiến thiết khóa (A1): Thực thể A sử\r\ndụng khóa riêng hA của mình và khóa công khai pB\r\ncủa B để tính toán ra khóa bí mật dùng chung:
\r\n\r\nKAB = pBhA \r\nmod p
\r\n\r\nKiến thiết khóa (B1): Thực thể B sử\r\ndụng khóa riêng hB của mình và khóa công khai pA\r\ncủa A để tính toán ra khóa bí mật dùng chung:
\r\n\r\nKAB = pAhB\r\nmod p
\r\n\r\nB.2 Cơ chế dựa trên sự định danh
\r\n\r\nĐây là một ví dụ về Cơ chế thỏa thuận khóa 1,\r\ncơ chế này dựa trên các tiêu chí sau:
\r\n\r\n- Khóa công khai của một thực thể có thể được\r\nnhận từ sự kết hợp giữa định danh và chứng chỉ.
\r\n\r\n- Tổ chức chứng thực (CA) không tiến hành\r\nkiểm tra trực tiếp nhưng chỉ có CA mới có thể phục hồi được một khóa công khai\r\nhợp lệ.
\r\n\r\nCho (n,y) là khóa kiểm tra công khai\r\ncủa CA trong cơ chế chữ ký số có phục hồi thông điệp ở Phụ lục A của ISO/IEC\r\n9796. Do n được tạo ra từ hai số nguyên tố p và q và được giữ bí\r\nmật bởi CA nên y là số nguyên tố cùng nhau với lcm(p-1,q-1).
\r\n\r\nLấy O là một số nguyên lớn theo module\r\nn và g = Oy mod n.
\r\n\r\nLấy lx là kết quả của phép\r\ndư bổ sung (đặc tả ở ISO/IEC 9796) của thông tin công khai trên thực thể X có\r\nchứa ít nhất một định danh riêng biệt của X và có thể thêm một số\r\nserial, thời gian hiệu lực, tem thời gian và một số phần tử dữ liệu khác. Khi\r\nđó cặp quản lý khóa của X là (hx,px) trong\r\nđó hX là số nguyên nhỏ hơn n và:
\r\n\r\npx = ghx\r\n(mod p).
\r\n\r\nChứng chỉ được tính bằng CA như sau:
\r\n\r\nCertx = sxOhx\r\n(mod n).
\r\n\r\nTrong đó sx là một số\r\nnguyên sao cho:
\r\n\r\nsxylx = 1(mod n).
\r\n\r\nKiến thiết khóa (A1): A tính toán\r\nkhóa công khai của B như sau:
\r\n\r\nPB = CertBy.lB\r\nmod n
\r\n\r\nVà tính giá trị khóa bí mật dùng chung như\r\nsau:
\r\n\r\nKAB = PBhA\r\n= ghAhB mod n
\r\n\r\nKiến thiết khóa (B)1: B tính toán\r\nkhóa công khai của A như sau:
\r\n\r\nPA = CertAy.lA\r\nmod\r\nn
\r\n\r\nVà tính giá trị khóa bí mật dùng chung như\r\nsau:
\r\n\r\nKAB = PAhB\r\n= ghAhB mod\r\nn
\r\n\r\nCHÚ THÍCH: Cơ chế dựa trên định danh trước\r\nmột lần truyền hoặc hai lần truyền sử dụng cùng một cách cài đặt mô tả ở tài\r\nliệu tham khảo [8], [19] của Phụ lục D (Tài liệu tham khảo).
\r\n\r\nB.3 Thỏa thuận khóa Elgamal
\r\n\r\nĐây là ví dụ về Cơ chế thỏa thuận khóa 2.
\r\n\r\nCần kiểm tra rằng p là một số nguyên tố mạnh\r\nsao cho p -1 có thừa số là một nguyên tố lớn và các lũy thừa thì không\r\ncó dạng 0, +1, -1 mod p.
\r\n\r\nKiến thiết thẻ khóa (A1): Thực thể A sinh\r\nngẫu nhiên và bí mật giá trị r thuộc {1,…,p -2}, tính gr\r\nmod p và tạo một thẻ khóa KTA1 gửi tới B:
\r\n\r\nKTA1 = gr\r\nmod p
\r\n\r\nKiến thiết khóa (A2): Tiếp đến, A tính\r\nkhóa bí mật chia sẻ:
\r\n\r\nKTAB = (pB)r\r\nmod p = ghBr mod p
\r\n\r\nKiến thiết khóa (B1): Thực thể B\r\ntính khóa bí mật dùng chung:
\r\n\r\nKTAB = (gr)hB\r\n= ghBr mod p
\r\n\r\nB.4 Thỏa thuận khóa Nyberg-Rueppel
\r\n\r\nĐây là ví dụ về Cơ chế thỏa thuận khóa 3. Hệ\r\nchữ ký và hệ thỏa thuận khóa được chọn theo cách sao cho hệ chữ ký được xác\r\nđịnh bởi các khóa (hx,px).
\r\n\r\nCho q là ước nguyên tố lớn của p-1, g\r\nlà một phần tử thuộc Fp có bậc là q và tập H =\r\n{1,…,q-1}. Cặp khóa phi đối xứng của X được sử dụng cho quá trình\r\ntrao đổi khóa và ký là (hx,px), trong đó hx\r\nlà một phần tử thuộc H và px = ghx (mod\r\np).
\r\n\r\nNhằm ngăn chặn việc sử dụng lặp lại các thẻ\r\nkhóa cũ, thí dụ này sẽ sử dụng một tem thời gian hoặc một số seri TVP và\r\nmột hàm băm mật mã hash, nó ánh xạ các chuỗi bit có độ dài bất kỳ vào các số\r\nnguyên ngẫu nhiên trong một tập lớn của {1,…,p-1}, ví dụ, trong H.
\r\n\r\nKiến thiết khóa (A1.1): Đầu tiên, thực thể A\r\nsinh ngẫu nhiên và bí mật r thuộc H và tính
\r\n\r\ne = gr\r\nmod p
\r\n\r\nTiếp đó, A tính khóa bí mật dùng chung là:
\r\n\r\nKTAB = (pB)r\r\nmod p
\r\n\r\nA sử dụng khóa bí mật dùng chung KAB\r\nđể tính giá trị kiểm tra mật mã trên định danh phân biệt của người gửi và số\r\ntuần tự hoặc tem thời gian TVP.
\r\n\r\ne' = e. hash (KAB\r\n|| A || TVP) mod p
\r\n\r\nChữ ký thẻ khóa (A1.2): A tính toán\r\nchữ ký của thẻ khóa:
\r\n\r\ny = r - hAe'\r\nmod q
\r\n\r\nCuối cùng, A tạo thẻ khóa KTA1\r\nvà gửi tới B:
\r\n\r\nKTA1 = A || e\r\n|| TVP || y
\r\n\r\nKiến thiết khóa (B1.1): Thực thể B\r\ntính khóa bí mật dùng chung sử dụng khóa riêng dùng để thỏa thuận khóa hB\r\nnhư sau:
\r\n\r\nKTAB = ehB\r\nmod p
\r\n\r\nBằng cách sử dụng khóa bí mật dùng chung KAB\r\nvừa tính được, B tính giá trị kiểm tra mật mã trên trên định danh phân\r\nbiệt của người gửi A và TVP rồi tính:
\r\n\r\ne' = e. hash (KAB\r\n|| A || TVP) mod p
\r\n\r\nKiểm tra chữ ký (B1.2): B kiểm tra\r\ntính hợp lệ của TVP và sử dụng khóa công khai của pA\r\nđể kiểm tra xem đẳng thức sau có đúng hay không:
\r\n\r\ne = gypAe\r\nmod p
\r\n\r\nB.5 Thỏa thuận khóa Diffie-Hellman
\r\n\r\nĐây là ví dụ về cơ chế thỏa thuận khóa 4.
\r\n\r\nCần kiểm tra rằng p là một số nguyên\r\ntố mạnh sao cho p-1 có thừa số là một nguyên tố lớn và các lũy thừa\r\nkhông có dạng 0, +1, -1 mod p.
\r\n\r\nKiến thiết thẻ khóa (A1): Thực thể A\r\nsinh ngẫu nhiên và bí mật giá trị rA thuộc {1,…,p-2},\r\ntính grA mod p rồi tạo ra thẻ khóa KTA1\r\nvà gửi tới B:
\r\n\r\nKTA1 = grA\r\nmod p
\r\n\r\nKiến thiết thẻ khóa (B1): Thực thể B sinh\r\nngẫu nhiên và bí mật giá trị rB thuộc {1,…,p-2}, tính grB\r\nmod p rồi tạo ra thẻ khóa KTB1 gửi tới A:
\r\n\r\nKTB1 = grB\r\nmod p
\r\n\r\nKiến thiết khóa (A2): Thực thể A\r\ntính khóa bí mật dùng chung:
\r\n\r\nKAB = (grB)rA\r\nmod p= grArB mod p
\r\n\r\nKiến thiết khóa (B2): Thực thể B\r\ntính khóa bí mật dùng chung:
\r\n\r\nKAB = (grA)rB\r\nmod p= grArB mod p
\r\n\r\nB.6 Lược đồ thỏa thuận khóa\r\nMatsumoto-Takashima-Imai A(0)
\r\n\r\nĐây là ví dụ về Cơ chế thỏa thuận khóa 5.
\r\n\r\nCho p là một số nguyên tố an toàn và\r\nkiểm tra rằng các lũy thừa không có dạng 0, +1, -1 mod p.
\r\n\r\nKiết thiết thẻ khóa (A1): Thực thể A\r\nsinh ngẫu nhiên và bí mật giá trị rA thuộc {1,…,p-2},\r\ntính thẻ khóa KTA1 và gửi tới B:
\r\n\r\nKTA1 = grA\r\nmod p
\r\n\r\nKiến thiết thẻ khóa (B1): Thực thể B sinh\r\nngẫu nhiên và bí mật giá trị rB thuộc {1,…,p-2}, tính\r\nthẻ khóa KTB1 và gửi tới A:
\r\n\r\nKTB1 = grB\r\nmod p
\r\n\r\nKiến thiết khóa (B2): Thực thể B\r\ntính khóa bí mật dùng chung:
\r\n\r\nKAB = w(KTA1hB,pArB)\r\n= KTA1hBpArB mod p
\r\n\r\nKiến thiết khóa (A2): Thực thể A tính khóa\r\nbí mật dùng chung:
\r\n\r\nKAB = w(pBrA,KTA1hA)\r\n= KTA1hBpArB mod p
\r\n\r\nB.7 Giao thức Beller-Yacobi
\r\n\r\nPhần phụ lục này mô tả về giao thức Beller-Yacobi\r\ngốc được dùng để minh họa cho Cơ chế thỏa thuận khóa 6.
\r\n\r\nCHÚ Ý: Lược đồ này không tương thích hoàn\r\ntoàn với cơ chế thỏa thuận khóa 6 bởi vì nó được tối ưu cho các tình huống đặc\r\nbiệt. Cụ thể, nó sử dụng cơ chế chữ ký EIGamal và sử dụng thêm thuật toán mã\r\nhóa đối xứng để chuyển khóa kiểm tra chữ ký của B và chứng chỉ số của B\r\ntới A trong một cách tin cậy, bảo đảm tính ẩn danh (anonymity) của B.
\r\n\r\nCho enc: K x M ® C là một hàm mã hóa\r\nkinh điển, ví dụ như DES, trong đó K là không gian khóa, M là\r\nkhông gian thông báo,và C là không gian mã.
\r\n\r\nGiả sử Sx ký hiệu phép toán\r\nchữ ký EIGamal của thực thể X. Quá trình ký được mô tả dưới đây nhấn\r\nmạnh sự khác biệt giữa 2 thao tác trực tuyến (on-line) và không trực tuyến\r\n(off-line) được yêu cầu trong họ EIGamal của các cơ chế chữ ký.
\r\n\r\nChúng ta sử dụng Px và Cx\r\nđể ký hiệu khóa công khai và chứng chỉ số của thực thể X. Phép mã hóa\r\nkhóa công khai của thực thể X (sử dụng khóa Px) được\r\nký hiệu là EX (bình phương module trong trường hợp của\r\nRabin).
\r\n\r\nTính toán off-line: B chọn một giá trị\r\nngẫu nhiên rB và tính:
\r\n\r\nu = grB mod p
\r\n\r\nKiến thiết thẻ khóa (A1): A chọn một số\r\nngẫu nhiên rA và tính KTA1 rồi gửi tới B:
\r\n\r\nKTA1 = (rA\r\n|| A || CA)
\r\n\r\nXử lý thẻ khóa (B1): B tạo chữ ký\r\nsố
\r\n\r\nBS = (u,v) = SB(rA\r\n|| A)
\r\n\r\nSau đó chọn một giá trị ngẫu nhiên XB\r\nvà tạo KTB1 rồi gửi tới A:
\r\n\r\nKTB1 = EA(BS)\r\nenc (u,(B ||\r\nPB || CB || xB))
\r\n\r\nKiến thiết khóa (B2): Khóa bí mật dùng\r\nchung chính là phần chữ ký của B, u.
\r\n\r\nKiến thiết khóa và xác thực thực thể (A2): A giải mã thẻ khóa EA(BS)\r\nđể tìm khóa phiên u, sau đó sử dụng hàm mã đối xứng enc để\r\ngiải mã
\r\n\r\nenc (u,(B || PB ||\r\nCB || xB))
\r\n\r\nbằng cách sử dụng khóa phiên u để lấy\r\ncác thành phần: định danh B, khóa công khai PB của B,\r\nchứng chỉ số CB của B. A kiểm tra chứng chỉ\r\nCB và thành công thì sau đó nó sử dụng hàm kiểm tra VB\r\nđể kiểm tra chữ ký BS của B. Nếu quá trình kiểm tra thành công\r\nthì A chấp nhận u là khóa bí mật dùng chung.
\r\n\r\nB.8 Vận chuyển khóa EIGamal
\r\n\r\nPhần này là một ví dụ về Cơ chế vận chuyển\r\nkhóa 1.
\r\n\r\nMột số nguyên tố thích hợp p và bộ tạo\r\ng trên trương ZP được lựa chọn và đưa ra công khai.\r\nCác khóa dùng để thỏa thuận khóa công khai và bí mật của B lần lượt là, hB\r\nvà
\r\n\r\nPB = ghB mod p
\r\n\r\nKiến thiết thẻ khóa (A1): A có một khóa\r\nK (trong đó 0 < K < p) và muốn truyền an toàn sang\r\ncho B. Trước hết, A tạo ngẫu nhiên và bí mật một số nguyên r,\r\n1 < r < p-1 và mã hóa K như sau:
\r\n\r\nBE = K (pB)r mod p
\r\n\r\nTiếp đó A tạo ra thẻ khóa:
\r\n\r\nKTA1 = BE || gr\r\nmod p
\r\n\r\nVà gửi sang cho B.
\r\n\r\nTái thiết thẻ khóa (B1): B phục hồi\r\nkhóa K sử dụng khóa để thỏa thuận khóa bí mật hB bằng\r\ncách tính:
\r\n\r\nK = BE. (gr)hB mod p
\r\n\r\nB.9 Vận chuyển khóa EIGamal có chữ ký của bên\r\ngửi
\r\n\r\nĐây là ví dụ về Cơ chế vận chuyển khóa 2.
\r\n\r\nMột số nguyên tố thích hợp p và bộ tạo\r\ng thuộc ZP được lựa chọn và công bố công khai. Các\r\nkhóa dùng để thỏa thuận khóa công khai tương ứng của B là hB\r\nvà:
\r\n\r\npB = ghB mod p
\r\n\r\nCác phép biến đổi ký công khai và bí mật của A\r\ntương ứng ký hiệu là SA và VA, (SA,VA)\r\ncó thể được thể hiện ở bất cứ hệ chữ ký nào như chữ ký RSA còn việc kiểm tra\r\nchữ ký được đưa ra trong ISO/IEC 9796.
\r\n\r\nMã hóa khóa (A1.1): A có một khóa\r\nK và muốn gửi nó theo cách an toàn đến B. Trước tiên A tạo\r\nngẫu nhiên và bí mật một số nguyên r trong khoảng (1,…,p-2) sau\r\nđó mã hóa khối dữ liệu khóa A || K như sau:
\r\n\r\nBE = (A || K)\r\n(pB)r mod p
\r\n\r\nChú thích rằng K phải được chọn theo\r\ncách sao cho giá trị (A || K) phải nhỏ hơn số nguyên tố p.
\r\n\r\nKiến thiết thẻ khóa (A1.2): A tạo ra một\r\nkhối dữ liệu khóa bao gồm định danh riêng biệt của bên nhận, có thể có tem thời\r\ngian hoặc một số tuần tự TVP, gr và khối đã mã hóa BE.\r\nTiếp đó A ký khối dữ liệu khóa bằng phép ký bí mật SA của\r\nmình rồi gửi sang cho B:
\r\n\r\nKTA1 = SA\r\n(B ||\r\nTVP || gr || BE)
\r\n\r\nKiểm tra thẻ khóa (B1.1): B sử dụng\r\nphép kiểm tra công khai của bên gửi VA để kiểm tra chữ ký số\r\ncủa thẻ khóa KTA1 nhận được. Tiếp đó B kiểm tra định\r\ndanh bên nhận B và trường tùy chọn TVP.
\r\n\r\nGiải mã khóa (B1.2): B tiến hành\r\ngiải mã khối BE sử dụng khóa để thỏa thuận khóa bí mật hB\r\ncủa nó bằng cách tính:
\r\n\r\nA || K = BE\r\n(gr)hB mod p
\r\n\r\nTiếp đó B kiểm tra đinịh danh của bên\r\ngửi A. Nếu tất cả kiểm tra đều thỏa mãn thì B chấp nhận khóa K.
\r\n\r\nB.10 Vận chuyển khóa theo RSA
\r\n\r\nĐây là ví dụ về Cơ chế vận chuyển khóa 1.
\r\n\r\nHệ mật phi đối xứng của B bao gồm một\r\nmodule RSA n = pq, thành phần công khai e và thành phần bí mật d\r\nsao cho ed = 1 mod (p-1)(q-1). Giả sử rằng có một bản sao tin cậy\r\ncủa các tham số hệ mật (e,n) của B.
\r\n\r\nKiến thiết thẻ khóa (A1): A có một khóa\r\nK và muốn truyền đến cho B. Giả sử Text1, Text2 và giá trị\r\nTVP tùy ý đều khác không, giả sử dữ liệu được định dạng theo khuôn dạng\r\nthích hợp cho việc xử lý bằng RSA (có thể chứa một số giá trị bù). A tạo\r\nvà gửi cho B khối dữ liệu:
\r\n\r\nKTA1 = EB\r\n(A ||\r\nK) = (A || K)r mod n
\r\n\r\nTái thiết thẻ khóa (B1): B nhận được khối\r\nkhóa và tính toán:
\r\n\r\n(KTA1)d\r\nmod n =\r\n(A || K)
\r\n\r\nBên nhận B có thể phân tách thông điệp\r\ntừ một thông điệp ngẫu nhiên bằng các kiểm tra một điều kiện bù trong nội dung\r\nthông điệp A || K.
\r\n\r\nGiả sử rằng định danh A trong thông\r\nđiệp phục hồi này có một số giá trị bù có thể dùng để kiểm tra hoặc định dạng\r\nmong muốn thì B sẽ kiểm tra xem định danh phục hồi được A có đúng\r\nvới định dạng mong muốn hay không và chấp nhận thông điệp này chỉ khi các kiểm\r\ntra thỏa mãn.
\r\n\r\n\r\n\r\n\r\n\r\n
(tham khảo)
\r\n\r\nVí\r\ndụ về các cơ chế thiết lập khóa dựa trên đường cong elliptic
\r\n\r\nMục tiêu của Phụ lục này là trình bày về cách\r\nthức các cơ chế thiết lập khóa đã mô tả trong tiêu chuẩn này được thực hiện dựa\r\ntrên các khái niệm về đường cong elliptic. Phần về các giao thức được trình bày\r\ndưới đây khác với phần đã nói trong Phụ lục B.
\r\n\r\nCơ sở toán học của đường cong elliptic:
\r\n\r\nMột đường cong elliptic E là một đường\r\ncong bậc ba thông thường trên một trường K. Một đường cong elliptic có\r\nthể được mô tả theo một tập nghiệm (x,y) (với x,y Î K) của phương trình:
\r\n\r\nY2 = X3 + aX + b
\r\n\r\nvới một điểm mở rộng q là vô cùng.
\r\n\r\nCác đường cong elliptic có khả năng thực hiện\r\nnhư một phép toán nhị phân: E ÿ\r\nE ® E, ánh xạ mỗi\r\ncặp (P1,P2) của một điểm trên E vào\r\nđiểm thứ ba P1 ·\r\nP2. Với phép toán này thì E là một nhóm abelian với\r\nphần tử trung hòa q.
\r\n\r\nCho P là một điểm nào đó trên đường\r\ncong E, tạo ra nhóm <P> có lực lượng hữu hạn q với\r\nphép toán của nhóm "·". Khi đó, mỗi\r\nphần tử thuộc <P> là một lũy thừa P[k] nào đó\r\ncủa P, trong đó P[k] là tích k lần (P · P · P · …·P).
\r\n\r\nPhép mũ rời rạc F(.,P) trên\r\n<P> được định nghĩa như sau:
\r\n\r\nF(k,P) = P[k]\r\nvới k\r\nÎ {1,…,q-1}
\r\n\r\nChú thích đến giá trị tùy ý h với k\r\nÎ {1,…,q-1}\r\ntrong đẳng thức:
\r\n\r\n(P[h])[k]\r\n= P[h][k] = (P[k])[h]
\r\n\r\nTrong đó nhóm <P> được tạo ra\r\nbởi P là một nhóm abelian.
\r\n\r\nMặt khác, cho một điểm tùy ý Q nào đó Î <P> thì số xác định duy\r\nnhất x Î {1,…,q-1} với\r\nQ = P[x] được coi như là logarithm rời rạc của Q\r\ndựa trên P.
\r\n\r\nTầm quan trọng mật mã của đường cong elliptic\r\nbắt nguồn từ việc khó đoán biết để xác định được logarit rời rạc trên đường\r\ncong dựa trên trường hữu hạn. Với hiểu biết hiện nay, điều này còn khó hơn việc\r\nphân tích các số nguyên hoặc tính logarit rời rạc trên trường GF(p). Điều này\r\ntạo nên khả năng thực thi một hệ thống khóa công khai dựa trên đường cong elliptic\r\nvới số lượng tham số nhỏ hơn nhiều so với các hệ thống khóa công khai trước\r\nđây.
\r\n\r\nKý hiệu:
\r\n\r\nCác khái niệm trên dẫn đến cần làm rõ một số\r\nký hiệu sử dụng trong phụ lục này. Sau đây là giải thích một số ký hiệu:
\r\n\r\nK là một trường hữu hạn có đúng pn\r\nphần tử, trong đó p là một số nguyên tố lớn hơn 3, n là một số\r\nnguyên dương
\r\n\r\nE là một đường cong elliptic trên K và P\r\nlà một điểm trên E tạo nên một nhóm <P> của phần tử q.\r\nGiả sử rằng q là một số nguyên tố và tập H = {1,…,q-1}.
\r\n\r\nMỗi thực thể X có một khóa bí mật hx\r\nthuộc H chỉ được biết bởi X và một khóa công khai PX\r\n= G{hX} được biết bởi tất cả các thực thể khác.
\r\n\r\nChú thích rằng các khóa bí mật chỉ là các\r\nsố nguyên thông thường, ngược lại các khóa công khai là các điểm trên một\r\nđường cong. Điều này nói lên rằng hệ thống khóa công khai xây dựng dựa trên các\r\nlogarit rời rạc theo modulo của một số nguyên tố, trong đó cả khóa bí mật và\r\nkhóa công khai là đối tượng của cùng một kiểu. Có sự khác nhau giữa hai kiểu\r\nkhóa trong một đường cong, đó là lý do tại sao phải đưa ra một hàm bổ sung ánh\r\nxạ các điểm thuộc <P> vào các số nguyên thuộc H, đây tương\r\ntự như một bản dịch chuyển các giao thức ở Phụ lục B sang dạng sử dụng đường\r\ncong elliptic.
\r\n\r\nNhư vậy, cho p <P> ® H là một hàm sao cho\r\nviệc tổ hợp p và F(.,P) cho\r\nbởi
\r\n\r\nk ® P[k] ® p(P[k])
\r\n\r\nlà hàm một chiều.
\r\n\r\nCHÚ THÍCH:
\r\n\r\n1. Tham số chủ yếu về an toàn của hệ khóa\r\ncông khai dựa trên đường cong elliptic là kích cỡ của số nguyên tố q. Số\r\nnguyên q phải đủ lớn sao cho F(.,P) có thể được xem như là hàm một\r\nchiều. Với các thuật toán được biết hiện nay, F(.,P) được coi là hàm một\r\nchiều nếu q có kích cỡ q > 2160.
\r\n\r\n2. Không giống như các hệ thống thuật toán\r\nligarit rời rạc dựa trên GF(p) (như DSA), có thể chọn các tham số q\r\nvà pn xấp xỉ bằng nhau.
\r\n\r\n3. Có một vài điều kiện đối với p và q\r\n(chẳng hạn p ¹ q) và các\r\ntham số đường cong a và b phải được lựa chọn sao cho không có khả\r\nnăng tính toán được các logarit rời rạc trên đường cong elliptic.
\r\n\r\n4. Có rất nhiều khả năng tạo ra p, phương pháp đơn giản là chiếu các\r\nđiểm trên <P> lên trục tọa độ và "đọc" phần tử trường\r\nnày như là một số nguyên theo mod q.
\r\n\r\nC.1 Thỏa thuận khóa không tương tác kiểu\r\nDiffie-Hellman
\r\n\r\nĐây là một ví dụ về Cơ chế thỏa thuận khóa 1.
\r\n\r\nKiến thiết khóa (A1): A tính một\r\nkhóa bí mật dùng chung bằng cách sử dụng khóa dùng để thỏa thuận khóa bí mật hA\r\ncủa nó và khóa dùng để thỏa thuận khóa công khai PB của B\r\nnhư sau:
\r\n\r\nKAB = (PB)[hA].
\r\n\r\nKiến thiết khóa (B1): B tính một\r\nkhóa bí mật dùng chung bằng cách sử dụng khóa dùng để thỏa thuận khóa bí mật hB\r\ncủa nó và khóa dùng để thỏa thuận khóa công khai PA của A\r\nnhư sau:
\r\n\r\nKAB = (PA)[hB].
\r\n\r\nC.2 Thỏa thuận khóa kiểu EIGamal
\r\n\r\nĐây là ví dụ về Cơ chế thỏa thuận khóa 2.
\r\n\r\nKiến thiết thẻ khóa (A1): A tạo ngẫu\r\nnhiên và bí mật một giá trị r thuộc H và tính thẻ khóa như sau:
\r\n\r\nKTA1 = (P)[r].
\r\n\r\nrồi gửi nó cho B.
\r\n\r\nKiến thiết khóa (A2): A tính một\r\nkhóa bí mật dùng chung như sau:
\r\n\r\nKAB = (PB)[r]\r\n= (PB)[hBr]
\r\n\r\nKiến thiết khóa (B2): B sử dụng\r\nkhóa bí mật của mình để tính toán một khóa bí mật dùng chung như sau:
\r\n\r\nKAB = (KTA1)[hB]\r\n= (P[r])[hB] = (P)[r.hB]
\r\n\r\nC.3 Thỏa thuận khóa theo Nyberg-Rueppel
\r\n\r\nĐây là ví dụ về Cơ chế thỏa thuận khóa 3.
\r\n\r\nGiao thức được sử dụng không phải là bản sao\r\nchép dạng 1-1 của giao thức ở phần B.3 nhưng dựa trên ý tưởng cơ bản của B.3.
\r\n\r\nMột hệ chữ ký và một hệ thỏa thuận khóa được\r\nchọn sao cho hệ chữ ký được xác định bởi các khóa (hx,Px).
\r\n\r\nĐể ngăn ngừa việc dùng lại các thẻ khóa cũ\r\nthì ví dụ này sử dụng một tem thời gian hoặc một số tuần tự TVP và một\r\nhàm băm mã hash, chẳng hạn như có sự ánh xạ từ chuỗi bít có độ dài tùy ý\r\nđến các số nguyên thuộc H.
\r\n\r\nKiến thiết khóa (A1.1): A tạo ngẫu\r\nnhiên và bí mật giá trị r thuộc H và tính:
\r\n\r\nR = P[r]
\r\n\r\nTiếp đó A tính khóa bí mật dùng chung\r\nbí mật như sau:
\r\n\r\nKAB = (PB)[r]
\r\n\r\nA sử dụng khóa bí mật dùng chung này và tính\r\ngiá trị kiểm tra mật mã tại điểm R, định danh riêng biệt của người gửi A\r\nvà số tuần tự hoặc tem thời gian TVP:
\r\n\r\ne = hash(R || KAB\r\n|| A || TVP)
\r\n\r\nKý thẻ khóa (A1.2): A tính chữ ký\r\nnhư sau:
\r\n\r\nKTA = (R || A\r\n|| TVP || y)
\r\n\r\nVà gửi nó cho B.
\r\n\r\nKiến thiết khóa (B1.1): B tính khóa\r\nbí mật dùng chung sử dụng khóa để thỏa thuận khóa bí mật hB\r\ncủa mình như sau:
\r\n\r\nKAB = R[hB]
\r\n\r\nB lại sử dụng khóa bí mật dùng chung bí mật\r\nnày để tính giá trị kiểm tra mật mã đối với định danh riêng biệt của bên gửi A\r\nvà giá trị TVP như sau:
\r\n\r\ne = hash(R || KAB\r\n|| A || TVP)
\r\n\r\nKiểm tra chữ ký (B1.2): B kiểm tra\r\ntính hợp lệ của TVP và sử dụng khóa công khai của bên gửi PA\r\nđể kiểm tra sự bằng nhau:
\r\n\r\nR = P[y].(PA)[e].
\r\n\r\nC.4 Thỏa thuận khóa theo kiểu Diffie-Hellman
\r\n\r\nPhần này là ví dụ về Cơ chế thỏa thuận khóa\r\n4.
\r\n\r\nKiến thiết thẻ khóa (A1): Thực thể A sinh\r\nngẫu nhiên và bí mật giá trị rA thuộc H, tính thẻ khóa\r\nKTA1 và gửi tới B:
\r\n\r\nKTA1 = P[rA]
\r\n\r\nKiến thiết thẻ khóa (B1): Thực thể B\r\nsinh ngẫu nhiên và bí mật giá trị rB thuộc H, tính thẻ\r\nkhóa KTB1 gửi tới A:
\r\n\r\nKTB1 = P[rB]
\r\n\r\nKiến thiết khóa (A2): Thực thể A\r\ntính khóa bí mật dùng chung:
\r\n\r\nKTAB = (P[rB])[rA]\r\n= P[rB][rA]
\r\n\r\nKiến thiết khóa (B2): Thực thể B\r\ntính khóa bí mật dùng chung:
\r\n\r\nKTAB = (P[rA])[rB]\r\n= P[rA][rB]
\r\n\r\nC.5 Thỏa thuận khóa theo kiểu\r\nMatsumoto-Takashima A(0)
\r\n\r\nĐây là ví dụ về Cơ chế thỏa thuận khóa 5.
\r\n\r\nKiến thiết thẻ khóa (A1): Thực thể A\r\nsinh ngẫu nhiên và bí mật giá trị rA thuộc H, tính thẻ\r\nkhóa KTA1 và gửi tới B:
\r\n\r\nKTA1 = P[rA]
\r\n\r\nKiến thiết thẻ khóa (B1): Thực thể B\r\nsinh ngẫu nhiên và bí mật giá trị rB thuộc H, tính thẻ\r\nkhóa KTB1 và gửi tới A:
\r\n\r\nKTB1 = P[rB]
\r\n\r\nKiến thiết khóa (B2): Thực thể B\r\ntính khóa bí mật dùng chung:
\r\n\r\nKTAB =\r\nw(KTA1[hB].PA[rB]).
\r\n\r\nTrong đó w là hàm một chiều.
\r\n\r\nKiến thiết khóa (A2): Thực thể A\r\ntính khóa bí mật dùng chung:
\r\n\r\nKTAB =\r\nw(KTB1[hA].PB[rA]).
\r\n\r\nC.6 Vận chuyển khóa theo kiểu EIGamal
\r\n\r\nPhần này là một ví dụ về Cơ chế vận chuyển\r\nkhóa 1.
\r\n\r\nKiến thiết thẻ khóa (A1): A có một khóa\r\nK Î H và muốn truyền an\r\ntoàn sang cho B. Trước hết, A tạo ngẫu nhiên và bí mật một số\r\nnguyên r Î H và tính một điểm\r\ntrên đường cong P[r] rồi mã hóa khóa K như sau:
\r\n\r\nBE = (K. p((pB)[r]))mod\r\nq
\r\n\r\nTiếp đó A tạo ra thẻ khóa:
\r\n\r\nKTA1 = BE || (pB)[r])
\r\n\r\nVà gửi sang cho B.
\r\n\r\nTái thiết thẻ khóa (B1): Để phục hồi khóa K,\r\nthực thể B xác định điểm trên đường cong P[r] sử dụng\r\nkhóa để thỏa thuận khóa bí mật hB bằng cách tính: (pB)[r]\r\n= (pB[r])[hB] và bước tiếp đến là tìm ra: p((pB)[r])).
\r\n\r\nCuối cùng B thu được khóa K\r\nbằng cách tính
\r\n\r\nK = (BE). p(((pB[r])[hB]\r\n))-1 mod q
\r\n\r\nC.6 Vận chuyển khóa theo kiểu EIGamal có chữ\r\nký bên gửi
\r\n\r\nĐây là ví dụ về Cơ chế vận chuyển khóa 2.
\r\n\r\nCác khóa dùng thỏa thuận khóa công khai và bí\r\nmật hB của B tương ứng là:
\r\n\r\nPB = (P)[hB].
\r\n\r\nCác phép biến đổi ký công khai và bí mật của\r\nA tương ứng ký hiệu là SA và VA, (SA,VA)\r\ncó thể được thể hiện ở bất cứ hệ chữ ký nào như chữ ký RSA còn việc kiểm tra\r\nchữ ký được đưa ra trong ISO/IEC 9796.
\r\n\r\nMã hóa khóa (A1.1): A có một khóa K\r\nvà muốn gửi nó theo cách an toàn đến B. Trước tiên A tạo ngẫu\r\nnhiên và bí mật một số nguyên r Î H và tính hai điểm trên đường cong P[r]\r\nvà (PB)[r] rồi mã hóa khối dữ liệu khóa A || K như\r\nsau:
\r\n\r\nBE = (A || K).p((PB)[r]))\r\nmod q
\r\n\r\nChú thích rằng K phải được chọn theo\r\ncách sao cho giá trị (A || K) phải nhỏ hơn số nguyên tố q.
\r\n\r\nKiến thiết thẻ khóa (A1.2): A tạo ra một\r\nkhối dữ liệu khóa bao gồm định danh riêng biệt của bên nhận B, có thể có\r\ntem thời gian hoặc một số tuần tự TVP và khối đã mã hóa BE. Tiếp\r\nđó A ký khối dữ liệu thẻ bằng phép ký bí mật SA của\r\nmình rồi gửi thẻ khóa thu được sang cho B:
\r\n\r\nKTA1 = SA\r\n(B\r\n|| TVP || p[r] || BE)
\r\n\r\nKiểm tra thẻ khóa (B1.1): B sử dụng\r\nphép kiểm tra công khai của bên gửi VA để kiểm tra chữ ký số\r\ncủa thẻ khóa KTA1 nhận được. Tiếp đó B kiểm tra định\r\ndanh bên nhận B và trường tùy chọn TVP.
\r\n\r\nGiải mã khóa (B1.2): B tiến hành\r\ngiải mã khối BE sử dụng khóa để thỏa thuận khóa bí mật hB\r\ncủa nó bằng cách tính:
\r\n\r\nA || K =(BE).p(((p[r])[hB]))-1\r\nmod q
\r\n\r\nTiếp đó B kiểm tra định danh của bên\r\ngửi A. Nếu tất cả kiểm tra đều thỏa mãn thì B chấp nhận khóa K.
\r\n\r\n\r\n\r\n\r\n\r\n
[1] ANSI X9.30 199x, "Public Key\r\nCryptography Using Irrevarsible Algorithm for the Financial Services Industry,\r\nPart 1: The Digital Signature Algorithm (DSA)".
\r\n\r\n[2] ANSI X9.30 199x, "Public Key\r\nCryptography Using Irrevarsible Algorithm for the Financial Services Industry,\r\nPart 3: Certificate Management for DSA".
\r\n\r\n[3] ANSI X9.30 199x, "Public Key\r\nCryptography Using Irrevarsible Algorithm for the Financial Services Industry,\r\nPart 4: Management of symmetric algorithm keys using RSA".
\r\n\r\n[4] Beller M,J., Yacobi Y., "Fully-fledged\r\ntwo-way public authentication and key agreement for low-cost terminals",\r\nElectronic Letters Vol 19 no. 11 (27 May '93), pp 999-1001.
\r\n\r\n[5] RIPE, "Integrity Primitives for\r\nSecure Information Systems" - Final Report of RACE Integrity Primitives\r\nEvaluation (RIPE-RACE 1040). LNCS 1007, A. Bosselaers, B. Preneel, Eds\r\nSpringer-Verlag, 1995.
\r\n\r\n[6] Diffie W., Hellman M.E., "News\r\nDirections in Cryptography", IEEE Trans. on Inform. Theory, vol. IT-22,\r\npp. 644-654, Nov. 1976.
\r\n\r\n[7] EIGamal, T., "A Public Key\r\nCryptosystem and a Signature Scheme Based on Descrete Logarithms", IEEE\r\nTrans. on Inform. Theory, vol. IT-31, pp. 469-472, July 1985.
\r\n\r\n[8] Girault M., Paillès J.C., "An\r\nIdentity-based scheme providing zo-ro-knowledge authentication and\r\nauthenticated key exchange", Proceedings of ESSORICS 90, pp. 173-184.
\r\n\r\n[9] ISO 8732:1998, Banking - Key Management\r\n(Wholesale).
\r\n\r\n[10] ISO/IEC 9594-8:1990, (CCITT X.509),\r\n"Information Technology - Open Systems Interconnection - The Directory -\r\nAuthentication framework".
\r\n\r\n[11] ISO/IEC 9796:1991, "Information\r\ntechnology - Security techniques - Digital signature scheme giving message\r\nrecovery".
\r\n\r\n[12] ISO/IEC 10118-2:1994, "Information\r\ntechnology - Security techniques - Hash-functions - Part 2: Hash-functions\r\nusing an n-bit block cipher algorithm".
\r\n\r\n[13] ISO/IEC 10118-3:1998, "Information\r\ntechnology - Security techniques - Hash-functions - Part 3: Dedicated hash\r\nfunctions".
\r\n\r\n[14] ISO/IEC 10118-4:1998, "Information\r\ntechnology - Security techniques - Hash-functions - Part 4: Mechanisms using\r\nmodular arithmetic".
\r\n\r\n[15] ISO 11166-1:1994, "Banking - Key\r\nmanagement by means of asymmetric algorithms - Part 1: Principles, Procedures\r\nand Formats".
\r\n\r\n[16] Matsumoto T., Takashima Y., Imai H.,\r\n"On Seeking Smart Public-Key-Distribution Systems", Trans. of the\r\nIECE of Japan, vol. E69 no. 2. Feb. 1986 pp. 99-106.
\r\n\r\n[17] Manezes, A., "Elliptic Curve Public\r\nKey Cryptosystem" Kluwer Academic Publishers, 1993.
\r\n\r\n[18] Nyberg K., Rueppel R.A., "Message\r\nRecovery for Signature Schemes Based on the Discrete Logarithm Problem",\r\nProceedings of Eurocrypt'94, Springer-Verlag, 1994.
\r\n\r\n[19] Okamotot E., "Proposal for\r\nidentity-basded key distribution system", Electronic Letters, Vol. 22,\r\nno.24, 20 Nov. 1986, pp. 1283-1284.
\r\n\r\n[20] Tanake K., Okamoto E., "Key\r\ndistribution system fo mail systems using ID-related information\r\ndirectory", Computers & Security, Vol. 10, 1991, pp. 25-23.
\r\n\r\n\r\n\r\n
MỤC LỤC
\r\n\r\nLời nói đầu
\r\n\r\n1 Phạm vi áp dụng
\r\n\r\n2 Tài liệu tiêu chuẩn
\r\n\r\n3 Thuật ngữ và định nghĩa
\r\n\r\n4 Ký hiệu và từ viết tắt
\r\n\r\n5 Các yêu cầu
\r\n\r\n6 Thỏa thuận khóa bí mật
\r\n\r\n6.1 Cơ chế thỏa thuận khóa 1
\r\n\r\n6.2 Cơ chế thỏa thuận khóa 2
\r\n\r\n6.3 Cơ chế thỏa thuận khóa 3
\r\n\r\n6.4 Cơ chế thỏa thuận khóa 4
\r\n\r\n6.5 Cơ chế thỏa thuận khóa 5
\r\n\r\n6.6 Cơ chế thỏa thuận khóa 6
\r\n\r\n6.7 Cơ chế thỏa thuận khóa 7
\r\n\r\n7 Vận chuyển khóa bí mật
\r\n\r\n7.1 Cơ chế vận chuyển khóa 1
\r\n\r\n7.2 Cơ chế vận chuyển khóa 2
\r\n\r\n7.3 Cơ chế vận chuyển khóa 3
\r\n\r\n7.4 Cơ chế vận chuyển khóa 4
\r\n\r\n7.5 Cơ chế vận chuyển khóa 5
\r\n\r\n7.6 Cơ chế vận chuyển khóa 6
\r\n\r\n8 Vận chuyển khóa công khai
\r\n\r\n8.1 Phân phối khóa công khai không cần đến\r\nbên thứ ba tin cậy
\r\n\r\n8.2 Phân phối khóa sử dụng bên thứ ba tin cậy
\r\n\r\nPhụ lục A
\r\n\r\nPhụ lục B
\r\n\r\nB.1 Lược đồ thỏa thuận khóa Diffie-Hellman\r\nkhông tương tác
\r\n\r\nB.2 Cơ chế dựa trên sự định danh
\r\n\r\nB.3 Thỏa thuận khóa Elgamal
\r\n\r\nB.4 Thỏa thuận khóa Nyberg-Rueppel
\r\n\r\nB.6 Lược đồ thỏa thuận khóa\r\nMatsumoto-Takashima-Imai A(0)
\r\n\r\nB.7 Giao thức Beller-Yacobi
\r\n\r\nB.8 Vận chuyển khóa EIGamal
\r\n\r\nB.9 Vận chuyển khóa EIGamal có chữ ký của bên\r\ngửi
\r\n\r\nB.10 Vận chuyển khóa theo RSA
\r\n\r\nPhụ lục C
\r\n\r\nC.1 Thỏa thuận khóa không tương tác kiểu\r\nDiffie-Hellman
\r\n\r\nC.2 Thỏa thuận khóa kiểu EIGamal
\r\n\r\nC.3 Thỏa thuận khóa theo Nyberg-Rueppel
\r\n\r\nC.4 Thỏa thuận khóa theo kiểu Diffie-Hellman
\r\n\r\nC.5 Thỏa thuận khóa theo kiểu\r\nMatsumoto-Takashima A(0)
\r\n\r\nC.6 Vận chuyển khóa theo kiểu EIGamal
\r\n\r\nC.7 Vận chuyển khóa theo kiểu EIGamal có chữ\r\nký của bên gửi
\r\n\r\nTài liệu tham khảo
\r\n\r\nFile gốc của Tiêu chuẩn quốc gia TCVN 7817-3:2007 (ISO/IEC 11770-3 : 1999) về Công nghệ thông tin – Kỹ thuật mật mã quản lý khoá – Phần 3: Các cơ chế sử dụng kỹ thuật không đối xứng đang được cập nhật.
Tiêu chuẩn quốc gia TCVN 7817-3:2007 (ISO/IEC 11770-3 : 1999) về Công nghệ thông tin – Kỹ thuật mật mã quản lý khoá – Phần 3: Các cơ chế sử dụng kỹ thuật không đối xứng
Tóm tắt
Cơ quan ban hành | Đã xác định |
Số hiệu | TCVN7817-3:2007 |
Loại văn bản | Tiêu chuẩn Việt Nam |
Người ký | Đã xác định |
Ngày ban hành | 2007-01-01 |
Ngày hiệu lực | |
Lĩnh vực | Xây dựng - Đô thị |
Tình trạng | Còn hiệu lực |