KR20050028720A - Authentication using human memorable password and public key cryptsystem - Google Patents
Authentication using human memorable password and public key cryptsystem Download PDFInfo
- Publication number
- KR20050028720A KR20050028720A KR1020030065235A KR20030065235A KR20050028720A KR 20050028720 A KR20050028720 A KR 20050028720A KR 1020030065235 A KR1020030065235 A KR 1020030065235A KR 20030065235 A KR20030065235 A KR 20030065235A KR 20050028720 A KR20050028720 A KR 20050028720A
- Authority
- KR
- South Korea
- Prior art keywords
- function
- secret information
- user
- result
- secret
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
Abstract
Description
인증은 시스템 접근자가 인가된 사용자 인가를 확인하는 것으로 현실 속에서 인증 시스템에 의해 구체화된다. 인증 시스템의 예로는 암호 기술 기반 인증 시스템과 생체 인식 시스템이 있다. 본 발명은 공개 키 암호 시스템을 이용하는 암호 기술 기반 인증 시스템과 관련이 있다. Authentication is embodied by the authentication system in reality as the system accessor confirms the authorized user authorization. Examples of authentication systems include cryptographic technology based authentication systems and biometric systems. The present invention relates to a cryptographic technology based authentication system using a public key cryptosystem.
암호 기술 기반 인증 시스템은 사용자가 기억하고 있는 비밀정보를 처리하는 패스워드 시스템과 통상적으로 매체에 저장되어 있는 비밀정보를 처리하는 도전-응답 기반 시스템 및 영지식-기반 시스템이 있다. 현실속에서 도전-응답 방식은 사용자가 기억하기 어려운 비밀정보를 저장하고 있는 매체를 사용하는 방식으로 이용되고 있으며, 영 지식 기반 방식은 비효율성으로 인해 현실속에서 거의 사용되지 않고 있다. 본 발명은 패스워드 시스템과 관련이 있다.The cryptographic technology based authentication system includes a password system for processing secret information stored by a user and a challenge-response based system and a zero knowledge-based system for processing secret information stored in a medium. In reality, the challenge-response method is used as a medium that stores secret information that is difficult for the user to remember, and the Young Knowledge-based method is rarely used in reality due to inefficiency. The present invention relates to a password system.
패스워드 시스템은 패스워드를 처리하지 않고 기억장치에 저장하는 경우와 해쉬 함수나 대칭 키 블록 암호 알고리즘과 같은 암호 알고리즘을 이용하여 패스워드를 처리한 결과를 기억장치에 저장하는 경우로 구분된다. 본 발명은 암호 알고리즘을 이용하여 패스워드를 처리한 결과를 기억장치에 저장하는 경우와 관련이 있다. The password system is divided into a case of storing a password in a storage device without processing the password and a case of storing a password processing result in a storage device using a cryptographic algorithm such as a hash function or a symmetric key block cryptographic algorithm. The present invention relates to a case where a result of processing a password using an encryption algorithm is stored in a storage device.
한편 암호 알고리즘을 이용하여 패스워드를 처리하는 현재까지의 인증 기술은 인증 기술에 대한 오프라인 추측 공격과 패스워드 파일 컴프로마이즈, 도총을 포함한 다양한 공격들로부터 안전하지 않다는 사실이 알려져 있다. On the other hand, it is known that authentication techniques to date that use password algorithms are not safe from various attacks including off-line speculative attacks, authentication of password files, and guns.
본 발명에 의한 인증 기술은 사용자가 기억 가능한 비밀정보를 처리하면서도 다양한 공격들로부터 안전한 인증 기술을 제시하는데 목적이 있다. 이때, 사용자가 입력한 비밀정보는 공개 키 암호 시스템을 이용하여 암호화된다. The authentication technique according to the present invention has an object of presenting a secure authentication technique from various attacks while processing secret information that can be stored by the user. At this time, the secret information entered by the user is encrypted using a public key cryptosystem.
사용자가 노출되지 않기를 바라는 정보를 비밀정보라 하자. 이러한 비밀정보의 예로는 패스워드와 비밀번호가 있다. 본 발명에 의한 사용자 인증 암호 기술이 사용되는 환경은 사용자에게 비밀정보 입력이 가능하도록 하는 장치와 사용자가 올바른 비밀정보를 입력하였는지를 판단하는 장치 및 정보 전송 통로가 있다. 본 발명에서는 편의상 사용자에게 비밀정보를 입력 가능하도록 하는 장치를 장치 A라 하고, 사용자가 올바른 비밀정보를 입력하였는지를 판단하는 장치를 장치 B라 한다. 여기에서, 장치 A와 장치 B가 반드시 다를 필요는 없다.Let's say that the information you do not want your users to see is confidential. Examples of such secret information are passwords and passwords. The environment in which the user authentication encryption technology according to the present invention is used includes a device for enabling secret information input to a user, a device for determining whether the user has input correct secret information, and an information transmission path. In the present invention, a device for allowing the user to input secret information for convenience is called device A, and a device for determining whether the user inputs correct secret information is called device B. Here, device A and device B do not necessarily need to be different.
본 발명에 의한 사용자 인증 암호 기술은 (1) 장치 B가 공개 키 암호 시스템의 공개 키와 비밀 키를 생성하여 공개 키를 공개하고 비밀 키는 저장하는 과정과 (2) 사용자가 등록하기 위하여 비밀정보를 입력하였을 때, 장치 B가 비밀정보를 표현하는 과정, (3) 장치 B에서 비밀정보를 표현하는 정보를 다른 정보로 사한 후 사상된 정보를 기억 장치에 저장하는 과정, (4) 사용자가 장치 B에 접근하기 위하여 비밀정보를 입력하였을 때, 장치 A에서 비밀정보를 표현하는 과정, (5) 장치 A에서 비밀정보를 표현한 정보를 다른 값으로 사상한 후 사상된 정보를 장치 B의 공개 키를 이용하여 암호화한 후 암호화된 결과를 장치 B에 전송하는 과정, (6) 장치 B가 장치 A로부터 수신한 정보를 비밀키를 이용하여 복호화한 결과와 기억장치에 저장되어 있는 정보를 비교하여 사용자가 올바른 비밀정보를 입력하였는가를 판단하는 처리과정을 포함하고 있다. 과정 (5)에서 장치 A는 반드시 비밀정보를 표현한 정보를 다른 값으로 사상하지는 않는다.According to the present invention, a user authentication encryption technique includes (1) a process in which a device B generates a public key and a secret key of a public key cryptosystem, discloses the public key and stores the secret key, and (2) secret information for the user to register. When the device is input, the device B expresses the secret information, (3) the device B uses the information representing the secret information as another information, and stores the mapped information in the storage device, and (4) the user When the secret information is entered to access B, the process of expressing the secret information in the device A, (5) mapping the information representing the secret information in the device A to a different value and then maps the mapped information to the public key of the device B. Transmitting the encrypted result to the device B after encrypting using the same; (6) comparing the result of the device B decrypting the information received from the device A using the secret key with the information stored in the storage device. The user includes a process for determining the entity type the correct secret. In step (5), the device A does not necessarily map the information representing the secret information to another value.
사용자의 비밀정보를 P라 하자. Let P's secret information.
장치 B는 결정되어 있는 공개 키 암호 시스템의 공개 키와 비밀 키를 생성한 후 공개 키를 공개하고 비밀 키를 기억장치에 저장한다. 여기에서는 RSA와 타원 곡선 암호 시스템을 포함한 알려진 모든 공개 키 암호 시스템이 사용 가능하다.Device B generates a public key and a secret key of the determined public key cryptosystem, then publishes the public key and stores the secret key in storage. Here all known public key cryptosystems can be used, including RSA and elliptic curve cryptosystems.
도 1은 사용자가 등록하기 위하여 P를 입력하였을 때, 장치 B에서 P를 처리하는 과정을 나타낸 것이다. 도 2를 참고하여, 사용자가 P를 입력하면 장치 B에서 비밀정보표현함수 2와 비밀정보처리함수 2가 순차로 동작하며, 비밀정보처리함수 2의 결과를 포함한 정보가 기억장치에 등록(저장)된다.1 illustrates a process of processing P in device B when a user inputs P to register. Referring to FIG. 2, when the user inputs P, the secret information expression function 2 and the secret information processing function 2 are sequentially operated in the device B, and information including the result of the secret information processing function 2 is registered (stored) in the storage device. do.
사용자가 P'를 입력하였을 때, 사용자가 P'=P인 P'를 입력하였는지를 판단하기 위한 처리과정은 장치 A에서 수행되는 처리과정과 장치 B에서 수행되는 처리과정으로 구분된다.When the user inputs P ', processing for determining whether the user inputs P' with P '= P is divided into processing performed in device A and processing performed in device B.
도 2는 사용자가 P'를 입력하였을 때, 사용자가 P'=P인 P'를 입력하였는지를 판단하기 위한 과정 중에서 장치 A에서의 처리과정을 나타내고 있다. 도 2를 참고하여, 사용자가 P'를 입력하면 장치 A에서 비밀정보표현함수 1과 비밀정보처리함수 1이 순차로 동작하며, 비밀정보처리함수 1의 결과 또는 비밀정보처리함수 1의 결과를 포함한 정보가 장치 B의 공개 키에 의해 암호화되어 장치 B에 전송된다. FIG. 2 illustrates a process of the device A in a process for determining whether the user inputs P 'when P' = P when the user inputs P '. Referring to FIG. 2, when the user inputs P ', the secret information expression function 1 and the secret information processing function 1 are sequentially operated in the device A, and include the result of the secret information processing function 1 or the result of the secret information processing function 1. The information is encrypted by the device B's public key and transmitted to device B.
도 3은 사용자가 P'를 입력하였을 때, 사용자가 P'=P인 P'를 입력하였는지를 판단하기 위한 과정 중에서 장치 B에서의 처리과정을 나타내고 있다. 도 3을 참고하여, 장치 B에서 동작하는 비밀정보비교함수는 장치 A로부터 암호화된 정보를 복호화하고 복호화된 정보를 포함한 장치 A로부터 수신한 정보와 장치 B에 저장되어 있는 정보를 이용하여 사용자가 P=P'인 P'를 입력하였는가를 판단한다. 판단의 결과는 사용자가 P'=P인 P'를 입력한 경우에만 시스템 접근을 허락하는 것이다.FIG. 3 illustrates a process of the device B in the process of determining whether the user inputs P 'when P' = P when the user inputs P '. Referring to FIG. 3, the secret information comparison function operating on the device B decrypts the encrypted information from the device A and uses the information received from the device A including the decrypted information and the information stored in the device B. It is determined whether or not P 'is input. The result of the decision is to allow system access only when the user enters P 'with P' = P.
이제, 사용자가 등록하기 위하여 P를 입력하였을 때, 장치 B에서 비밀정보표현함수 2와 비밀정보처리함수 2가 어떻게 동작하는가를 기술하고자 한다. Now, when the user inputs P to register, the secret information expression function 2 and the secret information processing function 2 in the device B will be described.
비밀정보표현함수 2를 F2로 나타내자. 그러면, F2는 P를 표현할 수 있는 다양한 가지 수 중에서 하나를 선택하여 P를 표현한다. 예를 들어, F2가 P=X1-X2를 만족하는 (X1, X2) 쌍으로 P를 표현한다고 할 때, F2는 (X1, X2) 쌍의 무한 가지 중에서 한 쌍을 선택하여 P를 표현한다.Let secret information expression function 2 be F 2 . Then, F 2 expresses P by selecting one of various numbers that can express P. For example, suppose that F 2 represents P as a (X 1 , X 2 ) pair that satisfies P = X 1 -X 2 , and F 2 is one of the infinite branches of the (X 1 , X 2 ) pair. Choose to express P.
이러한 F2의 입력과 출력은 다음과 같이 일반화할 수 있다. F2의 입력은 P와 연산자 집합 및 피연산자 집합의 부분집합이며, F2의 출력은 피연산자 집합의 부분집합이다. 여기에서, F2의 입력인 피연산자 집합의 부분집합과 출력인 피연산자 집합의 부분집합의 합집합은 피연산자 집합이다. 예를 들어, F2가 P=X1-X2를 만족하는 (X1, X2) 쌍으로 P를 표현한다고 할 때, F2의 입력은 P와 연산자 집합 {-} 및 피연산자 집합 {X1, X2}의 부분집합인 공집합이며 F2의 출력은 피연산자 집합의 부분집합인 {X1, X2}이다. 여기에서, F2의 입력인 피연산자 집합의 부분집합인 공집합과 출력인 피연산자 집합 {X1, X2}의 부분집합 {X1, X2}의 합집합은 피연산자 집합인 {X1, X2}이다.These inputs and outputs of F 2 can be generalized as follows. The input of F 2 is a subset of P and a set of operators and operands, and the output of F 2 is a subset of the set of operands. Here, the union of the subset of the operand set that is the input of F 2 and the subset of the operand set that is the output is an operand set. For example, suppose that F 2 represents P as a (X 1 , X 2 ) pair that satisfies P = X 1 -X 2 , and the input of F 2 is P and the operator set {-} and the operand set {X 1 , X 2 } is an empty set and the output of F 2 is {X 1 , X 2 }, which is a subset of the set of operands. Here, in a subset of the F of the operand set input of a second empty set and the output operand set union of {X 1, X 2} subset {X 1, X 2} of the the {X 1, X 2} operand set to be.
비밀정보 P와 연산자 집합 F2O, 피연산자 집합의 부분집합 F2P를 입력으로 하여 피연산자 부분집합 F2Q를 출력하는 F2를 F2(P, F2O, F2P)=F2Q로 나타낸다. 여기에서, F2O에 있는 연산자가 적용되는 순서 및 연산자에 대한 피연산자는 장치 A와 B 사이에 미리 결정되어 있다. 예를 들어, F2(P, {+, mod}, {N})={X1, X2}일 때, X1+X2를 수행한 후 (X1+X2) mod N을 수행한다는 것이 장치 A와 장치 B 사이에 미리 결정되어 있다. X mod Y에서 mod는 X를 Y로 나눈 나머지를 결과 값으로 취하는 연산자이다.The secret information P and a set of operators F 2 O, F 2 and outputting a set of operand part F 2 Q to the input the portion of the operand set set F 2 P F 2 (P, F 2 O, F 2 P) = F 2 It is represented by Q. Here, the order in which the operators in F 2 O are applied and the operands for the operators are predetermined between devices A and B. For example, when F 2 (P, {+, mod}, {N}) = {X 1 , X 2 }, perform X 1 + X 2 and then perform (X 1 + X 2 ) mod N It is predetermined between the device A and the device B. In X mod Y, mod is the operator that takes the remainder of X divided by Y as the result.
F2의 바람직한 실시 예로서, F2Q가 {P}가 아닌 경우에 F2Q의 적어도 한 원소는 랜덤하게 추출한 수이다.In a preferred embodiment of the F 2, F 2 of the at least one element Q when Q is F 2 rather than {P} is a number extracted at random.
F2의 바람직한 실시 예로서, F2(P, Ø, Ø )={P}이다.In a preferred embodiment of the F 2, F 2 (P, Ø, Ø) = a {P}.
F2의 바람직한 실시 예로서, F2(P, {+}, Ø )={X21, X22}이다. 여기에서 X2는 음의 정수일 수 있다.In a preferred embodiment of the F 2, F 2 is the (P, {+}, Ø ) = {X 21, X 22}. Here, X 2 may be a negative integer.
F2의 바람직한 실시 예로서, F2(P, {+, mod}, {N})={X21, X22}이다.F In a preferred embodiment of a 2, a F 2 (P, {+, mod} , {N}) = {X 21, X 22}.
F2의 바람직한 실시 예로서, F2(P, {+, mod}, Ø )={X21, X22, N}이다.F In a preferred embodiment of a 2, a F 2 (P, {+, mod} , Ø) = {X 21, X 22, N}.
F2의 바람직한 실시 예로서, F2(P, {}, Ø )={X21, X22}이다.In a preferred embodiment of the F 2, F 2 (P, { }, Ø) = {X 21 , X 22 }.
F2의 바람직한 실시 예로서, F2(P, {}, Ø )={X21, X22}이다. 여기에서 는 배타적 논리곱을 나타낸다.In a preferred embodiment of the F 2, F 2 (P, { }, Ø) = {X 21 , X 22 }. From here Denotes an exclusive logical product.
비밀정보처리함수 2를 G2로 나타내자. 그러면, G2는 F2Q의 부분집합에 있는 원소들을(를) 다른 값으로 사상하는 함수이거나 F2Q의 부분집합에 있는 원소를 이용하여 어떤 값을 다른 값으로 사상하는 함수이거나 F2Q의 부분집합에 있는 원소를 다른 값으로 사상한 값을 이용하여 어떤 값을 다른 값으로 사상하는 함수 중 한 함수이다.Let secret information processing function 2 be G 2 . Then, G 2 is the element in the subset of the F 2 Q (a) or a function which maps to a different value by the elements present in a subset of the F 2 Q or a function which maps a value to a different value F 2 Q A function that maps a value to another value by mapping the elements in the subset of to other values.
F2Q의 부분집합 G2I에 있는 원소들을 다른 값으로 사상하는 G2를 G2(G2I)=G2O로 나타내고, F2Q의 부분집합에 있는 원소 G2I를 이용하여 어떤 값 W를 다른 값으로 사상하는 G2를 G2(G2I, W)=G2O로 나타내며, F2Q의 부분집합에 있는 원소 G2I를 다른 값 M(G2I)으로 사상한 값을 이용하여 어떤 값 W를 다른 값으로 사상하는 함수를 G2(M(G2I), W)=G2O로 나타낸다.The elements in a subset of the F 2 Q G 2 I represents G 2 which maps to a different value in G 2 (G 2 I) = G 2 O, using the element G 2 I in a subset of the F 2 Q G 2 , which maps one value W to another, is represented by G 2 (G 2 I, W) = G 2 O, and the element G 2 I in the subset of F 2 Q is converted to another value M (G 2 I). A function of mapping a value W to another value using the mapped value is represented by G 2 (M (G 2 I), W) = G 2 O.
G2(G2I)의 바람직한 실시 예로서, G2O=G2I이다.In a preferred embodiment of G 2 (G 2 I), G 2 O = G 2 I.
G2(G2I)의 바람직한 실시 예로서, G2는 트랩도어 일방향 함수이다.As a preferred embodiment of G 2 (G 2 I), G 2 is a trapdoor one-way function.
G2가 트랩도어 일방향 함수인 경우의 바람직한 실시 예로서, X1∈F2Q에 대하여 G2O={X1 2 mod M}이다. 여기에서, M은 홀수인 두 솟수의 곱이다.As a preferred embodiment when G 2 is a trapdoor unidirectional function, G 2 O = {X 1 2 mod M} for X 1 ∈F 2 Q. Where M is the product of two odd numbers.
G2(G2I)의 바람직한 실시 예로서, G2는 일방향 해쉬 함수이다.As a preferred embodiment of G 2 (G 2 I), G 2 is a one-way hash function.
G2가 일방향 해쉬 함수인 경우의 바람직한 실시 예로서, X1∈F2Q에 대하여 G2O={H(X1)}이다. 여기에서, H는 해쉬 함수를 나타낸다.As a preferred embodiment when G 2 is a one-way hash function, G 2 O = {H (X 1 )} for X 1 ∈F 2 Q. Where H represents a hash function.
G2(G2I, W)의 바람직한 실시 예로서, G2는 G2I를 키로서 사용하여 W를 암호화하는 대칭 키 블록 암호 알고리즘이다.As a preferred embodiment of G 2 (G 2 I, W), G 2 is a symmetric key block cryptographic algorithm that encrypts W using G 2 I as a key.
G2가 대칭 키 블록 암호 알고리즘인 경우의 바람직한 실시 예로서, X1∈F2Q에 대하여 G2O={E(X1, W)}이다. E(X1, S)에서 E는 X1을 키로 하여 비트스트링 W를 암호화하는 대칭 키 블록 암호 알고리즘을 나타낸다.As a preferred embodiment when G 2 is a symmetric key block cryptographic algorithm, G 2 O = {E (X 1 , W)} for X 1 ∈F 2 Q. In E (X 1 , S), E represents a symmetric key block cryptographic algorithm that encrypts the bitstring W with X 1 as the key.
G2(M(G2I), W)의 바람직한 실시 예로서, G2는 M(G2I)를 키로서 사용하여 W를 암호화하는 대칭 키 블록 암호 알고리즘이다.As a preferred embodiment of G 2 (M (G 2 I), W), G 2 is a symmetric key block cryptographic algorithm that encrypts W using M (G 2 I) as a key.
G2가 대칭 키 블록 암호 알고리즘인 경우의 바람직한 실시 예로서, M은 트랩도어 일방향 함수이다.As a preferred embodiment when G 2 is a symmetric key block cryptographic algorithm, M is a trapdoor one-way function.
G2가 대칭 키 블록 암호 알고리즘인 경우의 바람직한 실시 예로서, X1∈F2Q에 대하여 G2O={E(X1, W)}이다. E(X1, S)에서 E는 M(X1)을 키로 하여 비트스트링 W를 암호화하는 대칭 키 블록 암호 알고리즘을 나타낸다.As a preferred embodiment when G 2 is a symmetric key block cryptographic algorithm, G 2 O = {E (X 1 , W)} for X 1 ∈F 2 Q. In E (X 1 , S), E represents a symmetric key block cryptographic algorithm that encrypts the bitstring W with M (X 1 ) as the key.
이제 장치 B의 기억장치에 저장되는 정보에 대해 기술하고자 한다. 편의상 장치 B의 기억장치에 저장되는 정보들을 집합으로 나타내면 장치 B의 기억장치에는 {G2O, F2Q-G2I}가 저장된다.Now, the information stored in the storage of the device B will be described. For convenience, when the information stored in the storage device of the device B is represented as a set, the storage device of the device B stores {G 2 O, F 2 QG 2 I}.
사용자가 P'를 입력하였을 때 장치 B에서 P=P'인가를 결정하기 이전 단계로서 장치 A에서 비밀정보표현함수 1과 비밀정보처리함수 1이 어떻게 동작하며 어떠한 정보가 장치 B의 공개키에 의하여 암호화되는와 장치 A에서 장치 B로 전송되는 정보에 대해 기술하고자 한다.When the user inputs P ', before the device B determines whether P = P', how the secret information presentation function 1 and secret information processing function 1 operate in the device A and what information is determined by the public key of the device B. We will describe the information that is encrypted and transmitted from device A to device B.
비밀정보표현함수 1을 F1으로 나타내자. 그러면, F1은 P를 표현할 수 있는 다양한 가지 수 중에서 하나를 선택하여 P를 표현한다. 예를 들어, F1이 P=X1-X2를 만족하는 (X1, X2) 쌍으로 P를 표현한다고 할 때, F1은 (X1, X2) 쌍의 무한 가지 중에서 한 쌍을 선택하여 P를 표현한다.Let's represent the secret expression function 1 as F 1 . Then, F 1 represents P by selecting one of various numbers that can represent P. For example, suppose that F 1 represents P as a (X 1 , X 2 ) pair that satisfies P = X 1 -X 2 , and F 1 is one of the infinite branches of the (X 1 , X 2 ) pair. Choose to express P.
이러한 F1의 입력과 출력은 다음과 같이 일반화할 수 있다. F1의 입력은 P와 연산자 집합 및 피연산자 집합의 부분집합이며, F1의 출력은 피연산자 집합의 부분집합이다. 여기에서, F1의 입력인 피연산자 집합의 부분집합과 출력인 피연산자 집합의 부분집합의 합집합은 피연산자 집합이다. 예를 들어, F1이 P=X1-X2를 만족하는 (X1, X2) 쌍으로 P를 표현한다고 할 때, F1의 입력은 P와 연산자 집합 {-} 및 피연산자 집합 {X1, X2}의 부분집합인 공집합이며 F1의 출력은 피연산자 집합의 부분집합인 {X1, X2}이다. 여기에서, F1의 입력인 피연산자 집합의 부분집합인 공집합과 출력인 피연산자 집합 {X1, X2}의 부분집합 {X1, X2}의 합집합은 피연산자 집합인 {X1, X2}이다.The input and output of F 1 can be generalized as follows. The input of F 1 is a subset of P and the operator and operand sets, and the output of F 1 is a subset of the operand sets. Here, the union of the subset of the operand set that is the input of F 1 and the subset of the operand set that is the output is an operand set. For example, suppose that F 1 represents P as a (X 1 , X 2 ) pair that satisfies P = X 1 -X 2 , and the input of F 1 is P and the operator set {-} and the operand set {X 1 , X 2 } is an empty set and the output of F 1 is {X 1 , X 2 }, which is a subset of the set of operands. Here, in the F input of a subset of the operand set of the first empty and the output operand set {X 1, X 2} The union of the subset of {X 1, X 2} is the {X 1, X 2} operand set to be.
비밀정보 P와 연산자 집합 F1O, 피연산자 집합의 부분집합 F1P를 입력으로 하여 피연산자 부분집합 F1Q를 출력하는 F1을 F1(P, F1O, F1P)=F1Q로 나타낸다. 여기에서, F1O에 있는 연산자가 적용되는 순서 및 연산자에 대한 피연산자는 장치 A와 B 사이에 미리 결정되어 있다. 예를 들어, F1(P, {+, mod}, {N})={X1, X2}일 때, X1+X2를 수행한 후 (X1+X2) mod N을 수행한다는 것이 장치 A와 장치 B 사이에 미리 결정되어 있다.The secret information P and a set of operators F 1 O, F 1 which outputs a set of operand portions F 1 Q using as input a part of the operand set set F 1 P F 1 (P, F 1 O, F 1 P) = F 1 It is represented by Q. Here, the order in which the operators in F 1 O are applied and the operands for the operators are predetermined between the devices A and B. For example, when F 1 (P, {+, mod}, {N}) = {X 1 , X 2 }, perform X 1 + X 2 and then perform (X 1 + X 2 ) mod N It is predetermined between the device A and the device B.
F1의 바람직한 실시 예로서, F1Q가 {P}가 아닌 경우에 F1Q의 적어도 한 원소는 랜덤하게 추출한 수이다.In a preferred embodiment of the F 1, F 1 Q is at least one element of F 1 Q for non-{P} is a number extracted at random.
F1의 바람직한 실시 예로서, F1(P, Ø , Ø )={P}이다.In a preferred embodiment of the F 1, F 1 (P, Ø, Ø) = a {P}.
F1의 바람직한 실시 예로서, F1(P, {+}, Ø )={X11, X12}이다. 여기에서 X12는 음의 정수일 Ø수 있다.In a preferred embodiment of the F 1, F 1 is (P, {+}, Ø ) = {X 11, X 12}. Where X 12 can be a negative integer.
F1의 바람직한 실시 예로서, F1(P, {+, mod}, {N})={X11, X12}이다.In a preferred embodiment of the F 1, F 1 is (P, {+, mod} , {N}) = {X 11, X 12}.
F1의 바람직한 실시 예로서, F1(P, {+, mod}, Ø )={X11, X12, N}이다.In a preferred embodiment of the F 1, F 1 is (P, {+, mod} , Ø) = {X 11, X 12, N}.
F1의 바람직한 실시 예로서, F1(P, {}, Ø )={X11, X12}이다.In a preferred embodiment of the F 1, F 1 (P, { }, Ø) = {X 11 , X 12 }.
F1의 바람직한 실시 예로서, F1(P, {}, Ø )={X11, X12}이다.In a preferred embodiment of the F 1, F 1 (P, { }, Ø) = {X 11 , X 12 }.
비밀정보처리함수 1을 G2로 나타내자. 그러면, G1은 F1Q의 부분집합에 있는 원소들을(를) 다른 값으로 사상하는 함수이거나 F1Q의 부분집합에 있는 원소를 이용하여 어떤 값을 다른 값으로 사상하는 함수이거나 F1Q의 부분집합에 있는 원소를 다른 값으로 사상한 값을 이용하여 어떤 값을 다른 값으로 사상하는 함수이거나 F1Q의 부분집합에 있는 원소와 어떤 값에 연산을 취한 결과를 다른 값으로 사상하는 함수 중 한 함수이다.Let secret information processing function 1 be represented by G 2 . Then, G 1 has the elements in the subset of the F 1 Q (a) or a function which maps to a different value by the elements present in a subset of the F 1 Q or a function which maps a value to a different value F 1 Q A function that maps one value to another using a value that maps elements in a subset of to a different value, or maps the result of an operation on an element and a value in a subset of F 1 Q to a different value. Is a function.
F1Q의 부분집합 G1I에 있는 원소들을(를) 다른 값 G1O로 사상하는 G1을 G1(G1I)=G1O로 나타내고, F1Q의 부분집합 G1I에 있는 원소와 어떤 값 W에 연산을 취한 결과를 다른 값으로 사상하는 G1을 G1(G1I⊙W)=G1O로 나타내고, F1Q의 부분집합 G1I에 있는 원소를 이용하여 어떤 값 W를 다른 값으로 사상하는 G1을 G1(G1I, W)=G1O로 나타내며, F1Q의 부분집합 G1I에 있는 원소를 다른 값으로 사상한 값을 이용하여 어떤 값 W를 다른 값으로 사상하는 G1을 G1(M(G1I), W)=G1O로 나타낸다.Represents a G 1 which maps the elements in a subset of the F 1 Q G 1 I (a) to another value G 1 O in G 1 (G 1 I) = G 1 O, F subset of the 1 Q G 1 I the G 1 which maps the results taken in the operation element and a certain value W to a different value in the indicated by G 1 (G 1 I⊙W) = G 1 O, the elements present in a subset of the F 1 G 1 Q I G 1 , which maps one value W to another, is represented by G 1 (G 1 I, W) = G 1 O and maps the elements in subset G 1 I of F 1 Q to other values. G 1 , which maps one value W to another, is represented by G 1 (M (G 1 I), W) = G 1 O.
G1(G1I)의 바람직한 실시 예로서, G1O=G1I이다.In a preferred embodiment of G 1 (G 1 I), G 1 O = G 1 I.
G1(G1I)의 바람직한 실시 예로서, G1은 트랩도어 일방향 함수이다.As a preferred embodiment of G 1 (G 1 I), G 1 is a trapdoor one-way function.
G1(G1I)에서 G1이 트랩도어 일방향 함수인 경우의 바람직한 실시 예로서, X1∈F1Q에 대하여 G1O={X1 2 mod M}이다. 여기에서, M은 홀수인 두 솟수의 곱이다.As a preferred embodiment when G 1 in G 1 (G 1 I) is a trapdoor unidirectional function, G 1 O = {X 1 2 mod M} for X 1 ∈F 1 Q. Where M is the product of two odd numbers.
G1(G1I⊙W)의 바람직한 실시 예로서, ⊙는 +이고 G1은 트랩도어 일방향 함수이다.As a preferred embodiment of G 1 (G 1 IW), ⊙ is + and G 1 is a trapdoor one-way function.
G1(G1I⊙W)에서 ⊙는 +이고 G1은 트랩도어 일방향 함수인 경우의 바람직한 실시 예로서, X1∈F1Q에 대하여 G1O={(X1+W)2 mod M}이다.In the case of G 1 (G 1 IW), where ⊙ is + and G 1 is a trapdoor unidirectional function, G 1 O = {(X 1 + W) 2 mod for X 1 ∈F 1 Q M}.
G1(G1I⊙W)에서 W의 바람직한 실시 예로서, W는 타임스탬프이거나 난수이거나 사용자의 이전 시스템 접근에서 사용한 W 값에 고정된 값을 더한 결과를 새로운 W로 하는 값이다.As a preferred embodiment of W in G 1 (G 1 IW), W is a timestamp, a random number, or a value that adds a fixed value to the value of W used in the user's previous system approach to be the new W.
G1(G1I)의 바람직한 실시 예로서, G1은 일방향 해쉬 함수이다.As a preferred embodiment of G 1 (G 1 I), G 1 is a one-way hash function.
G1이 일방향 해쉬 함수인 경우의 바람직한 실시 예로서, X1∈F1Q에 대하여 G1O={H(X1)}이다.As a preferred embodiment when G 1 is a one-way hash function, G 1 O = {H (X 1 )} for X 1 ∈F 1 Q.
G1(G1I, W)의 바람직한 실시 예로서, G1은 F1Q의 부분집합에 있는 원소를 이용하여 W를 다른 값으로 사상하는 대칭 키 블록 암호 알고리즘이다.As a preferred embodiment of G 1 (G 1 I, W), G 1 is a symmetric key block cryptographic algorithm that maps W to different values using elements in a subset of F 1 Q.
G1이 대칭 키 블록 암호 알고리즘인 경우의 바람직한 실시 예로서, X1∈F1Q에 대하여 G1O={E(X1, W)}이다. E(X1, W)에서 E는 X1을 키로 하여 비트스트링 W를 암호화하는 대칭 키 블록 암호 알고리즘을 나타낸다.As a preferred embodiment when G 1 is a symmetric key block cryptographic algorithm, G 1 O = {E (X 1 , W)} for X 1 ∈F 1 Q. In E (X 1 , W), E represents a symmetric key block cryptographic algorithm that encrypts the bitstring W with X 1 as the key.
G1(M(G1I), W)의 바람직한 실시 예로서, M은 트랩도어 일방향 함수이며 G1은 M(G1I)을 이용하여 W를 다른 값으로 사상하는 대칭 키 블록 암호 알고리즘이다.As a preferred embodiment of G 1 (M (G 1 I), W), M is a trapdoor one-way function and G 1 is a symmetric key block cryptographic algorithm that maps W to another value using M (G 1 I). .
G1(M(G1I), W)에서 G1이 대칭 키 블록 암호 알고리즘인 경우의 바람직한 실시 예로서, X1∈F1Q에 대하여 M은 X1을 X1 2 mod M으로 사상한다. 여기에서, M은 홀수인 두 솟수의 곱이다.As a preferred embodiment when G 1 is a symmetric key block cryptographic algorithm in G 1 (M (G 1 I), W), for X 1 ∈ F 1 Q, M maps X 1 to X 1 2 mod M . Where M is the product of two odd numbers.
G1(M(G1I), W)에서 G1이 대칭 키 블록 암호 알고리즘인 경우의 바람직한 실시 예로서, X1∈F1Q에 대하여 G1O={E(M(X1), W)}이다. E(M(X1), W)에서 E는 M(X1)을 키로 하여 비트스트링 W를 암호화하는 대칭 키 블록 암호 알고리즘을 나타낸다. G 1 (M (G 1 I ), W) G 1 is a symmetric key block as a preferred embodiment in the case where the encryption algorithm, X 1 ∈F G 1 O = {E (M (X 1) with respect to 1 Q in, W)}. In E (M (X 1 ), W), E represents a symmetric key block cryptographic algorithm that encrypts the bitstring W with M (X 1 ) as the key.
이제 장치 A에서 장치 B로 전송하는 정보(들)에 대해 기술하고자 한다. 편의상 장치 A에서 장치 B로 전송되는 정보(들)를 집합으로 나타낸다. F1Q의 부분집합 G1I에 있는 원소와 어떤 값 W에 연산을 취한 결과를 다른 값으로 사상하는 G1을 G1(G1I⊙W)=G1O로 나타내고, F1Q의 부분집합 G1I에 있는 원소를 이용하여 어떤 값 W를 다른 값으로 사상하는 G1을 G1(G1I, W)=G1O로 나타내며, F1Q의 부분집합 G1I에 있는 원소를 다른 값으로 사상한 값을 이용하여 어떤 값 W를 다른 값으로 사상하는 G1을 G1(M(G1I), W)=G1O로 나타낸다.The information (s) transmitted from device A to device B will now be described. For convenience, the information (s) transmitted from the device A to the device B are represented as a set. Shows a result taken by the operation for the elements with which the value W in the subset of Q F 1 G 1 to G I 1 which maps to a different value in G 1 (G 1 I⊙W) G 1 = O, in the F 1 Q subset with elements in the G 1 I represents a G 1 which maps any value W to a different value in G 1 (G 1 I, W) = G 1 O, with a subset of the F 1 Q G 1 I G 1 (M (G 1 I), W) = G 1 O is represented by G 1 which maps a value W to another value by using an element mapped to another value.
그러면 장치 A는 장치 B의 공개 키를 이용하여 G1O에 속해 있는 각각의 값을 암호화하거나 G1O에 속해 있는 값들 중에서 일부의 값을 암호화하고 다른 일부의 값은 암호화하지 않는다.Device A then encrypts each value belonging to G 1 O using the public key of device B, or encrypts some of the values belonging to G 1 O and does not encrypt others.
장치 A는 G1O에 속해 있는 값들을 암호화한 결과와 G1O에 속해 있는 일부 값이 암호화되지 않은 경우에 암호화되지 않은 값들을 장치 B에 전송한다.Device A transmits a non-encrypted value, if some of the values belonging to the result and the G 1 O encrypted values belonging to G 1 O that is not encrypted to the device B.
이제 사용자가 P'를 입력하였을 때, 장치 B의 비밀정보비교함수에서 사용자가 P=P'인 P'를 입력하였는가를 결정하는 방법에 대하여 기술하고자 한다.Now, when the user inputs P ', a method of determining whether the user inputs P' with P = P 'in the secret information comparison function of the device B will be described.
비밀정보비교함수는 먼저 암호화된 정보를 복호화한다. 비밀정보비교함수는 G2O와 장치 A로부터 수신한 정보 J를 이용하여 사용자가 P=P'인 P를 입력하였는가를 결정한다. 이때 비밀정보비교함수가 {G1O, F1Q-G1I}와 G2O 또는 {G1O, W, F1Q-G1I}와 G2O를 이용하여 사용자가 P=P'인인 P'를 입력하였는가를 결정하기 위해서는 {G1O, F1Q-G1I}와 G2O가 비교가능하고 {G1O, W, F1Q-G1I}와 G2O가 비교가능하여야 한다. 여기에서 비교가능이라 함은 비밀정보비교함수가 P=P'인인 P'를 입력하였는가를 결정할 수 있음을 의미한다. 예를 들어, F2(P, Ø , Ø )={P}이고 G2I=P이며 G2O=G2I이고 G1I=P이며 G1(M(G1I), W)에서 M은 P를 P2 mod M으로 사상하는 함수이고 G1은 M(G1I)을 키로서 사용하여 W를 암호화하는 대칭 키 블록 암호 알고리즘이라 하고 W가 비트스트링 S와 S의 해쉬 값 H(S)를 접합한 결과라 하고 G1(M(G1I), W) 결과가 장치 A에서 장치 B로 전송된다고 하자. 그러면 비밀정보비교함수는 기억장치에 저장되어 있는 P를 이용하여 대칭 키 블록 암호 알고리즘의 키인 P2 mod M을 계산한 후 G1(M(G1I), W)을 복호화한다. 그리고 복호화된 결과인 W가 비트스트링 S와 S의 해쉬 값 H(S)를 접합한 결과인가를 확인한 후 W가 비트스트링 S와 S의 해쉬 값 H(S)를 접합한 결과인 경우에 한하여 사용자가 P=P'인 P'를 입력하였다고 결정 가능하므로 {G1O, F1Q-G1I}와 G2O는 비교가능하다.The secret information comparison function first decrypts the encrypted information. The secret information comparison function uses the information J received from G 2 O and the device A to determine whether the user inputs P with P = P ′. At this time, the secret information comparison function is performed by using {G 1 O, F 1 QG 1 I} and G 2 O or {G 1 O, W, F 1 QG 1 I} and G 2 O In order to determine ', {G 1 O, F 1 QG 1 I} and G 2 O must be comparable and {G 1 O, W, F 1 QG 1 I} and G 2 O must be comparable. Here, comparable means that the secret information comparison function can determine whether P 'is input, where P = P'. For example, F 2 (P, Ø, Ø) = {P}, G 2 I = P, G 2 O = G 2 I, G 1 I = P, G 1 (M (G 1 I), W) Where M is a function that maps P to P 2 mod M and G 1 is a symmetric key block cryptographic algorithm that encrypts W using M (G 1 I) as the key and W is the hash value H of the bitstrings S and S Assume that (S) is the result of splicing and that the results of G 1 (M (G 1 I), W) are transferred from device A to device B. Then, the secret information comparison function calculates P 2 mod M, which is a key of the symmetric key block cryptographic algorithm, using P stored in the memory, and then decrypts G 1 (M (G 1 I), W). After confirming that the decoded result W is the result of concatenating the hash values H (S) of the bitstrings S and S, the user is limited to the case where W is the result of concatenating the hash values H (S) of the bitstrings S and S. Can be determined to input P 'with P = P', so that {G 1 O, F 1 QG 1 I} and G 2 O are comparable.
비밀정보비교함수는 비교가능한 {G1O, F1Q-G1I}와 G2O 또는 {G1O, W, F1Q-G1I}와 G2O를 이용하여 사용자가 P=P'인 P'를 입력하였는가를 결정한다.The secret information comparison function uses the comparable {G 1 O, F 1 QG 1 I} and G 2 O or {G 1 O, W, F 1 QG 1 I} and G 2 O Determine whether P 'is entered.
본 발명은 사용자가 기억 가능한 비밀정보와 공개 키 암호 시스템을 이용하여 다양한 인증 기술에 대한 공격으로부터 안전한 인증 기술을 제공한다. The present invention provides an authentication technique that is secured from attacks against various authentication techniques using a user-rememberable secret information and a public key cryptosystem.
도 1은 사용자가 등록하기 위하여 비밀정보를 입력하였을 때 동작하는 함수들과 함수들의 동작 순서를 나타낸 도면;1 is a diagram showing functions and an operation sequence of functions when a user inputs secret information to register;
도 2는 사용자가 올바른 비밀정보를 입력하였는가를 결정하기 전에 이용되는 함수들과 함수들의 동작순서를 나타낸 도면;2 is a diagram illustrating the functions used and the operation order of the functions used before determining whether the user has entered the correct secret information;
도 3은 사용자가 올바른 비밀정보를 입력하였는가를 결정하는 함수와 함수의 입력 정보를 나타낸 도면3 is a diagram illustrating a function for determining whether a user inputs correct secret information and input information of a function
Claims (21)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020030065235A KR20050028720A (en) | 2003-09-19 | 2003-09-19 | Authentication using human memorable password and public key cryptsystem |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020030065235A KR20050028720A (en) | 2003-09-19 | 2003-09-19 | Authentication using human memorable password and public key cryptsystem |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20050028720A true KR20050028720A (en) | 2005-03-23 |
Family
ID=37385616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020030065235A KR20050028720A (en) | 2003-09-19 | 2003-09-19 | Authentication using human memorable password and public key cryptsystem |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20050028720A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100957121B1 (en) * | 2008-02-22 | 2010-05-13 | 성균관대학교산학협력단 | Key distribution method and authentication server |
-
2003
- 2003-09-19 KR KR1020030065235A patent/KR20050028720A/en not_active Application Discontinuation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100957121B1 (en) * | 2008-02-22 | 2010-05-13 | 성균관대학교산학협력단 | Key distribution method and authentication server |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kiss et al. | Private set intersection for unequal set sizes with mobile applications | |
US7516321B2 (en) | Method, system and device for enabling delegation of authority and access control methods based on delegated authority | |
US8139766B2 (en) | Pseudo public key encryption | |
US7711113B2 (en) | ID-based signature, encryption system and encryption method | |
KR101389100B1 (en) | A method and apparatus to provide authentication and privacy with low complexity devices | |
KR100259179B1 (en) | Process of communication cryptograph | |
US6477254B1 (en) | Network system using a threshold secret sharing method | |
JP6363032B2 (en) | Key change direction control system and key change direction control method | |
US20050005121A1 (en) | Cryptographic method and apparatus | |
US20050005100A1 (en) | Cryptographic method and system | |
JPH08510365A (en) | Method and apparatus for data encryption | |
CN112119609A (en) | Method and system for communicating secrets | |
JP3794457B2 (en) | Data encryption / decryption method | |
Terec et al. | DNA security using symmetric and asymmetric cryptography | |
CN116830523A (en) | threshold key exchange | |
US11336425B1 (en) | Cryptographic machines characterized by a Finite Lab-Transform (FLT) | |
JP5171787B2 (en) | Sign-encryption system and sign-encryption generation method | |
KR102284877B1 (en) | Efficient functional encryption for set intersection | |
Altarawneh | A strong combination of cryptographic techniques to secure cloud-hosted data | |
KR20050028720A (en) | Authentication using human memorable password and public key cryptsystem | |
EP3637670A1 (en) | Method and system for executing a cryptography scheme | |
US11824979B1 (en) | System and method of securing a server using elliptic curve cryptography | |
Hellwig et al. | Blockchain Cryptography: Part 1 | |
CN102474413A (en) | Private key compression | |
Srinadh et al. | Data Security And Recovery Approach Using Elliptic Curve Cryptography |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |