[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR20230127905A - 은닉 서명 생성 장치 및 방법 - Google Patents

은닉 서명 생성 장치 및 방법 Download PDF

Info

Publication number
KR20230127905A
KR20230127905A KR1020230022296A KR20230022296A KR20230127905A KR 20230127905 A KR20230127905 A KR 20230127905A KR 1020230022296 A KR1020230022296 A KR 1020230022296A KR 20230022296 A KR20230022296 A KR 20230022296A KR 20230127905 A KR20230127905 A KR 20230127905A
Authority
KR
South Korea
Prior art keywords
signature
information
electronic
message
value
Prior art date
Application number
KR1020230022296A
Other languages
English (en)
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 US18/173,309 priority Critical patent/US20230291573A1/en
Publication of KR20230127905A publication Critical patent/KR20230127905A/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/3247Cryptographic 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 digital signatures
    • H04L9/3257Cryptographic 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 digital signatures using blind signatures
    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • 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/08Randomization, e.g. dummy operations or using noise

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

전자 장치가 개시된다. 본 전자 장치는 외부장치와 통신하는 통신 장치, 메시지를 저장하는 메모리, 및 메시지에 대한 전자 서명을 생성하는 프로세서;를 포함하고, 프로세서는, 동형 암호 공개키를 이용하여 제1 서명 정보 및 메시지 각각을 암호화하여 제1 서명 암호문 및 메시지 암호문을 생성하고, 제2 서명 정보 및 제2 서명 정보에 대응되는 원소 값, 제1 서명 암호문 및 메시지 암호문을 이용하여 생성된 암호화된 제3 서명 정보를 획득하고, 제1 서명 정보 및 제2 서명 정보를 이용하여 전자 서명을 구성하는 제1 전자 서명값을 산출하고, 암호화된 제3 서명 정보를 복호화하여 전자 서명을 구성하는 제2 전자 서명값을 산출하고, 산출된 제1 전자 서명값 및 제2 전자 서명값을 이용하여 전자 서명을 생성한다.

Description

은닉 서명 생성 장치 및 방법{APPARATUS FOR GENERATING BLIND SIGNATURE AND METHOD THEREOF}
본 개시는 은닉 서명 생성 장치 및 방법에 관한 것으로, 보다 구체적으로, 동형 암호 방식으로 암호화된 데이터에 대한 은닉 서명을 생성할 수 있는 은닉 서명 생성 장치 및 방법에 관한 것이다.
전자 및 통신 기술의 발달에 힘입어 다양한 장치들 간에 데이터를 송수신하여 활용하는 다양한 서비스가 지원되고 있다. 이러한 다양한 서비스 중 인터넷 뱅킹 등의 분야에서는 메시지 송수신 과정에서 해당 메시지가 위변조되지 않았음을 확인할 수 있는 과정이 필요하며, 이러한 과정을 전자 서명이라고 지칭한다.
이러한, 전자 서명(Digital Signature)은 컴퓨터를 매개로 하여 전자적 형태의 자료로 서명자의 신원을 확인하고 자료 메시지의 내용에 대한 그 사람의 승인을 나타낼 목적으로 사용되며, 서명 키와 검증 키를 생성하는 동작, 보내고자 하는 메시지에 서명을 진행하는 서명 동작, 메시지와 서명의 진위를 확인하는 동작으로 구분할 수 있다.
그러나 전자 서명은 메시지 자체를 암호화하는 것은 아니어서, 제3자가 메시지를 확인하는 것이 가능하다. 즉, 전자 서명은 작성자로 기재된 자가 그 전자문서를 작성하였다는 사실과 작성 내용이 송/수신 과정에서 위조 변조되지 않았다는 사실만을 증명하기 때문이다.
이에 따라 최근에는 정보의 보안성이 요구되면서, 전자 서명에 익명성이 추가된 은닉 서명을 이용하는 방식이 요구되고 있다.
따라서 본 개시는 상술한 바와 같은 문제점을 해결하기 위한 고안된 것으로, 동형 암호 방식으로 암호화된 데이터에 대한 은닉 서명을 생성할 수 있는 은닉 서명 생성 장치 및 방법을 제공하는 데 있다.
이상과 같은 목적을 달성하기 위하여, 본 개시의 일 실시 예에 따른 전자 장치에서의 전자 서명 생성 방법은 동형 암호 공개키를 이용하여 제1 서명 정보 및 메시지 각각을 암호화하여 제1 서명 암호문 및 메시지 암호문을 생성하는 단계, 제2 서명 정보 및 상기 제2 서명 정보에 대응되는 원소 값, 상기 제1 서명 암호문 및 상기 메시지 암호문을 이용하여 생성된 암호화된 제3 서명 정보를 획득하는 단계, 상기 제1 서명 정보 및 상기 제2 서명 정보를 이용하여 전자 서명을 구성하는 제1 전자 서명 값을 산출하고, 상기 암호화된 제3 서명 정보를 복호화하여 상기 전자 서명을 구성하는 제2 전자 서명값을 산출하고, 상기 산출된 제1 전자 서명값 및 상기 제2 전자 서명값을 이용하여 전자 서명을 생성하는 단계를 포함한다.
이 경우, 상기 서명 정보를 획득하는 단계는, 상기 제1 서명 암호문 및 상기 메시지 암호문을 전자 서명을 위한 서명 키를 갖는 외부 장치에 전송하고, 상기 외부 장치로부터 상기 제2 서명 정보 및 상기 암호화된 제3 서명 정보를 수신할 수 있다.
이 경우, 본 전자 서명 생성 방법은 상기 제1 서명 정보에 대응되는 제1 서명 검증 정보 및 상기 메시지 암호문에 대한 메시지 검증 정보를 생성하는 단계를 더 포함하고, 상기 서명 정보를 획득하는 단계는, 상기 제1 서명 암호문, 상기 메시지 암호문, 상기 제1 서명 검증 정보 및 상기 메시지 검증 정보를 상기 외부 장치에 전송할 수 있다.
한편, 본 전자 서명 생성 방법은 랜덤값을 추출하고, 추출된 랜덤값을 상기 동형 암호 공개키에 대응되는 동형 암호 비밀키로 암호화하여 비밀키 암호문을 생성하는 단계, 및 상기 비밀키 암호문에 대응되는 비밀키 검증 정보를 생성하는 단계를 더 포함하고, 상기 서명 정보를 획득하는 단계는, 상기 비밀키 암호문 및 상기 비밀키 검증 정보도 추가로 전송할 수 있다.
이 경우, 상기 서명 키는 서명 정보, 서명 랜덤값 및 상기 서명 랜덤값을 해시 처리한 해시 값을 포함하고, 상기 비밀키 암호문은 상기 추출된 랜덤값을 상기 해시 값 및 상기 동형 암호 비밀키로 암호화될 수 있다.
이 경우, 상기 서명 키는, 집합(
Figure pat00001
)에서 임의로 추출된 원소 값(sch.sk)이고, 상기 검증 키는, 상기 추출된 원소(sch.sk)를 기초로 군 G(
Figure pat00002
)의 원소 값과 상기 서명 랜덤값, 상기 해시 값을 포함할 수 있다.
한편, 상기 제1 서명 정보는, 상기 전자 장치에서 집합(
Figure pat00003
)에서 임의로 추출된 원소 값(ku)을 이용하여 산출된 정보(gku)이고, 상기 제2 서명 정보는, 외부 장치에서 상기 집합(
Figure pat00004
)에서 임의로 추출된 원소 값(ks)을 이용하여 산출된 정보(gks)이고, 상기 전자 서명을 생성하는 단계는, 상기 제1 서명 정보(gku) 및 상기 제2 서명 정보(gks)를 곱하여 제1 전자 서명값을 산출하고, 상기 암호화된 제3 서명 정보를 상기 동형 암호 공개키에 대응되는 동형 암호 비밀키로 복호화하여 상기 제2 전자 서명값을 산출할 수 있다.
이 경우, 상기 전자 서명을 생성하는 단계는, 상기 복호화된 제3 서명 정보(s)와 상기 추출된 원소 값(ku)을 합산하여 상기 제2 전자 서명값(ku+s)을 산출할 수 있다.
한편, 본 전자 서명 생성 방법은 집합(
Figure pat00005
)에서 임의로 원소 값(ku)을 추출하고, 상기 원소 값을 분해한 제1 원소 값(xu), 제2 원소 값(yu)을 생성하고, 상기 제1 원소 값에 대한 제1 암호문, 사익 제2 원소 값에 대한 제2 암호문을 생성하는 단계를 더 포함할 수 있다.
한편, 본 개시의 일 실시 예에 따른 전자 장치는 외부장치와 통신하는 통신 장치, 메시지를 저장하는 메모리, 및 상기 메시지에 대한 전자 서명을 생성하는 프로세서를 포함하고, 상기 프로세서는, 동형 암호 공개키를 이용하여 제1 서명 정보 및 메시지 각각을 암호화하여 제1 서명 암호문 및 메시지 암호문을 생성하고, 제2 서명 정보 및 상기 제2 서명 정보에 대응되는 원소 값, 상기 제1 서명 암호문 및 상기 메시지 암호문을 이용하여 생성된 암호화된 제3 서명 정보를 획득하고, 상기 제1 서명 정보 및 상기 제2 서명 정보를 이용하여 전자 서명을 구성하는 제1 전자 서명값을 산출하고, 상기 암호화된 제3 서명 정보를 복호화하여 상기 전자 서명을 구성하는 제2 전자 서명값을 산출하고, 상기 산출된 제1 전자 서명값 및 상기 제2 전자 서명값을 이용하여 전자 서명을 생성한다.
이 경우, 상기 프로세서는, 상기 제1 서명 암호문 및 상기 메시지 암호문을 전자 서명을 위한 서명 키를 갖는 외부 장치에 전송하도록 상기 통신 장치를 제어하고, 상기 통신 장치는, 상기 외부 장치로부터 상기 제2 서명 정보 및 상기 암호화된 제3 서명 정보를 수신할 수 있다.
이 경우, 상기 프로세서는, 상기 제1 서명 정보에 대응되는 제1 서명 검증 정보 및 상기 메시지 암호문에 대한 메시지 검증 정보를 생성하고, 상기 제1 서명 암호문, 상기 메시지 암호문, 상기 제1 서명 검증 정보 및 상기 메시지 검증 정보를 상기 외부 장치에 전송하도록 상기 통신 장치를 제어할 수 있다.
한편, 상기 프로세서는, 랜덤값을 추출하고, 추출된 랜덤값을 상기 동형 암호 공개키에 대응되는 동형 암호 비밀키로 암호화하여 비밀키 암호문을 생성하고, 상기 비밀키 암호문에 대응되는 비밀키 검증 정보를 생성할 수 있다.
한편, 상기 프로세서는, 상기 비밀키 암호문 및 상기 비밀키 검증 정보도 추가로 전송하도록 상기 통신 장치를 제어할 수 있다.
이 경우, 상기 서명 키는 서명 정보, 서명 랜덤값 및 상기 서명 랜덤값을 해시 처리한 해시 값을 포함하고, 상기 비밀키 암호문은 상기 추출된 랜덤값을 상기 해시 값 및 상기 동형 암호 비밀키로 암호화될 수 있다.
한편, 본 개시의 일 실시 예에 따른 전자 서명 생성 방법을 실행하기 위한 프로그램이 저장된 비일시적 컴퓨터 판독가능 기록매체에 있어서, 상기 전자 서명 생성 방법은, 동형 암호 공개키를 이용하여 제1 서명 정보 및 메시지 각각을 암호화하여 제1 서명 암호문 및 메시지 암호문을 생성하는 단계, 제2 서명 정보 및 상기 제2 서명 정보에 대응되는 원소 값, 상기 제1 서명 암호문 및 상기 메시지 암호문을 이용하여 생성된 암호화된 제3 서명 정보를 획득하는 단계, 및 상기 제1 서명 정보 및 상기 제2 서명 정보를 이용하여 전자 서명을 구성하는 제1 전자 서명값을 산출하고, 상기 암호화된 제3 서명 정보를 복호화하여 상기 전자 서명을 구성하는 제2 전자 서명값을 산출하고, 상기 산출된 제1 전자 서명값 및 상기 제2 전자 서명값을 이용하여 전자 서명을 생성하는 단계를 포함한다.
이상과 같은 본 개시의 다양한 실시 예들에 따르면, 서명의 생성시에 메시지가 동형 암호화된 상태로 진행되는바, 메시지의 은닉성이 있다.
도 1은 본 개시의 일 실시 예에 따른 네트워크 시스템의 구조를 설명하기 위한 도면,
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 간단한 구성을 도시한 블록도,
도 3은 본 개시의 일 실시 예에 따른 전자 장치의 구체적인 구성을 도시한 블록도,
도 4는 본 개시에 따른 전자 서명 생성 동작을 설명하기 위한 도면,
도 5는 본 개시의 제1 실시 예에 따른 은닉 서명 방법을 설명하기 위한 도면,
도 6은 본 개시의 제2 실시 예에 따른 은닉 서명 방법을 설명하기 위한 도면,
도 7은 본 개시의 제3 실시 예에 따른 은닉 서명 방법을 설명하기 위한 도면,
도 8은 본 개시의 제1 실시 예에 따른 전자 서명 생성 방법을 설명하기 위한 도면,
도 9는 본 개시의 제2 실시 예에 따른 전자 서명 생성 방법을 설명하기 위한 도면, 그리고,
도 10은 본 개시의 전자 서명 검증 방법을 설명하기 위한 도면이다.
이하에서는 첨부 도면을 참조하여 본 개시에 대해서 자세하게 설명한다. 본 명세서에서 수행되는 정보(데이터) 전송 과정은 필요에 따라서 암호화/복호화가 적용될 수 있으며, 본 명세서 및 특허청구범위에서 정보(데이터) 전송 과정을 설명하는 표현은 별도로 언급되지 않더라도 모두 암호화/복호화하는 경우도 포함하는 것으로 해석되어야 한다. 본 명세서에서 "A로부터 B로 전송(전달)" 또는 "A가 B로부터 수신"과 같은 형태의 표현은 중간에 다른 매개체가 포함되어 전송(전달) 또는 수신되는 것도 포함하며, 반드시 A로부터 B까지 직접 전송(전달) 또는 수신되는 것만을 표현하는 것은 아니다.
본 개시의 설명에 있어서 각 단계의 순서는 선행 단계가 논리적 및 시간적으로 반드시 후행 단계에 앞서서 수행되어야 하는 경우가 아니라면 각 단계의 순서는 비제한적으로 이해되어야 한다. 즉, 위와 같은 예외적인 경우를 제외하고는 후행 단계로 설명된 과정이 선행단계로 설명된 과정보다 앞서서 수행되더라도 개시의 본질에는 영향이 없으며 권리범위 역시 단계의 순서에 관계없이 정의되어야 한다. 그리고 본 명세서에서 "A 또는 B"라고 기재한 것은 A와 B 중 어느 하나를 선택적으로 가리키는 것뿐만 아니라 A와 B 모두를 포함하는 것도 의미하는 것으로 정의된다. 또한, 본 명세서에서 "포함"이라는 용어는 포함하는 것으로 나열된 요소 이외에 추가로 다른 구성요소를 더 포함하는 것도 포괄하는 의미를 가진다.
본 명세서에서는 본 개시의 설명에 필요한 필수적인 구성요소만을 설명하며, 본 개시의 본질과 관계가 없는 구성요소는 언급하지 아니한다. 그리고 언급되는 구성요소만을 포함하는 배타적인 의미로 해석되어서는 안 되며 다른 구성요소도 포함할 수 있는 비배타적인 의미로 해석되어야 한다.
후술하는 본 개시의 각 단계의 수학적 연산 및 산출은 해당 연산 또는 산출을 하기 위해 공지되어 있는 코딩 방법 및/또는 본 개시에 적합하게 고안된 코딩에 의해서 컴퓨터 연산으로 구현될 수 있다.
이하에서 설명하는 구체적인 수학식은 가능한 여러 대안 중에서 예시적으로 설명되는 것이며, 본 개시의 권리 범위가 본 명세서에 언급된 수학식에 제한되는 것으로 해석되어서는 아니된다.
이하에서는 첨부된 도면을 이용하여 본 개시의 다양한 실시 예들에 대하여 구체적으로 설명한다.
도 1은 본 개시의 일 실시 예에 따른 네트워크 시스템의 구조를 설명하기 위한 도면이다.
도 1을 참조하면, 네트워크 시스템은 네트워크, 복수의 전자 장치(100-1, 100-2), 서버 장치(200)로 구성될 수 있다.
전자 장치(100-1 ~ 100-2)는 스마트폰, 태블릿, 게임 플레이어, PC, 랩톱 PC, 홈서버, 키오스크 등과 같은 다양한 형태의 장치로 구현될 수 있으며, 이밖에 IoT 기능이 적용된 가전 제품 형태로도 구현될 수 있다.
제1 전자 장치(100-1)는 전자 서명에 필요한 각종 키를 생성할 수 있다. 구체적으로, 제1 전자 장치(100-1)는 키 생성 알고리즘을 수행할 수 있으며, 전자 서명 과정에서 필요한 서명 키와 검증에 필요한 검증 키를 생성할 수 있다. 여기서 키 생성 알고리즘은 쉬르노(Schnorr) 서명과 같이 서명 키 및 검증 키를 생성하는 알고리즘일 수 있다.
한편, 제1 전자 장치(100-1)에서 생성된 검증 키는 네트워크를 통하여 서버 장치(200) 등에 제공될 수 있다. 여기서 서명 키는 메시지에 대한 서명을 수행할 때 이용되는 키로, 비밀 키로 지칭될 수도 있다. 그리고 검증 키는 생성된 서명에 대한 검증을 수행할 때 이용되는 키고, 공개 키로 지칭될 수도 있다.
그리고 제1 전자 장치(100-1)는 메시지에 대한 동형 암호화에 필요한 비밀키(또는 동형 암호 비밀키), 공개키(동형암호 공개키)를 생성할 수 있다. 그리고 제2 전자 장치(100-2)는 생성된 공개키를 이용하여 메시지를 암호화할 수 있다. 한편, 구현시에는 제2 전자 장치(100-2)에서 동형 암호 비밀키 및 동형 암호 공개키를 생성하여 이용할 수 있다.
그리고 제1 전자 장치(100-1)는 메시지에 대한 전자 서명을 생성할 수 있다. 한편, 제1 전자 장치(100-1)는 자체적으로 저장하고 있는 메시지에 대한 전자 서명을 생성하는 것도 가능하며, 다른 장치에 저장된 메시지에 대한 전자 서명을 생성하는 것도 가능하다.
이하에서는 설명을 용이하게 하기 위하여, 제1 전자 장치(100-1)가 메시지를 저장하고 있고, 제2 전자 장치(100-2)가 서명 동작(구체적으로, 서명 동작의 일부 과정을 수행하고, 최종 전자 서명의 생성은 제1 전자 장치(100-1)가 수행)을 수행하는 것으로 가정하여 설명한다. 즉, 제2 전자 장치(100-2)가 메시지의 내용을 모르는 상태에서 서명 동작을 수행하는 방식을 설명한다. 한편, 구현시에는 제2 전자 장치(100-2)가 메시지를 저장하고, 제1 전자 장치(100-1)의 연계 동작에 의하여 최종적으로 제2 전자 장치(100-2)가 메시지에 대한 전자 서명을 생성하는 방식으로도 구현될 수 있다.
구체적으로, 제1 전자 장치(100-1)는 메시지를 암호화하고, 암호화된 메시지와 메시지의 서명에 필요한 각종 정보를 제2 전자 장치(100-2)에 제공할 수 있다.
암호화된 메시지를 제공받은 제2 전자 장치(100-2)는 암호화된 메시지를 이용하여 암호화된 전자 서명을 생성할 수 있다. 그리고 제2 전자 장치(100-2)는 암호화된 메시지를 제1 전자 장치(100-1)에 제공할 수 있다.
제1 전자 장치(100-1)는 암호화된 전자 서명을 수신하면, 수신된 암호화된 전자 서명을 비밀키(구체적으로, 동형 암호 비밀키)를 이용하여 복호화하여 메시지에 대한 전자 서명을 생성할 수 있다.
그리고 제1 전자 장치(100-1)는 메시지 및 해당 메시지에 대한 전자 서명을 서버 장치(200)에 전송할 수 있다.
제1 전자 장치(100-1)와 제2 전자 장치(100-2)는 네트워크를 통하여 연결될 수 있다. 여기서, 네트워크는 다양한 형태의 유무선 통신 네트워크, 방송 통신 네트워크, 광통신 네트워크, 클라우드 네트워크 등으로 구현될 수 있으며, 각 장치들은 별도의 매개체 없이 와이파이, 블루투스, NFC(Near Field Communication) 등과 같은 방식으로 연결될 수도 있다.
서버 장치(200)는 제2 전자 장치(100-2)에서 생성된 전자 서명을 수신하며, 수신된 전자 서명에 대해 검증 동작을 수행할 수 있다. 구체적으로, 서버 장치(200)는 제1 전자 장치(100-1)에서 생성된 검증 키를 이용하여, 전자 서명 메시지와 서명의 진위 여부를 검증할 수 있다.
도 1에서는 전자 장치가 복수 개(100-1 ~ 100-2)인 것으로 도시하였으나, 반드시 복수 개의 전자 장치가 사용되어야 하는 것은 아니며 하나의 장치가 사용될 수도 있다. 예를 들어, 하나의 전자 장치가 비밀 키 및 검증 키를 생성하는 동작 및 메시지에 대한 서명을 생성하는 동작을 수행할 수 있다.
상술한 예에서는 제1 전자 장치(100-1)가 비밀 키 및 검증 키를 생성하는 것으로 설명하였지만, 구현시에는 제1 전자 장치(100-1) 이외의 전자 장치(100-2) 또는 서버 장치(200)가 비밀 키 및 검증 키 중 적어도 하나를 생성한 후, 타 전자 장치와 공유하는 것도 가능하다.
이상과 같이 본 실시 예에 따른 네트워크 시스템은 전자 서명 진행 과정에서 메시지를 동형 암호화하여 진행하는바, 외부 장치에 메시지의 내용이 공개되는 것을 방지할 수 있다.
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 간단한 구성을 도시한 블록도이다.
도 2를 참조하면, 전자 장치(100)는 통신 장치(110), 메모리(120) 및 프로세서(130)로 구성될 수 있다. 도 2의 전자 장치(100)는 도 1의 제1 전자 장치(100-1)로서 동작할 수도 있으며, 도 1의 제2 전자 장치(100-2)로도 동작할 수 있다. 또한, 도 2의 전자 장치(100)는 도 1의 서버 장치(200)의 동작, 즉, 검증 동작을 수행할 수도 있다. 이하에서는 전자 장치(100)가 제1 및 제2 전자 장치의 동작 모두를 수행할 수 있는 것으로 가정하여 설명하나, 구현시에 전자 장치(100)는 어느 하나의 동작만을 수행할 수도 있다.
통신 장치(110)는 전자 장치(100)를 외부 장치(미도시)와 연결하기 위해 형성되고, 근거리 통신망(LAN: Local Area Network) 및 인터넷망을 통해 외부 장치에 접속되는 형태뿐만 아니라, USB(Universal Serial Bus) 포트 또는 무선 통신(예를 들어, WiFi 802.11a/b/g/n, NFC, Bluetooth) 포트를 통하여 접속되는 형태도 가능하다. 이러한 통신 장치(110)는 송수신부(transceiver)로 지칭될 수도 있다.
통신 장치(110)는 서명 키를 외부 장치로부터 수신할 수 있으며, 전자 장치(100)에서 생성한 서명 키 또는 검증 키를 외부 장치로 전송할 수 있다. 여기서 서명 키(x)는 서명을 수행하는데 사용되는 키고, 검증 키(y)는 서명을 검증하는데 사용되는 키다. 여기서, 서명 키(BS.sk)는 집합
Figure pat00006
에서 추출된 임의의 원소이고, 검증 키BS.vk)는 군 G의 원소이다. 즉, 검증 키는 소수 위수(prime order)를 가지는 군(group)(또는 집합)의 원소이다. 그리고 검증키는 상술한 군G의 원소만을 포함하는 것이 아니라, 랜덤값 및 해당 랜덤값을 해시 처리한 값을 포함할 수 있다.
그리고 통신 장치(110)는 서명 과정에서 필요한 각종 정보를 외부 장치로부터 수신하거나, 전자 장치(100)에서 생성한 각종 정보를 외부 장치로 전송할 수 있다. 예를 들어, 상술한 각종 정보는 메시지 암호문, 공개키 암호문, 비밀키 암호문, 비밀키 검증 정보, 공개키 검증 정보, 메시지 검증 정도 등을 포함할 수 있으며, 후술하는 방식에 따라 추가적인 정보가 더 이용될 수 있다.
여기서, 동형 암호 비밀 키는 동형 암호화에 사용되는 비밀 키로, 원소들 사이에 덧셈과 곱셈이 정의되어 있으며 덧셈과 곱셈에 대해서 닫혀 있는 집합인 링으로부터 산출된 값이다. 이와 같이 본 개시에 메시지를 동형 암호화 방식으로 암호화하여 외부 장치에 전송하는바, 외부 장치에서 다양한 덧셈 및 곱셈과 같은 산술 연산이 수행되더라도, 직접 메시지에 동일한 연산을 수행하는 것과 동일한 결과를 얻을 수 있다. 한편, 본 개시에서는 다양한 크기의 유한체를 이용하는 것이 가능하다. 다양한 크기의 유한체를 이용하는 실시 예에 대해서는 도 7에서 후술한다.
그리고 통신 장치(110)는 암호화된 서명 정보를 송신하거나, 수신할 수 있다. 또한, 통신 장치(110)는 최종적으로 생성한 서명 정보를 외부 장치와 송수신할 수 있다.
그리고 통신 장치(110)는 외부 장치로부터 메시지를 수신할 수 있으며, 메시지 등을 외부 장치에 전송할 수도 있다.
또한, 통신 장치(110)는 암호문 생성에 필요한 각종 파라미터를 외부 장치로부터 수신할 수 있다. 한편, 구현시에 각종 파라미터는 후술하는 조작 입력 장치(150)를 통하여 사용자로부터 직접 입력받을 수 있다. 예를 들어, 상술한 파라미터는 보안 파라미터(λ), 댑스 바운더리(d) 등일 수 있다. 여기서 보안 파라미터는 서명을 위한 비밀키 및 검증 키의 생성에 이용될 수 있다. 여기서 댑스 바운더리는 동형 암호 공개키 및 동형 암호 비밀키 생성에 이용될 수 있다.
메모리(120)는 전자 장치(100)를 구동하기 위한 O/S나 각종 소프트웨어, 데이터 등을 저장하기 위한 구성요소이다. 메모리(120)는 RAM이나 ROM, 플래시 메모리, HDD, 외장 메모리, 메모리 카드 등과 같은 다양한 형태로 구현될 수 있으며, 어느 하나로 한정되는 것은 아니다.
메모리(120)는 메시지를 저장한다. 여기서 메시지는 사용자가 각종 인용한 각종 신용 정보, 개인 정보 등일 수 있으며, 전자 장치(100)에서 사용되는 위치 정보, 인터넷 사용 시간 정보 등 사용 이력 등과 관련된 정보일 수도 있다.
그리고 메모리(120)는 검증 키를 저장할 수 있으며, 전자 장치(100)가 직접 검증 키를 생성한 경우, 서명 키뿐만 아니라, 검증 키 및 서명 키 생성에 필요한 각종 파라미터를 저장할 수 있다.
또한, 메모리(120)는 연산 과정에서 생성된 값들을 임시 저장할 수 있으며, 최종 생성된 서명을 저장할 수 있다.
프로세서(130)는 전자 장치(100) 내의 각 구성을 제어한다. 이러한 프로세서(130)는 CPU와 같은 단일 장치로 구성될 수 있으며, 클록 발생 회로, CPU, 그래픽 프로세서 등의 복수의 장치로 구성될 수도 있다.
한편, 전자 서명은 키 생성 동작, 전자 서명 생성 동작 및 판정 동작으로 구분될 수 있으며, 우선적으로 키 생성 동작과 관련된 내용을 먼저 설명한다.
프로세서(130)는 메모리(120)에 저장된 프로그램을 실행시켜 전자 서명에 필요한 서명 키(BS.sk) 및 검증 키(BS.vk)를 생성할 수 있다. 구체적으로, 프로세서(130)는 집합
Figure pat00007
에서 임의의 원소(서명 키)를 추출할 수 있다. 그리고 프로세서(130)는 추출된 원소를 기초로 군 G의 원소(
Figure pat00008
)인 검증 키를 생성할 수 있다. 이때, 프로세서(130)는 상술한 군 G의 원소만으로 검증 키를 생성하는 것뿐만 아니라, 임의의 랜덤값(α)과 해당 랜덤값에 대한 해시 처리 값(ppk = H'(α)) 도 포함하는 검증 키를 생성할 수 있다.
한편, 상술한 서명 키 및 검증 키의 생성은 쉬노르 서명 방식(schnorr signature scheme)의 키 생성 방식을 이용할 수 있으며, 디비전 프리 쉬노르 방식(division-free Schnorr)의 키 생성 방식이 이용될 수도 있다.
이하에서는 전자 서명 생성 동작을 설명한다. 먼저, 전자 장치(100)가 메시지를 저장하는 경우의 동작을 먼저 설명한다. 한편, 본 개시에서는 메시지를 소유하는 장치와 서명을 수행하는 장치를 구분하여 설명하나, 구현시에는 하나의 장치에서 메시지 소유 및 서명 생성을 수행할 수도 있다.
프로세서(130)는 서명 프로토콜의 개시를 요청받으면, 우선 검증 키에 대한 검증을 수행할 수 있다. 구체적으로, 프로세서(130)는 검증 키에 포함된 랜덤값을 해시 처리하고, 해당 해시 처리한 값과 검증 키에 포함된 해시 처리 값과 동일한지를 판단할 수 있다.
그리고 프로세서(130)는 동형 암호 비밀키와 동형 암호 공개키를 생성할 수 있다. 한편, 여기서 이용되는 동형 암호 비밀키와 동형 암호 공개키는 미리 생성되어 있을 수 있으며, 다른 장치에서 생성하여 전자 장치(100)에 제공된 것일 수 있다.
그리고 프로세서(130)는 동형 암호 비밀키가 마련되면, 동형 암호 비밀키에 대한 동형 암호화를 수행할 수 있다. 구체적으로, 프로세서(130)는 랜덤값을 생성하고, 생성된 랜덤값을 동형 암호 비밀키로 동형 암호화할 수 있다. 이때, 프로세서(130)는 동형 암호 비밀키와 함께 검증 키에 포함된 해시 처리 값을 함께 비밀키로써 상술한 랜덤값을 암호화하여 암호화된 비밀키를 생성할 수 있다. 한편, 본 개시에서는 상술한 처리를 암호화 처리로 설명하나. 인코딩 동작이라고 지칭될 수도 있다.
그리고 프로세서(130)는 생성된 암호화된 비밀키에 대한 검증 정보를 생성할 수 있다. 구체적으로, 프로세서(130)는 영 지식 증명 방식을 이용한 검증에 사용될 검증 정보를 생성할 수 있다. 영 지식 증명 방식을 이용한 구체적인 동작은 후술한다.
그리고 프로세서(130)는 쉬노르 서명 방식의 서명값 생성에 필요한 각종 정보(예를 들어, ku, ru)를 생성할 수 있다. 여기서 제1 서명 정보(ru)는 ku를 기초로 군 G의 원소 값(gku)이며, ku는 집합(
Figure pat00009
)에서 임의로 추출된 원소 값일 수 있다.
그리고 프로세서(130)는 제1 서명 정보(ru) 및 메시지 각각을 동형 암호 공개키를 이용하여 제1 서명 정보 암호문, 메시지 암호문을 생성할 수 있다.
또한, 프로세서(130)는 상술한 제1 서명 정보 암호문 및 메시지 암호문 각각에 대한 검증 정보를 검증 정보를 생성할 수 있다. 구체적으로, 상술한 검증 정보는 앞서 설명한 바와 같은 영 지식 증명 방식을 이용하는 정보일 수 있다.
그리고 프로세서(130)는 앞서 생성한 정보를 서명을 수행하는 장치에 전송하도록 통신 장치(110)를 제어할 수 있다. 구체적으로, 프로세서(130)는 동형 암호 공개키, 제1 서명 정보 암호문, 메시지 암호문을 전송하도록 통신 장치(110)를 제어할 수 있다. 또한, 프로세서(130)는 서명 과정에서 검증 동작을 수행하는 경우, 상술한 정보와 함께 각 암호문에 대한 검증 정보를 함께 전송할 수 있으며, 비밀키 암호문 및 이에 대한 검증 정보도 전송하도록 통신 장치(110)를 제어할 수 있다. 즉, 프로세서(130)는 후술하는 서명 알고리즘에 대응되는 방식에 맞게 필요한 정보가 전송하도록 통신 장치(110)를 제어할 수 있다. 예를 들어, 서명 알고리즘 과정에서 별도의 검증 동작을 수행하지 않는다면, 상술한 검증 정보는 제공하지 않는 방식으로도 구현될 수 있다.
이와 같은 정보의 전송에 의하여, 서명을 수행하는 장치에서는 암호화된 서명 정보를 생성하고, 해당 서명 정보를 전자 장치(100)에 전송할 수 있다. 이 과정을 통하여 암호화된 서명 정보를 수신하면, 프로세서(130)는 암호화된 서명 정보를 복호화하고, 복호화된 정보를 이용하여 전자 서명을 생성할 수 있다.
이하에서는 전자 장치(100)가 메시지를 소유하지 않고, 서명을 수행하는 경우의 동작을 설명한다.
프로세서(130)는 서명에 필요한 정보(예를 들어, 암호화된 메시지 등)를 수신하면, 쉬르노 서명 방식에 따라 필요한 정보(예를 들어, ks, rs)를 생성하고, 동형 암호의 연산 방식을 수행하여 암호화된 서명 정보를 생성할 수 있다.
그리고 프로세서(130)는 암호화된 서명 정보와 제2 서명 정보(rs)를 메시지를 갖는 전자 장치에 제공되도록 통신 장치(110)를 제어할 수 있다. 이때, 프로세서(130)는 제2 서명 정보에 대한 검증 정보도 생성하여 메시지를 갖는 전자 장치에 제공하도록 통신 장치(110)를 제어할 수 있다.
또한, 프로세서(130)는 필요 정보와 함께 검증 정보를 수신한 경우, 검증 정보와 필요 정보를 이용하여 해당 필요 정보에 대한 검증을 수행할 수 있다. 예를 들어, 프로세서(130)는 메시지 암호문 및 메시지 검증 정보를 수신한 경우, 프로세서(130)는 해당 검증 정보를 이용하여 메시지 암호문의 변형 여부 등을 검증할 수 있다.
한편, 전자 장치(100)가 검증을 수행하는 경우, 전자 서명 및 메시지를 취득하고, 취득된 전자 서명을 이용하여 메시지를 검증할 수 있다.
한편, 이상에서는 전자 장치(100)를 구성하는 간단한 구성에 대해서만 도시하고 설명하였지만, 구현시에는 다양한 구성이 추가로 구비될 수 있다. 이에 대해서는 도 3을 참조하여 이하에서 설명한다.
또한, 도 2에서는 후술하는 도 5에 대응되는 전자 서명 알고리즘에 대응되는 전자 장치의 동작을 설명하였지만, 전자 장치(100)는 도 6 및 도 7에 대응되는 알고리즘에 대응되는 동작도 수행할 수도 있다.
도 3은 본 개시의 일 실시 예에 따른 전자 장치의 구체적인 구성을 도시한 블록도이다.
도 3을 참조하면, 본 개시의 전자 장치(100)는 메모리(120), 프로세서(130), 통신 장치(110), 디스플레이(140) 및 조작 입력 장치(150)로 구성될 수 있다.
통신 장치(100) 및 메모리(120)에 대해서는 도 2와 관련하여 설명하였는바, 중복 설명은 생략한다. 그리고 프로세서(130)에 대해서도 도 2와 관련하여 설명하였는바, 도 2에서 설명한 내용은 중복 기재하지 않고, 도 3에 추가된 구성과 관련된 내용만 이하에서 설명한다.
디스플레이(140)는 전자 장치(100)가 지원하는 기능을 선택받기 위한 사용자 인터페이스 창을 표시한다. 구체적으로, 디스플레이(140)는 전자 장치(100)가 제공하는 각종 기능을 선택받기 위한 사용자 인터페이스 창을 표시할 수 있다. 이러한 디스플레이(140)는 LCD, CRT, OLED 등과 같은 모니터일 수 있으며, 후술할 조작 입력 장치(150)의 기능을 동시에 수행할 수 있는 터치 스크린으로 구현될 수도 있다.
디스플레이(140)는 동형암호 비밀키 생성에 필요한 파라미터의 입력을 요청하는 메시지를 표시할 수 있다. 그리고 디스플레이(140)는 암호화 대상이 메시지를 선택하는 메시지를 표시할 수 있다. 한편, 구현시에 암호화 대상은 사용자가 직접 선택할 수도 있고, 자동으로 선택될 수 있다. 즉, 암호화가 필요한 개인 정보 등은 사용자가 직접 메시지를 선택하지 않더라도 자동으로 설정될 수 있다.
조작 입력 장치(150)는 사용자로부터 전자 장치(100)의 기능 선택 및 해당 기능에 대한 제어 명령을 입력받을 수 있다. 구체적으로, 조작 입력 장치(150)는 사용자로부터 동형암호 비밀키 생성에 필요한 파라미터를 입력받을 수 있다. 또한, 조작 입력 장치(150)는 사용자로부터 암호화될 메시지를 설정받을 수 있다.
프로세서(130)는 사용자로부터 동형암호 비밀키에 필요한 파라미터를 입력받으면, 입력받은 파라미터에 기초하여 설정 파라미터를 생성하고, 생성된 설정 파라미터에 기초하여 동형암호 비밀키를 생성할 수 있다.
그리고 메시지에 대한 전자 서명이 필요하면, 프로세서(130)는 상술한 과정을 통하여 외부 장치와의 협력을 통하여 전자 서명을 생성할 수 있다.
이상과 같이 본 실시 예에 따른 전자 장치(100)는 외부 장치와의 협력을 통하여 전자 서명을 진행하는 경우에 메시지를 동형 암호화하여 진행하는바, 외부 장치에 메시지의 내용이 공개되는 것을 방지할 수 있다.
도 4는 본 개시에 따른 전자 서명 생성 동작을 설명하기 위한 도면이다.
먼저, 키 생성 알고리즘을 설명한다.
도 4를 참조하면, 서명자인 제1 전자 장치(100-1)는 전자 서명에 필요한 서명 키(BS.sk) 및 검증 키(BS.vk)를 생성할 수 있다. 구체적으로, 제1 전자 장치(100-1)는 집합
Figure pat00010
에서 임의의 원소 x(BS.sk)를 추출하고, 추출된 원소를 기초로 군 G의 원소(
Figure pat00011
)인 검증 키(BS.vk)를 생성할 수 있다. 이때, 검증 키(BS.vk)는 랜덤값 및 랜덤값을 해시 처리한 값을 더 포함할 수 있다.
이때, 제1 전자 장치(100-1)는 생성된 검증 키(BS.vk)는 네트워크를 통하여 공개할 수 있다. 한편, 이하에서는 상술한 서명 키(BS.sk)는 제1 전자 장치(100-1)만이 저장하고 있는 것을 가정하고, 메시지는 제2 전자 장치(100-2)에서만 저장하는 것을 가정하여 설명한다.
이하에서는, 서명 프로토콜 동작을 설명한다. 구체적으로, 앞서 설명한 가정과 같이 서명 키는 제2 전자 장치(100-2)에 저장되어 있지 않기 때문에, 전자 서명을 위해서는 제1 전자 장치(100-1)의 협동이 요구된다. 구현시에는 제2 전자 장치(100-2)가 제1 전자 장치(100-1)에 메시지를 전송하고, 제1 전자 장치(100-1)에서 수신된 메시지를 이용하여 전자 서명을 생성할 수 있다.
다만, 이와 같은 방식으로 수행되는 경우, 메시지가 제1 전자 장치(100-1)에 노출된다는 점에서, 본 개시에서는 메시지의 은닉을 위하여, 제2 전자 장치(100-2)는 메시지를 동형 암호화하고, 동형 암호화된 메시지를 제1 전자 장치(100-1)에 제공한다.
구체적으로, 제2 전자 장치(100-2)는 메시지를 동형 암호 공개키(hpk)를 이용하여 암호화하여, 제1 전자 장치(100-1)에 제공할 수 있다. 여기서 동형 암호 공개키(hpk)는 동형 암호 비밀키에 대응되는 공개 키이다.
상술한 암호 동작 전에, 선행적으로 제2 전자 장치(100-2)는 검증 키를 검증할 수 있다. 또한, 상술한 제1 전자 장치(100-1)와 제2 전자 장치(100-2) 간의 데이터 송수신 과정에서의 변조 등을 방지하기 위하여, 전송되는 각 정보별로 각 정보에 대응되는 검증 정보를 함께 전송할 수 있다. 그리고 제1 전자 장치(100-1)는 메시지를 제공받아 전자 서명을 수행하는 것이 아니라, 암호화된 메시지를 제공받아 전자 서명을 수행한다는 점에서, 제2 전자 장치(100-1)는 전자 서명의 생성에 필요한 추가 정보를 제1 전자 장치(100-1)에 제공할 수 있다. 여기서 추가 정보는 제2 전자 장치(100-2)에서 생성한 전자 서명 정보, 특정 랜덤값을 동형 암호 비밀키(또는 암호 비밀키와 해시 처리 값)로 암호화한 정보일 수 있다.
제1 전자 장치(100-1)는 제공받은 암호화된 메시지와 서명 키(BS.sk)를 이용하여, 암호화된 서명(σ)을 생성하고, 생성된 암호화된 서명(σ)을 제2 전자 장치(100-2)에 전송할 수 있다. 구체적인 생성 동작은 도 5 내지 도 7에서 설명한다.
제2 전자 장치(100-2)는 제공받은 암호화된 서명(σ)을 수신하면, 수신된 암호화된 서명을 동형 암호 비밀키(hsk)를 이용하여, 복호화하고, 앞선 과정에서 이용한 전자 서명 정보 등을 이용하여 전자 서명(σ)을 생성할 수 있다. 제1 전자 장치(100-1)와 제2 전자 장치(100-2)에서의 보다 구체적인 서명 프로토콜 동작에 대해서는 도 5를 참조하여 후술한다.
이하, 검증 동작을 설명하면, 검증 장치인 서버 장치(200)는 제공받은 전자 서명과 공개된 검증 키(BS.vk)를 이용하여, 성립성을 확인할 수 있다. 구체적으로, 서버 장치(200)는 기존의 schnorr 서명과 동일하게 아래와 같은 수학식 3을 계산하여, 가 성립하는지를 확인하고, 성립한다면 1을 출력하고, 성립하지 않으면 0을 출력할 수 있다.
Figure pat00013
여기서, g는 군 G의 원소, s는 전자 서명(σ =(r,s))에 포함된 값, Sch.vk는 검증 키, r은 전자 서명에 포함된 값, μ은 메시지이다.
도 5는 본 개시의 제1 실시 예에 따른 은닉 서명 방법을 설명하기 위한 도면이다.
먼저, 셋업 동작(setup)을 설명한다.
먼저, 쉬르노 서명 방식에서 이용하는 키 생성 알고리즘을 이용하여, 서명 키(sch.sk) 및 검증 키(sch.vk)를 생성할 수 있다. 구체적으로, 집합
Figure pat00014
에서 임의의 원소(sch.sk)를 추출하고, 추출된 원소를 기초로 군 G의 원소(
Figure pat00015
)인 검증 키를 생성할 수 있다.
그리고 랜덤값(α)을 생성(또는 샘플링)하고, 해당 랜덤값에 대한 해시 처리 값(ppk = H'(α))을 생성할 수 있다. 여기서 H' 함수는 {0,1}* -> PK로, 랜덤 오라클로 모델링된 함수이고, pk는 PKE의 공개키의 공간일 수 있다.
그리고 앞서 생성한 서명 키(sch.sk)를 본 개시에 따른 서명 키(BS.sk)로 사용하고, 앞서 생성한 검증 키, 랜덤 값 및 해시 처리 값을 본 개시에 따른 검증 키(BS.vk = {sig.vk, α, ppk})로 사용할 수 있다. 이와 같이 검증 키가 기존의 쉬르노 방식에서 사용하는 검증 키 뿐만 아니라, 특정의 랜덤값 및 해시 값을 함께 포함한다는 점에서, 이를 이용하는 장치에서는 검증 키에 대한 검증 동작을 수행하는 것이 가능하다.
이하에서는 전자 서명 생성 동작을 설명한다. 앞서 설명한 바와 같이 본 개시에서는 메시지의 은닉을 위하여, 메시지를 소유하는 장치(user)와 서명 키를 소유하는 장치(signer)가 나눠서 서명 동작을 수행한다. 이에 따라, 먼저, 메시지를 소유하는 장치에서의 동작을 설명한다.
먼저, 메시지를 소유하는 장치(user)는 공개된 검증 키(BS.vk)를 이용하여, 검증 키에 대한 검증을 수행할 수 있다. 구체적으로, 검증 키(BS.vk)에 포함된 랜덤값(α)을 해시 처리한 값(H'(α))과 검증 키에 포함된 랜덤값(ppk)이 동일한지를 검증할 수 있다.
그리고 동형 암호화를 위한 동형 암호 비밀키(hsk)와 동형 암호 공개키(hpk)를 생성할 수 있다. 구체적으로, 랜덤값(r)을 샘플링하고, 샘플링된 랜덤값(r)을 동형 암호 키젠 알고리즘을 입력하여, 상술한 동형 암호 비밀키(hsk)와 동형 암호 공개키(hpk)를 생성할 수 있다.
그리고 메시지(μ)를 동형 암호 공개키(hpk)를 이용하여 동형 암호화하여 메시지 암호문(ctμ)을 생성할 수 있다.
그리고 비밀키 암호문을 생성할 수 있다. 구체적으로, 랜덤값(re)을 산출하고, 산출된 랜덤값(re)을 해시 값(ppk) 및 동형 암호 비밀키(hsk)로 동형 암호화하여 비밀키 암호문(ctsk)을 생성할 수 있다.
그리고 생성된 비밀키 암호문(ctsk)에 대응되는 검증 정보(πsk)를 생성할 수 있다. 여기서 검증 정보는 다음의 수학식을 만족하는 정보이다.
Figure pat00016
그리고 생성한 정보(예를 들어, 동형 암호 공개키(hsk), 비밀키 암호문(ctsk), 비밀키 검증 정보(πsk), 제1 서명 정보의 암호문(ctru), 메시지 암호문(ctμ ))들을 서명자에게 전송할 수 있다.
이하에서는 서명자(또는 서명 장치)에서의 동작을 설명한다.
상술한 정보를 수신하면, 먼저 수신된 검증 정보(πsk)를 이용하여 비밀키 암호문(ctsk)에 대한 검증을 수행할 수 있다.
그리고 쉬노르 서명 방식에 사용되는 임의의 원소 값(ρ), 수신된 메시지 암호문 등을 이용하여, 암호화된 서명 정보(ctσ)를 생성할 수 있다. 구체적으로, 도 5에 도시된 바와 같은 동형 연산을 이용하여, 암호화된 서명 정보를 생성할 수 있다.
그리고 암호화된 서명 정보(ctσ))를 사용자에게 전송할 수 있다.
그리고 상술한 정보를 수신한 사용자는 암호화된 서명 정보를 동형 암호 비밀키를 이용하여 복원하여, 전자 서명(σ)을 생성할 수 있다.
이와 같은 방식으로 생성된 서명 정보는 검증 키(BS.VK)를 이용하여 검증 단계에서 이용될 수 있다.
한편, 이상에서는 상술한 영 지식 검증 동작에 대한 자세한 원리를 설명한다.
동형암호 연산에는 다양한 키들이 쓰인다. 예를 들어 동형 암호 비밀 키(s, secret key)는 암호문을 복호화하고 다양한 공개키들을 만드는 데에 쓰인다.
그리고 동형 암호 공개키에는 암호화 키 (enck, encryption key), 회전 키 (rotk, rotation key), 재선형화 키 (rlk, relinearization key), 부트스트래핑 키 (reck, recryption key) 등이 있다. 이러한 키들은 정상적으로 만들어져야 본연의 기능을 다 할 수 있을 뿐만 아니라, 만약 제3자가 악의적으로 만들어진 키를 이용하여 동형 암호문에 연산을 한 후, 비밀 키 소유자에게 암호문을 전달한다면, 연산 과정에서 쓰인 부가적인 정보 (예: 사용된 평문, 어떤 연산이 쓰였는지 등)에 대한 정보가 비밀 키 소유자에게 유출될 수 있다.
또한, 동형 암호문이 정상적인 암호화 키로 암호화되지 않으면 마찬가지 문제가 생길 수 있다. 이는 동형암호의 대표적인 사용처인 계산 위임 (computation delegation) 시나리오에서 위임받아 계산하는 측의 정보가 계산을 요청한 고객에게 유출될 수 있다는 점에서 중요하게 여겨진다.
이러한 점에서, 기존의 영 지식 증명을 공개 키에 어떻게 적용할지가 문제이며, 본 개시에서는 공개 키들 중에는 다항 상관관계를 가지는 키들이 존재할 경우, 추가적인 방법을 통해 계산 과정에 대한 정보가 유출되지 않도록 구현되었다.
구체적으로, 다항 상관관계를 가지는 동형 암호문들 간의 관계로도 확장할 수 있다. 예를 들어 reck = Encs(s)이고, rlk = Encs(s2)에 대한 방법에 대해 서술하지만, 다항식 f에 대해 Encs(m)과 Encs(f(m))혹은 공개 키를 이용해 암호화한 Encpk(m)과 Encpk(f(m))쌍에 대해서도 적용 가능하다.
공개 키에 대한 영 지식 증명이란, 주어진 동형암호 공개키 와 동형 암호문 ctxt = (c0,c1)에 대해 다음 식들 (1)-(5)를 만족하는 작은 비밀 키 s∈R와 작은 에러들 , 일회성 키 r∈R, 그리고 메시지 m ∈R 에 대한 영 지식 증명을 말한다. (모든 연산은 Rq에서의 연산이며, 각각의 키는 R2의 원소임 (예를 들어 ))
Figure pat00020
(1)
(2)
(3)
(4)
(5)
, , , 라고 두면 위의 첫 번째 식은 다음과 같이 나타낼 수 있다.
단, 은 n ×(n-1) 행렬로 을 만족하게 잡은 행렬이다. . Id는 항등 행렬로 는 두 행렬의 결합 (concatenation)을 나타낼 수 있다.
위 식의 빨간 행렬을 이라고 하면, 위 식은 에 대해 로 표현된다. 식 (2)-(5) 역시 비슷하게 나타낼 수 있다.
단, Pi은 n×n행렬로 을 만족하게 잡은 행렬이다. .
상술한 식을 하나의 식으로 표현하면,
와 같이 나타낼 수 있고, 이제 영 지식 증명을 할 수 있다.
다만, 이 경우 (2) 식의 s2에 대한 증명은 따로 할 수 없고, 대신 어떤 작은 다항식이라는 것만 증명할 수 있다.
이를 보완하기 위해 다음과 같은 방법을 통해 서킷 (C) 소유자의 정보 유출을 막을 수 있다. 단, 서킷 C'은 제곱 연산을 하는 서킷임.
구체적으로, 메시지를 보유하는 소유자는 공개키/암호문에 대한 영 지식 증명을 생성하고, 서킷 (c)소유자는 영 지식 증명을 검증하고, 수신한 암호문을 평가키로 검증하고, 그에 대한 새로운 암호문 값을 산출할 수 있다.
위에서는 에 대한 방법에 대해 서술하지만, 아무 다항식 f에 대해 혹은 공개 키를 이용해 암호화한 쌍에 대해서도 “C'=함수 f의 서킷”을 이용하여 적용 가능하다. 심지어는 임의의 서킷 C'에 대해서도 마찬가지 방법으로 적용할 수 있다.
도 6은 본 개시의 제2 실시 예에 따른 은닉 서명 방법을 설명하기 위한 도면이다.
먼저, 셋업 동작(setup)은 도 5에서의 방식과 동일한바 중복 설명은 생략한다.
이하에서는 전자 서명 생성 동작을 설명한다. 앞선 도 5와 달리 도 6에서는 쉬르노 전자 서명에서의 서명값의 생성 과정을 소유자(user)와 서명자(signer)가 협동하여 생성한다. 구체적으로, 도 5에서는 전자 서명을 구성하는 서명 정보를 서명자에서만 생성하고, 소유자는 이를 복호화하는 동작만으로 전자 서명을 생성하였지만, 본 개시에서는 전자 서명을 구성하는 값 중 r에 대응되는 값을 두 장치가 각각 산출하고, 최종적으로 두 값을 모두 반영한다.
먼저, 메시지를 소유하는 장치(user)는 공개된 검증 키(BS.vk)를 이용하여, 검증 키에 대한 검증을 수행할 수 있다. 구체적으로, 검증 키(BS.vk)에 포함된 랜덤값(α)을 해시 처리한 값(H'(α))과 검증 키에 포함된 랜덤값(ppk)이 동일한지를 검증할 수 있다.
그리고 동형 암호화를 위한 동형 암호 비밀키(hsk)와 동형 암호 공개키(hpk)를 생성할 수 있다. 구체적으로, 랜덤값(ρ)을 샘플링하고, 샘플링된 랜덤값(ρ)을 동형 암호 키젠 알고리즘을 입력하여, 상술한 동형 암호 비밀키(hsk)와 동형 암호 공개키(hpk)를 생성할 수 있다. 여기서 동형 암호 키젠 알고리즘(FHE.KeyGen)은 보안 파라미터(λ)와 댑스 바운더리(d)를 입력받고, 동형 암호화(또는 복호화)에 사용 비밀키 및 공개키를 생성하는 알고리즘이다.
그리고 비밀키 암호문을 생성할 수 있다. 구체적으로, 랜덤값(re)를 산출하고, 산출된 랜덤값(re)을 해시값(ppk) 및 동형 암호 비밀키(hsk)로 동형 암호화하여 비밀키 암호문(ctsk)을 생성할 수 있다.
그리고 생성된 비밀키 암호문(ctsk)에 대응되는 검증 정보(πsk)를 생성할 수 있다. 여기서 검증 정보는 다음의 수학식을 만족하는 정보이다.
Figure pat00049
그리고 쉬노르 서명 방식에 사용되는 임의의 원소 값(Ku)을 집합
Figure pat00050
에서 추출하고, 추출된 원소(ku)를 기초로 군 G의 원소 값(ru)을 생성할 수 있다. 이하에서는 설명을 용이하게 하기 위하여, 원소 값(ru)을 제1 서명 정보라고 지칭한다. 한편, 구현시에는 원소(ku)를 제1 서명 정보로 지칭하고, 원소 값(ru)을 제2 서명 정보로 지칭하여도 무방하다.
그리고 제1 서명 정보(ku)를 동형 암호 공개키를 이용하여 동형 암호화하고, 메시지를 동형 암호 공개키를 이용하여 동형 암호화하여, 각각 제1 서명 정보의 암호문(ctru), 메시지 암호문(ctμ)을 생성할 수 있다.
그리고 제1 서명 정보의 암호문(ctru), 메시지 암호문(ctμ) 각각에 대한 검증 정보(πruμ)를 생성할 수 있다. 한편, 이와 같은 검증 정보 들은 서명을 수행하는 장치에서 제1 서명 정보의 암호문 및 메시지 암호문에 대한 검증을 수행하기 위하여, 필요한 정보로, 구현시에 검증 동작을 수행하지 않는 경우, 상술한 검증 정보의 생성 과정은 생략될 수도 있다. 또한, 도 5에서는 3개의 검증 정보를 생성하는 것으로 도시하였지만, 구현시에는 3개의 검증 정보 모두를 생성하지 않거나, 3개의 검증 정보 중 일부에 대해서 검증 정보를 생성하거나, 3개의 정보에 대한 통합적인 검증 정보를 생성하는 방식도 가능하다.
그리고 생성한 정보(예를 들어, 동형 암호 공개키(hsk), 비밀키 암호문(ctsk), 비밀키 검증 정보(πsk), 제1 서명 정보의 암호문(ctru), 메시지 암호문(ctμ ), 제1 서명 정보에 대한 검증 정보(πru), 메시지 검증 정보(πμ))들을 서명자에게 전송할 수 있다.
이하에서는 서명자(또는 서명 장치)에서의 동작을 설명한다.
상술한 정보를 수신하면, 먼저 수신된 검증 정보 들을 이용하여 각종 정보를 검증할 수 있다.
그리고 쉬노르 서명 방식에 사용되는 임의의 원소 값(ks)을 집합
Figure pat00051
에서 추출하고, 추출된 원소(ks)를 기초로 군 G의 원소 값(rs)을 생성할 수 있다. 이하에서는 설명을 용이하게 하기 위하여, 원소 값(rs)을 제2 서명 정보라고 지칭한다. 한편, 구현시에 추출된 원소(ks)를 제3 서명 정보로 지칭하고, 원소 값(rs)을 제4 서명 정보로 지칭할 수도 있다.
그리고 상술한 제2 서명 정보에 대한 검증 정보(πs)를 생성할 수 있다.
그리고 암호화된 서명 정보(ctσ)를 생성할 수 있다. 구체적으로, 도 5에 도시된 바와 같은 동형 연산을 이용하여, 암호화된 서명 정보를 생성할 수 있다.
그리고 암호화된 서명 정보(ctσ))와 제2 서명 정보(rs), 제2 서명 정보에 대한 검증 정보(πs)를 사용자에게 전송할 수 있다.
그리고 상술한 정보를 수신한 사용자는 수신한 검증 정보를 이용하여 제2 서명 정보를 검증하고, 검증되면, 제1 서명 정보와 제2 서명 정보를 이용하여, 제3 서명 정보(r)를 생성하고, 암호화된 서명 정보를 동형 암호화 비밀키로 복호화하여 제4 서명 정보(s)를 생성할 수 있다.
그리고 제3 서명 정보(r)와 제4 서명 정보(s)를 이용하여, 전자 서명(σ)을 생성할 수 있다. 한편, 도시된 바와 같이 전자 서명의 생성 전에, 검증 키를 이용하여 검증 동작을 선행적으로 수행할 수 있다.
이와 같은 방식으로 생성된 서명 정보는 검증 키(BS.VK)를 이용하여 검증 단계에서 이용될 수 있다.
도 7은 본 개시의 제3 실시 예에 따른 은닉 서명 방법을 설명하기 위한 도면이다.
먼저, 셋업 동작(setup)은 도 5에서의 방식과 유사하나, 도 7에서는 쉬르노 키젠이 아닌 디비전 프리 쉬노르 방식(division-free Schnorr)의 키 생성 방식을 이용한다. 여기서 디비전 프리 쉬노르 방식은 에드워드 커브 상의 기저 포인트(P)에 대응되는 그룹을 이용하는 방식으로, 해당 방식을 이용하여 서명 키 및 검증 키가 산출되면, 앞선 도 5와 유사하게 랜덤값 및 해시 값을 추가로 이용하여 최종 서명 키(BS.나 = DFSsh.sk) 및 검증 키(BS.vk = {DFSch.vk,α, ppk})를 생성할 수 있다.
이하에서는 전자 서명 생성 동작을 설명한다. 앞선 도 6과 달리 소유자(user)는 Xu, Yu를 추가로 이용한다. 구체적으로, 도 6에서는 임의 원소 값(Ku)을 집합
Figure pat00052
에서 추출하고, 그 값을 그대로 이용하였지만, 본 개시에서는 ku를 x, y축으로 분해한 값을 이용한다.
이에 따라, 도 6에서는 제1 서명 정보를 하나의 정보로 이용하였으나, 본 실시 예에서는 두 개의 암호화된 정보(ctxu, ctyu)로 이용한다. 그리고 각 정보에 대한 서명 정보도 2개로 이용된다.
그리고 생성한 정보(예를 들어, 동형 암호 공개키(hsk), 비밀키 암호문(ctsk), 비밀키 검증 정보(πsk), 제1 서명 정보의 암호문(ctxu), 제2 서명 정보의 암호문(ctyu), 메시지 암호문(ctμ ), 제1 서명 정보에 대한 검증 정보(πxu), 제2 서명 정보에 대한 검증 정보(πyu), 메시지 검증 정보(πμ))들을 서명자에게 전송할 수 있다.
이하에서는 서명자(또는 서명 장치)에서의 동작을 설명한다.
상술한 정보를 수신하면, 먼저 수신된 검증 정보 들을 이용하여 각종 정보를 검증할 수 있다.
그리고 쉬노르 서명 방식에 사용되는 임의의 원소 값(ks)을 집합
Figure pat00053
에서 추출하고, 추출된 원소(ks)를 기초로 군 G의 원소 값(rs)을 생성할 수 있다. 그리고 생성된 원소 값(rs)을 3차원 자표에 대응되게 3개(Xs; Ys; Zs)로 분해할 수 있다.
그리고 상술한 분해된 서명 정보 각각에 대한 검증 정보(πks)를 생성할 수 있다.
그리고 암호화된 서명 정보(ctσ)를 생성할 수 있다. 구체적으로, 도 7에 도시된 바와 같은 동형 연산을 이용하여, 암호화된 서명 정보를 생성할 수 있다.
그리고 암호화된 서명 정보(ctσ))와 분해된 서명 정보 및 검증 정보를 사용자에게 전송할 수 있다.
그리고 상술한 정보를 수신한 사용자는 수신한 검증 정보를 이용하여 제2 서명 정보를 검증하고, 검증되면, 제1 서명 정보(Xu, Yu)와 제2 서명 정보(Xs; Ys; Zs)를 이용하여, 제3 서명 정보(r)를 생성하고, 암호화된 서명 정보를 동형 암호화 비밀키로 복호화하여 제4 서명 정보(s)를 생성할 수 있다.
그리고 제3 서명 정보(r)와 제4 서명 정보(s)를 이용하여, 전자 서명(σ)을 생성할 수 있다. 한편, 도시된 바와 같이 전자 서명의 생성 전에, 검증 키를 이용하여 검증 동작을 선행적으로 수행할 수 있다.
이와 같은 방식으로 생성된 서명 정보는 검증 키(BS.VK)를 이용하여 검증 단계에서 이용될 수 있다.
한편, 상술한 과정에서의 동형 암호문에 대한 연산은 다음과 같은 기법이 이용될 수 있다.
먼저, 작은 유한체 연산을 이용한 큰 유한체에서의 동형 암호문 연산 동작을 설명한다.
BGV (혹은 BFV) 계열의 동형암호에서는 기본적으로 유한체 (finite field) 혹은 다항 환 (polynomial ring) 을 평문 공간(plaintext space)으로 가지며, 그 위에서의 연산을 지원한다.
예를 들어, 인 자연수 에 대해 동형암호 환을 로 잡으면 평문 공간은 에 대해
Figure pat00060
을 만족하게 잡을 수 있다. 즉, 하나의 동형 암호문은 개의 원소를 갖는 벡터를 메시지로 하여 다음과 같은 동형암호로 생각할 수 있다.
(즉, 를 만족)
을 새로운 메시지로 갖는 동형암호문을 생성할 수 있다.
단, △, p는 적당한 양의 정수, M은 환에서의 행렬, 로 인수분해되며, 각각의 다항식 는 법 (mod) p로 기약 다항식 (irreducible polynomial)이며 모두 같은 차수인 k를 가질 수 있다.
하지만, 실용적으로 사용할 수 있는, 부트스트래핑 (bootstrapping)이 가능한 파라미터를 고려해보면, GF(2)등의 아예 작은 유한체에서 연산을 하거나, GF(216)GF(224)GF(226)GF(1740)GF(12726) 등의 제한적인 평문(plaintext) 만을 가질 수 있다.
즉 제한된 유한체 상에서만 연산이 가능한 것이다. 이러한 점을 보완하여, 더욱 다양한 유한체 상에서의 동형 암호문 연산이 가능하도록 하고자 한다. 구체적으로, 모든 유한체는 소수(p)와 양의 정수(d)에 대해서 GF(pd)꼴로 표현되는데, 만약 정수(d) 가 2~40 정도의 작은 약수(k)를 가져서 GF(pk)에서의 효율적인 유한체 연산이 가능하다면, 이를 GF(pd) 위에서의 유한체 연산으로 확장하고자 한다.
위와 같은 상황에서 에 대해, 그리고 계수가 GF(pk)의 원소로 이루어진 r 차 기약다항식 F(y)에 대해 다음의 식이 성립한다.
Figure pat00077
. 따라서, 우리는 하나의 혹은 다수의 동형 암호문을 GF(pk)의 원소를 계수로 갖는 (r-1)차 이하의 다항식에 대응하여 생각함으로써 큰 유한체 에서의 연산을 진행할 수 있다.
예를 들어 일 때에는 하나의 동형암호문에 다음과 같이 대응시킬 수 있다.
암호화 (encryption)
에 대해 로 정의하고 이를 동형암호화한 암호문을 다음과 같이 표기할 수 있다.
.
복호화 (decryption)
암호문(ctxt)에 대해 로 정의하면, 복호화는 다음과 같이 정의될 수 있다.
.
유한체 덧셈 (addition)
유한체 의 원소인 를 암호화한 두 암호문 에 대해
로 정의된 암호문 는 두 유한체 원소 의 유한체 상에서의 덧셈 결과를 암호화한 암호문이 될 수 있다. 즉, 유한체 덧셈 에 대해 다음이 성립할 수 있다.
유한체 곱셈 (multiplication)
유한체 의 원소인 를 암호화한 두 암호문 에 대해 동형 유한체 곱셈은 다음과 같이 계산될 수 있다.
- Input:
, (Output: )
여기서 은 동형암호 덧셈 의 반복적인 적용이다. 결과적으로 번 반복되도록 복사한 것이다. 이는
For to
와 같은 더 방법으로도 계산될 수도 있다.
(번째에만 )
여기서 은 동형암호 덧셈 의 반복적인 적용이다. 번째 원소만 1이고 나머지는 0인 길이 짜리 벡터이다. 결과적으로 각각의 이가 모두 번 반복되도록 복사한 것이다. 마지막의 계산은 위의 계산과 마찬가지로 효율적으로 할 수 있다. 의 2진법 표현을 라고 할 때,
,
For to
For in (descending order)
여기서 이다.
(1이 r개)
(1이 r-1개)
여기서 행렬로 을 만족하게 잡은 상수 행렬이다 (, ).
따라서 위의 암호화/복호화 과정을 거쳐 만들어진 암호문은 위의 두 가지 동형 연산을 통해 큰 유한체 에서의 연산을 진행할 수 있다. 일 때에도 하나의 큰 유한체 원소를 하나의 암호문에 암호화하고, 동형 유한체 곱셈을 할 때에만 여러 암호문을 이용하는 식으로 적용 가능하다.
마찬가지로, 일 때에는 하나의 큰 유한체 원소를 몇 개의 암호문에 암호화하는 식으로 적용할 수 있다.
이상과 같은 방식을 이용하면, BGV 혹은 BFV 등의 동형암호에서 기존에는 불가능했던 “부트스트래핑이 가능한 큰 유한체 동형 연산”을 “부트스트래핑이 가능한 작은 유한체 연산”을 통해 가능하게 한 것에 초점을 맞추어 설명하였다. 한편, 구현시에는 상술한 동작을 반대 적용하여, 즉, 작은 유한체에서 효율적인 동형암호에 대해, 이를 이용하여 큰 유한체 연산을 하는 방식에도 적용될 수 있다.
그리고 동형 암호문 상에서 나머지 연산에 대해서 설명한다.
BGV (혹은 BFV) 계열의 동형암호에서는 기본적으로 유한체 (finite field) 혹은 다항 환 (polynomial ring) 을 평문 공간(plaintext space)으로 가지며, 그 위에서의 연산을 지원한다.
특히 다항환의 평문 공간을 가질 때에는 다항식의 상수항에만 메시지 정보를 넣는 식으로 평문 공간을 로 제한하여 생각할 수도 있다. 이를 이용하면 p 진법 표현을 이용하여 정수 연산 역시 가능하다.
예를 들어 r=1, p=2일 때는 비트 연산과 동일하게 생각할 수 있다. 정수의 덧셈 연산이나 곱셈 연산 등은 비트 연산의 전 가산기 (full adder) 혹은 반가산기 (half adder) 등을 이용하여 구현 가능하다. 이러한 방식을 이용하면, p 진법 가산기에 상술한 개념을 적요할 수 있다. 또한, p로 나누는 연산 등 역시 자릿수 이동을 통해 간단하게 가능하다. 하지만, 나머지 연산, 즉 모듈로(mod q) 연산의 경우에는 q=p일 때를 제외하고는 쉽지 않은 상황이다.
p 진법 수 에 대해 는 다음과 같이 구할 수 있다. (단, 는 적당히 큰 자연수)
이는 다음 식을 통해 확인할 수 있다.
(단, )
with probability
이 사실을 바탕으로 평문 공간이 인 동형암호에서 mod q 연산을 다음과 같이 생각할 수 있다. 편의 상 인 경우만 가정하여 설명한다.
p 진법 수 의 각 자릿수가 각각의 슬롯에 들어가서 암호화되어 있을 때, 즉, 이고, 일 때,
p 진수 가산기 Adderp와 이를 이용해 구현한 p 진수 곱셈기 Multipierp에 대해,
,
(0이 k + λ개),
를 통해 계산 가능하다.
계산 결과는 선택한 λ값에 따라 매우 높은 확률로 u mod q의 암호문을 결과로 가지며, 낮은 확률로 ±q 값을 가지기도 한다.
위에서는 하나의 암호문의 각 슬롯 내에 하나의 자릿수를 넣을 때 만을 살펴보았지만, 여러 암호문에 걸쳐 자릿수들을 나누어 넣거나, 하나의 자릿수를 하나의 암호문에 대응시키는 등의 경우에도 마찬가지로 적용 가능하다.
도 8은 본 개시의 제1 실시 예에 따른 전자 서명 생성 방법을 설명하기 위한 도면이다.
도 8을 참조하면, 동형 암호 공개키를 이용하여 제1 서명 정보 및 메시지 각각을 암호화하여 제1 서명 암호문 및 메시지 암호문을 생성한다(S810).
그리고, 제2 서명 정보 및 해당 제2 서명 정보에 대응되는 원소 값, 제1 서명 암호문 및 메시지 암호문을 이용하여 생성된 암호화된 제3 서명 정보를 획득한다(S820). 구체적으로, 제1 서명 암호문 및 메시지 암호문을 전자 서명을 위한 서명 키를 갖는 외부 장치에 전송하고, 외부 장치로부터 제2 서명 정보 및 암호화된 제3 서명 정보를 수신하여 암호화된 서명 정보를 획득할 수 있다. 이때, 전송되는 정보에 대한 검증을 위하여, 상술한 암호문 메시지 등에 대응되는 검증 정보(예를 들어, 제1 서명 검증 정보, 메시지 검증 정보, 비밀키 검증 정보 등)을 함께 전송할 수 있다.
그리고, 제1 서명 정보 및 제2 서명 정보를 이용하여 전자 서명을 구성하는 제1 전자 서명값을 산출하고, 암호화된 제3 서명 정보를 복호화하여 전자 서명을 구성하는 제2 전자 서명값을 산출하고, 산출된 제1 전자 서명값 및 제2 전자 서명값을 이용하여 전자 서명을 생성한다(S830). 구체적으로, 제1 서명 정보는, 전자 장치에서 집합(
Figure pat00177
)에서 임의로 추출된 원소 값(ku)을 이용하여 산출된 정보(gku)이고, 제2 서명 정보는, 외부 장치에서 집합(
Figure pat00178
)에서 임의로 추출된 원소 값(ks)을 이용하여 산출된 정보(gks)일 수 있다. 이에 따라 제1 서명 정보(gku) 및 제2 서명 정보(gks)를 곱하여 제1 전자 서명값을 산출하고, 암호화된 제3 서명 정보를 동형 암호 공개키에 대응되는 동형 암호 비밀키로 복호화하여 제2 전자 서명값을 산출(또는 생성)할 수 있다. 이때, 제2 전자 서명값(ku+s)은 복호화된 제3 서명 정보(s)와 추출된 원소 값(ku)을 합산하여 산출될 수 있다.
도 9는 본 개시의 제2 실시 예에 따른 전자 서명 생성 방법을 설명하기 위한 도면이다.
도 9를 참조하면, 암호화된 정보 및 정보 각각에 대응되는 검증 정보를 수신할 수 있다(S910).
수신된 검증 정보를 이용하여 암호화된 정보를 검증할 수 있다(S920).
검증이 완료되면, 수신된 암호화된 정보와 전자 서명의 서명 키를 이용하여, 암호화된 서명 정보를 생성할 수 있다(S930).
그리고 생성한 암호화된 서명 정보 및 서명 정보의 생성에 이용한 서명 정보를 암호화된 정보를 전송한 장치(즉, user)에 전송할 수 있다.
도 10은 본 개시의 전자 서명 검증 방법을 설명하기 위한 도면이다.
도 10을 참조하면, 메시지, 서명 정보, 검증 키를 확보할 수 있다(S1010).
이와 같이 3개의 정보가 확보되면, 앞서 설명한 바와 같은 검증 알고리즘을 이용하여 메시지에 대한 위조 및 변조 등을 확인할 수 있다(S1020).
이상과 같은 전자 서명 방법 및 제어 방법은 각종 어플리케이션의 실행 결과뿐만 아니라 사용자가 직접 입력한 각종 신용 정보나 개인 정보들의 수집에도 사용될 수 있다.
한편, 상술한 다양한 실시 예들에 따른 전자 서명 방법 및 제어 방법 등은, 각 단계들을 수행하기 위한 프로그램 코드 형태로 구현되어, 기록 매체에 저장되고 배포될 수도 있다. 이 경우, 기록 매체가 탑재된 장치는 상술한 암호화 또는 암호문 처리 등의 동작들을 수행할 수 있다.
이러한 기록 매체는, ROM, RAM, 메모리 칩, 메모리 카드, 외장형 하드, 하드, CD, DVD, 자기 디스크 또는 자기 테이프 등과 같은 다양한 유형의 컴퓨터 판독 가능 매체가 될 수 있다.
이상 첨부 도면을 참고하여 본 개시에 대해서 설명하였지만 본 개시의 권리범위는 후술하는 특허청구범위에 의해 결정되며 전술한 실시 예 및/또는 도면에 제한되는 것으로 해석되어서는 안 된다. 그리고 특허청구범위에 기재된 개시의, 당업자에게 자명한 개량, 변경 및 수정도 본 개시의 권리범위에 포함된다는 점이 명백하게 이해되어야 한다.
100: 전자 장치 200: 서버 장치
110: 통신 장치 120: 메모리
130: 프로세스 140: 디스플레이
150: 조작 입력장치

Claims (15)

  1. 동형 암호 공개키를 이용하여 제1 서명 정보 및 메시지 각각을 암호화하여 제1 서명 암호문 및 메시지 암호문을 생성하는 단계;
    제2 서명 정보 및 상기 제2 서명 정보에 대응되는 원소 값, 상기 제1 서명 암호문 및 상기 메시지 암호문을 이용하여 생성된 암호화된 제3 서명 정보를 획득하는 단계; 및
    상기 제1 서명 정보 및 상기 제2 서명 정보를 이용하여 전자 서명을 구성하는 제1 전자 서명값을 산출하고, 상기 암호화된 제3 서명 정보를 복호화하여 상기 전자 서명을 구성하는 제2 전자 서명값을 산출하고, 상기 산출된 제1 전자 서명값 및 상기 제2 전자 서명값을 이용하여 전자 서명을 생성하는 단계;를 포함하는 전자 서명 생성 방법.
  2. 제1항에 있어서,
    상기 서명 정보를 획득하는 단계는,
    상기 제1 서명 암호문 및 상기 메시지 암호문을 전자 서명을 위한 서명 키를 갖는 외부 장치에 전송하고, 상기 외부 장치로부터 상기 제2 서명 정보 및 상기 암호화된 제3 서명 정보를 수신하는 전자 서명 생성 방법.
  3. 제2항에 있어서,
    상기 제1 서명 정보에 대응되는 제1 서명 검증 정보 및 상기 메시지 암호문에 대한 메시지 검증 정보를 생성하는 단계;를 더 포함하고,
    상기 서명 정보를 획득하는 단계는,
    상기 제1 서명 암호문, 상기 메시지 암호문, 상기 제1 서명 검증 정보 및 상기 메시지 검증 정보를 상기 외부 장치에 전송하는 전자 서명 생성 방법.
  4. 제2항에 있어서,
    랜덤값을 추출하고, 추출된 랜덤값을 상기 동형 암호 공개키에 대응되는 동형 암호 비밀키로 암호화하여 비밀키 암호문을 생성하는 단계; 및
    상기 비밀키 암호문에 대응되는 비밀키 검증 정보를 생성하는 단계;를 더 포함하고,
    상기 서명 정보를 획득하는 단계는,
    상기 비밀키 암호문 및 상기 비밀키 검증 정보도 추가로 전송하는 전자 서명 생성 방법.
  5. 제4항에 있어서,
    상기 서명 키는 서명 정보, 서명 랜덤값 및 상기 서명 랜덤값을 해시 처리한 해시 값을 포함하고,
    상기 비밀키 암호문은 상기 추출된 랜덤값을 상기 해시 값 및 상기 동형 암호 비밀키로 암호화된 전자 서명 생성 방법.
  6. 제5항에 있어서,
    상기 서명 키는, 집합(
    Figure pat00179
    )에서 임의로 추출된 원소 값(sch.sk)이고,
    상기 검증 키는, 상기 추출된 원소(sch.sk)를 기초로 군 G(
    Figure pat00180
    )의 원소 값과 상기 서명 랜덤값, 상기 해시 값을 포함하는 전자 서명 생성 방법.
  7. 제1항에 있어서,
    상기 제1 서명 정보는, 상기 전자 장치에서 집합(
    Figure pat00181
    )에서 임의로 추출된 원소 값(ku)을 이용하여 산출된 정보(gku)이고,
    상기 제2 서명 정보는, 외부 장치에서 상기 집합(
    Figure pat00182
    )에서 임의로 추출된 원소 값(ks)을 이용하여 산출된 정보(gks)이고,
    상기 전자 서명을 생성하는 단계는,
    상기 제1 서명 정보(gku) 및 상기 제2 서명 정보(gks)를 곱하여 제1 전자 서명값을 산출하고, 상기 암호화된 제3 서명 정보를 상기 동형 암호 공개키에 대응되는 동형 암호 비밀키로 복호화하여 상기 제2 전자 서명값을 산출하는 전자 서명 생성 방법.
  8. 제7항에 있어서,
    상기 전자 서명을 생성하는 단계는,
    상기 복호화된 제3 서명 정보(s)와 상기 추출된 원소 값(ku)을 합산하여 상기 제2 전자 서명값(ku+s)을 산출하는 전자 서명 생성 방법.
  9. 제1항에 있어서,
    집합(
    Figure pat00183
    )에서 임의로 원소 값(ku)을 추출하고, 상기 원소 값을 분해한 제1 원소 값(xu), 제2 원소 값(yu)을 생성하고, 상기 제1 원소 값에 대한 제1 암호문, 사익 제2 원소 값에 대한 제2 암호문을 생성하는 단계;를 더 포함하는 전자 서명 생성 방법.
  10. 전자 장치에 있어서,
    외부장치와 통신하는 통신 장치;
    메시지를 저장하는 메모리; 및
    상기 메시지에 대한 전자 서명을 생성하는 프로세서;를 포함하고,
    상기 프로세서는,
    동형 암호 공개키를 이용하여 제1 서명 정보 및 메시지 각각을 암호화하여 제1 서명 암호문 및 메시지 암호문을 생성하고,
    제2 서명 정보 및 상기 제2 서명 정보에 대응되는 원소 값, 상기 제1 서명 암호문 및 상기 메시지 암호문을 이용하여 생성된 암호화된 제3 서명 정보를 획득하고,
    상기 제1 서명 정보 및 상기 제2 서명 정보를 이용하여 전자 서명을 구성하는 제1 전자 서명값을 산출하고, 상기 암호화된 제3 서명 정보를 복호화하여 상기 전자 서명을 구성하는 제2 전자 서명값을 산출하고, 상기 산출된 제1 전자 서명값 및 상기 제2 전자 서명값을 이용하여 전자 서명을 생성하는 전자 장치.
  11. 제10항에 있어서,
    상기 프로세서는,
    상기 제1 서명 암호문 및 상기 메시지 암호문을 전자 서명을 위한 서명 키를 갖는 외부 장치에 전송하도록 상기 통신 장치를 제어하고,
    상기 통신 장치는, 상기 외부 장치로부터 상기 제2 서명 정보 및 상기 암호화된 제3 서명 정보를 수신하는 전자 장치.
  12. 제11항에 있어서,
    상기 프로세서는,
    상기 제1 서명 정보에 대응되는 제1 서명 검증 정보 및 상기 메시지 암호문에 대한 메시지 검증 정보를 생성하고,
    상기 제1 서명 암호문, 상기 메시지 암호문, 상기 제1 서명 검증 정보 및 상기 메시지 검증 정보를 상기 외부 장치에 전송하도록 상기 통신 장치를 제어하는 전자 장치.
  13. 제11항에 있어서,
    상기 프로세서는, 랜덤값을 추출하고, 추출된 랜덤값을 상기 동형 암호 공개키에 대응되는 동형 암호 비밀키로 암호화하여 비밀키 암호문을 생성하고,
    상기 비밀키 암호문에 대응되는 비밀키 검증 정보를 생성하고,
    상기 비밀키 암호문 및 상기 비밀키 검증 정보도 추가로 전송하도록 상기 통신 장치를 제어하는 전자 장치.
  14. 제13항에 있어서,
    상기 서명 키는 서명 정보, 서명 랜덤값 및 상기 서명 랜덤값을 해시 처리한 해시 값을 포함하고,
    상기 비밀키 암호문은 상기 추출된 랜덤값을 상기 해시 값 및 상기 동형 암호 비밀키로 암호화된 전자 장치.
  15. 전자 서명 생성 방법을 실행하기 위한 프로그램이 저장된 비일시적 컴퓨터 판독가능 기록매체에 있어서,
    상기 전자 서명 생성 방법은,
    동형 암호 공개키를 이용하여 제1 서명 정보 및 메시지 각각을 암호화하여 제1 서명 암호문 및 메시지 암호문을 생성하는 단계;
    제2 서명 정보 및 상기 제2 서명 정보에 대응되는 원소 값, 상기 제1 서명 암호문 및 상기 메시지 암호문을 이용하여 생성된 암호화된 제3 서명 정보를 획득하는 단계; 및
    상기 제1 서명 정보 및 상기 제2 서명 정보를 이용하여 전자 서명을 구성하는 제1 전자 서명값을 산출하고, 상기 암호화된 제3 서명 정보를 복호화하여 상기 전자 서명을 구성하는 제2 전자 서명값을 산출하고, 상기 산출된 제1 전자 서명값 및 상기 제2 전자 서명값을 이용하여 전자 서명을 생성하는 단계;를 포함하는 컴퓨터 판독가능 기록매체.
KR1020230022296A 2022-02-25 2023-02-20 은닉 서명 생성 장치 및 방법 KR20230127905A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/173,309 US20230291573A1 (en) 2022-02-25 2023-02-23 Apparatus for generating blind signature and method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020220025078 2022-02-25
KR20220025078 2022-02-25

Publications (1)

Publication Number Publication Date
KR20230127905A true KR20230127905A (ko) 2023-09-01

Family

ID=87975276

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230022296A KR20230127905A (ko) 2022-02-25 2023-02-20 은닉 서명 생성 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20230127905A (ko)

Similar Documents

Publication Publication Date Title
EP3553995B1 (en) Terminal device for performing homomorphic encryption, server device for processing cipher text thereof, and methods therefor
KR102040120B1 (ko) 근사 암호화된 암호문에 대한 연산을 수행하는 장치 및 방법
US12101415B2 (en) Method of RSA signature or decryption protected using a homomorphic encryption
CN102377564B (zh) 私钥的加密方法及装置
CN110771089A (zh) 提供前向保密性的安全通信
CN108352015A (zh) 用于基于区块链的系统结合钱包管理系统的安全多方防遗失存储和加密密钥转移
US8744078B2 (en) System and method for securing multiple data segments having different lengths using pattern keys having multiple different strengths
EP3318043A1 (en) Mutual authentication of confidential communication
CN113779645B (zh) 一种量子数字签名和量子数字签密方法
CN112738051B (zh) 数据信息加密方法、系统及计算机可读存储介质
JP2006174356A (ja) 擬似公開鍵暗号方法及びシステム
CN108199847B (zh) 数字安全处理方法、计算机设备及存储介质
CN115913672A (zh) 电子档案加密传输方法、系统、终端设备及计算机介质
JP5171787B2 (ja) サインクリプションシステムおよびサインクリプション生成方法
JP2009267900A (ja) 鍵生成装置、証明書生成装置、サービス提供システム、鍵生成方法、証明書生成方法、サービス提供方法およびプログラム
CN115865531A (zh) 一种代理重加密数字资产授权方法
US20230291573A1 (en) Apparatus for generating blind signature and method thereof
CN112737783B (zh) 一种基于sm2椭圆曲线的解密方法及设备
US7436966B2 (en) Secure approach to send data from one system to another
CN116866029B (zh) 随机数加密数据传输方法、装置、计算机设备及存储介质
CN111314059B (zh) 账户权限代理的处理方法、装置、设备及可读存储介质
US20110176677A1 (en) Multi-party variance multiplication device, multi-party variance multiplication system and method
KR20230127905A (ko) 은닉 서명 생성 장치 및 방법
KR102062377B1 (ko) 전자서명을 은닉서명으로 변환하는 암호화 방법
KR101793528B1 (ko) 무인증서 공개키 암호 시스템