KR102435056B1 - 확장함수를 이용한 복수의 인증서 발급 시스템 및 그 발급 방법 - Google Patents

확장함수를 이용한 복수의 인증서 발급 시스템 및 그 발급 방법 Download PDF

Info

Publication number
KR102435056B1
KR102435056B1 KR1020190104190A KR20190104190A KR102435056B1 KR 102435056 B1 KR102435056 B1 KR 102435056B1 KR 1020190104190 A KR1020190104190 A KR 1020190104190A KR 20190104190 A KR20190104190 A KR 20190104190A KR 102435056 B1 KR102435056 B1 KR 102435056B1
Authority
KR
South Korea
Prior art keywords
value
function
information
keys
server
Prior art date
Application number
KR1020190104190A
Other languages
English (en)
Other versions
KR20210024720A (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 KR1020190104190A priority Critical patent/KR102435056B1/ko
Priority to PCT/KR2020/010940 priority patent/WO2021040303A1/ko
Publication of KR20210024720A publication Critical patent/KR20210024720A/ko
Application granted granted Critical
Publication of KR102435056B1 publication Critical patent/KR102435056B1/ko

Links

Images

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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Storage Device Security (AREA)

Abstract

인증서 발급 시스템은, 제 1 서버;를 포함하되, 상기 제 1 서버는, 사용자 단말기로부터 상기 사용자 단말기의 식별 정보, 랜덤수 a와 타원곡선 방정식상의 기저점 G를 곱한 값 aG, 랜덤수 p와 타원곡선 방정식 상의 기저점 G를 곱한 값 pG, 제 1 대칭키, 제 2 대칭키, 제 1 인덱스 정보, 제 2 인덱스 정보 및 인증서의 개수 정보인 N값을 수신하고, 상기 제 1 대칭키, 상기 제 1 인덱스 정보, 상기 제 2 인덱스 정보 및 상기 인증서의 개수 정보인 N값을 입력으로 하는 제 1 확장함수; 및 상기 aG값;을 이용하여, N개의 제 2-1 키를 생성하고, 상기 제 2 대칭키, 상기 제 1 인덱스 정보, 상기 제 2 인덱스 정보 및 상기 인증서의 개수 정보인 N값을 입력으로 하는 제 2 확장함수; 및 상기 pG값;을 이용하여, N개의 제 2-2 키를 생성하는 것을 특징으로 한다.

Description

확장함수를 이용한 복수의 인증서 발급 시스템 및 그 발급 방법{Multiple Certificate Issuing System Using Extension Functions and Issuing Method Therefor}
본 발명은 확장함수를 이용한 복수의 인증서 발급 시스템 및 그 발급 방법에 관한 것이다.
일반적인 공개키 암호화 방식에서는 타원 곡선 방정식을 이용하여 키 쌍을 생성하여 최종적인 공개키 생성에 이용한다. 여기서 키 쌍이라는 것은 랜덤수와 그 랜덤수에 타원곡선 상의 어느 한점의 좌표인 기저점을 곱한 값을 이른다. 아울러, 공개키는 공인인증기관이 발급하는 인증서에 포함되게 된다.
복수의 공개키를 생성하여 복수의 인증서를 발급받는 경우, 제한된 통신 환경에서는 원활하지 못하는 경우가 발생할 수 있다. 이에 복수의 인증서의 발급을 위해, 버터플라이 키 확장을 이용한다. 버터플라이 키 확장에서는 확장함수를 사용하며, 확장함수의 요소 기술은 블록암호화 기술이다.
국내공개특허 제 10-2018-0053066호에는 키 확장 방식을 적용한 묵시적 인증서 발급 방법 및 시스템이 개시되어 있다. 그런데, 국내공개특허 제 10-2018-0053066호의 경우, 인증서 요청자인 호스트와 최종적으로 복수의 인증서를 발급하는 상위인증기관의 서버 사이에서 인증서 발급이 이루어지기 때문에, 상위인증기관은 인증서 요청자의 식별 정보와 해당 인증서 정보를 취득하게 되므로, 개인 정보 보호의 측면에서는 취약성을 나타낼 수 있다.
본 발명은 전술한 바와 같은 기술적 과제를 해결하는 데 목적이 있는 발명으로서, 상위인증기관에서 인증서 요청자의 식별 정보를 취득하지 않고, 최종적인 개인키의 정보는 인증서 요청자만이 알 수 있어, 개인 정보 보호를 강화할 수 있는 확장함수를 이용한 복수의 인증서 발급 시스템 및 그 발급 방법을 제공하는 것에 그 목적이 있다.
본 발명의 인증서 발급 시스템은, 제 1 서버;를 포함하되, 상기 제 1 서버는, 사용자 단말기로부터 상기 사용자 단말기의 식별 정보, 랜덤수 a와 타원곡선 방정식상의 기저점 G를 곱한 값인 aG, 랜덤수 p와 상기 기저점 G를 곱한 값인 pG, 제1 대칭키, 제 2 대칭키, 제 1 인덱스 정보, 제 2 인덱스 정보 및 인증서의 개수 정보인 N값을 수신하고, 상기 제 1 대칭키, 상기 제 1 인덱스 정보, 상기 제 2 인덱스 정보 및 상기 인증서의 개수 정보인 N값을 입력으로 하는 제 1 확장함수; 및 상기 aG값;을 이용하여, N개의 제 2-1 키를 생성하고, 상기 제 2 대칭키, 상기 제 1 인덱스 정보, 상기 제 2 인덱스 정보 및 상기 인증서의 개수 정보인 N값을 입력으로 하는 제 2 확장함수; 및 상기 pG값;을 이용하여, N개의 제 2-2 키를 생성하는 것을 특징으로 한다.
구체적으로, 상기 제 1 확장함수는, 상기 제 1 서버에서 사용하는 타원곡선 방정식의 차수 값으로 1번째 제 1 내부 함수값을 나눈 나머지값을 1 번째 제 1 확장함수값으로 산출하되, 상기 1 번째 제 1 내부 함수값은, 상기 제 1 대칭키 및 1 번째 제 1 정보값에 1 내지 3을 더한 값을 각각 제 1 암호화 함수에 의해 암호한 후, 1 번째 제 1 정보값에 1 내지 3을 더한 값과 각각 X-OR 연산하고, X-OR 연산의 결과를 연결하여 출력한 값이고, 상기 1 번째 제 1 정보값은, 상기 제 1 인덱스 정보 및 상기 제 2 인덱스 정보를 이용하여 산출된 값인 것이 바람직하다.
또한, 상기 제 1 확장함수는, 상기 타원곡선 방정식의 차수 값으로 w 번째 제 1 내부 함수값을 나눈 나머지값을 w 번째 제 1 확장함수값으로 산출하되, 상기 w 번째 제 1 내부함수값은, 상기 제 1 대칭키 및 w-1 번째 제 1 정보값을 이용하여 산출된 w 번째 제 1 정보값에 1 내지 3을 더한 값을 각각 상기 제 1 암호화 함수에 의해 암호한 후, w 번째 제 1 정보값에 1 내지 3을 더한 값과 각각 X-OR 연산하고, X-OR 연산의 결과를 연결하여 출력한 값이다. 여기서, 상기 w는, 2 이상이고 N 이하인 자연수인 것을 특징으로 한다.
아울러, 상기 제 1 암호화 함수에 의한 암호화는, (S100) S값을 이용하여, 해당 k번째 라운드키(Rk)를 산출하는 단계; 및 (S200) 상기 S100 단계에서 산출된 해당 k번째 라운드키(Rk)와 T값을 이용하여 암호화된 출력을 생성하는 단계;를 포함하되, 상기 S값은, 상기 제 1 대칭키이고, 상기 T값은, 1번째 제 1 정보값 내지 N 번째 제 1 정보값 중 하나;와 1 내지 3 중 하나;를 더한 값인 것이 바람직하다.
구체적으로, 상기 S100 단계는, (S110) S를 32비트의 워드 단위인 Sb0, Sb0+1, Sb0+2 및 Sb0+3로 분리하고, Sb0, Sb0+1, Sb0+2 및 Sb0+3 각각과 미리 설정된 값 Fb0, Fb0+1, Fb0+2 및 Fb0+3를 각각 연산하여, 초기 4개의 키 Ub0, Ub0+1, Ub0+2 및 Ub0+3를 출력하는 단계; (S120) Uk+1, Uk+2 및 Uk+3과 상수 Vk를 연속적으로 X-OR 연산하는 단계; (S130) 상기 S120 단계의 결과를 비선형 함수에 의해 변환하는 단계; (S140) 상기 S130 단계의 결과를 선형 함수에 의해 변환하는 단계; 및 (S150) Uk와 S140 단계의 결과를 X-OR 연산하여, Uk+4를 산출하는 단계;를 포함하되, k를 b0로부터 (b0+31)까지 1씩 증가시키면서, S120 단계 내지 S150 단계를 반복적으로 실시하고, 상기 S150 단계의 Uk+4를 해당 k번째 라운드키(Rk)로서 산출하되, 상기 b0는 미리 설정된 정수인 것을 특징으로 한다.
아울러, 상기 S200 단계는, (S210) T를 32비트의 워드 단위인 Td0, Td0+1, Td0+2 및 Td0+3로 분리하는 단계; (S220) Tk+1, Tk+2 및 Tk+3과 k번째 라운드키(Rk)를 연속적으로 X-OR 연산하는 단계; (S230) 상기 S220 단계의 결과를 비선형 함수에 의해 변환하는 단계; (S240) 상기 S230 단계의 결과를 선형 함수에 의해 변환하는 단계; 및 (S250) Tk와 상기 S240 단계의 결과를 X-OR 연산하여, Tk+4를 산출하는 단계;를 포함하고, k를 d0로부터 (d0+31)까지 1씩 증가시키면서, S220 단계 내지 S250 단계를 반복적으로 실시하고, 최종적으로 (Td0+31+4, Td0+31+3, Td0+31+2, Td0+31+1)를 출력하되, 상기 d0는 미리 설정된 정수인 것이 바람직하다.
또한, N개의 제 2-1 키 각각은, 1 번째 제 1 확장함수값 내지 N 번째 제 1 확장함수값 각각에 상기 기저점 G를 곱한 값;과 상기 aG값;을 더한 값인 것을 특징으로 한다. 아울러, N개의 제 2-2 키 각각은, 1 번째 제 2 확장함수값 내지 N 번째 제 2 확장함수값 각각에 상기 기저점 G를 곱한 값;과 상기 pG값;을 더한 값인 것을 특징으로 한다.
또한, 상기 제 1 서버는, 상기 N개의 제 2-1 키 및 상기 N개의 제 2-2 키를 제 2 서버로 전송한다. 아울러, 상기 제 1 서버는, 암호화된 N개의 인증서 및 랜덤수 c값을 상기 제 2 서버로부터 수신하되, 상기 N개의 인증서 각각은, 상기 사용자 단말기에서 사용할 하나의 최종적인 공개키를 포함하고 있는 것을 특징으로 한다. 바람직하게는, 상기 제 1 서버는, 암호화된 N개의 인증서 및 랜덤수 c값을 상기 사용자 단말기로 전송하는 것을 특징으로 한다.
아울러, 본 발명의 인증서 발급 시스템은, 상기 사용자 단말기;를 더 포함하되, 상기 사용자 단말기는, 랜덤수 p와 상기 제 2 확장함수를 이용하여, N개의 역암호화 함수값을 산출하고, 상기 N개의 역암호화 함수값을 이용하여, 상기 암호화된 N개의 인증서 및 랜덤수 c값을 역암호화하는 것에 의해, N개의 최종 공개키 및 랜덤수 c값을 산출하는 것을 특징으로 한다. 아울러, 상기 사용자 단말기는, 상기 랜덤수 a, 상기 제 1 확장함수 및 상기 랜덤수 c를 이용하여, N개의 최종 개인키를 산출하는 것이 바람직하다.
또한, 본 발명의 인증서 발급 시스템은, 상기 제 2 서버;를 더 포함하되, 상기 제 2 서버는, 상기 기저점 G에 랜덤수 c를 곱한 값에, 상기 N개의 제 2-1 키를 각각 더하여, N개의 제 3 키를 산출하되, 상기 N개의 제 3 키가 상기 사용자 단말기에서 사용할 N개의 최종적인 공개키인 것을 특징으로 한다. 아울러, 상기 제 2 서버는, z 번째 제 2-2 키를 이용하여, z 번째 제 3 키와 상기 램덤수 c를 암호화하고, z는, 1 이상이고 N 이하인 자연수인 것이 바람직하다.
본 발명의 인증서 발급 방법은, 제 1 서버가, 사용자 단말기로부터 상기 사용자 단말기의 식별 정보, 랜덤수 a와 타원곡선 방정식상의 기저점 G를 곱한 값 aG, 랜덤수 p와 상기 기저점 G를 곱한 값 pG, 제1 대칭키, 제 2 대칭키, 제 1 인덱스 정보, 제 2 인덱스 정보 및 인증서의 개수 정보인 N값을 수신하는 단계; 상기 제 1 서버가, 상기 제 1 대칭키, 상기 제 1 인덱스 정보, 상기 제 2 인덱스 정보 및 상기 인증서의 개수 정보인 N값을 입력으로 하는 제 1 확장함수; 및 상기 aG값;을 이용하여, N개의 제 2-1 키를 생성하는 단계; 및 상기 제 1 서버가, 상기 제 2 대칭키, 상기 제 1 인덱스 정보, 상기 제 2 인덱스 정보 및 상기 인증서의 개수 정보인 N값을 입력으로 하는 제 2 확장함수; 및 상기 pG값;을 이용하여, N개의 제 2-2 키를 생성하는 단계;를 포함하는 것을 특징으로 한다.
구체적으로, 상기 제 1 확장함수는, 상기 제 1 서버에서 사용하는 타원곡선 방정식의 차수값으로 1번째 제 1 내부 함수값을 나눈 나머지값을 1 번째 제 1 확장함수값으로 산출하되, 상기 1 번째 제 1 내부 함수값은, 상기 제 1 대칭키 및 1 번째 제 1 정보값에 1 내지 3을 더한 값을 각각 제 1 암호화 함수에 의해 암호한 후, 1 번째 제 1 정보값에 1 내지 3을 더한 값과 각각 X-OR 연산하고, X-OR 연산의 결과를 연결하여 출력한 값이고, 상기 1 번째 제 1 정보값은, 상기 제 1 인덱스 정보 및 상기 제 2 인덱스 정보를 이용하여 산출된 값인 것을 특징으로 한다. 아울러, 상기 제 1 확장함수는, 상기 제 1 대칭키로 w 번째 제 1 내부 함수값을 나눈 나머지값을 w 번째 제 1 확장함수값으로 산출하되, 상기 w 번째 제 1 내부함수값은, 상기 제 1 대칭키 및 w-1 번째 제 1 정보값을 이용하여 산출된 w 번째 제 1 정보값에 1 내지 3을 더한 값을 각각 상기 제 1 암호화 함수에 의해 암호한 후, w 번째 제 1 정보값에 1 내지 3을 더한 값과 각각 X-OR 연산하고, X-OR 연산의 결과를 연결하여 출력한 값이고, 상기 w는, 2 이상이고 N 이하인 자연수인 것이 바람직하다.
또한, 상기 제 1 암호화 함수에 의한 암호화는, (S100) S값을 이용하여, 해당 k번째 라운드키(Rk)를 산출하는 단계; 및 (S200) 상기 S100 단계에서 산출된 해당 k번째 라운드키(Rk)와 T값을 이용하여 암호화된 출력을 생성하는 단계;를 포함하되, 상기 S값은, 상기 제 1 대칭키값이고, 상기 T값은, 1번째 제 1 정보값 내지 N 번째 제 1 정보값 중 하나;와 1 내지 3 중 하나;를 더한 값인 것을 특징으로 한다.
구체적으로, 상기 S100 단계는, (S110) S를 32비트의 워드 단위인 Sb0, Sb0+1, Sb0+2 및 Sb0+3로 분리하고, Sb0, Sb0+1, Sb0+2 및 Sb0+3 각각과 미리 설정된 값 Fb0, Fb0+1, Fb0+2 및 Fb0+3를 각각 연산하여, 초기 4개의 키 Ub0, Ub0+1, Ub0+2 및 Ub0+3를 출력하는 단계; (S120) Uk+1, Uk+2 및 Uk+3과 상수 Vk를 연속적으로 X-OR 연산하는 단계; (S130) 상기 S120 단계의 결과를 비선형 함수에 의해 변환하는 단계; (S140) 상기 S130 단계의 결과를 선형 함수에 의해 변환하는 단계; 및 (S150) Uk와 S140 단계의 결과를 X-OR 연산하여, Uk+4를 산출하는 단계;를 포함하되, k를 b0로부터 (b0+31)까지 1씩 증가시키면서, S120 단계 내지 S150 단계를 반복적으로 실시하고, 상기 S150 단계의 Uk+4를 해당 k번째 라운드키(Rk)로서 산출하되, 상기 b0는 미리 설정된 정수인 것이 바람직하다.
또한, 상기 S200 단계는, (S210) T를 32비트의 워드 단위인 Td0, Td0+1, Td0+2 및 Td0+3로 분리하는 단계; (S220) Tk+1, Tk+2 및 Tk+3과 k번째 라운드키(Rk)를 연속적으로 X-OR 연산하는 단계; (S230) 상기 S220 단계의 결과를 비선형 함수에 의해 변환하는 단계; (S240) 상기 S230 단계의 결과를 선형 함수에 의해 변환하는 단계; 및 (S250) Tk와 상기 S240 단계의 결과를 X-OR 연산하여, Tk+4를 산출하는 단계;를 포함하고, k를 d0로부터 (d0+31)까지 1씩 증가시키면서, S220 단계 내지 S250 단계를 반복적으로 실시하고, 최종적으로 (Td0+31+4, Td0+31+3, Td0+31+2, Td0+31+1)를 출력하되, 상기 d0는 미리 설정된 정수인 것을 특징으로 한다.
또한, N개의 제 2-1 키 각각은, 1 번째 제 1 확장함수값 내지 N 번째 제 1 확장함수값 각각에 상기 기저점 G를 곱한 값;과 상기 aG값;을 더한 값인 것을 특징으로 한다. 아울러, N개의 제 2-2 키 각각은, 1 번째 제 2 확장함수값 내지 N 번째 제 2 확장함수값 각각에 상기 기저점 G를 곱한 값;과 상기 pG값;을 더한 값인 것을 특징으로 한다.
바람직하게는, 본 발명의 인증서 발급 방법은, 상기 제 1 서버가, 상기 N개의 제 2-1 키 및 상기 N개의 제 2-2 키를 제 2 서버로 전송하는 단계; 및 상기 제 1 서버가, 암호화된 N개의 인증서 및 랜덤수 c값을 상기 제 2 서버로부터 수신하는 단계;를 더 포함하되, 상기 N개의 인증서 각각은, 상기 사용자 단말기에서 사용할 하나의 최종적인 공개키를 포함하고 있는 것을 특징으로 한다.
아울러, 본 발명의 인증서 발급 방법은, 상기 제 1 서버가, 암호화된 N개의 인증서 및 랜덤수 c값을 상기 사용자 단말기로 전송하는 단계; 상기 사용자 단말기가, 상기 랜덤수 p와 상기 제 2 확장함수를 이용하여, N개의 역암호화 함수값을 산출하는 단계; 상기 사용자 단말기가, 상기 N개의 역암호화 함수값을 이용하여, 상기 N개의 암호화된 인증서 및 랜덤수 c값을 역암호화하는 것에 의해, N개의 최종 공개키 및 랜덤수 c값을 산출하는 단계;를 더 포함하는 것을 특징으로 한다.
또한, 본 발명의 인증서 발급 방법은, 상기 사용자 단말기가, 랜덤수 a, 상기 제 1 확장함수 및 상기 랜덤수 c를 이용하여, N개의 최종 개인키를 산출하는 단계;를 더 포함하는 것이 바람직하다.
아울러, 본 발명의 인증서 발급 방법은, 상기 제 2 서버가, 상기 기저점 G에 랜덤수 c를 곱한 값에, 상기 N개의 제 2-1 키를 각각 더하여, N개의 제 3 키를 산출하는 단계;를 더 포함하되, 상기 N개의 제 3 키가 상기 사용자 단말기에서 사용할 N개의 최종적인 공개키인 것을 특징으로 한다.
바람직하게는, 본 발명의 인증서 발급 방법은, 상기 제 2 서버가, z 번째 제 2-2 키를 이용하여, z 번째 제 3 키와 상기 램덤수 c를 암호화하는 단계;를 더 포함하되, z는, 1 이상이고 N 이하인 자연수인 것이 바람직하다.
본 발명의 확장함수를 이용한 복수의 인증서 발급 시스템 및 그 발급 방법에 따르면, 상위인증기관에서 인증서 요청자의 식별 정보를 취득하지 않고, 최종적인 개인키의 정보는 인증서 요청자만이 알 수 있어, 개인 정보 보호를 강화할 수 있다.
도 1은 본 발명의 바람직한 일실시예에 따른 확장함수를 이용한 복수의 인증서 발급 시스템의 구성도.
도 2는 제 1 암호화 함수에 의한 연산 흐름도.
도 3은 S100 단계의 구체적인 흐름도.
도 4는 S200 단계의 구체적인 흐름도.
이하, 첨부된 도면을 참조하면서 본 발명의 실시예에 따른 확장함수를 이용한 복수의 인증서 발급 시스템 및 그 발급 방법에 대해 상세히 설명하기로 한다.
본 발명의 하기의 실시예는 본 발명을 구체화하기 위한 것일 뿐 본 발명의 권리 범위를 제한하거나 한정하는 것이 아님은 물론이다. 본 발명의 상세한 설명 및 실시예로부터 본 발명이 속하는 기술 분야의 전문가가 용이하게 유추할 수 있는 것은 본 발명의 권리 범위에 속하는 것으로 해석된다.
본 발명의 실시예에 따른 확장함수를 이용한 복수의 인증서 발급 시스템(100) 및 그 발급 방법은, 버터플라이 키 확장 방식을 이용한다.
먼저, 도 1은 본 발명의 바람직한 일실시예에 따른 확장함수를 이용한 복수의 인증서 발급 시스템(100)의 구성도를 나타낸다.
도 1로부터 알 수 있는 바와 같이, 본 발명의 바람직한 일실시예에 따른 확장함수를 이용한 복수의 인증서 발급 시스템(100)은, 사용자 단말기(10), 제 1 서버(20) 및 제 2 서버(30)를 포함하여 구성될 수 있다.
사용자 단말기(10), 제 1 서버(20) 및 제 2 서버(30)는 각각, 메모리 및 통신 기능을 구비한 컴퓨팅 장치이다.
본 발명의 바람직한 일실시예에 따른 확장함수를 이용한 복수의 인증서 발급 시스템(100)의 동작을 간단히 설명하자면, 제 2 서버(30)가 N개의 최종 공개키를 생성하고, 사용자 단말기(10)가 N개의 최종 공개키를 전달받아, 사용자 단말기(10)가 N개의 최종 개인키를 생성한다.
이러한 N개의 최종 공개키 및 N개의 최종 개인키의 발급 과정에서, 개인 정보에 대한 보안을 강화하기 위해, 제 1 서버(20)를 사용자 단말기(10)와 제 2 서버(30) 사이에 개재한 것에 본 발명의 특징이 있다.
사용자 단말기(10)는, 스마트폰, 컴퓨터 등과 같은 개인용 단말기 및 차량 내부에 설치된 차량용 단말기를 예로 들 수 있다.
사용자 단말기(10)는, 서명용 초기 개인키값이라고 할 수 있는 임의의 1 보다 크고 정수 n보다 작은 범위의 임의의 랜덤수 a를 생성한다. 아울러, 사용자 단말기(10)는, 데이터암호용 초기 개인키값인 임의의 1 보다 크고 정수 n보다 작은 범위의 임의의 랜덤수 p를 생성한다.
제 1 서버(20)는, 랜덤 수 a와 p 각각에 대하여 타원곡선 암호 알고리즘에서 결정한 타원곡선 방정식 상의 어느 한점의 좌표로서 기저점 G를 곱하는 것에 의해 랜덤수 a와 한쌍을 이루는 aG를 이용하고, 랜덤수 p와 한쌍을 이루는 pG를 이용한다. 참고로, 랜덤 수 a와 p 각각은, 동일한 타원곡선 방정식을 사용하므로, 그 기저점도 동일한 값이 된다.
여기서, 랜덤 수 a와 p는 사용자 단말기(10)에서 이용하므로 개인키이고, aG 및 pG는 제 1 서버(20)에서 이용하므로 공개키가 된다. 아울러, 개인키와 공개키는 서로 상이한 값을 가지므로, 비대칭키에 해당한다.
기저점의 정보는, 사용자 단말기(10), 제 1 서버(20) 및 제 2 서버(30)가 모두 알고 있는 정보이다.
아울러, 사용자 단말기(10)는, 제 1 대칭키 및 제 2 대칭키를 생성한다.
생성된 제 1 대칭키 및 제 2 대칭키는, 제 1 서버(20)로 전송되어 키 확장을 위한 복수의 최종 개인키 및 복수의 최종 공개키를 생성하기 위해 사용되며, 랜덤수이다. 제 1 대칭키 및 제 2 대칭키 각각은, 제 1 서버(20)로 전송되어 동일한 제 1 대칭키 및 제 2 대칭키를 사용자 단말기(10) 및 제 1 서버(20)가 이용하게 되므로 대칭키라 칭한다.
또한, 사용자 단말기(10)는, 제 1 인덱스 정보 및 제 2 인덱스 정보를 생성한다.
제 1 인덱스 정보 및 제 2 인덱스 정보는, 사용자 단말기(10)가 요청하는 복수의 인증서에 대한 인덱스에 해당하는 정보, 즉 색인 정보를 나타내며, 2019년 3월 8일 11시에 발행한 제 1 인증서, 제 2 인증서 등과 같은 의미를 부여하는 값이다. 즉, 제 1 인덱스 정보 및 제 2 인덱스 정보는 인증서의 발행 시간 정보를 이용한다. 이때 제 1 인덱스 정보는 발행 연월일시 정보에 대응하고, 제 2 인덱스 정보는 해당 발행 연월일에 발행된 인증서의 순서를 인덱싱하는 정보, 일련번호에 대응할 수 있다. 즉, 제 1 인덱스 정보는 상위 색인 정보이고, 제 2 인덱스 정보는 제 인 덱스 정보를 더욱 구체적으로 색인하는 하위 색인 정보를 나타낸다.
사용자 단말기(10)는, 사용자 단말기(10)의 식별 정보, aG, pG, 제 1 대칭키, 제 2 대칭키, 제 1 인덱스 정보, 제 2 인덱스 정보 및 필요로 하는 인증서의 개수 정보인 N값을 제 1 서버(20)로 전송한다.
제 1 서버(20)는, 사용자 단말기(10)로부터 사용자 단말기(10)의 식별 정보, 랜덤수 a와 타원곡선 방정식상의 기저점 G를 곱한 값 aG, 랜덤수 p와 타원곡선 방정식 상의 기저점 G를 곱한 값 pG, 제 1 대칭키, 제 2 대칭키, 제 1 인덱스 정보, 제 2 인덱스 정보 및 인증서의 개수 정보인 N값을 수신한다.
구체적으로, 제 1 서버(20)는, 제 1 대칭키, 제 1 인덱스 정보, 제 2 인덱스 정보 및 인증서의 개수 정보인 N값을 입력으로 하는 제 1 확장함수; 및 aG값;을 이용하여, N개의 제 2-1 키를 생성한다. 아울러, 제 1 서버(20)는, 제 2 대칭키, 제 1 인덱스 정보, 제 2 인덱스 정보 및 인증서의 개수 정보인 N값을 입력으로 하는 제 2 확장함수; 및 pG값;을 이용하여, N개의 제 2-2 키를 생성한다.
제 1 확장함수(f1(m))는 다음의 [수학식 1]과 같이 나타낼 수 있다.
Figure 112019087212149-pat00001
[수학식 1]에서 (A)mod(B) 함수의 의미는, A를 B로 나눈 나머지 값을 결과값으로 산출하는 모듈러 연산 함수이다. 아울러, Y는 사용자 단말기(10)가 a와 aG의 키 쌍을 생성하기 위해 사용했던 타원곡선 방정식의 차수 값으로, 제 1 서버(20)에서도 동일한 타원곡선 방정식이 이용된다. 즉, Y는 제 1 서버(20)에서 사용하는 타원곡선 방정식의 차수 값이기도 하다. 이 차수 값은 사용자 단말기(10)와 제 1 서버(20)가 서로 정의한 타원곡선 방정식에서 용이하게 얻을 수 있는 상수 값이다. 또한, f11(m)는 제 1 내부 함수를 의미한다. 여기서, m을 1로부터 N까지로 설정하면, 1번째 제 1 확장함수(f1(1)) 내지 N 번째 제 1 확장함수(f1(N))의 N개의 제 1 확장함수에 의해 N개의 개인키가 생성 가능하다.
구체적으로, 제 1 내부 함수(f11(m))은 다음의 [수학식 2]와 같이 나타낼 수 있다.
Figure 112019087212149-pat00002
[수학식 2]에서 Enc는 제 1 암호화 함수를 의미한다. 제 1 암호화 함수에 대해서는, 후술하기로 한다. 여기서
Figure 112019087212149-pat00003
는 X-OR(Exclusive OR, 배타적 논리합) 연산을 나타낸다. 아울러, ||는 연결 기능을 나타내며, 일례로 A||B||C 는 A, B, C 값을 차례로 연결한 하나의 값을 나타낸다. 또한, ck는 제 1 대칭키를 의미한다.
[수학식 1]과 [수학식 2]로부터 알 수 있는 바와 같이, 제 1 확장함수는, 타원곡선 방정식의 차수 값으로 1번째 제 1 내부 함수값을 나눈 나머지값을 1 번째 제 1 확장함수값으로 산출한다. 여기서, 1 번째 제 1 내부 함수값은, 제 1 대칭키 및 1 번째 제 1 정보값에 1 내지 3을 더한 값을 각각 제 1 암호화 함수에 의해 암호한 후, 1 번째 제 1 정보값에 1 내지 3을 더한 값과 각각 X-OR 연산하고, X-OR 연산의 결과를 연결하여 출력한 값이다.
또한, 제 1 확장함수는, 타원곡선 방정식의 차수 값으로 w 번째 제 1 내부 함수값을 나눈 나머지값을 w 번째 제 1 확장함수값으로 산출한다. 여기서, w 번째 제 1 내부함수값은, 제 1 대칭키 및 w-1 번째 제 1 정보값을 이용하여 산출된 w 번째 제 1 정보값에 1 내지 3을 더한 값을 각각 제 1 암호화 함수에 의해 암호한 후, w 번째 제 1 정보값에 1 내지 3을 더한 값과 각각 X-OR 연산하고, X-OR 연산의 결과를 연결하여 출력한 값이 된다. 아울러, w는, 2 이상이고 N 이하인 자연수인 것을 특징으로 한다.
또한, o1(1) 및 o1(m)은 제 1 정보값으로, 다음의 [수학식 3] 및 [수학식 4]와 같이 나타낼 수 있다.
Figure 112019087212149-pat00004
Figure 112019087212149-pat00005
참고로, o1(1)은, m=1인 경우의 o1(m) 값으로, o1(m)의 초기값을 나타낸다. 아울러, i와 j는 각각 제 1 인덱스 정보 및 제 2 인덱스 정보를 나타낸다.
즉, [수학식 3]에 의해 o1(1)가 정의되고, [수학식 4]에 의해 o1[2] 내지 o1[N]이 정의된다. 아울러, 032 는 32비트 0의 값을 나타낸다.
제 2 확장함수(f2(m))는 다음의 [수학식 5]와 같이 나타낼 수 있다.
Figure 112019087212149-pat00006
[수학식 5]에서 (A)mod(B) 함수의 의미는, A를 B로 나눈 나머지 값을 결과값으로 산출하는 모듈러 연산 함수이다. 아울러, Y는 사용자 단말기(10)가 p와 pG의 키 쌍을 생성하기 위해 사용했던 타원곡선 방정식의 차수 값으로, 제 1 서버(20)에서도 동일한 타원곡선 방정식이 이용된다. 즉, Y는 제 1 서버(20)에서 사용하는 타원곡선 방정식의 차수 값이기도 하다. 이 값은 [수학식 1]에서의 Y 값과 동일하다. 또한, f21(m)는 제 2 내부 함수를 의미한다. 여기서, m을 1로부터 N까지로 설정하면, 1번째 제 2 확장함수(f2(1)) 내지 N 번째 제 2 확장함수(f2(N))의 N개의 제 2 확장함수에 의해 N개의 공개키가 생성 가능하다.
구체적으로, 제 2 내부 함수(f21(m))는 다음의 [수학식 6]와 같이 나타낼 수 있다.
Figure 112019087212149-pat00007
[수학식 6]에서 Enc는 제 1 암호화 함수를 의미한다. 제 1 암호화 함수에 대해서는, 후술하기로 한다. 여기서
Figure 112019087212149-pat00008
는 X-OR(Exclusive OR, 배타적 논리합) 연산을 나타낸다. 아울러, ||는 연결 기능을 나타내며, 일례로 A||B||C 는 A, B, C 값을 차례로 연결한 하나의 값을 나타낸다. 또한, ek는 제 2 대칭키를 의미한다.
[수학식 5]와 [수학식 6]으로부터 알 수 있는 바와 같이, 제 2 확장함수는, 타원곡선 방정식의 차수 값으로 1번째 제 2 내부 함수값을 나눈 나머지값을 1 번째 제 2 확장함수값으로 산출한다. 여기서, 1 번째 제 2 내부 함수값은, 제 2 대칭키 및 1 번째 제 2 정보값에 1 내지 3을 더한 값을 각각 제 1 암호화 함수에 의해 암호한 후, 1 번째 제 2 정보값에 1 내지 3을 더한 값과 각각 X-OR 연산하고, X-OR 연산의 결과를 연결하여 출력한 값이다.
또한, 제 2 확장함수는, 제 2 대칭키로 w 번째 제 2 내부 함수값을 나눈 나머지값을 w 번째 제 2 확장함수값으로 산출한다. 여기서, w 번째 제 2 내부함수값은, 제 2 대칭키 및 w-1 번째 제 2 정보값을 이용하여 산출된 w 번째 제 2 정보값에 1 내지 3을 더한 값을 각각 상기 제 1 암호화 함수에 의해 암호한 후, w 번째 제 2 정보값에 1 내지 3을 더한 값과 각각 X-OR 연산하고, X-OR 연산의 결과를 연결하여 출력한 값이다. 아울러, w는, 2 이상이고 N 이하인 자연수인 것을 특징으로 한다.
아울러, o2(1) 및 o2(m)은 제 2 정보값으로, 다음의 [수학식 7] 및 [수학식 8]과 같이 나타낼 수 있다.
Figure 112019087212149-pat00009
Figure 112019087212149-pat00010
참고로, o2(1)은, m=1인 경우의 o2(m) 값으로, o2(m)의 초기값을 나타낸다. 아울러, i와 j는 각각 제 1 인덱스 정보 및 제 2 인덱스 정보를 나타낸다.
즉, [수학식 7]에 의해 o2(1)가 정의되고, [수학식 8]에 의해 o2[2] 내지 o2[N]이 정의된다. 아울러, 132 는 32비트 1의 값을 나타내고, 032 는 32비트 0의 값을 나타낸다.
제 1 서버(20)에서 생성되는 N개의 제 2-1 키(B2(m))는 다음의 [수학식 9]과 같이 산출될 수 있다.
Figure 112019087212149-pat00011
[수학식 9]로부터 알 수 있는 바와 같이, N개의 제 2-1 키 각각은, 1 번째 제 1 확장함수값 내지 N 번째 제 1 확장함수값 각각에, 타원곡선 암호 알고리즘에 의해 결정된 타원곡선 상의 어느 한점의 좌표인 기저점을 곱한 값;과 랜덤수 a와 기저점을 곱한 값;을 더한 값으로 나타낼 수 있다.
제 1 서버(20)에서 생성되는 N개의 제 2-2 키(Q2(m))는 다음의 [수학식 10]과 같이 산출될 수 있다.
Figure 112019087212149-pat00012
[수학식 10]으로부터 알 수 있는 바와 같이, N개의 제 2-2 키 각각은, 1 번째 제 2 확장함수값 내지 N 번째 제 2 확장함수값 각각에, 타원곡선 암호 알고리즘에 의해 결정된 타원곡선 상의 어느 한점의 좌표인 기저점을 곱한 값;과 랜덤수 p와 기저점을 곱한 값;을 더한 값으로 나타낼 수 있다.
제 1 서버(20)는, N개의 제 2-1 키 및 N개의 제 2-2 키를 제 2 서버(30)로 전송한다.
제 2 서버(30)는, 제 1 서버(20)의 상위인증기관의 서버로서, 인증서를 발급하는 서버이다. 제 2 서버(30)는, 다음의 [수학식 13]에 의해 N개의 제 3 키(D3(m))를 생성한다.
Figure 112019087212149-pat00013
[수학식 11]로부터 알 수 있는 바와 같이, 제 2 서버(30)는, 타원곡선 암호 알고리즘에 의해 결정된 타원곡선 상의 어느 한점의 좌표인 기저점에 랜덤수 c를 곱한 값에, N개의 제 2-1 키를 각각 더하여, N개의 제 3 키를 산출한다. N개의 제 3 키가 사용자 단말기(10)에서 사용할 N개의 최종적인 공개키가 된다.
즉, 제 2 서버(30)에 의해 새로운 공개키인 제 3 키를 생성하여 등록인증기관인 제 1 서버(20)가 알고 있는 공개키인 제 2-1 키와는 다른 공개키 인증서를 사용자 단말기(10)에 전달할 수 있다. 따라서, 등록인증기관인 제 1 서버(20)는 결국 사용자 단말기(10)의 최종 발행한 공개키 정보를 알 수 없으며, 상위인증기관인 제 2 서버(30)는 제 1 서버(20)가 전송한 사용자 단말기(10)의 식별 정보와 새로운 공개키인 제 3 키 사이의 상관 관계를 알 수 없어, 최종 공개키인 제 3 키 정보는 알 수 있어도 어떤 식별 정보의 사용자 단말기(10)에 해당하는 인증서인지를 알 수 없게 된다. 즉, 프라이버시가 보장되는 시스템 설계가 되는 것이다.
아울러, 제 2 서버(30)는, N개의 제 2-2 키를 이용하여, N개의 제 3 키와 랜덤수 c를 암호화한다.
구체적으로 제 2 서버(30)는, z 번째 제 2-2 키를 이용하여, z 번째 제 3 키와 램덤수 c를 암호화한다. 여기서, z는, 1 이상이고 N 이하인 자연수인 것을 특징으로 한다.
제 2 서버(30)는, 제 3 키를 포함하는 인증서 및 c값을 암호화후, 암호화된 인증서 및 c값을 제 1 서버(20)로 전송한다. 즉, 제 2 서버(30)는, 암호화된 N개의 인증서 및 랜덤수 c값을 제 1 서버(20)로 전송한다. N개의 인증서 각각은, 사용자 단말기(10)에서 사용할 하나의 최종적인 공개키를 포함하게 된다. 즉, N개의 인증서에 의해 사용자 단말기(10)에서 사용할 N개의 최종적인 공개키가 제 2 서버(30)로부터 제 1 서버(20)로 전송되게 된다.
아울러, 제 1 서버(20)는, 제 2 서버(30)로부터 전달받은 암호화된 N개의 인증서 및 랜덤수 c값을 사용자 단말기(10)로 전송한다.
사용자 단말기(10)는, 다음의 [수학식 12]에 의해 역암호화 함수값(Q4(m))을 산출한다.
Figure 112019087212149-pat00014
[수학식 12]로부터 알 수 있는 바와 같이, 사용자 단말기(10)는 랜덤수 p와 제 2 확장함수를 이용하여, N개의 역암호화 함수값을 산출한다.
사용자 단말기(10)는, N개의 역암호화 함수값을 이용하여, 암호화된 N개의 인증서 및 랜덤수 c값을 역암호화하는 것에 의해, N개의 최종 공개키(D3(m)) 및 랜덤수 c값을 산출할 수 있다.
아울러, 사용자 단말기(10)는 다음의 [수학식 13]에 의해 N개의 최종 개인키(B(m))를 산출한다.
Figure 112019087212149-pat00015
[수학식 13]으로부터 알 수 있는 바와 같이, 사용자 단말기(10)는 랜덤수 a, 제 1 확장함수 및 랜덤수 c를 이용하여, N개의 최종 개인키를 산출한다.
[수학식 12] 및 [수학식 13]과 같이, 사용자 단말기(10)는 자신이 요청한 개수의 최종 공개키 및 최종 개인키를 상위인증기관인 제 2 서버(30)로부터 프라이버시를 보장받으면서 그 발급을 완성할 수 있다.
여기서 N개의 최종 개인키는 사용자 단말기(10) 자체에서 이용하는 키이므로 개인키이고, N개의 최종 공개키는 사용자 단말기(10)가 아닌 장치에서 이용하므로 공개키가 된다. 예를 들어, 사용자 단말기(10)가 문서에 개인키로 서명을 하면, 해당 문서를 전달받은 다른 디바이스는 해당 개인키와 쌍을 이루는 공개키에 의해 암호를 해독할 수 있다.
아울러, [수학식 12] 및 [수학식 13]으로부터 알 수 있는 바와 같이, 사용자 단말기(10)도 제 1 확장함수 및 제 2 확장함수도 연산할 수 있다. 사용자 단말기(10)에서 연산하는 제 1 확장함수 및 제 2 확장함수는 각각, 상술한 제 1 서버(20)에서 연산하는 제 1 확장함수 및 제 2 확장함수와 동일한 함수를 나타낸다.
하기에 제 1 서버(20)에 의해 연산되는 제 1 암호화 함수에 대해 구체적으로 설명하기로 한다.
도 2는 제 1 암호화 함수에 의한 연산 흐름도를 나타낸다.
도 2로부터 알 수 있는 바와 같이, 제 1 암호화 함수에 의해 암호화는, (S100) S값을 이용하여, 해당 k번째 라운드키(Rk)를 산출하는 단계; 및 (S200) S100 단계에서 산출된 해당 k번째 라운드키(Rk)와 T값을 이용하여 암호화된 출력을 생성하는 단계;를 포함한다.
[수학식 2]로부터 알 수 있는 바와 같이, 제 1 확장함수가 제 1 암호화 함수를 이용시, S값은 제 1 대칭키값이고, T값은, 1 번째 제 1 정보값 내지 N 번째 제 1 정보값 중 하나;와 1 내지 3 중 하나;를 더한 값이 된다. 마찬가지로, [수학식 6]으로부터 알 수 있는 바와 같이, 제 2 확장함수가 제 1 암호화 함수를 이용시, S값은 제 2 대칭키값이고, T값은, 1 번째 제 2 정보값 내지 N 번째 제 2 정보값 중 하나;와 1 내지 3 중 하나;를 더한 값이 된다. 즉, S값과 T값은 입력으로서 주어진다.
도 3은 S100 단계의 구체적인 흐름도이다.
도 3으로부터 알 수 있는 바와 같이, S100 단계는, (S110) S를 32비트의 워드 단위인 Sb0, Sb0+1, Sb0+2 및 Sb0+3로 분리하고, Sb0, Sb0+1, Sb0+2 및 Sb0+3 각각과 미리 설정된 값 Fb0, Fb0+1, Fb0+2 및 Fb0+3를 각각 연산하여, 초기 4개의 키 Ub0, Ub0+1, Ub0+2 및 Ub0+3를 출력하는 단계; (S120) Uk+1, Uk+2 및 Uk+3과 상수 Vk를 연속적으로 X-OR 연산하는 단계; (S130) S120 단계의 결과를 비선형 함수에 의해 변환하는 단계; (S140) S130 단계의 결과를 선형 함수에 의해 변환하는 단계; 및 (S150) Uk와 S140 단계의 결과를 X-OR 연산하여, Uk+4를 산출하는 단계;를 포함한다. S100 단계는, S115 단계, S160 단계 및 S170 단계에 의해 k를 b0로부터 (b0+31)까지 1씩 증가시키면서, S120 단계 내지 S150 단계를 반복적으로 실시하게 된다..
아울러, S150 단계의 Uk+4를 해당 k번째 라운드키(Rk)로서 산출한다. 또한, b0는 미리 설정된 정수인 것이 바람직하다. 예를 들면 b0는 0으로 설정될 수 있다.
S110 단계에서의 초기 4개의 키 Ub0, Ub0+1, Ub0+2 및 Ub0+3는 각각, Sb0, Sb0+1, Sb0+2 및 Sb0+3 각각과 미리 설정된 값 Fb0, Fb0+1, Fb0+2 및 Fb0+3의 X-OR 연산에 의해 산출되는 것을 특징으로 한다. S130 단계의 비선형 함수는, 예를 들면 미리 설정된 대응 테이블 등을 이용할 수 있다. 아울러, S140 단계의 선형 함수는, 시프트 연산을 예로 들 수 있다.
S100 단계는, S130 단계의 비선형 함수에 의한 변환 이후, S140 단계의 선형 함수에 의한 변환을 실시하는 것에 의해 더욱 강력한 암호화 성능을 발휘할 수 있다.
도 4는 S300 단계의 구체적인 흐름도이다.
도 4로부터 알 수 있는 바와 같이, S200 단계는, (S210) T를 32비트의 워드 단위인 Td0, Td0+1, Td0+2 및 Td0+3로 분리하는 단계; (S220) Tk+1, Tk+2 및 Tk+3과 k번째 라운드키(Rk)를 연속적으로 X-OR 연산하는 단계; (S230) S220 단계의 결과를 비선형 함수에 의해 변환하는 단계; (S240) S230 단계의 결과를 선형 함수에 의해 변환하는 단계; 및 (S250) Tk와 상기 S240 단계의 결과를 X-OR 연산하여, Tk+4를 산출하는 단계;를 포함한다. 아울러, S200 단계는, S215 단계, S260 단계 및 S270 단계에 의해 k를 d0로부터 (d0+31)까지 1씩 증가시키면서, S220 단계 내지 S250 단계를 반복적으로 실시하고, 최종적으로 (Td0+31+4, Td0+31+3, Td0+31+2, Td0+31+1)를 출력한다. d0는 미리 설정된 정수로서, 예를 들면 0으로 설정될 수 있다.
S100 단계와 마찬가지로 S200 단계도, S230 단계의 비선형 함수에 의한 변환 이후, S240 단계의 선형 함수에 의한 변환을 실시하는 것에 의해 더욱 강력한 암호화 성능을 발휘할 수 있다.
S230 단계의 비선형 함수는, 예를 들면 미리 설정된 대응 테이블 등을 이용할 수 있다. 아울러, S240 단계의 선형 함수는, 시프트 연산을 예로 들 수 있다.
하기에 본 발명의 바람직한 일실시예에 따른 확장함수를 이용한 인증서 발급 방법에 대해 설명하기로 한다.
본 발명의 바람직한 일실시예에 따른 확장함수를 이용한 인증서 발급 방법은 상술한 확장함수를 이용한 인증서 시스템을 이용하므로, 별도의 설명이 없더라도, 확장함수를 이용한 인증서 시스템의 특징을 모두 포함하고 있음은 물론이다.
본 발명의 바람직한 일실시예에 따른 확장함수를 이용한 인증서 발급 방법은, (S11) 사용자 단말기(10)가, 사용자 단말기의 식별 정보, 랜덤수 a와 타원곡선 방정식상의 기저점 G를 곱한 값 aG, 랜덤수 p와 타원곡선 방정식 상의 기저점 G를 곱한 값 pG, 제1 대칭키, 제 2 대칭키, 제 1 인덱스 정보, 제 2 인덱스 정보 및 인증서의 개수 정보인 N값을, 제 1 서버(20)로 전송하는 단계;를 포함한다.
아울러, 본 발명의 바람직한 일실시예에 따른 확장함수를 이용한 묵시적 인증서 발급 방법은, (S21) 제 1 서버(20)가, 사용자 단말기(10)로부터 사용자 단말기(10)의 식별 정보, 랜덤수 a와 타원곡선 방정식상의 기저점 G를 곱한 값 aG, 랜덤수 p와 타원곡선 방정식 상의 기저점 G를 곱한 값 pG, 제 1 대칭키, 제 2 대칭키, 제 1 인덱스 정보, 제 2 인덱스 정보 및 인증서의 개수 정보인 N값을 수신하는 단계; (S22) 제 1 서버(20)가, 제 1 대칭키, 제 1 인덱스 정보, 제 2 인덱스 정보 및 인증서의 개수 정보인 N값을 입력으로 하는 제 1 확장함수; 및 aG값;을 이용하여, N개의 제 2-1 키를 생성하는 단계; (S23) 제 1 서버(20)가, 제 2 대칭키, 제 1 인덱스 정보, 제 2 인덱스 정보 및 인증서의 개수 정보인 N값을 입력으로 하는 제 2 확장함수; 및 pG값;을 이용하여, N개의 제 2-2 키를 생성하는 단계; 및 (S24) 제 1 서버(20)가, N개의 제 2-1 키 및 N개의 제 2-2 키를 제 2 서버(30)로 전송하는 단계;를 더 포함한다.
또한, 본 발명의 바람직한 일실시예에 따른 확장함수를 이용한 묵시적 인증서 발급 방법은, (S31) 제 2 서버(30)가, 제 1 서버(20)로부터 N개의 제 2-1 키 및 N개의 제 2-2 키를 수신하는 단계; (S32) 제 2 서버(30)가, 타원곡선 암호 알고리즘에 의해 결정된 타원곡선 상의 어느 한점의 좌표인 기저점에 랜덤수 c를 곱한 값에, N개의 제 2-1 키를 각각 더하여, N개의 제 3 키를 산출하는 단계; (S33) 제 2 서버(30)가, z 번째 제 2-2 키를 이용하여, z 번째 제 3 키와 램덤수 c를 암호화하는 단계; 및 (S34) 제 2 서버(30)가 암호화된 N개의 인증서 및 랜덤수 c값을 제 1 서버(20)로 전송하는 단계;를 더 포함하는 것을 특징으로 한다.
바람직하게는, 본 발명의 바람직한 일실시예에 따른 확장함수를 이용한 복수의 인증서 발급 방법은, (S25) 제 1 서버(20)가, 암호화된 N개의 인증서 및 랜덤수 c값을 제 2 서버(30)로부터 수신하는 단계; 및 (S26) 제 1 서버(20)가, 암호화된 N개의 인증서 및 랜덤수 c값을 사용자 단말기(10)로 전송하는 단계;를 더 포함하는 것을 특징으로 한다.
아울러, 본 발명의 바람직한 일실시예에 따른 확장함수를 이용한 복수의 인증서 발급 방법은, (S12) 사용자 단말기(10)가 암호화된 N개의 인증서 및 랜덤수 c값을 제 1 서버(20)로부터 수신하는 단계; (S13) 사용자 단말기(10)가, 랜덤수 p와 제 2 확장함수를 이용하여, N개의 역암호화 함수값을 산출하는 단계; (S14) 사용자 단말기(10)가, N개의 역암호화 함수값을 이용하여, N개의 암호화된 인증서 및 랜덤수 c값을 역암호화하는 것에 의해, N개의 최종 공개키 및 랜덤수 c값을 산출하는 단계; 및 (S15) 사용자 단말기(10)가, 랜덤수 a, 제 1 확장함수 및 랜덤수 c를 이용하여, N개의 최종 개인키를 산출하는 단계;를 더 포함하는 것을 특징으로 한다.
본 발명의 확장함수를 이용한 복수의 인증서 발급 시스템(100) 및 그 발급 방법의 특징에 대해 하기에 정리하기로 한다.
본 발명에서는, N개의 제 2-1 키 및 N개의 제 2-2 키의 키를 전달받은 상위인증기관인 제 2 서버(30)는, 최종적인 복수의 공개키 인증서를 발급하는 역할을 한다. 제 2 서버(30)는, 어느 사용자 단말기(10)가 인증서 발급을 요청했는지 분별할 수 없는 상황이 된다.
이에 반해 제 1 서버(20)는, 인증서 발급을 요청한 사용자 단말기(10)의 식별 정보, 제 1 확장함수 및 제 2 확장함수를 이용하는 제 1 대칭키 및 제 2 대칭키를 알 수 있어, 사용자 단말기(10)에 대한 중요한 정보를 확보하고 있는 상황이다. 이에 따라 제 1 서버(20)에서의 보안의 문제가 발생할 수 있으므로, 제 2 서버(30)는 전달받은 N개의 제 2-1 키에 랜덤수 c를 곱하는 것에, 새로운 공개키인 제 3 키를 설정하여 제 1 서버(20)에 대한 보안을 강화한다. 즉, 새로운 공개키인 제 3 키의 설정으로 제 1 서버(20)가 알고 있는 공개키인 제 2-2 키와는 다른 새로운 공개키 인증서를 사용자 단말기(10)에 전달할 수 있다. 따라서, 제 1 서버(20)는 결국 사용자 단말기(10)가 최종 발행한 공개키 정보를 알 수 없으며, 제 2 서버(30)는 제 1 서버(20)가 전송한 공개키인 제 2-2 키와 사용자 단말기(10)의 식별번호의 상관 관계를 알수 없어 결국 최종 공개키 정보는 알 수 있어도 어떤 사용자 단말기(10)에 해당하는 인증서인지를 알 수 없게 된다. 즉, 개인 정보 보호를 강화할 수 있다.
즉, 본 발명에 따르면 다음과 같은 목적을 달성할 수 있다.
(1) 최초로 복수의 공개키 인증서를 요청한 사용자 단말기(10)는, 상위인증기관인 제 2 서버(30)로부터 최종적인 복수의 공개키 인증서를 발급받을 수 있다.
(2) 또한, 사용자 단말기(10)는, 복수의 공개키 인증서에서 대응하는 복수의 개인키를 산출하여 확보할 수 있다.
(3) 아울러, 사용자 단말기(10)만이 최종적인 개인키에 대한 정보를 갖게 된다.
(4) 등록인증기관인 제 1 서버(20)는 최종 공개키 인증서의 공개키 값을 전혀 알 수 없다.
(5) 상위인증기관인 제 2 서버(30)는 여러 사용자 단말기(10)로부터 요청받은 복수의 인증서에 각각에 대해 요청한 사용자 단말기(10)를 구분할 수 없다. 즉, 사용자 단말기(10)의 프라이버시가 보장된다.
상술한 바와 같이, 본 발명의 확장함수를 이용한 복수의 인증서 발급 시스템(100) 및 그 발급 방법에 따르면, 상위인증기관인 제 2 서버(30)에서 인증서 요청자인 사용자 단말기(10)의 식별 정보를 취득하지 않고, 최종적인 개인키의 정보는 인증서 요청자만이 알 수 있어, 개인 정보 보호를 강화할 수 있음을 알 수 있다.
100 : 인증서 발급 시스템
10 : 사용자 단말기
20 : 제 1 서버
30 : 제 2 서버

Claims (30)

  1. 인증서 발급 시스템에 있어서,
    제 1 서버;를 포함하되,
    상기 제 1 서버는,
    사용자 단말기로부터 상기 사용자 단말기의 식별 정보, 랜덤수 a와 타원곡선 방정식상의 기저점 G를 곱한 값 aG, 랜덤수 p와 상기 기저점 G를 곱한 값 pG, 제 1 대칭키, 제 2 대칭키, 제 1 인덱스 정보, 제 2 인덱스 정보 및 인증서의 개수 정보인 N값을 수신하고,
    상기 제 1 대칭키, 상기 제 1 인덱스 정보, 상기 제 2 인덱스 정보 및 상기 인증서의 개수 정보인 N값을 입력으로 하는 제 1 확장함수; 및 상기 aG값;을 이용하여, N개의 제 2-1 키를 생성하고,
    상기 제 2 대칭키, 상기 제 1 인덱스 정보, 상기 제 2 인덱스 정보 및 상기 인증서의 개수 정보인 N값을 입력으로 하는 제 2 확장함수; 및 상기 pG값;을 이용하여, N개의 제 2-2 키를 생성하는 것을 특징으로 하는 인증서 발급 시스템.
  2. 제1항에 있어서,
    상기 제 1 확장함수는,
    상기 타원곡선 방정식의 차수 값으로 1번째 제 1 내부 함수값을 나눈 나머지값을 1 번째 제 1 확장함수값으로 산출하되,
    상기 1 번째 제 1 내부 함수값은,
    상기 제 1 대칭키 및 1 번째 제 1 정보값에 1 내지 3을 더한 값을 각각 제 1 암호화 함수에 의해 암호한 후, 1 번째 제 1 정보값에 1 내지 3을 더한 값과 각각 X-OR 연산하고, X-OR 연산의 결과를 연결하여 출력한 값이고,
    상기 1 번째 제 1 정보값은,
    상기 제 1 인덱스 정보 및 상기 제 2 인덱스 정보를 이용하여 산출된 값인 것을 특징으로 하는 인증서 발급 시스템.
  3. 제2항에 있어서,
    상기 제 1 확장함수는,
    상기 타원곡선 방정식의 차수 값으로 w 번째 제 1 내부 함수값을 나눈 나머지값을 w 번째 제 1 확장함수값으로 산출하되,
    상기 w 번째 제 1 내부함수값은,
    상기 제 1 대칭키 및 w-1 번째 제 1 정보값을 이용하여 산출된 w 번째 제 1 정보값에 1 내지 3을 더한 값을 각각 상기 제 1 암호화 함수에 의해 암호한 후, w 번째 제 1 정보값에 1 내지 3을 더한 값과 각각 X-OR 연산하고, X-OR 연산의 결과를 연결하여 출력한 값이고,
    상기 w는,
    2 이상이고 N 이하인 자연수인 것을 특징으로 하는 인증서 발급 시스템.
  4. 제3항에 있어서,
    상기 제 1 암호화 함수에 의한 암호화는,
    (S100) S값을 이용하여, 해당 k번째 라운드키(Rk)를 산출하는 단계; 및
    (S200) 상기 S100 단계에서 산출된 해당 k번째 라운드키(Rk)와 T값을 이용하여 암호화된 출력을 생성하는 단계;를 포함하되,
    상기 S값은,
    상기 제 1 대칭키값이고,
    상기 T값은,
    1번째 제 1 정보값 내지 N 번째 제 1 정보값 중 하나;와
    1 내지 3 중 하나;를 더한 값인 것을 특징으로 하는 인증서 발급 시스템.
  5. 제4항에 있어서,
    상기 S100 단계는,
    (S110) S를 32비트의 워드 단위인 Sb0, Sb0+1, Sb0+2 및 Sb0+3로 분리하고, Sb0, Sb0+1, Sb0+2 및 Sb0+3 각각과 미리 설정된 값 Fb0, Fb0+1, Fb0+2 및 Fb0+3를 각각 연산하여, 초기 4개의 키 Ub0, Ub0+1, Ub0+2 및 Ub0+3를 출력하는 단계;
    (S120) Uk+1, Uk+2 및 Uk+3과 상수 Vk를 연속적으로 X-OR 연산하는 단계;
    (S130) 상기 S120 단계의 결과를 비선형 함수에 의해 변환하는 단계;
    (S140) 상기 S130 단계의 결과를 선형 함수에 의해 변환하는 단계; 및
    (S150) Uk와 S140 단계의 결과를 X-OR 연산하여, Uk+4를 산출하는 단계;를 포함하되,
    k를 b0로부터 (b0+31)까지 1씩 증가시키면서, S120 단계 내지 S150 단계를 반복적으로 실시하고,
    상기 S150 단계의 Uk+4를 해당 k번째 라운드키(Rk)로서 산출하되,
    상기 b0는, 미리 설정된 정수인 것을 특징으로 하는 인증서 발급 시스템.
  6. 제4항에 있어서,
    상기 S200 단계는,
    (S210) T를 32비트의 워드 단위인 Td0, Td0+1, Td0+2 및 Td0+3로 분리하는 단계;
    (S220) Tk+1, Tk+2 및 Tk+3과 k번째 라운드키(Rk)를 연속적으로 X-OR 연산하는 단계;
    (S230) 상기 S220 단계의 결과를 비선형 함수에 의해 변환하는 단계;
    (S240) 상기 S230 단계의 결과를 선형 함수에 의해 변환하는 단계; 및
    (S250) Tk와 상기 S240 단계의 결과를 X-OR 연산하여, Tk+4를 산출하는 단계;를 포함하고,
    k를 d0로부터 (d0+31)까지 1씩 증가시키면서, S220 단계 내지 S250 단계를 반복적으로 실시하고,
    최종적으로 (Td0+31+4, Td0+31+3, Td0+31+2, Td0+31+1)를 출력하되,
    상기 d0는, 미리 설정된 정수인 것을 특징으로 하는 인증서 발급 시스템.
  7. 제3항에 있어서,
    N개의 제 2-1 키 각각은,
    1 번째 제 1 확장함수값 내지 N 번째 제 1 확장함수값 각각에, 상기 기저점 G를 곱한 값;과
    상기 aG값;을 더한 값인 것을 특징으로 하는 인증서 발급 시스템.
  8. 제3항에 있어서,
    N개의 제 2-2 키 각각은,
    1 번째 제 2 확장함수값 내지 N 번째 제 2 확장함수값 각각에, 상기 기저점 G를 곱한 값;과
    상기 pG값;을 더한 값인 것을 특징으로 하는 인증서 발급 시스템.
  9. 제1항에 있어서,
    상기 제 1 서버는,
    상기 N개의 제 2-1 키 및 상기 N개의 제 2-2 키를 제 2 서버로 전송하는 것을 특징으로 하는 인증서 발급 시스템.
  10. 제9항에 있어서,
    상기 제 1 서버는,
    암호화된 N개의 인증서 및 랜덤수 c값을 상기 제 2 서버로부터 수신하되,
    상기 N개의 인증서 각각은,
    상기 사용자 단말기에서 사용할 하나의 최종적인 공개키를 포함하고 있는 것을 특징으로 하는 인증서 발급 시스템.
  11. 제10항에 있어서,
    상기 제 1 서버는,
    암호화된 N개의 인증서 및 랜덤수 c값을 상기 사용자 단말기로 전송하는 것을 특징으로 하는 인증서 발급 시스템.
  12. 제11항에 있어서,
    상기 인증서 발급 시스템은,
    상기 사용자 단말기;를 더 포함하되,
    상기 사용자 단말기는,
    상기 랜덤수 p와 상기 제 2 확장함수를 이용하여, N개의 역암호화 함수값을 산출하고,
    상기 N개의 역암호화 함수값을 이용하여, 상기 암호화된 N개의 인증서 및 랜덤수 c값을 역암호화하는 것에 의해, N개의 최종 공개키 및 상기 랜덤수 c값을 산출하는 것을 특징으로 하는 인증서 발급 시스템.
  13. 제12항에 있어서,
    상기 사용자 단말기는,
    상기 랜덤수 a, 상기 제 1 확장함수 및 상기 랜덤수 c를 이용하여, N개의 최종 개인키를 산출하는 것을 특징으로 하는 인증서 발급 시스템.
  14. 제9항에 있어서,
    상기 인증서 발급 시스템은,
    상기 제 2 서버;를 더 포함하되,
    상기 제 2 서버는,
    상기 기저점 G에 랜덤수 c를 곱한 값에, 상기 N개의 제 2-1 키를 각각 더하여, N개의 제 3 키를 산출하되,
    상기 N개의 제 3 키가 상기 사용자 단말기에서 사용할 N개의 최종적인 공개키인 것을 특징으로 하는 인증서 발급 시스템.
  15. 제14항에 있어서,
    상기 제 2 서버는,
    z 번째 제 2-2 키를 이용하여, z 번째 제 3 키와 상기 램덤수 c를 암호화하고,
    z는,
    1 이상이고 N 이하인 자연수인 것을 특징으로 하는 인증서 발급 시스템.
  16. 인증서 발급 방법에 있어서,
    제 1 서버가, 사용자 단말기로부터 상기 사용자 단말기의 식별 정보, 랜덤수a와 타원곡선 방정식상의 기저점 G를 곱한 값 aG, 랜덤수 p와 상기 기저점 G를 곱한 값 pG, 제 1 대칭키, 제 2 대칭키, 제 1 인덱스 정보, 제 2 인덱스 정보 및 인증서의 개수 정보인 N값을 수신하는 단계;
    상기 제 1 서버가, 상기 제 1 대칭키, 상기 제 1 인덱스 정보, 상기 제 2 인덱스 정보 및 상기 인증서의 개수 정보인 N값을 입력으로 하는 제 1 확장함수; 및 상기 aG값;을 이용하여, N개의 제 2-1 키를 생성하는 단계; 및
    상기 제 1 서버가, 상기 제 2 대칭키, 상기 제 1 인덱스 정보, 상기 제 2 인덱스 정보 및 상기 인증서의 개수 정보인 N값을 입력으로 하는 제 2 확장함수; 및 상기 pG값;을 이용하여, N개의 제 2-2 키를 생성하는 단계;를 포함하는 것을 특징으로 하는 인증서 발급 방법.
  17. 제16항에 있어서,
    상기 제 1 확장함수는,
    상기 타원곡선 방정식의 차수 값으로 1번째 제 1 내부 함수값을 나눈 나머지값을 1 번째 제 1 확장함수값으로 산출하되,
    상기 1 번째 제 1 내부 함수값은,
    상기 제 1 대칭키 및 1 번째 제 1 정보값에 1 내지 3을 더한 값을 각각 제 1 암호화 함수에 의해 암호한 후, 1 번째 제 1 정보값에 1 내지 3을 더한 값과 각각 X-OR 연산하고, X-OR 연산의 결과를 연결하여 출력한 값이고,
    상기 1 번째 제 1 정보값은,
    상기 제 1 인덱스 정보 및 상기 제 2 인덱스 정보를 이용하여 산출된 값인 것을 특징으로 하는 인증서 발급 방법.
  18. 제17항에 있어서,
    상기 제 1 확장함수는,
    상기 타원곡선 방정식의 차수 값으로 w 번째 제 1 내부 함수값을 나눈 나머지값을 w 번째 제 1 확장함수값으로 산출하되,
    상기 w 번째 제 1 내부함수값은,
    상기 제 1 대칭키 및 w-1 번째 제 1 정보값을 이용하여 산출된 w 번째 제 1 정보값에 1 내지 3을 더한 값을 각각 상기 제 1 암호화 함수에 의해 암호한 후, w 번째 제 1 정보값에 1 내지 3을 더한 값과 각각 X-OR 연산하고, X-OR 연산의 결과를 연결하여 출력한 값이고,
    상기 w는,
    2 이상이고 N 이하인 자연수인 것을 특징으로 하는 인증서 발급 방법.
  19. 제18항에 있어서,
    상기 제 1 암호화 함수에 의한 암호화는,
    (S100) S값을 이용하여, 해당 k번째 라운드키(Rk)를 산출하는 단계; 및
    (S200) 상기 S100 단계에서 산출된 해당 k번째 라운드키(Rk)와 T값을 이용하여 암호화된 출력을 생성하는 단계;를 포함하되,
    상기 S값은,
    상기 제 1 대칭키값이고,
    상기 T값은,
    1번째 제 1 정보값 내지 N 번째 제 1 정보값 중 하나;와
    1 내지 3 중 하나;를 더한 값인 것을 특징으로 하는 인증서 발급 방법.
  20. 제19항에 있어서,
    상기 S100 단계는,
    (S110) S를 32비트의 워드 단위인 Sb0, Sb0+1, Sb0+2 및 Sb0+3로 분리하고, Sb0, Sb0+1, Sb0+2 및 Sb0+3 각각과 미리 설정된 값 Fb0, Fb0+1, Fb0+2 및 Fb0+3를 각각 연산하여, 초기 4개의 키 Ub0, Ub0+1, Ub0+2 및 Ub0+3를 출력하는 단계;
    (S120) Uk+1, Uk+2 및 Uk+3과 상수 Vk를 연속적으로 X-OR 연산하는 단계;
    (S130) 상기 S120 단계의 결과를 비선형 함수에 의해 변환하는 단계;
    (S140) 상기 S130 단계의 결과를 선형 함수에 의해 변환하는 단계; 및
    (S150) Uk와 S140 단계의 결과를 X-OR 연산하여, Uk+4를 산출하는 단계;를 포함하되,
    k를 b0로부터 (b0+31)까지 1씩 증가시키면서, S120 단계 내지 S150 단계를 반복적으로 실시하고,
    상기 S150 단계의 Uk+4를 해당 k번째 라운드키(Rk)로서 산출하되,
    상기 b0는, 미리 설정된 정수인 것을 특징으로 하는 인증서 발급 방법.
  21. 제19항에 있어서,
    상기 S200 단계는,
    (S210) T를 32비트의 워드 단위인 Td0, Td0+1, Td0+2 및 Td0+3로 분리하는 단계;
    (S220) Tk+1, Tk+2 및 Tk+3과 k번째 라운드키(Rk)를 연속적으로 X-OR 연산하는 단계;
    (S230) 상기 S220 단계의 결과를 비선형 함수에 의해 변환하는 단계;
    (S240) 상기 S230 단계의 결과를 선형 함수에 의해 변환하는 단계; 및
    (S250) Tk와 상기 S240 단계의 결과를 X-OR 연산하여, Tk+4를 산출하는 단계;를 포함하고,
    k를 d0로부터 (d0+31)까지 1씩 증가시키면서, S220 단계 내지 S250 단계를 반복적으로 실시하고,
    최종적으로 (Td0+31+4, Td0+31+3, Td0+31+2, Td0+31+1)를 출력하되,
    상기 d0는, 미리 설정된 정수인 것을 특징으로 하는 인증서 발급 방법.
  22. 제18항에 있어서,
    N개의 제 2-1 키 각각은,
    1 번째 제 1 확장함수값 내지 N 번째 제 1 확장함수값 각각에, 상기 기저점 G 곱한 값;과
    상기 aG값;을 더한 값인 것을 특징으로 하는 인증서 발급 방법.
  23. 제18항에 있어서,
    N개의 제 2-2 키 각각은,
    11 번째 제 2 확장함수값 내지 N 번째 제 2 확장함수값 각각에, 상기 기저점 G를 곱한 값;과
    상기 pG값;을 더한 값인 것을 특징으로 하는 인증서 발급 방법.
  24. 제16항에 있어서,
    상기 인증서 발급 방법은,
    상기 제 1 서버가, 상기 N개의 제 2-1 키 및 상기 N개의 제 2-2 키를 제 2 서버로 전송하는 단계;를 더 포함하는 것을 특징으로 하는 인증서 발급 방법.
  25. 제24항에 있어서,
    상기 인증서 발급 방법은,
    상기 제 1 서버가, 암호화된 N개의 인증서 및 랜덤수 c값을 상기 제 2 서버로부터 수신하는 단계;를 더 포함하되,
    상기 N개의 인증서 각각은,
    상기 사용자 단말기에서 사용할 하나의 최종적인 공개키를 포함하고 있는 것을 특징으로 하는 인증서 발급 방법.
  26. 제25항에 있어서,
    상기 인증서 발급 방법은,
    상기 제 1 서버가, 암호화된 N개의 인증서 및 랜덤수 c값을 상기 사용자 단말기로 전송하는 단계;를 더 포함하는 것을 특징으로 하는 인증서 발급 방법.
  27. 제26항에 있어서,
    상기 인증서 발급 방법은,
    상기 사용자 단말기가, 상기 랜덤수 p와 상기 제 2 확장함수를 이용하여, N개의 역암호화 함수값을 산출하는 단계; 및
    상기 사용자 단말기가, 상기 N개의 역암호화 함수값을 이용하여, 상기 N개의 암호화된 인증서 및 상기 랜덤수 c값을 역암호화하는 것에 의해, N개의 최종 공개키 및 랜덤수 c값을 산출하는 단계;를 더 포함하는 것을 특징으로 하는 인증서 발급 방법.
  28. 제27항에 있어서,
    상기 인증서 발급 방법은,
    상기 사용자 단말기가,상기 랜덤수 a, 상기 제 1 확장함수 및 상기 랜덤수 c를 이용하여, N개의 최종 개인키를 산출하는 단계;를 더 포함하는 것을 특징으로 하는 인증서 발급 방법.
  29. 제24항에 있어서,
    상기 인증서 발급 방법은,
    상기 제 2 서버가, 상기 기저점 G에 랜덤수 c를 곱한 값에, 상기 N개의 제 2-1 키를 각각 더하여, N개의 제 3 키를 산출하는 단계;를 더 포함하되,
    상기 N개의 제 3 키가 상기 사용자 단말기에서 사용할 N개의 최종적인 공개키인 것을 특징으로 하는 인증서 발급 방법.
  30. 제29항에 있어서,
    상기 인증서 발급 방법은,
    상기 제 2 서버가, z 번째 제 2-2 키를 이용하여, z 번째 제 3 키와 상기 램덤수 c를 암호화하는 단계;를 더 포함하되,
    z는,
    1 이상이고 N 이하인 자연수인 것을 특징으로 하는 인증서 발급 방법.
KR1020190104190A 2019-08-26 2019-08-26 확장함수를 이용한 복수의 인증서 발급 시스템 및 그 발급 방법 KR102435056B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190104190A KR102435056B1 (ko) 2019-08-26 2019-08-26 확장함수를 이용한 복수의 인증서 발급 시스템 및 그 발급 방법
PCT/KR2020/010940 WO2021040303A1 (ko) 2019-08-26 2020-08-18 확장함수를 이용한 복수의 인증서 발급 시스템 및 그 발급 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190104190A KR102435056B1 (ko) 2019-08-26 2019-08-26 확장함수를 이용한 복수의 인증서 발급 시스템 및 그 발급 방법

Publications (2)

Publication Number Publication Date
KR20210024720A KR20210024720A (ko) 2021-03-08
KR102435056B1 true KR102435056B1 (ko) 2022-08-22

Family

ID=74685502

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190104190A KR102435056B1 (ko) 2019-08-26 2019-08-26 확장함수를 이용한 복수의 인증서 발급 시스템 및 그 발급 방법

Country Status (2)

Country Link
KR (1) KR102435056B1 (ko)
WO (1) WO2021040303A1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130073850A1 (en) 2011-09-16 2013-03-21 Certicom Corp. Hybrid encryption schemes
US20130159702A1 (en) 2011-12-15 2013-06-20 Eric Thierry Peeters Combined digital certificate
US20190190711A1 (en) 2005-01-21 2019-06-20 Certicom Corp. Elliptic Curve Random Number Generation

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2017222421B2 (en) * 2016-02-23 2022-09-01 nChain Holdings Limited Personal device security using elliptic curve cryptography for secret sharing
KR101922965B1 (ko) * 2016-11-11 2018-11-28 한밭대학교 산학협력단 키 확장 방식을 적용한 묵시적 인증서 발급 방법 및 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190190711A1 (en) 2005-01-21 2019-06-20 Certicom Corp. Elliptic Curve Random Number Generation
US20130073850A1 (en) 2011-09-16 2013-03-21 Certicom Corp. Hybrid encryption schemes
US20130159702A1 (en) 2011-12-15 2013-06-20 Eric Thierry Peeters Combined digital certificate

Also Published As

Publication number Publication date
KR20210024720A (ko) 2021-03-08
WO2021040303A1 (ko) 2021-03-04

Similar Documents

Publication Publication Date Title
US10728038B2 (en) Multiple secrets in quorum based data processing
US8300811B2 (en) Method and device for processing data
CN107078899B (zh) 混淆数据的方法
CN115549887A (zh) 用于信息的安全交换的公共秘密的确定和层级确定性密钥
US9037846B2 (en) Encoded database management system, client and server, natural joining method and program
CN108632031B (zh) 密钥生成装置及方法、加密装置及方法
CN108696518B (zh) 区块链上用户通信加密方法、装置、终端设备及存储介质
JP2015184594A (ja) 暗号文処理装置、暗号文処理方法、暗号文処理プログラムおよび情報処理装置
JP2022525137A (ja) データに基づく行為を実施するための方法および装置
CN111092730B (zh) 随机数生成器、加密装置以及操作加密装置的方法
CN111555880A (zh) 数据碰撞方法、装置、存储介质及电子设备
JP6041864B2 (ja) データの暗号化のための方法、コンピュータ・プログラム、および装置
CN111105235A (zh) 基于区块链的供应链交易隐私保护系统、方法及相关设备
KR101922965B1 (ko) 키 확장 방식을 적용한 묵시적 인증서 발급 방법 및 시스템
EP4208982B1 (en) Method for electronic signing and authenticaton strongly linked to the authenticator factors possession and knowledge
CN114448640A (zh) 一种双盲信息分发方法、装置及计算机可读存储介质
CN114268447B (zh) 一种文件传输方法、装置、电子设备和计算机可读介质
KR102449817B1 (ko) 확장함수를 이용한 복수의 묵시적 인증서 발급 시스템 및 그 발급 방법
KR102435056B1 (ko) 확장함수를 이용한 복수의 인증서 발급 시스템 및 그 발급 방법
GB2551787A (en) Generating a plurality of one time tokens
RU2417410C2 (ru) Способ хранения и использования криптографического ключа
CN111953480B (zh) 密钥生成装置以及方法、运算密钥生成装置以及方法
CN113364577A (zh) 一种oprf协议的实现方法、装置及电子设备
CN112615715A (zh) 一次性密码本加密方法和装置、设备及存储介质
US11552794B2 (en) Deterministic random blinding

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant