KR20030079141A - Method for Embodying a key agreement protocol - Google Patents

Method for Embodying a key agreement protocol Download PDF

Info

Publication number
KR20030079141A
KR20030079141A KR1020020017967A KR20020017967A KR20030079141A KR 20030079141 A KR20030079141 A KR 20030079141A KR 1020020017967 A KR1020020017967 A KR 1020020017967A KR 20020017967 A KR20020017967 A KR 20020017967A KR 20030079141 A KR20030079141 A KR 20030079141A
Authority
KR
South Korea
Prior art keywords
key
entity
braid
protocol
public key
Prior art date
Application number
KR1020020017967A
Other languages
Korean (ko)
Inventor
이창우
김영제
Original Assignee
이창우
김영제
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 이창우, 김영제 filed Critical 이창우
Priority to KR1020020017967A priority Critical patent/KR20030079141A/en
Publication of KR20030079141A publication Critical patent/KR20030079141A/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols

Abstract

PURPOSE: A method for implementing the key agreement protocol is provided to secure a safety and security by using Braid group since a method for solving the solution of a polynomial time has not been found. CONSTITUTION: A method for implementing the key agreement protocol includes the steps of: defining(SA401) a pair of sub-groups GA and HA of Bn; randomly selecting(SA402) aA ∈ GA and bA ∈ HA; selecting(SA403)Δ∈ Bn; calculating(SA404) Δp; calculating(SA405) xA = aAΔpbA; publishing(SA406) xA; receiving(SB407) xA; receiving(SA407) yB; and calculating(SA408) K = aAyBbA.

Description

키합의 프로토콜 구현방법{Method for Embodying a key agreement protocol}Method for Embodying a key agreement protocol

본 발명은 키 합의(key agreement) 프로토콜 구현방법에 관한 것으로서, 특히 땋임군(braid group) 이론에 기반을 둔 공개키 암호 시스템에서 오래 동안 어려운 문제로 알려져 있던 분해 문제(Decomposition Problem), 또는 그 문제를 응용한 일반화된 디피-헬만형 분해 문제(Generalized Diffie-Hellman type Decomposition Problem)의 어려움에 그 안전성의 기반을 두고, 두 송수신 실체간에 키 합의를 이루는 프로토콜 구현방법에 관한 것이다.The present invention relates to a key agreement protocol implementation method, in particular, a decomposition problem, or a problem that has long been known as a difficult problem in a public key cryptosystem based on braid group theory. Based on the safety of the generalized Diffie-Hellman type Decomposition Problem applied to the problem, the present invention relates to a method for implementing a protocol that achieves a key agreement between two transmitting and receiving entities.

최근 정보통신망의 발전으로 다양한 정보들이 네트웍을 통하여 교환되면서 통신로 상에서 적합한 실체 이외의 합법적이지 못한 실체에게 정보가 누출되는 것을 방지하기 위하여, 메시지를 암호화하여 통신하는 기법이 필요하게 되었다. 이러한 암호 통신을 위해서는 암호 알고리즘의 내부 동작을 지정하는 키가 필요하고 송신자와 수신자는 같은 키를 공유해야 하며, 공유된 키는 메시지 기밀성, 무결성, 개인식별 등과 같은 암호학적 서비스를 달성하기 위해 사용된다. 이처럼 둘 이상의 실체가 암호통신을 위해 사전에 공개된 통신로를 통하여 키를 공유하는 과정을 키 확립 프로토콜이라고 한다. 키 확립 프로토콜은 크게 키 전송(key transport) 프로토콜과 키 합의(key agreement) 프로토콜로 구분할 수 있다. 상기 키 전송 프로토콜은 한쪽 실체가 키를 생성하여 다른 실체에게 안전하게 전달하는 프로토콜이고, 키 합의 프로토콜은 양쪽 실체가 상호 작용해서 주고 받은 정보로 키를 생성하는 프로토콜이다.Recently, with the development of the information communication network, as a variety of information is exchanged through the network, in order to prevent the information leaking to an illegal entity other than a suitable entity on a communication channel, a technique for encrypting a message is required. This cryptographic communication requires a key that specifies the inner workings of the cryptographic algorithm, the sender and receiver must share the same key, and the shared key is used to achieve cryptographic services such as message confidentiality, integrity, and personal identification. . As such, the process of sharing a key through two previously disclosed communication channels for cryptographic communication is called a key establishment protocol. The key establishment protocol can be roughly divided into a key transport protocol and a key agreement protocol. The key transfer protocol is a protocol in which one entity generates a key and securely delivers it to another entity, and the key agreement protocol is a protocol for generating a key with information exchanged between two entities.

상기 키 합의 프로토콜의 궁극적인 목표는 키로 사용할 비밀정보를 안전하게 공유하기 위함이며, 이상적으로는 직접 만나서 키를 합의하는 것과 같은 특성을 가지도록 하는 것이다. 즉 키를 생성하기 위한 비밀정보는 합법적인 객체들 간에만 공유되어야 하고, 키는 키 생성이 가능한 공간에서 랜덤하게 선택되며, 불법적인 실체는 키에 대한 어떠한 부분 정보도 얻을 수 없어야 한다. 이러한 키 합의를 이루기 위한 프로토콜은 안전성 요구 사항과 성능 요구사항을 만족시킬 수 있어야 한다. 지금까지 키 합의 및 인증 프로토콜로서 다양한 프로토콜들이 제안되었으며, 그 중 많은 프로토콜들이 여러 가지 공격방법에 대해 안전하지 못하다는 것이 증명되었다. 따라서 어떤 프로토콜을 분석하기 위해서는 프로토콜이 저항해야 하는 공격과 만족해야할 속성을 정의할 필요가 있다.The ultimate goal of the key agreement protocol is to securely share secret information to be used as a key, and ideally to have characteristics such as meeting a person in person. That is, secret information for generating a key should be shared only between legal objects, keys are randomly selected in a space where a key can be generated, and an illegal entity must not obtain any partial information about the key. The protocol for achieving this key agreement must be able to meet the safety and performance requirements. So far, various protocols have been proposed as key agreement and authentication protocols, and many of them have proved insecure against various attack methods. Therefore, in order to analyze a protocol, it is necessary to define the attacks that the protocol must resist and the attributes that must be satisfied.

한편, 지금까지 알려진 암호 체계는 정수 또는 유한 체(finite field)에서 정의된 연산들, 예를 들면, 곱셈과 덧셈, 그리고 이것을 응용한 함수에서 유도된 방정식의 해(solution)를 구하는 것이 어렵다는 사실을 이용한 것이다. 가장 널리 알려진 암호체계로는 큰 정수의 인수분해(factorization), 이산 로그 문제(discrete logarithm problem), 그리고 이것을 응용한 문제 등이 있으며, 대표적으로는 RSA와 ElGamal이 있다. 또한, 위에서 언급한 연산들과 어려운 문제들을 타원 곡선 상에 정의된 연산과 동일한 문제로 변환하는 소위 타원곡선 암호체계(elliptic curve cryptosystem: ECC)도 개발되고 있다. 이와 같은 종래의 암호체계들의 공통된 성질 중의 하나는 연산들의 교환법칙(commutativity)이 성립한다는 것이고, 또한 컴퓨터의 연산속도 증가와 함께 이들에 대한 해법이 점차적으로 개발되고 있다는 것이다.On the other hand, the cipher systems known to date find it difficult to find solutions for operations defined in integers or finite fields, such as multiplication and addition, and equations derived from functions that apply them. It is used. The most widely known cryptosystems include factorization of large integers, discrete logarithm problems, and the application of them. Representative examples include RSA and ElGamal. In addition, so-called elliptic curve cryptosystems (ECCs) are being developed that convert the above-mentioned operations and difficult problems into the same problems as those defined on elliptic curves. One common property of such conventional cryptosystems is that the commutativity of operations holds, and solutions to them are gradually being developed with increasing computational speed of computers.

또한, 최근에는 땋임군 이론에 기반을 둔 암호체계가 개발되고 있다[Ko et al. New Public-key Cryptosystem Using Braid Groups, Advances in Cryptology-Crypto 2000 참조]. 이 암호체계는 땋임군에서 오래 동안 어려운 문제로 알려졌던 공액문제(Conjugacy Search Problem)를 응용한 일반화된 공액문제(Generalized Conjugacy Search Problem)에 기반하여 키 합의(Key agreement) 프로토콜을 제시하고, 이 키합의를 이용하여 공개키 암호 체계를 구성한 것이다. 공액문제는 실제로 다항시간(polynomial time) 안에 해를 구할 수 있는지 명확하지 않으나, 수학적으로는 SSS(super summit set)을 이용하여 해를 구할 수 있으며, 일반화된 공액문제에 대하여도 수학적인 해법이 개발되고 있다. 따라서, 더욱 안전한 암호체계를 구축하기 위해서는 땋임군 Bn의 인덱스 n을 상대적으로 크게 하여야 하며, 이에 비례하여 키의 크기도 커져야 하는 단점이 있다.Recently, a cryptosystem based on braided group theory has been developed [Ko et al. New Public-key Cryptosystem Using Braid Groups, Advances in Cryptology-Crypto 2000]. This cryptosystem proposes a key agreement protocol based on the Generalized Conjugacy Search Problem, which applies the Conjugacy Search Problem, which has long been known as a difficult problem in the braided army. A consensus was used to construct a public key cryptosystem. It is not clear whether the conjugate problem can actually be solved within the polynomial time, but mathematically it can be solved using a super summit set (SSS), and mathematical solutions are developed for generalized conjugate problems. It is becoming. Therefore, in order to construct a more secure encryption system, the index n of the braided group Bn must be relatively large, and the size of the key must be increased in proportion to it.

본 발명은 상기와 같은 땋임군 이론을 기반으로 하는 공개키 암호화 시스템에서, 프로토콜을 개시하는 두 실체의 땋임군 Bn에 속하는 땋임 Δ와 상기 땋임군 Bn의 부분군 G, H에 각각 속하는 비밀키 a, b로부터 연산되어 알려진 공개키 y를 y = aΔb라 할 때, 알려진 Δ, y로부터 a 또는 b를 구하는 분해문제의 어려움 또는 일반화된 디피-헬만형 분해문제의 어려움에 그 안전성의 기반을 두며, 프로토콜의 안전성 요구사항을 만족하는 키 합의 프로토콜 구현방법을 제공함에 목적이 있다.The invention each secret belonging to the public key encryption system based on braided imgun theory as described above, wherein the braids Δ pertaining to the braided imgun B n of the two entities initiating a protocol braided subgroup of imgun B n G, H When the known public key y calculated from the keys a and b is y = aΔb, the safety is based on the difficulty of decomposing a or b from the known Δ, y or the difficulty of generalized Diffie-Hellman type decomposition. It also aims to provide a key agreement protocol implementation method that satisfies the protocol's safety requirements.

도 1a 내지 도 2b는 본 발명에서 도입된 땋임군 이론을 설명하기 위하여 도시한 생성자들의 개념도로서,1A to 2B are conceptual diagrams of constructors shown to explain the braided group theory introduced in the present invention.

도 1a는 단위 생성자 σi의 기하학적 형상도1A is a geometric diagram of the unit constructor σ i

도 1b는 단위 생성자 σi -1의 기하학적 형상도1B is a geometric diagram of the unit generator σ i -1

도 2a는 생성자 σi와 생성자 σj의 기하학적 형상도2A is a geometric diagram of constructor σ i and constructor σ j

도 2b는 생성자 σi와 생성자 σj의 곱(σiσj)의 기하학적 형상도2b is a geometric diagram of the product of the generator σ i and the generator σ ji σ j )

도 3는 본 발명에 따른 키 합의 프로토콜을 구현하는데 적합한 프로토콜 구현시스템의 블록구성도3 is a block diagram of a protocol implementation system suitable for implementing a key agreement protocol according to the present invention.

도 4는 본 발명에 의한 키 합의 프로토콜 구현방법의 일 실시예를 나타낸 순서도Figure 4 is a flow chart showing an embodiment of a key agreement protocol implementation method according to the present invention

도 5는 본 발명에 의한 키 합의 프로토콜 구현방법의 다른 실시예를 나타낸 순서도5 is a flowchart illustrating another embodiment of a key agreement protocol implementation method according to the present invention.

※ 도면의 주요부분에 대한 부호의 설명※ Explanation of code for main part of drawing

10: 실체 A20: 실체 B10: entity A20: entity B

30: 공개키 디렉토리30: Public Key Directory

상기 목적을 달성하기 위한 본 발명의 일 실시예는, 프로토콜을 개시하는 실체 A와 그에 대응하는 다른 실체 B가 분해문제의 어려움에 그 안전성의 기반을 두어 키 합의를 이루는 프로토콜 구현방법에 있어서, 생성자 집합으로서 하나의 정의된 연산과 인덱스 n을 갖는 땋임군(braid group) Bn으로부터 하나의 실체 A가 부분군(subgroup) GA, HA를 정의하고, 다른 실체 B가 부분군 GB, HB를 정의하되, GA의 모든 땋임 x와 HB의 모든 땋임 y에 대해서 xy=yx의 연산관계가 성립하며, GB의 모든 땋임 x와 HA의 모든 땋임 y에 대해서 xy=yx의 연산관계가 성립하도록 부분군 GA, HA, GB, HB를 정의하고 있는 상기 두 실체 A, B가, 상기 땋임군 Bn으로부터 공통된 하나의 땋임을 선택하고, 상기 자신이 정의한 부분군 GA, HA, 및 GB, HB로부터 각각자신의 비밀키 aA, bA및 aB, bB를 선택하는 제 1단계와; 상기 선택된 자신의 비밀키와 상기 공통된 땋임으로 공개키를 계산하여 공개하는 제2 단계와; 상기 프로토콜 개시 상대방의 공개키와 자신의 비밀키를 이용하여 세션키를 계산하는 제3 단계로 이루어지는 것을 특징으로 하는 키합의 프로토콜 구현방법을 제공한다.An embodiment of the present invention for achieving the above object is a constructor in a method for implementing a protocol in which entity A, which initiates the protocol, and a corresponding entity B, achieve a key agreement based on the safety of difficulty of decomposition problem. From a braid group B n with one defined operation and index n as a set, one entity A defines subgroups G A , H A , and another entity B defines subgroups G B , H Define B , but xy = yx is established for all braids x of G A and all braids y of H B , and xy = yx for all braids y of G B and all braids y of H A The two entities A, B, which define subgroups G A , H A , G B , H B so that a relationship is established, select one common braid from the braid group Bn, and the subgroup G A defined by the self , H A , and G B , H B each have their own private keys a A , b A and a first step of selecting a B , b B ; Calculating and publishing a public key with the selected private key and the common braid; And a third step of calculating a session key using the public key of the protocol initiating party and its private key.

상기 목적을 달성하기 위한 본 발명의 다른 실시예는, 프로토콜을 개시하는 실체 A와 그에 대응하는 실체 B가 일반화된 디피-헬만형 분해문제의 어려움에 안전성의 기반을 두어 키 합의를 이루는 프로토콜 구현방법에 있어서, 생성자 집합으로서 하나의 정의된 연산과 인덱스 n을 갖는 땋임군(braid group) Bn으로부터 하나의 실체 A가 부분군(subgroup) GA, HA를 정의하고, 다른 실체 B가 부분군 GB, HB를 정의하되, GA의 모든 땋임 x와 HB의 모든 땋임 y에 대해서 xy=yx의 연산관계가 성립하며, GB의 모든 땋임 x와 HA의 모든 땋임 y에 대해서 xy=yx의 연산관계가 성립하도록 부분군 GA, HA, GB, HB를 정의하고 있는 상기 두 실체 A, B가 그 각각의 부분군들로부터 각각 하나 이상의 비밀키 aA, bA및 aB, bB를 선택하고, 상기 땋임군 Bn으로부터 공통된 하나의 땋임을 선택하는 제1 단계와; 상기 공통된 땋임과 자신의 하나 이상의 비밀키로 상기 땋임군의 기 정의된 연산을 1회 이상 수행하여 공개키를 생성하고, 그 공개키를 공개키 디렉토리에 각각 공개시키는 제2 단계와; 상기 프로토콜 개시 상대방에 의해 공개된 키를 상기 공개키 디렉토리로부터 각각 수신하여,상기 수신한 공개키와 자신의 비밀키로 상기 땋임군에 기 정의된 연산을 1회 이상 수행하여 세션키를 계산하는 제3 단계로 이루어지는 것을 특징으로 하는 키 합의 프로토콜 구현방법을 제공한다.Another embodiment of the present invention for achieving the above object is a method for implementing a protocol that achieves a key agreement based on the safety of the problem of the generalized Diffie-Hellman type decomposition problem between the entity A that initiates the protocol and the corresponding entity B For a set of constructors, one entity A defines subgroups G A , H A from a braid group B n with one defined operation and index n, and another entity B defines a subgroup. We define G B , H B , where the arithmetic relation of xy = yx is established for all braids x of G A and all braids y of H B , and xy for all braids x of G B and all braids y of H A. The two entities A and B, which define subgroups G A , H A , G B , and H B so that the arithmetic relation of = yx is established, are each one or more secret keys a A , b A and select a B , b B , and use one common braid from the braid group Bn. Selecting a first step; A second step of generating a public key by performing one or more predefined operations of the group of braids with the common braid and one or more private keys thereof, and publishing the public key in a public key directory, respectively; A third key for receiving a key disclosed by the protocol initiating party from the public key directory, and performing a calculation defined in the braid group one or more times using the received public key and its own private key to calculate a session key It provides a key agreement protocol implementation method comprising the steps.

상기 본 발명의 목적 및 이들 목적을 이루기 위한 본 발명의 기술적인 특징 및 장점은 첨부 도면 및 다음의 상세한 설명을 참조함으로서 더욱 쉽게 이해될 수 있을 것이다. 이하에서의 본 발명은 프로토콜을 개시하는 송신측을 실체 A라하고, 그에 대응하는 다른 수신측을 실체 B라 하여, 상기 두 실체 A, B가 키 합의 프로토콜을 수행하게 될 때, 키 합의 시에 필요로 하는 기본적인 보안을 위한 안전성 요구 사항을 제공할 수 있는 키 합의 프로토콜 구현방법을 바람직한 실시예로서 제안한다. 그러나 본 발명의 기술적 사항은 이에 한정되거나 제한되지 않고 당업자에 의해 변형되어 다양하게 실시 될 수 있음은 물론이다.The above object of the present invention and the technical features and advantages of the present invention for achieving these objects will be more readily understood by reference to the accompanying drawings and the following detailed description. In the following invention, when the two parties A and B perform the key agreement protocol, the transmitting party initiating the protocol is called entity A and the other receiving party is called entity B. We propose a method of implementing a key agreement protocol that can provide security requirements for basic security as a preferred embodiment. However, the technical matters of the present invention are not limited thereto and may be variously modified and modified by those skilled in the art.

상기와 같은 본 발명의 바람직한 실시예들에 의한 키 합의 프로토콜 구현방법의 이해를 돕기 위하여 몇 가지의 정의 및 전제조건을 제시한다.Some definitions and prerequisites are presented to help understand the key agreement protocol implementation method according to the preferred embodiments of the present invention as described above.

1. 군(Group) 이란 공집합이 아닌 집합 G와 그 원소들 사이에 정의된 임의의 연산자 *을 가진 쌍 (G, *)을 의미하며, 군 G의 임의의 두 원소 x, y 에 대하여 x*y가 군 G에 속하는 원소가 되어야 하며, 다음 세 가지 조건을 만족해야 한다. 여기서 연산 기호 *는 생략하여 x*y를 xy라고 쓰고 x와 y의 곱이라 한다. 예를 들면, x*x*x*x=x4이 된다.1. Group means a pair (G, *) with a set G and any operator * defined between its elements, not an empty set, and x * for any two elements x, y of group G y must be an element in group G, and the following three conditions must be met: Here, the operation symbol * is omitted, and x * y is written as xy, and it is called the product of x and y. For example, x * x * x * x = x 4 .

(a) 항등원 e가 있어서 임의의 원소 x에 대하여 xe=x=ex 가 성립한다.(a) xe = x = ex holds for any element x because of the identity circle e.

(b) 임의의 원소 x에 대하여 역원 x-1이 있어서 xx-1=e=x-1x 가 성립한다.(b) For any element x, there is an inverse x -1 so that xx -1 = e = x -1 x.

(c) 임의의 세 원소 x, y, z 에 대하여 (xy)z=xyz=x(yz) 가 성립한다.(c) (xy) z = xyz = x (yz) holds for any three elements x, y, and z.

만약 군 G가 임의의 두 원소 x, y에 대하여 xy=yx 가 성립하면 G를 가환군(commutative group)이라 하고, xy=yx가 성립하지 않는 두 원소가 있으면 비가환군(noncommutative group)이라 한다.If group G holds xy = yx for any two elements x and y, G is called a commutative group, and if there are two elements for which xy = yx does not hold, G is called a noncommutative group.

2. 땋임군(Braid group)은 다음과 같이 정의된다.2. The braid group is defined as follows.

우선 n개의 스트링(string)의 끝을 막대에 차례로 묶고 1, 2, ...i, i+1, ..., n이라 하고, 또 다른 막대에 상기 각 스트링의 다른 끝을 서로 교차되지 않게 묶은 기하학적 형상을 설정한 다음,First we tie the ends of the n strings to the bars one after another and say 1, 2, ... i, i + 1, ..., n, and do not cross the other ends of each of the strings on another bar. After setting up the bundled geometry,

i) i번째 스트링과 i+1번째 스트링을 왼쪽(i 번째) 스트링이 윗 쪽(도면상의 지면 앞쪽)에 오도록 교차시키고, 다른 스트링(1,2,...,i-1,i+2,i+3,...,n)은 그대로 둔, 도 1a와 같은 기하학적인 형상을 생성자 σi라 하고,i) Intersect the i-th string and the i + 1th string so that the left (i-th) string is above (in front of the drawing), and the other strings (1, 2, ..., i-1, i + 2) , i + 3, ..., n) is left as it is, the geometric shape as shown in Figure 1a is called the generator σ i ,

ii) 상기 생성자 σi와는 반대로, 오른쪽(i+1 번째) 스트링이 윗 쪽에 오도록 교차시키고 다른 스트링(1,2,...,i-1,i+1,i+3,...,n)은 그대로 둔, 도 1b와 같은 기하학적인 형상을 그 생성자의 역원 σi -1이라 하고(σi를 거울에 비치면 σi -1이 된다),ii) In contrast to the constructor σ i , the right (i + 1) string intersects to the top and the other strings (1,2, ..., i-1, i + 1, i + 3, ..., n) is left as it is and the inverse of the generator σ i -1 (Fig. 1B) (sigma i reflected in the mirror becomes σ i -1 ),

상기 생성자(σi) 또는 그 생성자의 역원(σi -1)들을 원소로 갖는 집합 {σi, σ2, ...,σn-1}로 정의되는 군으로서 다음의 관계를 만족하는 비가환군 (noncommutative group)을 땋임군 Bn 이라 한다.A group defined by the set {σ i , σ 2 , ..., σ n-1 } having the constructor σ i or its inverse σ i -1 as an element and a ratio satisfying the following relationship The noncommutative group is called braided group Bn.

(a) 만약 |i-j|≥2 이고 1≤i, j ≤ n-1 이면, σiσj= σjσi가 성립(a) If | ij | ≥2 and 1≤i, j≤n-1, then σ i σ j = σ j σ i

(b) 만약 |i-j|=1 이면, σiσjσi= σjσiσi가 성립(b) If | ij | = 1, then σ i σ j σ i = σ j σ i σ i

여기서, |i|는 정수 i의 절대값이며, 상기 땋임군 Bn의 원소들은 생성자(σi) 들과 그것들의 역원(σi -1)들의 곱으로 표현된다. 예를 들면 σ1σ3 -1σ1 -1σ2σ1은 B4의 원소이다.Where | i | is the absolute value of the integer i, and the elements of the braid group Bn are represented by the product of the generators σ i and their inverses σ i -1 . For example, σ 1 σ 3 -1 σ 1 -1 σ 2 σ 1 is an element of B 4 .

특히, 상기 생성자들의 곱 σiσj는 도 2a에 도시된 바와 같이, 생성자 σi와 생성자 σj에 해당하는 기하학적인 형상으로부터 생성자 σi의 아래 쪽 막대에 묶인 스트링의 끝이 생성자 σj의 윗쪽 막대에 묶인 스트링의 끝에 순서대로 일치하도록 붙인 도 2b와 같은 형상을 칭한다. 그리고 이와 같은 생성자들의 곱으로 표현된 것을 워드(word)라고 하며, 하나의 워드를 표현하는 방법은 여러 가지가 있을 수 있다. 예를 들면, σ1σ2σ1σ2 -1σ3σ12σ1σ2σ2 -1σ3σ12σ1σ3σ1 =σ2σ3σ1σ1들은 Bn의 원소로서 모두 동일하다. 이것은 관계식 (a), (b)를 이용하면 쉽게 알수 있다. 이하의 본 발명에서는, 상기 땋임군 Bn의 원소를 땋임 (braid)이라고 부르기로 하며, 따라서 두개의 워드(word)가 주어졌을 때, 그들이 같은 땋임인지 아니면 다른 땋임인지를 결정해야 되는 문제를 워드 문제(word problem)이라 칭한다.In particular, the product σ i σ j of the constructors, as shown in FIG. 2A, is derived from the geometric shape corresponding to the generator σ i and the generator σ j , and the end of the string bounded by the lower bar of the generator σ i is equal to the generator σ j . It refers to the shape as shown in Figure 2b attached in order to match the end of the string tied to the upper bar. In addition, a word expressed as a product of the constructors is called a word, and there may be various ways of expressing one word. For example, σ 1 σ 2 σ 1 σ 2 -1 σ 3 σ 1 = σ 2 σ 1 σ 2 σ 2 -1 σ 3 σ 1 = σ 2 σ 1 σ 3 σ 1 = σ 2 σ 3 σ 1 σ 1 is the same as Bn. This can be easily seen using the relations (a) and (b). In the present invention below, the elements of the braid group Bn will be referred to as braid, so when two words are given, the problem of determining whether they are the same braid or another braid is a word problem. This is called the word problem.

도 3은 본 발명에 따른 키합의 프로토콜을 구현하는 데에 적합한 프로토콜 구현시스템의 블록구성도로서 프로토콜을 개시하는 실체 A(10)와, 이에 대응하는 다른 실체 B(20), 및 공개키 디렉토리(30)를 포함한다.3 is a block diagram of a protocol implementation system suitable for implementing a key agreement protocol according to the present invention, and entity A (10) for initiating the protocol, corresponding entity B (20), and public key directory ( 30).

도 3을 참조하면, 상기 두 실체 A, B (10, 20)는 땋임군 Bn에 속하는 하나의 공통된 땋임(Δ)과 상기 땋임군 Bn으로부터 각각 정의된 부분군 GA, HA, 및 GB, HB에 속하는 비밀키 aA, bA및 aB, bB로부터 연산되어 알려진 각각의 공개키 xA와 yB(또는 xA, yA, xB, yB)를 이용하여 서로가 공유하는 안전한 세션키(비밀키)를 생성하게 되며, 이러한 두 실체는 상기 알려진 xA또는 yB로부터 aA, bA또는 aB, bB를 구하는 분해문제의 어려움 또는 일반화된 디피-헬만형 분해문제의 어려움에 그 안전성의 기반을 두어 프로토콜의 안전성 요구사항을 만족하는 키 합의 프로토콜을 구현하는 것이 가능하게 된다. 이를 위하여, 상기 두 실체 A, B (10, 20)는, 생성자들(σi)의 집합으로서 하나의 정의된 연산(*)과 인덱스 n을 갖는 땋임군 Bn으로부터 각각의 부분군 (subgroup) GA, HA, 및 GB, HB를 정의하고 있어야 하며, 또한 상기 땋임군 Bn으로부터 하나의 땋임(Δ)을 선택하여 프로토콜 개시 상대방과의 공통된 파라미터를 공유하고 있어야 한다. 그리고 상기 각각의 부분군 GA, HA, 및 GB, HB는 하나의 실체가 정의한 부분군 GA, HA의 모든 땋임이 다른 실체 B가 정의한 부분군 GB, HB의 모든 땋임에 대해 공통되지 않고, 상기 정의된 연산(*)에 대해 교환법칙이 성립하도록 정의되어야 한다. 즉, 프로토콜을 개시하는 상기 두 실체 A, B는 인덱스 n인 땋임군 Bn의 부분군 GA, HA, GB, HB를 다음 (a), (b) 두 성질이 만족하도록 잡는다.Referring to Figure 3, the two entities A, B (10, 20) are one common braid (Δ) belonging to the braid group Bn and subgroups G A , H A , and G B respectively defined from the braid group Bn , Using each known public key x A and y B (or x A , y A , x B , y B ) computed from the private keys a A , b A and a B , b B belonging to H B , It will generate a shared secure session key (secret key), and these two entities can be solved to obtain a A , b A or a B , b B from the known x A or y B or generalized Diffie-Hellmann type. Based on the difficulty of the decomposition problem, it becomes possible to implement a key agreement protocol that satisfies the safety requirements of the protocol. To this end, the two entities A, B (10, 20) are each a subgroup G from the braid group Bn with a defined operation (*) and index n as a set of constructors (σ i ). A , H A , and G B , H B must be defined, and one braid (Δ) is selected from the braid group Bn to share a common parameter with the protocol initiating party. And each of the subgroups G A , H A , and G B , H B are all braids of the subgroups G A , H A defined by one entity and all of the subgroups G B , H B defined by the other entity B It should be defined that the law of exchange holds for the operation (*) defined above, which is not common to. That is, the two entities A and B initiating the protocol grab the subgroups G A , H A , G B , H B of the braided group Bn with the index n to satisfy the following two properties (a) and (b).

(a) 부분군 GA의 모든 땋임 xi와 부분군 HB의 모든 땋임 yj는 상기 땋임군에 기 정의된 연산(*)에 대하여 교환법칙 xiyj=yjxi가 성립한다.(a) All braids x i of subgroup G A and all braids y j of subgroup H B are established by the exchange rule x i y j = y j x i for the operation (*) previously defined in the braid group. .

(b) 부분군 GB의 모든 땋임 xj와 부분군 HA의 모든 땋임 yi는 상기 땋임군에 기 정의된 연산(*)에 대하여 교환법칙 xjyi=yixj가 성립한다.(b) All braids x j of subgroup G B and all braids y i of subgroup H A are established by the exchange rule x j y i = y i x j for the operation (*) previously defined in the braid group. .

예를 들어, 어떤 특정한 생성자 집합 {σ12, ...,σn-1}의 4개의 부분 집합 LA, RA, LB, RB을 LA∩ RB= Φ과 LB∩ RA= Φ가 만족되도록 잡아서 각 부분집합이 생성(generate)하는 Bn의 부분 집합들을 각각 GA, HA, GB, HB라 두면, 이와 같이 설정되는 GA, HA, GB, HB들은 위의 두 성질 (a)와 (b)를 만족한다.For example, four subsets L A , R A , L B , and R B of a particular set of constructors {σ 1 , σ 2 , ..., σ n-1 } are L A ∩ R B = Φ and L If B ∩ R A = Φ to be satisfied and each subset of Bn generated by each subset is G A , H A , G B , H B , respectively, G A , H A , G B and H B satisfy the above two properties (a) and (b).

도 4는 본 발명에 의한 키 합의 프로토콜의 구현방법의 일 실시예를 나타낸 순서도로서, 프로토콜을 개시하는 두 실체 A, B(이하, 수신측 실체를 A로, 그에 대응하는 송신측 실체를 B로 하여 설명하며, 이러한 실체 A, B는 필요에 따라 수신측 실체가 B로, 송신측 실체가 A로 바뀔 수 있음)가 단일-땋임을 이용하여 분해 문제의 어려움에 그 안전성의 기반을 두고 키 합의를 이루는 제1 단계에서 제3 단계까지의 프로토콜 구현과정을 예시하고 있다.4 is a flowchart illustrating an embodiment of a method for implementing a key agreement protocol according to the present invention, in which two entities A and B initiating the protocol (hereinafter referred to as receiving entity A and corresponding transmitting entity B). In this case, the entities A and B can be changed into a receiving entity as B and a transmitting entity as A), if necessary, by using a single braid. It illustrates the protocol implementation process from the first step to the third step to achieve.

상기 제1 단계 (SA401-SA403, SB401-SB403)는 프로토콜을 개시하는 상기 두 실체 A, B가 키 합의를 이루기 위해 사전에 미리 알고 있어야 하는 여러 가지의 조건들을 정의하는 초기 설정단계이다. 이 초기 설정 단계는 두 실체 A, B가 각각 하나의 정의된 연산(*)과 인덱스 n을 갖는 땋임군 Bn으로부터 그의 부분군 GA, HA, 및 GB, HB를 특정한 조건에 부합되게 한정하여 정의하는 단계(SA401, SB401)와, 상기 정의된 각 부분군 GA, HA, 및 GB, HB들로부터 상기 두 실체 A, B가 각각 자신의 비밀키 aA, bA, 및 aB, bB(aA∈ GA, bA∈ HA, aB∈ GB, bB∈ HB)를 선택하는 단계(SA402, SB402)와, 상기 땋임군 Bn으로부터 공통된 하나의 땋임(Δ)을 선택하는 단계(SA403, SB403)을 포함하여 구성할 수 있다. 여기서, 상기 실체 A가 특정하는 부분군 GA, HA의 모든 땋임은 상기 조건 (a)(b)로부터, 다른 실체 B가 정의한 부분군 GB, HB의 모든 땋임에 대해서 서로 공통되지 않고, 상기 땋임군 Bn에 기 정의된 연산(*)에 대해 교환법칙이 성립하도록 설정되어야 함은 당연하다.The first step (SA401-SA403, SB401-SB403) is an initial setting step of defining various conditions that the two entities A and B initiating the protocol must know in advance in order to achieve a key agreement. This initial setup step involves two entities A and B, each of which has one defined operation (*) and an index n, from its braided group Bn, subgroups G A , H A , and G B , H B to meet specific conditions. In the defining step (SA401, SB401) and each of the subgroups G A , H A , and G B , H B defined above, the two entities A, B have their own secret keys a A , b A , And selecting a B , b B (a A ∈ G A , b A ∈ H A , a B ∈ G B , b B ∈ H B ) and a common one from the braid group Bn It may comprise a step (SA403, SB403) to select the braid (Δ). Here, all the braids of the subgroups G A and H A specified by the entity A are not common to all the braids of the subgroups G B and H B defined by the other entity B from the above condition (a) (b). It is natural that the law of exchange must be set for the operation (*) defined in the braid group Bn.

상기 제2 단계(SA404-SA406, SB404-SB406)는, 상기 두 실체 A, B가 상기 공통된 땋임(Δ)과 자신의 비밀키(aA, bA, 및 aB, bB)를 각각 이용하여 상기 땋임군에 기 정의된 연산(*)을 1회 이상 수행하여 각각 하나의 공개키(xA, yB)를 생성하고, 그 공개키를 공개키 디렉토리에 각각 공개시키는 단계이다. 이 공개키 생성 및 공개 단계는, 상기 실체 A가 수행하는, 상기 공통 선택된 땋임 Δ에 임의의 정수 p를 지수승하여 Δp를 계산하는 단계(SA404)와, 상기 계산된 Δp와 자신의 비밀키 aA, bA를 이용하여 상기 땋임군에 기 정의된 연산(*)을 1회 이상 수행하여 그 연산결과로 다수의 땋임곱으로 이루어진 새로운 워드 xA= aAΔpbA를 생성하는 단계(SA405)와, 상기 생성된 워드 xA를 프로토콜 개시 상대방이 알 수 있는 공개키로 공개키 디렉토리에 노출시키는 단계(SA406)와, 상기 다른 실체 B가 수행하는, 상기 공통 선택된 땋임 Δ에 임의의 정수 p를 지수승하여 Δp를 계산하는 단계(SB404)와, 상기 계산된 Δp와 자신의 비밀키 aB, bB를 이용하여 상기 땋임군에 기 정의된 연산(*)을 1회 이상 수행하여 그 연산결과로 다수의 땋임곱으로 이루어진 새로운 워드 yB= bBΔpaB를 생성하는 단계(SB405)와, 상기 생성된 워드 yB를 프로토콜 개시 상대방이 알 수 있는 공개키로 공개키 디렉토리에 노출시키는 단계(SB406)를 포함하여 구성할 수 있다.In the second steps SA404-SA406 and SB404-SB406, the two entities A and B each use the common braid Δ and their secret keys a A , b A , and a B , b B , respectively. By performing one or more operations (*) previously defined in the braided group to generate one public key (x A , y B ), and publicly disclose the public key in the public key directory. This public key generating and publishing step comprises the step of calculating a Δ p by exponential powering an arbitrary integer p to the common selected braid Δ performed by the entity A (SA404), the calculated Δ p and its secret Using the keys a A and b A , perform one or more operations (*) defined in the braid group to generate a new word x A = a A Δ p b A consisting of a plurality of braid products. A step SA405, exposing the generated word x A to a public key directory with a public key known to the protocol initiating party (SA406), and the other selected entity B in the common selected braid Δ step by the integer p exponentiation calculating a Δ p (SB404), and the calculated Δ p and his secret key a b, previously defined operations (*) one or more times in the braid groups using b b And the result of the operation is a new word y B = b Δ p B and step (SB405) for generating a B, Initiation Protocol the generated word y B is the other party can be configured to include a step (SB406) is exposed to the public key directory public key can be seen.

상기 제3 단계(SA407-SA408, SB407-SB408)는, 상기 두 실체 A, B가 상기 프로토콜 개시 상대방에 의해 공개된 키를 상기 공개키 디렉토리로부터 각각 수신하여, 상기 수신한 공개키와 자신의 비밀키로 상기 땋임군에 기 정의된 연산(*)을 1회 이상 수행하여 하나의 세션키(K)를 계산하는 단계이다. 이 세션키 계산단계는, 상기 실체 A가 수행하는, 상기 공개키 디렉토리에 노출된 다른 실체 B의 공개키 yB를 수신하는 단계(SA407)와, 상기 수신된 공개키 yB와 자신의 비밀키 aA, bA를 이용하여 상기 땋임군 Bn에 기정의된 연산(*)을 1회 이상 수행하여 세션키 K=aAyBbA를 계산하는 단계(SA408)와, 상기 다른 실체 B가 수행하는, 상기 공개키 디렉토리에 노출된 실체 A의 공개키 xA를 수신하는 단계(SB407)와, 상기 수신된 공개키 xA와 자신의 비밀키 aB, bB를 이용하여 상기 땋임군 Bn에 기정의된 연산(*)을 1회 이상 수행하여 세션키 K=aBxAbB를 계산해내는 단계(SB408)를 포함하여 구성할 수 있다.In the third step SA407-SA408 and SB407-SB408, the two entities A and B each receive a key disclosed by the protocol initiation counterpart from the public key directory, thereby receiving the received public key and its secret. A step of calculating one session key K by performing one or more operations (*) previously defined in the braid group with a key. The session key calculating step includes receiving a public key y B of another entity B exposed in the public key directory (SA407) performed by the entity A, and receiving the received public key y B and its own private key. calculating a session key K = a A y B b A by performing one or more operations (*) defined in the braid group Bn using a A and b A (SA408), and the other entity B receiving a public key x a of the entity a exposed to the public-key directory to perform (SB407), and the received public key x a and his secret key a B, b B, using the braid groups Bn It may comprise a step (SB408) to calculate the session key K = a B x A b B by performing one or more operations (*) previously defined in.

이상의 일 실시예에 따른 키 합의 프로토콜 구현 동작을 설명하면 다음과 같다.Referring to the key agreement protocol implementation according to the above embodiment.

먼저, 키합의를 이루고자 하는 두 실체 A, B는 하나의 정의된 연산(*)과 인덱스 n을 갖는 땋임군 Bn으로부터 상기 실체 A가 특정하는 부분군 GA, HA의 모든 땋임이 상기 조건 (a)(b)로부터, 다른 실체 B가 정의한 부분군 GB, HB의 모든 땋임에대하여 서로 공통되지 않고, 상기 연산(*)에 대해 교환법칙이 성립하는 부분군 GA, HA, 및 GB, HB를 각각 정의(SA401, SB401)한다. 다음으로, 수신측 실체 A(10)는 상기 부분군 GA에서 임의의 땋임 aA를 하나 무작위로 골라내고, 부분군 HA에서 임의의 땋임 bA를 무작위로 골라내어 비밀키로 간직하고(SA402), 상기 땋임군 Bn으로부터 공통된 하나의 땋임(Δ)을 무작위로 선택(SA403)한 후, 공개키 xA= aAΔpbA(여기서 p는 임의의 정수)를 계산(SA404)해서 공캐키 디렉토리(30)에 공개(SA405)한다.First, the two entities A and B to form a key agreement are all braids of the subgroups G A and H A specified by the entity A from the braid group Bn having one defined operation (*) and the index n. From a) (b), the subgroups G A , H A , which are not common to all the braids of the subgroups G B , H B defined by another entity B, and whose exchange law holds for the calculation (*); and G B and H B are defined (SA401, SB401), respectively. Next, the receiving entity A (10) is the subgroup G A in singles any braids, a A to a random, it kept secret key out choose randomly any of the braids, b A in subgroup H A and (SA402 ), Randomly selecting a common braid (Δ) from the braid group Bn (SA403), and calculating the public key x A = a A Δ p b A (where p is any integer) (SA404) Publish to the cache directory 30 (SA405).

송신측 실체 B(20)는 상기 부분군 GB에서 임의의 땋임 aB를 하나 무작위로 골라내고, 부분군 HB에서 임의의 땋임 bB를 무작위로 골라내어 비밀키로 간직하고 (SB402), 상기 땋임군 Bn으로부터 공통된 하나의 땋임(Δ)을 무작위로 선택(SB403)한 후, 공개키 yB= bBΔpaB를 계산(SB404)해서 공개키 디렉토리(30)에 공개(SB405)한다. 이 값은 공개된 디렉토리에 노출된 상태로 놓아도 보안에 아무런 영향을 미치지 않는다. 마지막으로, 수신측 실체 A(10)는 송신측 실체 B(30)의 공개값인 yB를 수신(SA407)하고, 자신이 비밀로 보관하고 있던 비밀키 aA와 bA를 이용하여 K=aAyBbA를 계산(SA408)한다. 송신측 실체 B(20)는 수신측 실체 A(10)의 공개값인 xA를 수신(SB407)하고, 자신이 비밀로 보관하고 있던 비밀키 aB와 bB를 이용하여K=aBxAbB를 계산(SB408)한다. 여기서, 상기 실체 A가 계산해 낸 세션키값 K는 aAyBbA이고, 실체 B가 계산해낸 세션키값 K는 bBxAaB이다. 그런데, 상기 땋임군 Bn으로부터 상기 조건 (a)(b)에 대해 특정하게 정의되어진 부분군 GA, HA및 GB, HB에 속하는 각각의 땋임들에 의하면, 상기 조건 (a)(b)로부터 bAaB=aBbA이고,bBaA=aAbB이다. 따라서 상기 두 실체가 각각 계산해낸 세션키값 aAyBbA와 bBxAaB는 aAyBbA= aAbBΔpaBbA= bBaAΔpbAaB= bBxAaB로부터 서로 동일한 것임이 간단하게 증명된다. 이러한 과정에 의해, 키 합의 프로토콜을 개시하는 두 실체 A, B가 단일-땋임을 이용하여 각각 하나의 공개키를 계산하여 프로토콜 개시 상대방에게 공개하고, 프로토콜 개시 상대방이 노출시킨 하나의 공개키를 수신하여 하나의 세션키를 계산해 낼 수 있게 되며, 이로서, 상기 두 실체 A, B는 서로 같은 하나의 동일한 세션키(K)를 자동으로 갖게 된다.Transmitting side entity B (20) is the subgroup G B out from the pick any braids, a B to a random, keeping subgroup secret key out choose randomly any of the braids, b B from H B and (SB402), the After randomly selecting a common braid Δ from the braid group Bn (SB403), the public key y B = b B Δ p a B is calculated (SB404) and disclosed to the public key directory 30 (SB405). . This value has no security impact if left exposed in a public directory. Finally, the receiving entity A 10 receives (SA407) the public value y B of the transmitting entity B 30 (SA407), and uses K = using the private keys a A and b A kept secret. Calculate a A y B b A (SA408). The transmitting entity B 20 receives (SB407) the public value x A of the receiving entity A 10 (SB407), and uses K = a B x using the private keys a B and b B that it has kept secret. A b B is calculated (SB408). Here, the session key value K calculated by the entity A is a A y B b A , and the session key value K calculated by the entity B is b B x A a B. However, according to the respective braids belonging to the subgroups G A , H A and G B , H B specifically defined for the condition (a) (b) from the braid group Bn, the condition (a) (b B A a B = a B b A , and b B a A = a A b B. Therefore, the two session key value came up with substance is calculated each a A y B b A and b B x A a B is a A y B b A = a A b B Δ p a B b A = b B a A Δ p b A It is simply proved that a B = b B x A a B are identical to each other. By this process, the two entities A and B initiating the key agreement protocol calculate a single public key using single braid and disclose it to the protocol initiating party, and receive one public key exposed by the protocol initiating party. One session key can be calculated, whereby the two entities A and B automatically have one and the same session key K.

이상의 일 실시예에 의해 구현되어진 키 합의 프로토콜은 땋임군에서 어려운 문제로 알려진 분해문제(Decomposition Problem)의 어려움(예를 들어, Δ가 Bn에 속하는 땋임이고, 실체 A의 비밀키 a가 부분군 G에 속하고, 실체 B의 비밀키 b가 부분군 H에 속할 때, 공개키 y=aΔb로부터 Δ,y를 알 때, a 또는 b를 구하는 것에 대한 어려움; 여기서 G와 H는 땋임군 Bn의 부분군임)에 의해 프로토콜의 안전성이제공된다. 즉, 실체 A의 공개키 xA=aAΔpbA를 제3자인 C가 알고 있다고 가정하자. 그리고 상기 C가 실체 A의 비밀키인 aA, bA를 알아내려고 한다면, 상기 C는 공개된 xA, Δp를 가지고 실체 A의 비밀키 aA, bA를 구해야 한다. 하지만 이것이 바로 분해문제를 푸는 것이며, 이러한 분해문제는 오래 동안 어려운 문제였으며, 실제로 풀기 또한 매우 어렵다. 물론 B에 대해서도 마찬가지다.The key agreement protocol implemented by the above embodiment is the difficulty of Decomposition Problem, which is known as a difficult problem in the braid group (for example, Δ is a braid belonging to Bn, and the secret key a of entity A is subgroup G Difficulty in finding a or b when the private key b of entity B belongs to subgroup H, and knows Δ, y from public key y = aΔb; where G and H are part of braided group Bn Group security). That is, assume that the third party C knows the public key x A = a A Δ p b A of entity A. And if the C is to find out a secret key of a A, b A of Group A, the C should seek the private key a A, b A of the entity A with the published x A, Δ p. But this is what solves the decomposition problem, which has been a difficult problem for a long time, and is actually very difficult to solve. The same applies to B, of course.

도 5는 본 발명에 의한 키 합의 프로토콜 구현방법의 다른 실시예를 나타낸 순서도로서, 프로토콜을 개시하는 실체 A와 그에 대응하는 실체 B가 이중-땋임을 이용하여 일반화된 디피-헬만형 분해문제의 어려움에 그 안전성의 기반을 두고 키 합의를 이루는 제1 단계에서 제3 단계까지의 프로토콜 구현과정을 예시하고 있다.5 is a flowchart illustrating another embodiment of a key agreement protocol implementation method according to the present invention, in which entity A, which initiates the protocol, and its corresponding entity B, have a difficulty in generalizing a dipy-Hellman type decomposition problem using double-plating We illustrate the implementation of the protocol from the first to the third phase, which is based on the security and makes the key agreement.

상기 제1 단계 (SA501-SA503, SB501-SB503)는 프로토콜을 개시하는 상기 두 실체 A, B가 키 합의를 이루기 위해 사전에 미리 알고 있어야 하는 여러 가지 조건들을 정의하는 초기 설정단계로서, 도 4에 예시된 제1 단계(SA401-SA403, SB401-SB403)와 처리과정이 동일하므로 상세한 설명은 생략한다.The first steps SA501-SA503 and SB501-SB503 are initial setting steps for defining various conditions that the two entities A and B initiating a protocol must know in advance in order to achieve a key agreement. Since the processing steps are the same as those of the illustrated first steps SA401-SA403 and SB401-SB403, a detailed description thereof will be omitted.

상기 제2 단계(SA504-SA506, SB504-SB506)는, 상기 두 실체 A, B가 상기 공통된 땋임(Δ)과 자신의 비밀키(aA, bA, 및 aB, bB)를 각각 이용하여 상기 땋임군에 기 정의된 연산(*)을 1회 이상 수행하여 각각 두개의 공개키(xA, yA, xB, yB)를 생성하고, 그 공개키들을 공개키 디렉토리에 각각 공개시키는 단계이다.In the second steps SA504-SA506 and SB504-SB506, the two entities A and B each use the common braid Δ and their secret keys a A , b A , and a B , b B , respectively. By performing one or more operations (*) previously defined in the braid group to generate two public keys (x A , y A , x B , y B ), respectively, and publishing the public keys in the public key directory, respectively. This is the step.

이 공개키 생성 및 공개 단계는, 상기 실체 A가 수행하는, 상기 공통 선택된 땋임 Δ에 임의의 정수 p, q를 각각 지수승하여 Δp, Δq를 각각 계산하는 단계(SA504)와, 상기 계산된 Δp와 Δq와 자신의 비밀키 aA, bA를 이용하여 상기 땋임군에 기 정의된 연산(*)을 1회 이상 수행하여 그 연산결과로 다수의 땋임곱으로 이루어진 새로운 워드 xA= aAΔpbA, yA= bAΔqaA를 각각 생성하는 단계(SA505)와, 상기 생성된 워드 xA, yA를 프로토콜 개시 상대방이 알 수 있는 공개키로 공개키 디렉토리에 노출시키는 단계(SA506)와, 상기 다른 실체 B가 수행하는, 상기 공통 선택된 땋임 Δ에 임의의 정수 p, q를 각각 지수승하여 Δp, Δq를 각각 계산하는 단계(SB504)와, 상기 계산된 Δp와 Δq와 자신의 비밀키 aB, bB를 이용하여 상기 땋임군에 기 정의된 연산(*)을 1회 이상 수행하여 그 연산결과로 다수의 땋임곱으로 이루어진 새로운 워드 xB= aBΔpbB, yB= bBΔqaB를 각각 생성하는 단계(SB505)와, 상기 생성된 워드 xB, yB를 프로토콜 개시 상대방이 알 수 있는 공개키로 공개키 디렉토리에 노출시키는 단계(SB506)을 포함하여 구성할 수 있다.This public key generation and disclosure step includes calculating exponents of arbitrary integers p and q to the common selected braid Δ performed by the entity A to calculate Δ p and Δ q , respectively (SA504), and calculating A new word x A consisting of a plurality of braid products as the result of the calculation by performing one or more operations (*) previously defined in the braid group using Δ p and Δ q and their secret keys a A and b A. = a A Δ p b A , y A = b A Δ q a A respectively generated (SA505), and the generated words x A and y A are stored in the public key directory as a public key known to the protocol initiator. Exposing (SA506), and exponentially multiplying any integer p, q to the common selected braid Δ performed by the other entity B, and calculating Δ p , Δ q , respectively (SB504), and calculating the Δ p and Δ q and 1 to his private key a B, calculated based on the braid groups are defined by using the b B (*) times Phase done by a new word formed of a plurality of braided imgop a result of the calculation x B = a B Δ p b B, y B = b B Δ q a and step (SB505) for generating respectively a B, the generated word x B , with the public key that the other party Al discloses a y B protocol may comprise a step (SB506) is exposed to the public key directory.

상기 제3 단계(SA507-SA508, SB507-SB508)는, 상기 두 실체 A, B가 상기 프로토콜 개시 상대방에 의해 공개된 키들을 상기 공개키 디렉토리로부터 부터 각각 수신하여, 상기 수신한 공개키들과 자신의 비밀키로 상기 땋임군에 기 정의된 연산(*)을 1회 이상 수행하여 두개의 세션키(K1, K2)를 계산하는 단계이다.The third step (SA507-SA508, SB507-SB508), the two entities A, B receive the keys disclosed by the protocol initiation counterpart from the public key directory, respectively, the received public keys and their own Computing two operations (K 1 , K 2 ) by performing one or more operations (*) previously defined in the braid group as a secret key.

이 세션키 계산단계는, 상기 실체 A가 수행하는, 상기 공개키 디렉토리에 노출된 다른 실체 B의 공개키 xB, yB를 수신하는 단계(SA507)와, 상기 수신된 공개키 xB, yB와 자신의 비밀키 aA, bA를 이용하여 상기 땋임군 Bn에 기정의된 연산(*)을 1회 이상 수행하여 세션키 K1=bAxBaA, K2=aAyBbA를 계산하는 단계(SA508)와, 상기 다른 실체 B가 수행하는, 상기 공개키 디렉토리에 노출된 실체 A의 공개키 xA, yA를 수신하는 단계(SB507)와, 상기 수신된 공개키 xA, yA와 자신의 비밀키 aB, bB를 이용하여 상기 땋임군 Bn에 기정의된 연산(*)을 1회 이상 수행하여 세션키 K1=aBxAbB, K2=bBxAaB를 계산해내는 단계(SB408)를 포함하여 구성할 수 있다.The session key calculating step includes receiving a public key x B , y B of another entity B exposed in the public key directory (SA507) performed by the entity A, and receiving the received public key x B , y Session key K 1 = b A x B a A , K 2 = a A y by performing one or more operations (*) defined in the braid group Bn using B and its private keys a A and b A Calculating B b A , receiving the public keys x A , y A of the entity A exposed in the public key directory, performed by the other entity B (SB507), and receiving the received disclosure. Session key K 1 = a B x A b B , K by performing one or more operations (*) defined in braid group Bn using keys x A , y A and their secret keys a B , b B It may be configured to include a step (SB408) to calculate 2 = b B x A a B.

이상의 다른 실시예에 따른 키 합의 프로토콜 구현 동작을 설명하면 다음과 같다.A key agreement protocol implementation according to another embodiment will now be described.

먼저, 키합의를 이루고자 하는 두 실체 A, B는 하나의 정의된 연산(*)과 인덱스 n을 갖는 땋임군 Bn으로부터 상기 실체 A가 특정하는 부분군 GA, HA의 모든 땋임이 상기 조건 (a)(b)로부터, 다른 실체 B가 정의한 부분군 GB, HB의 모든 땋임에 대하여 서로 공통되지 않고, 상기 연산(*)에 대해 교환법칙이 성립하는 부분군 GA, HA, 및 GB, HB를 각각 정의(SA501, SB501)한다. 다음으로, 수신측 실체 A(10)는 상기 부분군 GA에서 임의의 땋임 aA를 하나 무작위로 골라내고, 부분군 HA에서 임의의 땋임 bA를 무작위로 골라내어 비밀키로 간직하고(SA502), 상기 땋임군 Bn으로부터 공통된 하나의 땋임(Δ)을 무작위로 선택(SA503)한 후, 공개키 xA= aAΔpbA,yA= bAΔqaA(여기서 p, q는 임의의 정수)를 각각 계산(SA504)해서 공캐키 디렉토리(30)에 공개(SA505)한다.First, the two entities A and B to form a key agreement are all braids of the subgroups G A and H A specified by the entity A from the braid group Bn having one defined operation (*) and the index n. From a) (b), the subgroups G A , H A , which are not common to all the braids of the subgroups G B , H B defined by another entity B, and whose exchange law holds for the calculation (*), and G B and H B are defined (SA501 and SB501), respectively. Next, the receiving entity A (10) is the subgroup G A in singles any braids, a A to a random, it kept secret key out choose randomly any of the braids, b A in subgroup H A and (SA502 ), Randomly selecting a common braid (Δ) from the braid group Bn (SA503), and then public key x A = a A Δ p b A , y A = b A Δ q a A (where p, q Calculates an arbitrary integer (SA504) and publishes it to the empty cache directory 30 (SA505).

송신측 실체 B(20)는 상기 부분군 GB에서 임의의 땋임 aB를 하나 무작위로 골라내고 부분군 HB에서 임의의 땋임 bB를 무작위로 골라내어 비밀키로 간직하고(SB502), 상기 땋임군 Bn으로부터 공통된 하나의 땋임(Δ)을 무작위로 선택(SB503)한 후, 공개키 xB= aBΔpbB,yB= bBΔqaB를 계산(SB504)해서 공개키 디렉토리(30)에 공개(SB405)한다. 이 값은 공개된 디렉토리에 노출된 상태로 놓아도 보안에 아무런 영향을 미치지 않는다. 마지막으로, 수신측 실체 A(10)는 송신측 실체 B(30)의 공개값인 xB, yB를 수신(SA507)하고, 자신이 비밀로 보관하고 있던 비밀키 aA와 bA를 이용하여 K1=bAxBaA, K2=aAyBbA를 계산(SA508)한다. 송신측 실체 B(20)는 수신측 실체 A(10)의 공개값인 xA,yA를 수신(SB507)하고, 자신이 비밀로 보관한고있던 비밀키 aB와 bB를 이용하여 K1=aByAbB, K2=bBxAaB를 계산(SB508)한다. 여기서, 상기 실체 A가 계산해 낸 세션키값 K1, K2는 각각 K1=bAxBaA, K2=aAyBbA이고, 실체 B가 계산해낸 세션키값 K1, K2는 각각 K1=aByAbB, K2=bBxAaB이다. 그런데, 상기 땋임군 Bn으로부터 상기 조건 (a)(b)에 대해 특정하게 정의되어진 부분군 GA, HA, 및 GB, HB에 속하는 각각의 땋임들에 의하면, 상기 조건 (a)(b)으로부터 bAaB=aBbA이고,bBaA=aAbB이다. 따라서 상기 두 실체가 각각 계산해낸 하나의 세션키(K1)값인 bAxBaA와 aByAbB는 xB= aBΔqbB,yA= bAΔqaA와 bAaB=aBbA,bBaA=aAbB로부터, bAxBaA= bAaBΔqbBaA= aBbAΔqaAbB= aByAbB로부터 성립하는 동일한 것임을, 그리고, 다른 하나의 세션키(K2)값인 aAyBbA와 bBxAaB는 xA= aAΔpbA,yB= bBΔpaB와 bAaB=aBbA,bBaA=aAbB로부터, aAyBbA= aAbBΔpaBbA= bBaAΔpbAaB= bBxAaB이 성립하는 동일한 것임을 간단하게 증명할 수 있다.Transmitting side entity B (20) is the portion of the group G B in the singles any braids, a B to a random hold subgroup secret key out choose randomly any of the braids, b B from H B and (SB502), the braided Randomly select one common braid (Δ) from the group Bn (SB503), then calculate the public key x B = a B Δ p b B , y B = b B Δ q a B (SB504) (30) (SB405). This value has no security impact if left exposed in a public directory. Finally, the receiving entity A 10 receives (SA507) the public values x B and y B of the transmitting entity B 30 (SA507), and uses the private keys a A and b A that they have kept secret. Calculate K 1 = b A x B a A , K 2 = a A y B b A (SA508). The transmitting entity B 20 receives (SB507) the public values x A and y A of the receiving entity A 10 (SB507), and uses the secret keys a B and b B that it has kept secret to K 1. = a B y A b B , K 2 = b B x A a B is calculated (SB508). Here, the session key values K 1 and K 2 calculated by the entity A are K 1 = b A x B a A , K 2 = a A y B b A , and the session key values K 1 and K 2 calculated by the entity B, respectively. Are K 1 = a B y A b B and K 2 = b B x A a B, respectively. However, according to the respective braids belonging to the subgroups G A , H A , and G B , H B specifically defined for the condition (a) (b) from the braid group Bn, the condition (a) ( From b) b A a B = a B b A and b B a A = a A b B. Therefore, the values of one session key (K 1 ) calculated by the two entities, respectively, b A x B a A and a B y A b B are x B = a B Δ q b B , y A = b A Δ q a A And b A a B = a B b A , b B a A = a A b B from b A x B a A = b A a B Δ q b B a A = a B b A Δ q a A b B = a B y A b B and the other session key (K 2 ) values a A y B b A and b B x A a B are x A = a A Δ p b A , y B = b B Δ p a B and b A a B = a B b A , b B a A = a From A b B , a A y B b A = a A b B Δ p a B b A = b B It can be simply demonstrated that a A Δ p b A a B = b B x A a B is the same.

이러한 과정에 의해, 키 합의 프로토콜을 개시하는 두 실체 A, B가 단일-땋임을 이용하여 각각 두개의 공개키를 계산하여 프로토콜 개시 상대방에게 공개하고, 프로토콜 개시 상대방이 노출시킨 두개의 공개키를 수신하여 두개의 세션키를 계산해 낼 수 있게 되며, 이로서 상기 두 실체 A, B는 서로 같은 두개의 동일한 세션키(K1, K2)를 자동으로 갖게 된다.By this process, the two entities A and B initiating the key agreement protocol compute two public keys using single braiding, disclose them to the protocol initiating party, and receive two public keys exposed by the protocol initiating party. It is possible to calculate two session keys, so that the two entities A, B automatically have the same two identical session keys (K 1 , K 2 ).

이상의 다른 실시예에 의해 구현되어진 키 합의 프로토콜은 땋임군에서 어려운 문제로 알려진 일반화된 디피-헬만형 분해문제(Generalized Diffie-Hellamn type Decomposition Problem)의 어려움(예를 들어, (Δ, yA, yB) ∈ Bn x Bn x Bn이고 aA∈ GA, bA∈ HA, aB∈ GB, bB∈ HB에 대하여, 실체 A가 계산하여 공개한 키 yA=aAΔbA일 때, 실체 B가 계산하여 공개한 키 yB=aBΔbB일 때, 알려진 Δ, yA또는 알려진 Δ, yB를 이용하여 bByAaB(또는 bAyBaA)로부터 bB,aB(또는bA,aA)를 구하는 것에 대한 어려움; 단 여기서 GA, HA, GB, HB는 Bn의 부분군으로서 {GA, HB}와 {GB, HA}의 쌍이 각각, 임의의 두 땋임 g ∈ G, h ∈ H에 대하여, gh=hg의 성질을 만족하는 조건임}에 의해 프로토콜의 안정성이 제공된다. 즉, 제3자인 C가 실체 A의 공개키 xA= aAΔpbA,yA= bAΔqaA를 알고, 실체 B의 공개키 xB= aBΔqbB,yB= bBΔpaB를 알고 있다고 가정하자. 그리고 상기 C가 공개된 xA,yAp, Δq또는 xB, yB, Δq, Δp로부터 실체 A와 B의 공통 비밀키인 세션키 K1, K2를 알아내려고 한다면, 상기 C는 상기 실체 A의 비밀키 aA, bA또는 실체 B의 비밀키 aB, bB를 알지 못하고는 세션키값을 구하기가 어렵다. 이것이 바로 일반화된 디피-헬만형 분해문제를 푸는 것이다.그런데 이러한 일반화된 디피-헬만형 분해문제는 오래 동안 어려운 문제였으며, 실제로 풀기 또한 매우 어렵다. 이러한 어려움은 물론 B에 대해서도 마찬가지이다.The key agreement protocol implemented by the other embodiments described above is the difficulty of the Generalized Diffie-Hellamn type Decomposition Problem, which is known to be a difficult problem in the braided group (e.g., (Δ, y A , y B ) For key ∈ Bn x Bn x Bn and for A A ∈ G A , b A ∈ H A , a B ∈ G B , b B ∈ H B , the calculated and released key y A = a A Δb A When B is the calculated and published key y B = a B Δb B , b B y A a B (or b A y B a A ) using known Δ, y A or known Δ, y B Difficulty in obtaining b B, a B (or b A, a A ) from G A , H A , G B , H B , where subgroups of Bn are {G A , H B } and {G B , A pair of H A }, respectively, for any two braids g ∈ G, h ∈ H, provided that the stability of the protocol satisfies the property of gh = hg, ie the third party C is an entity. A's public key x A = a A Δ p b A , y A = b A Δ q a A Suppose we know the public key x B = a B Δ q b B , y B = b B Δ p a B of entity B, and C is known as x A , y A , Δ p , Δ q or If we try to find out the session keys K 1 , K 2 which are the common secret keys of entity A and B from x B , y B , Δ q , Δ p , C is the private key a A , b A or entity B of entity A Without knowing the secret keys a B and b B , it is difficult to find the session key, which is a solution to the generalized Diffie-Hellman decomposition, which has long been a difficult problem. Indeed, it is also very difficult to solve, as well as for B.

이상의 본 발명에 의하면, 현재까지 알려진 암호 체계와는 다르게 비가환성 땋임군을 이용하는 것으로서, 다항 시간(polynomial time)에 해를 구하는 방법이 알려진 것이 없기 때문에 안전성과 보안성을 확보할 수 있는 이점이 있다. 또한 땋임군에서의 곱은 숫자들의 곱셈이 아니라 순열들의 스타팅 세트(starting set)와 피니싱 세트(finishing set)를 계산하는 것이기 때문에, 빠른 연산속도로 키합의를 이룰 수 있는 이점이 있게된다. 따라서 본 발명은 현재 쓰고있는 컴퓨터들 사이에서 사용이 가능할 뿐만 아니라, 무선 통신(예를 들면, Mobile computer를 이용한 통신)을 할 때에도 유용한 암호 체계로 쓰일 수 있다는 효과를 가진다.According to the present invention, unlike the known cipher systems, by using a non-cyclic braid group, there is no known method for solving the polynomial time, so there is an advantage of securing safety and security. . In addition, since the product in the braid group is not a multiplication of numbers but a calculation of a starting set and a finishing set of permutations, there is an advantage that a key agreement can be achieved at a fast calculation speed. Therefore, the present invention not only can be used among computers in use at present, but also has an effect that it can be used as a useful encryption system for wireless communication (for example, communication using a mobile computer).

Claims (6)

프로토콜을 개시하는 실체 A와 그에 대응하는 다른 실체 B가 분해문제의 어려움 또는 일반화된 디피-헬만형 분해문제의 어려움에 그 안전성의 기반을 두고 키 합의를 이루는 프로토콜 구현방법에 있어서,In a method for implementing a protocol in which the entity A initiating the protocol and the corresponding other entity B achieve a key agreement based on the safety of difficulty of decomposition or generalized Diffie-Hellman type decomposition, 생성자 집합으로서 하나의 정의된 연산과 인덱스 n을 갖는 땋임군(braid group) Bn으로부터 하나의 실체 A가 부분군(subgroup) GA, HA를 정의하고, 다른 실체 B가 부분군 GB, HB를 정의하되, GA의 모든 땋임 x와 HB의 모든 땋임 y에 대해서 xy=yx의 연산관계가 성립하며, GB의 모든 땋임 x와 HA의 모든 땋임 y에 대해서 xy=yx의 연산관계가 성립하도록 부분군 GA, HA, GB, HB를 정의하고 있는 상기 두 실체 A, B가, 상기 자신이 정의한 부분군 GA, HA및 GB, HB로부터 각각 자신의 비밀키 aA, bA및 aB, bB를 선택하고, 상기 땋임군 Bn으로부터 공통된 하나의 땋임을 선택하는 제1 단계;From a braid group B n with one defined operation and index n as a set of constructors, one entity A defines subgroups G A , H A , and another entity B defines subgroups G B , but defines a H B, for all of braids, x and all braids, y in H B of G a and an operation relationship between the xy = yx is satisfied, the xy = yx for all braids, y of all braids, x and H a of G B The two entities A and B, which define subgroups G A , H A , G B , and H B so that arithmetic relations are established, each belong to the self-defined subgroups G A , H A and G B , H B. Selecting a private key of A A , b A and a B , b B and selecting one common braid from the braid group Bn; 상기 선택된 자신의 비밀키와 상기 공통된 땋임으로 공개키를 계산하여 공개하는 제2 단계; 및A second step of calculating and publishing a public key with the selected private key and the common braid; And 상기 프로토콜 개시 상대방의 공개키와 자신의 비밀키를 이용하여 세션키를 계산하는 제3 단계로 이루어지는 것을 특징으로 하는 키 합의 프로토콜 구현방법.And a third step of calculating a session key using the public key of the protocol initiating party and its private key. 프로토콜을 개시하는 실체 A와 그에 대응하는 실체 B가 분해문제의 어려움 또는 일반화된 디피-헬만형 분해문제의 어려움에 그 안전성의 기반을 두고 키 합의를 이루는 프로토콜 구현방법에 있어서,In a method of implementing a protocol in which the entity A initiating the protocol and the corresponding entity B achieve a key agreement based on the safety of the difficulty of decomposition or generalized Diffie-Hellman type decomposition, 생성자 집합으로서 하나의 정의된 연산과 인덱스 n을 갖는 땋임군(braid group) Bn으로부터 하나의 실체 A가 부분군(subgroup) GA, HA를 정의하고, 다른 실체 B가 부분군 GB, HB를 정의하되, GA의 모든 땋임 x와 HB의 모든 땋임 y에 대해서 xy=yx의 연산관계가 성립하며, GB의 모든 땋임 x와 HA의 모든 땋임 y에 대해서 xy=yx의 연산관계가 성립하도록 부분군 GA, HA, GB, HB를 정의하고 있는 상기 두 실체 A, B가, 그 정의된 부분군들로부터 각각 하나 이상의 비밀키 aA, bA및 aB, bB를 선택하고, 상기 땋임군 Bn으로부터 공통된 하나의 땋임을 선택하는 제1 단계;From a braid group B n with one defined operation and index n as a set of constructors, one entity A defines subgroups G A , H A , and another entity B defines subgroups G B , but defines a H B, for all of braids, x and all braids, y in H B of G a and an operation relationship between the xy = yx is satisfied, the xy = yx for all braids, y of all braids, x and H a of G B The two entities A and B, which define subgroups G A , H A , G B and H B so that arithmetic relations are established, each have one or more secret keys a A , b A and a B from the defined subgroups, respectively. selecting a b B and selecting a common braid from the braid group Bn; 상기 공통된 땋임과 자신의 하나 이상의 비밀키로 상기 땋임군에 기 정의된 연산을 1회 이상 수행하여 공개키를 생성하고, 그 공개키를 공개키 디렉토리에 각각 공개시키는 제 2단계; 및A second step of generating a public key by performing one or more operations previously defined in the braid group with the common braid and one or more private keys thereof, and publishing the public key in a public key directory, respectively; And 상기 프로토콜 개시 상대방에 의해 공개된 키를 상기 공개키 디렉토리로부터 각각 수신하여, 상기 수신한 공개키와 자신의 비밀키로 상기 땋임군에 기 정의된 연산을 1회 이상 수행하여 세션키를 계산하는 제3 단계로 이루어지는 것을 특징으로 하는 키 합의 프로토콜 구현방법.A third key for receiving a key disclosed by the protocol initiating party from the public key directory, and performing the operation defined in the braid group one or more times with the received public key and its private key to calculate a session key; Key consensus protocol implementation method comprising the steps. 제1항 또는 제2항에 있어서, 상기 제2 단계는The method of claim 1 or 2, wherein the second step 상기 실체 A가 상기 공통 선택된 땋임 Δ에 임의의 정수 p를 지수승하여 Δp를 계산하는 단계;The entity A calculates Δ p by exponentially raising any integer p to the commonly selected braid Δ; 상기 실체 A가 상기 계산된 Δp와 자신의 비밀키 aA, bA로 상기 땋임군에 기 정의된 연산을 수행하여 워드 xA= aAΔpbA를 생성하고, 그 생성된 워드 xA를 공개키 디렉토리에 노출시키는 단계;The substance A generates the calculated Δ p and his secret key a A, b A the braided by performing the operations defined based on imgun word x A = a a A Δ p b A, and the generated word x Exposing A to a public key directory; 상기 다른 실체 B가 상기 공통 선택된 땋임 Δ에 임의의 정수 p를 지수승하여 Δp를 계산하는 단계; 및The other entity B calculates Δ p by exponentially raising any integer p to the commonly selected braid Δ; And 상기 다른 실체 B가 상기 계산된 Δp와 자신의 비밀키 aB, bB로 상기 땋임군에 기 정의된 연산을 수행하여 워드 yB= bBΔpaB를 생성하고, 그 생성된 워드 yB를 공개키 디렉토리에 노출시키는 단계를 포함하는 것을 특징으로 하는 키 합의 프로토콜 구현방법.The resulting word y B = b B Δ p a B to perform the operations defined based on the braid groups to the other entity B is the calculated Δ p and his secret key, a B, b B, and the generated word and exposing y B to a public key directory. 제3항에 있어서, 상기 제3 단계는The method of claim 3, wherein the third step 상기 실체 A가 상기 공개키 디렉토리에 노출된 다른 실체 B의 워드 yB를 수신하고, 자신의 비밀키 aA와 bA를 이용하여 세션키 K=aAyBbA를 계산하는 단계; 및Wherein the entity A receives the word y B of the other entity B exposed to the public-key directory, and calculating a session key K = y A a B b A by using its own private key a and A b A; And 상기 다른 실체 B가 상기 공개키 디렉토리에 노출된 다른 실체 A의 워드 xA를 수신하고, 자신의 비밀키 aB와 bB를 이용하여 세션키 K=bBxAaB를 계산하는 단계를 포함하는 것을 특징으로 하는 키 합의 프로토콜 구현방법.The step of the other entity B receives the word x A of the other entities A exposed to the public-key directory, and calculating a session key K = b B x A a B by using its own secret key, a B and b B Key agreement protocol implementation method comprising a. 제1항 또는 제2항에 있어서, 상기 제2 단계는The method of claim 1 or 2, wherein the second step 상기 실체 A가 상기 공통 선택된 땋임 Δ에 하나 이상의 정수 p, q를 각각 지수승하여 Δp, Δq를 계산하는 단계;The entity A exponentially multiplies one or more integers p and q with the commonly selected braid Δ to calculate Δ p , Δ q ; 상기 실체 A가 상기 계산된 Δp, Δq와 자신의 비밀키 aA, bA로 상기 땋임군에 기 정의된 연산을 수행하여 복수의 워드 xA= aAΔpbA, yA= bAΔqaA를 생성하고, 그 생성된 복수의 워드 xA, yA를 공개키 디렉토리에 노출시키는 단계;The entity A performs a pre-defined operation on the braid group with the calculated Δ p , Δ q and its private keys a A , b A , thereby providing a plurality of words x A = a A Δ p b A , y A = generating b A Δ q a A and exposing the generated plurality of words x A , y A to a public key directory; 상기 다른 실체 B가 상기 공통 선택된 땋임 Δ에 하나 이상의 정수 p, q를 각각 지수승하여 Δp, Δq를 계산하는 단계; 및Calculating, by the other entity B, Δ p , Δ q by exponentially multiplying one or more integers p and q to the commonly selected braid Δ; And 상기 다른 실체 B가 상기 계산된 Δp, Δq와 자신의 비밀키 aB, bB로 상기 땋임군에 기 정의된 연산을 수행하여 복수의 워드 xB= aBΔpbB, yB= bBΔqaB를 생성하고, 그 생성된 복수의 워드 xB, yB를 공개키 디렉토리에 노출시키는 단계를 포함하는 것을 특징으로 하는 키 합의 프로토콜 구현방법.The other entity B performs a pre-defined operation on the braid group with the calculated Δ p , Δ q and its secret keys a B , b B so that a plurality of words x B = a B Δ p b B , y B generating a B Δ q a B and exposing the generated plurality of words x B , y B to a public key directory. 제5항에 있어서, 상기 제3 단계는The method of claim 5, wherein the third step 상기 실체 A가 상기 공개키 디렉토리에 노출된 다른 실체 B의 복수의 워드 xB, yB를 수신하고, 자신의 비밀키 aA, bA를 이용하여 복수의 세션키 K1=bAxBaA, K2=aAyBbA를 계산하는 단계; 및 상기 다른 실체 B가 상기 공개키 디렉토리에 노출된 실체 A의 복수의 워드 xA, yA를 수신하고, 자신의 비밀키 aB, bB를 이용하여 복수의 세션키 K1=aBxAbB, K2=bBxAaB를 계산하는 단계를 포함하는 것을 특징으로 하는 키 합의 프로토콜 구현방법.The entity A receives a plurality of words x B , y B of another entity B exposed in the public key directory, and uses a plurality of session keys K 1 = b A x B using its private keys a A , b A. calculating a A , K 2 = a A y B b A ; And the other entity B receives a plurality of words x A , y A of the entity A exposed in the public key directory, and uses a plurality of session keys K 1 = a B x using its private keys a B , b B. And calculating A b B , K 2 = b B x A a B.
KR1020020017967A 2002-04-02 2002-04-02 Method for Embodying a key agreement protocol KR20030079141A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020020017967A KR20030079141A (en) 2002-04-02 2002-04-02 Method for Embodying a key agreement protocol

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020020017967A KR20030079141A (en) 2002-04-02 2002-04-02 Method for Embodying a key agreement protocol

Publications (1)

Publication Number Publication Date
KR20030079141A true KR20030079141A (en) 2003-10-10

Family

ID=32377526

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020017967A KR20030079141A (en) 2002-04-02 2002-04-02 Method for Embodying a key agreement protocol

Country Status (1)

Country Link
KR (1) KR20030079141A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100872817B1 (en) * 2006-12-07 2008-12-09 인하대학교 산학협력단 Method for Key Exchange Based on Varient of the Diffie Hellman

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5729608A (en) * 1993-07-27 1998-03-17 International Business Machines Corp. Method and system for providing secure key distribution in a communication system
KR20010008103A (en) * 2000-11-08 2001-02-05 안병엽 Method for constructing secure diffie-hellman type authenticated key agreement protocol with key confirmation
KR20010008102A (en) * 2000-11-08 2001-02-05 안병엽 Method for constructing secure diffie-hellman type authenticated key agreement protocol
KR20010046704A (en) * 1999-11-15 2001-06-15 오길록 Key generating method, and encryption and decryption system and its method by using the braid operation
US20020001382A1 (en) * 1998-02-26 2002-01-03 Iris Anshel Method and apparatus for cryptographically secure algebraic key establishment protocols based on monoids

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5729608A (en) * 1993-07-27 1998-03-17 International Business Machines Corp. Method and system for providing secure key distribution in a communication system
US20020001382A1 (en) * 1998-02-26 2002-01-03 Iris Anshel Method and apparatus for cryptographically secure algebraic key establishment protocols based on monoids
KR20010046704A (en) * 1999-11-15 2001-06-15 오길록 Key generating method, and encryption and decryption system and its method by using the braid operation
KR20010008103A (en) * 2000-11-08 2001-02-05 안병엽 Method for constructing secure diffie-hellman type authenticated key agreement protocol with key confirmation
KR20010008102A (en) * 2000-11-08 2001-02-05 안병엽 Method for constructing secure diffie-hellman type authenticated key agreement protocol

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100872817B1 (en) * 2006-12-07 2008-12-09 인하대학교 산학협력단 Method for Key Exchange Based on Varient of the Diffie Hellman

Similar Documents

Publication Publication Date Title
Huang et al. Fast authenticated key establishment protocols for self-organizing sensor networks
EP2882132B1 (en) Encryption device, decryption device, encryption method, decryption method, and program
Xiao et al. A novel key agreement protocol based on chaotic maps
US6490352B1 (en) Cryptographic elliptic curve apparatus and method
Wu et al. An efficient key-management scheme for hierarchical access control in e-medicine system
Galbraith Elliptic curve Paillier schemes
EP1467512A1 (en) Encryption process employing chaotic maps and digital signature process
EP2742644B1 (en) Encryption and decryption method
US10630476B1 (en) Obtaining keys from broadcasters in supersingular isogeny-based cryptosystems
US6480606B1 (en) Elliptic curve encryption method and system
Mittal et al. Group ring based public key cryptosystems
Abdelfatah A color image authenticated encryption using conic curve and Mersenne twister
US7062044B1 (en) Method of elliptic curve cryptographic key agreement using coefficient splitting
JP2020052215A (en) Public key encryption system, public key encryption method, and public key encryption program
US10880278B1 (en) Broadcasting in supersingular isogeny-based cryptosystems
JP2005055488A (en) Scalar multiple calculating method in elliptic curve cryptosystem, device and program for the same
Manajaih Modular arithmetic in RSA cryptography
US7505585B2 (en) Method of generating cryptographic key using elliptic curve and expansion in joint sparse form and using same
KR20030079141A (en) Method for Embodying a key agreement protocol
Lizama-Perez Non-invertible key exchange protocol
US20140044261A1 (en) Method and system of cryptographic processing of a message
KR100341507B1 (en) Elliptic Curve Cryptography and Digital Signature Method using fast finite field operations
Kumar et al. A comparative analysis of elliptic curve-based cryptographic techniques for internet of things
Jiang et al. Two methods of directly constructing probabilistic public-key encryption primitives based on third-order LFSR sequences
Te Chen A Secure Group Data Encryption Scheme in Intelligent Manufacturing Systems for IIoT

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
NORF Unpaid initial registration fee