KR101675674B1 - 양자 메시지에 대한 양자 서명 장치 - Google Patents

양자 메시지에 대한 양자 서명 장치 Download PDF

Info

Publication number
KR101675674B1
KR101675674B1 KR1020150049090A KR20150049090A KR101675674B1 KR 101675674 B1 KR101675674 B1 KR 101675674B1 KR 1020150049090 A KR1020150049090 A KR 1020150049090A KR 20150049090 A KR20150049090 A KR 20150049090A KR 101675674 B1 KR101675674 B1 KR 101675674B1
Authority
KR
South Korea
Prior art keywords
quantum
signature
message
unit
key
Prior art date
Application number
KR1020150049090A
Other languages
English (en)
Other versions
KR20160120062A (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 KR1020150049090A priority Critical patent/KR101675674B1/ko
Publication of KR20160120062A publication Critical patent/KR20160120062A/ko
Application granted granted Critical
Publication of KR101675674B1 publication Critical patent/KR101675674B1/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0852Quantum cryptography
    • 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/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

Abstract

양자 메시지에 대하여 중재자에 의하지 않는 양자 서명을 수행하는 장치가 제공된다. 공개키 암호 시스템 기반의 알고리즘을 적용한 양자 서명을 하기 위해, 양자 메시지의 속성에 따라 결정된 크기를 가지는 행렬을 임의로 복수 개 선택하여 비밀키를 생성하고, 키 생성 알고리즘에 의해 비밀키의 변수들을 적용하여 공개키를 생성하여, 비밀키에 포함된 행렬 및 양자 메시지를 변형하여 찾은 디코드를 할 수 있는 신드롬을 이용하여 양자 메시지를 변경함으로써 양자 서명을 생성할 수 있다.

Description

양자 메시지에 대한 양자 서명 장치{QUANTUM SIGNATURE APPARATUS FOR QUANTUM MESSAGE}
양자 서명 장치 및 방법에 연관되며, 보다 구체적으로는 양자 메시지에 대하여 중재자에 의하지 않은 양자 서명을 수행하는 장치 및 방법에 연관된다.
양자 서명 기법은 복사 불가능 정리(No-cloning theory)와 불확정성 원리(Uncertainty principle)과 같은 양자 역학의 원리를 이용한 서명 기법이다. 2001년에 메시지가 디지털 데이터인 경우에 대한 양자 서명 프로토콜이 소개되었고, 2002년 메시지가 양자 데이터인 경우에 대한 양자 서명 프로토콜이 소개되었다. 양자 메시지를 만들고 서명을 하고자 할 때, 알려진 양자 메시지(known quantum messages)와 알려지지 않은 양자 메시지(unknown quantum messages)에 대한 서명을 할 수 있는 중재된 양자 서명 기법(arbitrated quantum signature schemes)이 사용될 수 있다. 이 중 알려지지 않은 양자 메시지에 대한 양자 서명이 불가능하다는 것이 증명되었고, 알려진 양자 메시지에 대한 양자 서명 기법들은 양자 서명의 각 검증에서 믿을 만한 중재자(arbitrator)의 도움을 필요로 한다. 이를 중재된 양자 서명 (arbitrated quantum signature; AQS) 이라 한다.
한편, 디지털 서명은 양자 서명과 달리 서명자와 수신자 외에 중재자 도움과 같은 부가적인 요소가 필요하지 않다. 그러므로 중재된 양자 서명에서 중재자의 도움이 서명의 검증 과정에서 필수적인 특징은 실제 중재된 양자 서명을 사용하는 측면에서 상당한 불편을 야기할 수 있다.
한국공개특허공보 제10-2004-0077152호, 2004.09.04 공개.
일측에 따르면, 양자 메시지의 속성에 따라 결정되는 크기를 가지는 행렬을 임의로 복수 개 선택하여 비밀키를 생성하고, 공개키 암호시스템 기반의 키 생성 알고리즘에 상기 비밀키에 포함된 상기 복수 개의 행렬을 적용하여 공개키를 생성하는 키생성부; 상기 비밀키에 포함된 복수 개의 행렬 및 디코드를 위한 신드롬을 이용하여 상기 양자 메시지에 대한 양자 서명을 생성하는 서명부 - 상기 신드롬은 상기 양자 메시지에 대한 측정을 수행한 결과 값에서 추출됨 - 를 포함하는 양자 서명 장치가 제공된다. 일실시예에 따른 양자 서명 장치는, k차원(k는 양의 정수)의 큐비트 메시지를 생성하여 상기 큐비트 메시지를 n 길이(n은 양의 정수)의 큐비트 상태로 암호화하는 인코딩부; 및 상기 양자 메시지, 상기 양자 서명, 에러를 부가하여 메시지 위조를 방지하는 맵 알고리즘 및 양자 상태 비교를 위한 유니타리 연산을 전송하는 통신부를 더 포함할 수 있다.
일실시예예서, 상기 인코딩부는 상기 서명부가 상기 신드롬을 추출하지 못한 경우 상기 k차원의 큐비트 메시지를 새로 생성하고, 상기 서명부는 상기 새로 생성된 큐비트 메시지에 대하여 측정을 수행한 결과 값에서 상기 신드롬을 추출할 수 있다. 또한, 상기 서명부는 상기 신드롬을 이용하여 상기 양자 메시지를 변형함으로써 양자 서명을 생성할 수 있다.
다른 일측에 따르면, 두 개의 암호화된 양자 메시지와 상기 양자 메시지에 대한 양자 서명을 수신하는 수신부; 및 상기 양자 메시지에 대하여 공개키 암호시스템 기반의 키 생성 알고리즘으로 생성된 공개키를 이용하여 상기 양자 서명이 타당한 서명인지 여부를 판단하는 검증부를 포함하는 양자 서명의 검증 장치가 제공된다. 일실시예에서 상기 검증부는 스왑 테스트를 이용하여 수신한 두 개의 양자 메시지 상태가 같지 않은 경우 상기 양자 메시지가 전송 중에 변형되었다고 판단하는 제1 연산부; 및 상기 양자 메시지에 대하여 상기 양자 서명에 포함된 변수를 연산한 제1 결과 값과 상기 양자 서명에 대하여 상기 공개키를 연산한 제2 결과 값을 비교하여 상기 양자 서명이 타당한 서명인지 여부를 판단하는 제2 연산부를 포함하고, 상기 제2 연산부는 상기 제1 결과 값과 상기 제2 결과 값이 동일한 경우 타당한 서명에 해당한다고 판단하고, 그렇지 않은 경우 타당하지 않은 서명에 해당한다고 판단할 수 있다.
도 1은 일실시예에 따른 양자 서명 장치의 블록도이다.
도 2는 일실시예에 따른 양자 서명의 검증 장치의 블록도이다.
도 3은 일실시예에 따른 양자 서명 장치와 양자 서명의 검증 장치간의 관계를 나타낸 것이다.
도 4는 일실시예에 따라 서명자와 수신자가 양자 서명 및 검증을 수행하는 과정을 나타낸 흐름도이다.
도 5는 일실시예에 따라 양자 서명을 수행하는 단계를 나타낸 흐름도이다.
도 6은 일실시예에 따라 양자 서명의 검증을 수행하는 단계를 나타낸 흐름도이다.
이하에서, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 이러한 실시예들에 의해 권리범위가 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
아래 설명에서 사용되는 용어는, 연관되는 기술 분야에서 일반적으로 보편적인 것으로 선택되었으나, 기술의 발달 및/또는 변화, 관례, 기술자의 선호 등에 따라 다른 용어가 있을 수 있다. 따라서, 아래 설명에서 사용되는 용어는 기술적 사상을 한정하는 것으로 이해되어서는 안되며, 실시예들을 설명하기 위한 예시적인 용어로 이해되어야 한다.
또한 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세한 그 의미를 기재할 것이다. 따라서 아래 설명에서 사용되는 용어는 단순한 용어의 명칭이 아닌 그 용어가 가지는 의미와 명세서 전반에 걸친 내용을 토대로 이해되어야 한다.
도 1은 일실시예에 따른 양자 서명 장치의 블록도이다. 양자 서명 장치(100)는 키생성부(110), 인코딩부(120), 서명부(130) 및 통신부(140)를 포함할 수 있다. 공개키 암호시스템 기반의 알고리즘을 양자 서명에 적용하여 공개키/비밀키를 생성하고 비밀키를 이용한 양자 서명을 수행하여 메시지 수신자에게 양자 메시지와 양자 서명을 함께 전송할 수 있다.
먼저, 양자 서명 장치(100) 에서 사용되는 매개 변수들을 정의한다. n, k, d, t 가 각각 양자 메시지의 길이 양자 메시지의 차원, 안정화 코드 Q 의 최소 거리, 보정 가능한 에러의 수라고 할 때, 안정화 코드 (stabilizer code) Q 는 아래 수학식 1을 만족한다.
Figure 112015033974758-pat00001
안정화 코드 Q 의 생성 행렬(generator matrix)를 M=[Mx|Mz] 라 할 때 Mx 와 Mz 는 안정화 제너레이터의 X 와 Z 부분에 대응되는 (n-k)×n 이진 행렬들이다. 한편, 생성 행렬이 k'×n 행렬 G 가 되는 [n,k',d] 이진 가파 코드 (Goppa code) C를 고려한다.
키생성부(110)는 수신자에게 공개하는 공개키와 수신자에게 공개하지 않는 비밀키를 생성한다. 공개키는 비밀키를 이용하여 생성할 수 있으며, 반면에 공개키로부터 비밀키를 생성할 수 없는 것이 특징이다. 키생성부(110)는 양자 메시지의 속성에 따라 결정된 크기를 가지는 행렬을 임의로 복수 개를 선택하여 비밀키를 생성한다. 실시예들에서 사용되는 공개키는 아래 수학식 2와 같고, 비밀키는 수학식 3과 같이 정의할 수 있다.
Figure 112015033974758-pat00002
Figure 112015033974758-pat00003
는 가파 코드 G 에 대하여 키생성부(110)에 의해 결정된 행렬을 이용하여 생성되며, 구체적으로
Figure 112015033974758-pat00004
=S2GP2로 정의할 수 있다.
Figure 112015033974758-pat00005
는 생성행렬을 연산한 것으로
Figure 112015033974758-pat00006
=[S1MxP1|S1MzP1] 으로 정의된 값이다. t는 보정 가능한 에러의 수이다.
Figure 112015033974758-pat00007
G 는 가파 코드이고, M 은 생성 행렬, S는 임의로 선택된 이진 행렬들이고, P는 임의로 선택된 치환 행렬이다.
보다 구체적으로 일실시예에서는, 랜덤한 (n-k)×(n-k) 와 k'×k' 가역의 이진 행렬 S1', S2 와 랜덤한 n×n 치환 행렬 P1', P2 를 각각 선택한다. 여기서, n 은 양자 메시지의 길이, k는 양자 메시지의 차원에 해당한다. 또한, k, n 및 d 는 수학식 1을 만족하기 때문에, k, n, d 는 2t+1 보다 큰 것을 만족하는 Q 에 대하여 Q 의 생성 행렬을 이용한다.
키생성부(110)는 공개키 기반 암호 시스템 기반의 키 생성 알고리즘에 비밀키에 포함된 행렬을 적용하여 공개키를 생성한다. 일실시예에서는 공개키를 생성하기 위해, 행렬 S, P 와 생성행렬 M 을 이용하여 [S1'MxP1'|S1'MzP1']를 계산한 후, 표준 형태로 변환한다. S1''은 S1=S1''S1'을 만족하는 적당한 (n-k)×(n-k) 가역의 이진 행렬이고, P1''는 P1=P1'P1''을 만족하는 적당한 n×n 치환 행렬일 때, [S1''S1'MxP1'P1''|S1''S1'MzP1'P1'']를 계산한다.
Figure 112015033974758-pat00008
=[S1MxP1|S1MzP1] 과
Figure 112015033974758-pat00009
=S2GP2 를 계산한다. 이에 따라서 비밀키를 (G,M,S1,S2,P1,P2) 로 생성하고, 그에 따른 공개키 (
Figure 112015033974758-pat00010
,
Figure 112015033974758-pat00011
, t)를 생성할 수 있다.
인코딩부(120)는 k 차원의 큐비트 메시지
Figure 112015033974758-pat00012
를 생성하고, 큐비트 메시지
Figure 112015033974758-pat00013
를 n 길이의 큐비트 상태
Figure 112015033974758-pat00014
로 암호화한다. k와 n은 양의 정수이며, k는 양자 메시지의 차원을 의미한다. E는
Figure 112015033974758-pat00015
에 대응되는 인코더(encoder)에 해당한다. 따라서 인코딩부(120)는 비밀키에 포함되는 변수들의 연산 결과에 대응되는 인코더 E를 이용하여 양자 메시지에 적용하게 된다.
암호화된
Figure 112015033974758-pat00016
로부터 양자 상태
Figure 112015033974758-pat00017
를 얻는다. 여기서 F는 n 큐비트에서 임의로 선택된 t 큐비트의 각각에 파울리 행렬(Pauli matrices) (X,Y,Z) 중의 하나를 적용하는 맵이다. 맵 알고리즘 F는 양자 서명 시에,
Figure 112015033974758-pat00018
양자 상태에 t 개 이하의 에러를 줌으로써,
Figure 112015033974758-pat00019
양자가 되게 하여
Figure 112015033974758-pat00020
로부터
Figure 112015033974758-pat00021
를 만들어 내지 못하게 하는 역할을 합니다. 즉, F 는 아무나 자신의 서명을 위조할 수 없도록 하는 기능을 한다.
서명부(130)는 비밀키에 포함된 행렬 및 디코드를 위한 신드롬을 이용하여 양자 메시지에 대한 양자 서명을 생성합니다. 이때 신드롬은 양자 메시지에 대한 측정을 수행한 결과 값에서 추출됩니다. 본 명세서에서 "신드롬을 추출한다"는 표현은 "신드롬을 찾는다"는 표현과 병기하여 기술하고자 한다. 확률적으로 모든 양자 상태의 메시지에 대하여 신드롬을 추출할 수 없기 때문이다. 찾아낸 신드롬으로 양자 메시지를 변형함으로써 양자 서명을 생성하게 됩니다. 예시로서, 아래와 같은 방법으로 양자 메시지를 변형하여 양자 서명을 할 수 있습니다.
서명부(130)는
Figure 112015033974758-pat00022
을 사용하여
Figure 112015033974758-pat00023
로부터
Figure 112015033974758-pat00024
를 얻을 수 있다. 여기서
Figure 112015033974758-pat00025
는 양자 상태
Figure 112015033974758-pat00026
에 적용하여
Figure 112015033974758-pat00027
이 되게 하는 유니타리 행렬을 의미한다. 즉 다시 말해서,
Figure 112015033974758-pat00028
Figure 112015033974758-pat00029
을 만족하는 유니타리 행렬을 나타낸다.
그리고
Figure 112015033974758-pat00030
에 의하여
Figure 112015033974758-pat00031
로부터
Figure 112015033974758-pat00032
를 얻는다. 이때 H 는 C 의 패리티 체크 행렬(parity check matrix) 이다.
양자 메시지에 대하여 측정을 수행함으로써 ejP2- 1HT 를 얻고, 가파 코드의 빠른 디코딩 알고리즘을 사용하여 디코드를 할 수 있는 신드롬(syndrome) ej'P2- 1HT 을 찾는다. 서명부(130)가 디코드 할 수 있는 신드롬 ej'P2- 1HT 을 찾지 못한 경우 인코딩부(120)는 k 차원의 큐비트 메시지를 새로 생성하고, 다시 서명부(130)는 새로 생성된 큐비트 메시지에 대하여 측정을 수행하고, 다시 신드롬을 찾는다. 이 과정은 디코드 할 수 있는 신드롬을 찾을 때까지 반복될 수 있다. 이때 양자 메시지에 측정을 수행한다는 것은 양자 메시지를 디지털 메시지로 읽어낸다는 것을 의미한다. 그리고, 디코드 할 수 있는 신드롬을 찾는다는 것은 신드롬 ej'P2- 1HT 의 ej의 해밍 무게가 t보다 클 경우 가파 코드의 디코딩 알고리즘에 의하여 디코딩이 실패할 수 있는데, 이는 임의의 신드롬 값에 대하여 디코딩이 될 확률은 1/(t!)이기 때문이다. 따라서 각각의 신드롬 ej'P2- 1HT 을 계산하여 ej의 해밍 무게가 t 이하가 되는 신드롬 ej'P2- 1HT 을 찾는 것이 디코드 할 수 있는 신드롬을 찾는 것을 의미한다. 이때 해밍 무게는 주어진 비트 스트링에서 0이 아닌 것의 개수를 의미하며, 예를 들어 ej = (0,0,1,0,0,0,1,0,0,1) 인 경우 해밍 무게는 3이 된다.
신드롬을 찾았다면 신드롬 ej'P2- 1HT 을 이용하여
Figure 112015033974758-pat00033
Figure 112015033974758-pat00034
으로 변형하고,
Figure 112015033974758-pat00035
으로부터 양자 서명
Figure 112015033974758-pat00036
을 찾는다.
일실시예들에 따라 생성된 양자 서명의 위조 불가능성을 살펴보고자 한다. 앞서 모든 양자 상태 메시지에 대하여 신드롬을 추출할 수는 없다고 설명한 것과 마찬가지로, 서명 생성에 관하여 디코딩 할 수 있는 신드롬을 찾을 수 있는 확률 P는 다음 수학식 4와 같이 이진 가파 코드 C에 대한 전체 신드롬의 수 Ntotal 와 디코드할 수 있는 신드롬의 수 Ndecoding 사이의 비율로 나타낼 수 있다.
Figure 112015033974758-pat00037
여기서 Ndecoding 는 아래 수학식 5로 계산할 수 있으며, Ntotal은 아래 수학식 6으로 얻을 수 있다.
Figure 112015033974758-pat00038
Figure 112015033974758-pat00039
하나의 서명을 얻기 위한 시도의 횟수는 약 t! 번 이므로, 합리적인 서명을 얻기 위하여, t가 10보다 더 커져서는 안 된다고 가정한다.
GRS (Generalized Reed-Solomon) 코드에 기반을 둔 CSS (Calderbank-Shor-Steane) 코드를 사용하는 양자 맥캘리스 공개키 암호 시스템(Quantum McEliece public-key cryptosystem)의 안정성을 살펴본다. GRS 코드
Figure 112015033974758-pat00040
에 기반을 둔 다음의 매개 변수를 갖는 CSS 코드들
Figure 112015033974758-pat00041
을 구성할 수 있다. 이때 m', N, K 는
Figure 112015033974758-pat00042
을 만족하는 양의 정수들이다. 공개키로부터 비밀키를 얻는 공격은 고전과 양자 맥캘리스 공개키 암호 시스템 상의 디코딩 문제(decoding problem)으로 귀결될 수 있다. ISD(Information set decoding) 은 맥캘리스 공개키 암호 시스템뿐만 아니라 양자 맥캘리스 공개키 암호 시스템 상에 가장 중요하고 본질적인 디코딩 공격 중의 하나이다. ISD의 여러 변형들이 있는데, ISD에 대한 워크 팩터(work factor) 상의 가장 좋은 하한은 Stern 알고리즘의 일반화로부터 유도되는 것이다. 따라서, 일실시예들에 따른 양자 서명이 위조 불가능함을 보이기 위해 Stern 알고리즘을 참조하고자 한다. 일실시예에 따른 워크 팩터 W는 다음 수학식 7로 얻을 수 있다.
Figure 112015033974758-pat00043
아래 표 1은 매개변수 (t, n, k)에 따른 이진 가파 코드에 기반을 둔 맥캘리스 공개키 암호 시스템에 대한 워크 팩터 W 이다.
t n k p l log2W
8 220 1048416 1 16 108.0407075
9 220 1048396 1 15 119.5593639
10 220 1048376 1 15 130.8780270
아래 표 2는 매개변수 (t, n, k)에 따른 GRS 코드에 기반을 둔 양자 맥캘리스 공개키 암호 시스템에 대한 워크 팩터 W 이다.
t n k p l log2W
8 220 1048320 1 16 104.8873775
9 220 1048288 1 16 115.7102969
10 220 1048256 1 15 126.3353820
표 1 과 표 2 에서와 같이 선택된 매개변수에 따라서 워크 팩터 W를 얻을 수 있다. 즉, 표 1 과 표 2 를 통해 비밀키와 공개키 사이에 비가역성의 어려움을 확인할 수 있다. t=8, m=20, m'=16 과 같은 안전한 매개변수들을 선택한 경우, 일실시예에서는 가파 코드 [220, 1048416, d≥17]과 GRS 코드 [220, 1048320, d≥17]에 기반을 둔 CSS 코드 [[220, 1048064, d≥17]]를 만들 수 있다. 이에 따라, 양자 컴퓨터를 이용하더라도 일실시예들에 따른 공개키로부터 비밀키를 찾는 것을 쉽지 않다.
만약 공격자가 어떤 양자 메시지
Figure 112015033974758-pat00044
와 타당한 양자 서명
Figure 112015033974758-pat00045
를 만드는 것을 시도한다면, 공격자는
Figure 112015033974758-pat00046
을 만족하는
Figure 112015033974758-pat00047
을 찾아야 한다.
만약 공격자가 먼저
Figure 112015033974758-pat00048
을 선택한다면 E가 공개되어 있고, t 개의 에러를 갖는 Ff가 랜덤하게 선택되기 때문에
Figure 112015033974758-pat00049
로부터
Figure 112015033974758-pat00050
를 얻는 것은 쉽다. 그러나, 맥캘리스 암호 시스템에 대한 워크 팩터 W를 나타내는 표 2에서 보았듯이
Figure 112015033974758-pat00051
을 만족하는
Figure 112015033974758-pat00052
을 얻는 것은 쉽지 않다. 먼저
Figure 112015033974758-pat00053
을 선택하는 것은 먼저
Figure 112015033974758-pat00054
을 선택하는 경우와 유사하다. 그 경우에, 공격자는
Figure 112015033974758-pat00055
를 만족하는
Figure 112015033974758-pat00056
를 찾아야 한다. 그러나 이것은 양자 맥캘리스 암호 시스템에 대한 워크 팩터 W를 나타내는 표 1에서 볼 수 있듯이 쉽지 않다.
만약
Figure 112015033974758-pat00057
를 만족하는
Figure 112015033974758-pat00058
을 찾는 다면 맥캘리스 암호 시스템을 해독할 수 있으며, 만약
Figure 112015033974758-pat00059
을 만족하는
Figure 112015033974758-pat00060
을 찾는 다면, 양자 맥캘리스 암호 시스템을 해독할 수 있게 된다. 그러나 주어진 워크 팩터에 따른 안전한 매개 변수가 두 개의 표에서 맥캘리스 공개키 암호 시스템으로부터 제안되었기 때문에, 실시예들에서는 표 1 및 표 2에 의해 선택된 매개변수를 사용함으로써 안전성을 얻어 양자 서명의 위조 불가능성을 확보할 수 있다.
통신부(140)는 양자 메시지와 양자 서명을 전송하는데, 에러를 부가하여 메시지 위조를 방지하는 맵 알고리즘 F 와 양자 상태 비교를 위한 유니타리 연산 U 을 함께 전송할 수 있다. 이때 F 는 양자 서명의 검증에 사용되고, U 는 두 개의 양자 상태가 같은지 확인하는데 사용될 수 있다. 구체적으로 F 는 인코딩부(120)에서 상술한 바와 같이 정의되며, U 는
Figure 112015033974758-pat00061
를 만족하는 유니타리 연산 (unitary operator) 이다. 일실시예에서, 통신부(140)는 두 개의 양자 메시지
Figure 112015033974758-pat00062
와 양자 서명
Figure 112015033974758-pat00063
를 메시지를 수신하고자 하는 자에게 보낼 수 있다.
도 2는 일실시예에 따른 양자 서명의 검증 장치의 블록도이다. 양자 서명의 검증 장치(200)는 양자 메시지와 양자 서명을 수신하기 위한 통신부(210), 양자 서명을 검증하기 위한 검증부(220) 및 타당한 서명에 해당하는 경우 양자 메시지를 복호화하는 디코딩부(230)을 포함한다. 검증 장치(200)는 서명자가 전송한 양자 메시지와 양자 서명을 수신하여 공개된 공개키만을 이용하여 스스로 양자 서명이 타당한 서명인지 검증할 수 있다.
통신부(210)는 양자 메시지를 작성하고, 그에 대한 양자 서명을 생성한 서명자로부터 두 개의 양자 메시지
Figure 112015033974758-pat00064
와 양자 서명
Figure 112015033974758-pat00065
를 수신한다. 수신된 양자 서명은 에러를 부가하여 메시지 위조를 방지하는 맵 알고리즘 F 와 양자 상태 비교를 위한 유니타리 연산 U 를 포함할 수 있다.
검증부(220)는 양자 메시지에 대하여 공개키 암호시스템 기반의 키 생성 알고리즘으로 생성된 공개키를 이용하여 수신한 양자 서명이 타당한 서명인지 여부를 판단할 수 있다. 구체적으로 스왑 테스트를 이용하여 수신한 두 개의 양자 메시지 상태가 같지 않은 경우 양자 메시지가 전송 중에 변형되었다고 판단하는 제1 연산부; 및 양자 메시지에 대하여 양자 서명에 포함된 변수를 연산한 제1 결과 값과 양자 서명에 대하여 상기 공개키를 연산한 제2 결과 값을 비교하여 양자 서명이 타당한 서명인지 여부를 판단하는 제2 연산부를 포함한다.
제1 연산부는 수신된 메시지
Figure 112015033974758-pat00066
가 같은지 비교하기 위해 스왑 테스트를 이용한다. 스왑 테스트는
Figure 112015033974758-pat00067
Figure 112015033974758-pat00068
가 주어져 있을 때
Figure 112015033974758-pat00069
Figure 112015033974758-pat00070
가 다르다면 c 번의 스왑 테스트를 사용함으로써 높은 확률로
Figure 112015033974758-pat00071
Figure 112015033974758-pat00072
가 다르다는 것을 구별할 수 있다. 타당성 테스트의 정확성을 높이기 위해서는 양자 메시지
Figure 112015033974758-pat00073
와 서명의 양자 상태 부분
Figure 112015033974758-pat00074
의 복사본에 대한 충분히 많은 수의 c 가 필요하다. 따라서 실시예에서는 두 개의
Figure 112015033974758-pat00075
를 수신하여 스왑테스트를 적용한다. 제1 연산부가 두 개의
Figure 112015033974758-pat00076
에 대하여 스왑 테스트를 적용한 결과, 두 양자 메시지의 상태가 같지 않다면 검증부(220)는 수신한 양자 메시지가 전송 중에 변형되었다고 판단한다. 양자 메시지가 변형된 경우, 양자 서명의 타당성을 판단하지 않을 수 있다. 서명이 타당할 지라도 이미, 양자 메시지가 변형되어 수신한 양자 메시지는 사용할 수 없기 때문이다.
제2 연산부는 양자 메시지에 대하여 수신한 양자 서명에 포함된 변수를 이용하여 제1 결과를 연산한다. 양자 서명에 포함되어 수신된 변수는 에러를 부가하여 위조를 방지하는 맵 알고리즘 F 와 양자 상태 비교를 위한 유니타리 연산 U 가 될 수 있다. 제1 결과를 산출하는 수식은 아래 수학식 8과 같이 정의할 수 있다.
Figure 112015033974758-pat00077
U 는 양자 서명에 포함되어 수신된 유니타리 연산이고, F는 맵 알고리즘, E는 인코더이다. 제2 연산부는 E, F, U 를 사용함으로써 수신된 양자 메시지
Figure 112015033974758-pat00078
로부터 수학식 4 를 통해 제1 결과를 계산할 수 있다.
맵 알고리즘 F 는 n 큐비트에서 임의로 선택된 t 큐비트의 각각에 파울리 행렬(Pauli matrices) (X,Y,Z) 중의 하나를 적용하는 맵이다. 양자 서명 시에,
Figure 112015033974758-pat00079
양자 상태에 t 개 이하의 에러를 줌으로써,
Figure 112015033974758-pat00080
양자가 되게 하여
Figure 112015033974758-pat00081
로부터
Figure 112015033974758-pat00082
를 만들어 내지 못하게 하는 역할을 하여 F 를 알지 못하는 경우 양자 서명을 위조할 수 없도록 하는 기능을 하기 때문에, 검증 장치는 F 를 수신하여 제2 연산부에서 검증 과정에 사용하게 된다.
그리고 제2 연산부는 양자 서명에 대하여 공개키를 연산하여 제2 결과 값을 계산한다. 일실시예에서, 수신된 양자 서명
Figure 112015033974758-pat00083
와 공개키
Figure 112015033974758-pat00084
로부터 수학식 9의 제2 결과 값을 계산한다.
Figure 112015033974758-pat00085
검증부(220)는 제1 결과 값과 제2 결과 값을 비교하여 양자 서명이 타당한 서명인지 여부를 판단할 수 있으며, 이를 구체화한 수식은 수학식 10과 같이 정의할 수 있다.
Figure 112015033974758-pat00086
수학식 10에 따라, 제2 연산부는 제1 결과 값과 제2 결과 값이 동일한 경우 타당한 서명에 해당한다고 판단한다. 그리고 제1 결과 값과 제2 결과 값이 동일하지 않은 경우 타당하지 않은 서명에 해당한다고 판단한다.
제1 연산부에 의해 수신된 양자 메시지가 전송 중에 변형되지 않았음이 확인되고, 제2 연산부에 의해 양자 서명이 타당한 서명에 해당한다는 것을 확인하였으면, 검증부(220)는 결과적으로 수신된 양자 메시지에 대하여 사용자 인증, 양자 메시지의 무결성, 출처의 부인 방지를 확인할 수 있다.
디코딩부(230)는 양자 메시지가 변형되지 않았고, 양자 서명이 타당한 경우 수신한 양자 메시지를 읽기 위하여, 디코딩을 수행함으로써 원시 메시지를 획득한다.
도 3은 일실시예에 따른 양자 서명 장치와 양자 서명의 검증 장치간의 관계를 나타낸 것이다. 서명자는 양자 서명 장치(100)를 이용하여 작성한 양자 메시지에 대한 양자 서명을 수행할 수 있다. 그리고 양자 메시지와 함께 양자 서명을 양자 메시지를 수신하고자 하는 자에게 전송하면, 양자 서명의 검증 장치(200)를 가진 수신자가 이를 수신하여 스스로 양자서명을 검증할 수 있다. 서명자는 양자 서명 장치(100)를 이용하여 비밀키/공개키 기반의 양자 서명을 하기 때문에 공개키를 공개하고, 양자 서명을 전송하기만 하면, 수신자는 양자 서명의 검증 장치(200)를 이용하여 공개키와 수신한 양자 서명만을 이용하여 서명이 타당한지 판단할 수 있다. 중재자에 의한 양자 서명과 달리 일실시예에 따른 양자 서명 및 검증 과정에서는 공개키만을 이용해 중재자의 도움 없이 양자 서명을 검증할 수 있다. 공개키 암호 시스템에서 공개키와 비밀키의 관계는, 즉 비밀키로부터 공개키를 생성하지만 공개키로부터 비밀키를 생성할 수 없는 특징은 일실시예에서도 적용되기 때문에 양자 서명을 수신한 자만이 양자 서명이 타당한지 검증할 수 있고, 임의의 제3 자는 공개키를 알고 있다고 하더라도 양자 서명을 수신하지 못한 경우 해당 서명이 타당한지 검증할 수 없다.
도 4는 일실시예에 따라 서명자와 수신자가 양자 서명 및 검증을 수행하는 과정을 나타낸 흐름도이다. 서명자는 양자 서명 장치(100)를 이용하여, 양자 메시지를 작성하고 그에 대한 양자 서명을 한다. 수신자는 양자 서명의 검증 장치(200)를 이용하여 양자 서명의 타당성을 확인할 수 있다. 도 4의 상세한 설명에서 양자 서명과 검증에 대한 상호 작용의 이해를 돕기 위해 양자 서명 장치(100) 가 하는 기능을 서명자 기준으로 기술하고, 양자 서명의 검증 장치(200) 가 하는 기능을 수신자 기준으로 기술하고자 하며, 양자 서명 장치(100)는 도 1에서 양자 서명의 검증 장치(200)는 도 2에서 기술한 바에 따라 도 4의 일실시예에 적용할 수 있기 때문에 중복되는 내용은 기술하지 않고 대응관계를 중심으로 기술한다.
서명자는 공개키 암호시스템 기반의 알고리즘을 적용하여 양자 메시지의 속성에 따라 결정된 크기를 가지는 행렬을 이용하여 공개키/비밀키를 생성한다(401). 구체적으로 공개키는 수학식 2에 따라서, 비밀키는 수학식 3에 따라서 생성할 수 있다. 서명자는 공개키를 수신자에게 공개한다(402). 다만, 공개키는 서명자만 간직하고 수신자를 포함하여 어느 누구에게나 공개하지 않는다.
양자 메시지에 대하여 k - 큐비트 메시지를 생성하고(403 - 키생성부(110)와 대응되는 구성), n - 큐비트 상태로 인코딩을 한다(404 - 인코딩부(120)와 대응되는 구성). 양자 메시지를 변형한 후, 디코드를 할 수 있는 신드롬을 추출한다(406). 만약 신드롬을 추출하지 못한 경우(406-실패), 다시 k - 큐비트 메시지를 생성하는 단계로 되돌아 간다(403). 신드롬을 추출한 경우(406-성공), 신드롬 및 비밀키를 이용하여 양자 서명을 생성한다(407 - 서명부(130)와 대응되는 구성).
서명자는 양자 메시지와 양자 서명을 수신자에게 전송한다(408 - 통신부(140)와 대응되는 구성). 서명자는 서명하고자 하는 대상인 양자 메시지와 비밀키만을 이용하여 양자 서명을 하고, 수신자에게는 서명 과정에서 공개키만을 공개한다.
한편, 수신자는 양자 메시지와 양자 서명을 수신하여(408 - 통신부(210)와 대응되는 구성) 가장 먼저 양자 메시지에 대하여 스왑 테스트를 적용하여 메시지 변형 여부를 확인한다(409 - 검증부(220)의 제1 연산부와 대응되는 구성). 양자 메시지가 변형되지 않았다면 무결성을 확보할 수 있다. 그리고 수신한 양자 서명과 양자 서명에 포함된 변수들, 공개키를 이용하여 타당한 서명인지 확인한다(410 - 검증부(220)의 제2 연산부와 대응되는 구성). 타당한 서명에 해당하는 경우 수신한 양자 메시지에 대한 디코딩을 수행하여(411 - 디코딩부(230)와 대응되는 구성) 원시 메시지를 획득하여 사용할 수 있다. 이와 같이 수신자는 양자 서명의 검증 장치(200) 만을 이용하여 스스로 양자 서명의 타당성을 검증할 수 있다.
도 5는 일실시예에 따라 양자 서명을 수행하는 단계를 나타낸 흐름도이다. 양자 메시지에 대한 양자 서명을 하기 위해, 먼저 공개키
Figure 112015033974758-pat00087
와 비밀키
Figure 112015033974758-pat00088
를 생성한다(501). 비밀키를 먼저 생성하는데, G는 가파 코드를 나타내고, M은 안정화 코드 Q의 생성 행렬을 나타내며, S1, S2, P1, P2는 양자 메시지의 길이 n, 양자 메시지의 차원 k에 따라 결정된 크기의 랜덤한 행렬이며, t는 보정 가능한 에러의 수이다. [[n,k,d≥2t+1]] 을 만족하는 안정화 코드 Q 에 대하여, Q의 생성 행렬 M은 M=[Mx|Mz]로 구성된다. Mx와 Mz는 안정화 제너레이터에 의해 생성된 X와 Z 부분에 대응되는 (n-k)×n 이진 행렬들이다. 한편, 생성 행렬이 k'×n 행렬 G 가 되는 [n,k',d] 이진 가파 코드 C 를 고려한다.
상기 변수들을 이용하여 공개키를 생성하는데, 행렬 S, P 와 생성행렬 M 에 대하여 [S1'MxP1'|S1'MzP1']를 계산한 후, 표준 형태로 변환한다. S1''은 S1=S1''S1'을 만족하는 적당한 (n-k)×(n-k) 가역의 이진 행렬이고, P1''는 P1=P1'P1''을 만족하는 적당한 n×n 치환 행렬일 때, [S1''S1'MxP1'P1''|S1''S1'MzP1'P1'']를 계산한다. 그리고 공개키를 생성하기 위해
Figure 112015033974758-pat00089
=[S1MxP1|S1MzP1] 과
Figure 112015033974758-pat00090
=S2GP2 를 계산한다.
다음으로 양자 메시지에 대하여 k 차원의 k - 큐비트 메시지
Figure 112015033974758-pat00091
를 생성하고(502), 큐비트 메시지
Figure 112015033974758-pat00092
를 n 길이의 큐비트 상태
Figure 112015033974758-pat00093
로 암호화한다(503). E는
Figure 112015033974758-pat00094
에 대응되는 인코더이다. 인코더는 공개키에 포함되는 변수를 이용하기 때문에 양자 메시지 및 공개키를 알고 있는 자는 암호화된 양자 메시지에 대하여 디코딩을 하여 원시 메시지를 획득할 수 있다.
다음으로 양자 메시지의 변형 과정을 거친다(504). ① 암호화된
Figure 112015033974758-pat00095
로부터 양자 상태
Figure 112015033974758-pat00096
를 얻는다. 이때 F는 n 큐비트에서 임의로 선택된 t 큐비트의 각각에 파울리 행렬 (X,Y,Z) 중의 하나를 적용하는 맵 알고리즘으로, 양자 상태에 t 개의 에러를 부가하여 위조를 방지하기 위함이다. ②
Figure 112015033974758-pat00097
을 사용하여
Figure 112015033974758-pat00098
로부터
Figure 112015033974758-pat00099
를 얻는다. 이때 P2는 비밀키에 포함된 변수이다. ③
Figure 112015033974758-pat00100
에 의하여
Figure 112015033974758-pat00101
로부터
Figure 112015033974758-pat00102
를 얻는다. 이때 H는 가파 코드 C의 패리티 체크 행렬이다.
양자 서명을 생성하기 위하여, 디코드를 할 수 있는 신드롬 ej'P2- 1HT 을 찾는다(505). 신드롬은 가파 코드의 디코딩 알고리즘에 의해 디코딩이 될 수 있는데 ej의 해밍 무게가 t보다 클 경우 디코딩이 가능하고 ej의 해밍 무게가 t보다 작거나 같은 경우 디코딩이 불가능하기 때문에 다시 큐비트 메시지를 생성하여야 한다. 이 경우 디코드 할 수 있는 신드롬을 찾을 수 없는 경우로 다시 502 단계로 돌아가서 양자 메시지에 대한 k- 큐비트 메시지를 새롭게 생성한다. 신드롬을 찾기 위해서 양자 메시지에 대한 측정을 수행하여 ejP2- 1HT 를 먼저 찾는다. ejP2- 1HT 로부터 ej'P2- 1HT 를 찾는다.
신드롬 ej'P2- 1HT 을 찾은 경우 506 단계로 진행한다. 신드폼 ej'P2- 1HT 을 이용하여
Figure 112015033974758-pat00103
Figure 112015033974758-pat00104
으로 변형한다.
Figure 112015033974758-pat00105
으로 부터 양자 서명
Figure 112015033974758-pat00106
을 생성한다.
양자 서명을 생성하였으면, 암호화된 양자 메시지와 양자 서명을 전송하고 양자 서명을 종료한다. 이때는 양자 메시지의 변형을 확인할 수 있게 하기 위해서 두 개 이상의 양자 메시지를 전송하며, F, U 변수를 포함한 양자 서명을 전송할 수 있다.
도 6은 일실시예에 따라 양자 서명의 검증을 수행하는 단계를 나타낸 흐름도이다. 양자 서명의 검증은 중재자 없이 공개된 공개키만을 이용하여 양자 서명의 검증을 할 수 있다.
먼저, 두 개의 양자 메시지에 대하여 스왑 테스트를 수행하여 양자 메시지의 변형 여부를 확인한다(601). 스왑 테스트는 양자 메시지에 대한 동일성 판단을 위한 연산으로, 복수 개의 양자 메시지에 대하여 높은 확률로 동일한지 여부를 판단할 수 있는 것으로 증명된 연산이다. 디지털 메시지와 달리, 메시지를 수신하여도 해당 메시지의 내용을 알기 어렵다. 따라서 동일성 판단을 위해 스왑 테스트를 이용한다.
수신한 두 개의 양자 메시지의 상태가 동일한지 스왑 테스트의 결과에 따라 판단한다(602). 두 개의 양자 상태가 동일하지 않은 경우(602-아니오) 전송 중에 양자 메시지가 변형된 것으로 일실시예에서는 양자 서명의 검증을 하지 않고, 그대로 종료한다. 반면에 두 개의 양자 상태가 동일한 경우(602-예) 양자 서명이 타당한지 확인하기 위해 603 단계로 진행한다.
양자 메시지에 대하여 양자 서명에 포함된 변수 F, U 를 연산하여 제1 결과를 생성한다(603). 제1 결과는 양자 서명에 포함된 맵 알고리즘 F와 유니타리 연산 U를 이용하여
Figure 112015033974758-pat00107
를 계산하여 얻을 수 있다. E는 인코더로 공개키
Figure 112015033974758-pat00108
에 대응되는 것으로 공개키로부터 알 수 있다.
다음으로 양자 서명과 공개키를 이용하여 제2 결과를 생성한다(604). 수신된 양자 서명
Figure 112015033974758-pat00109
과 공개키
Figure 112015033974758-pat00110
를 이용하여
Figure 112015033974758-pat00111
를 계산하여 제2 결과를 생성한다.
제1 결과와 제2 결과를 비교하여 타당한 서명인지 판단한다(605). 제1 결과와 제2 결과가 동일한 경우 양자 서명은 타당한 서명에 해당하고(605-예), 동일하지 않은 경우 양자 서명은 타당하지 않은 서명에 해당하여(605-아니오) 양자 서명의 검증을 종료한다.
타당한 서명이라 판단된 경우, 수신한 양자 메시지를 획득하기 위해 공개키를 이용하여 인코더에 대응되는 디코딩을 수행한다(606).
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
100: 양자서명 장치
110: 키 생성부
120: 인코딩부
130: 서명부
140: 통신부
200: 양자서명의 검증 장치
210: 통신부
220: 검증부
230: 디코딩부

Claims (14)

  1. 양자 메시지의 속성에 따라 결정되는 크기를 가지는 행렬을 임의로 복수 개 선택하여 비밀키를 생성하고, 공개키 암호시스템 기반의 키 생성 알고리즘에 상기 비밀키에 포함된 상기 복수 개의 행렬을 적용하여 공개키를 생성하는 키생성부;
    상기 비밀키에 포함된 상기 복수 개의 행렬 및 디코드를 위한 신드롬을 이용하여 상기 양자 메시지에 대한 양자 서명을 생성하는 서명부 - 상기 신드롬은 상기 양자 메시지에 대한 측정을 수행한 결과 값에서 추출됨 -
    를 포함하고,
    상기 키생성부는 메시지를 수신하고자 하는 자에게 상기 공개키를 공개하고, 상기 비밀키를 공개하지 않는 양자 서명 장치.
  2. 제1항에 있어서,
    k차원(k는 양의 정수)의 큐비트 메시지를 생성하여 상기 큐비트 메시지를 n 길이(n은 양의 정수)의 큐비트 상태로 암호화하는 인코딩부
    를 더 포함하는 양자 서명 장치.
  3. 제2항에 있어서,
    상기 인코딩부는 상기 서명부가 상기 신드롬을 추출하지 못한 경우 상기 k차원의 큐비트 메시지를 새로 생성하는 양자 서명 장치.
  4. 제3항에 있어서,
    상기 서명부는 상기 새로 생성된 큐비트 메시지에 대하여 측정을 수행한 결과 값에서 상기 신드롬을 추출하는 양자 서명 장치.
  5. 삭제
  6. 제2항에 있어서,
    상기 키생성부는,
    상기 k, 상기 n 및 안정화 코드(stabilizer code) Q의 최소 거리가 보정 가능한 에러의 수보다 큰 것을 만족하는 상기 안정화 코드 Q에 대하여, 상기 안정화 코드 Q의 생성 행렬을 포함하여 상기 비밀키를 생성하는 양자 서명 장치.
  7. 제2항에 있어서,
    상기 인코딩부는 상기 비밀키에 포함되는 변수들의 연산 결과에 대응되는 인코더를 상기 양자 메시지에 적용하는 양자 서명 장치.
  8. 제1항에 있어서,
    상기 서명부는 상기 신드롬을 이용하여 상기 양자 메시지를 변형함으로써 양자 서명을 생성하는 양자 서명 장치.
  9. 제1항에 있어서,
    상기 양자 메시지, 상기 양자 서명, 에러를 부가하여 메시지 위조를 방지하는 맵 알고리즘 및 양자 상태 비교를 위한 유니타리 연산을 전송하는 통신부
    를 더 포함하는 양자 서명 장치.
  10. 두 개의 암호화된 양자 메시지와 상기 양자 메시지에 대한 양자 서명을 수신하는 수신부; 및
    상기 양자 메시지에 대하여 공개키 암호시스템 기반의 키 생성 알고리즘으로 생성된 공개키를 이용하여 상기 양자 서명이 타당한 서명인지 여부를 판단하는 검증부
    를 포함하고,
    상기 공개키는 상기 양자 메시지를 전송하는 자에 의해 공개되는 것을 특징으로 하고, 비밀키는 공개되지 않고,
    상기 수신된 양자 서명은 에러를 부가하여 메시지 위조를 방지하는 맵 알고리즘과 양자 상태 비교를 위한 유니타리 연산을 포함하는 양자 서명의 검증 장치.
  11. 제10항에 있어서,
    상기 검증부는,
    스왑 테스트를 이용하여 수신한 두 개의 양자 메시지 상태가 같지 않은 경우 상기 양자 메시지가 전송 중에 변형되었다고 판단하는 제1 연산부; 및
    상기 양자 메시지에 대하여 상기 양자 서명에 포함된 변수를 연산한 제1 결과 값과 상기 양자 서명에 대하여 상기 공개키를 연산한 제2 결과 값을 비교하여 상기 양자 서명이 타당한 서명인지 여부를 판단하는 제2 연산부
    를 포함하는 양자 서명의 검증 장치.
  12. 제11항에 있어서,
    제2 연산부는,
    상기 제1 결과 값과 상기 제2 결과 값이 동일한 경우 타당한 서명에 해당한다고 판단하고, 그렇지 않은 경우 타당하지 않은 서명에 해당한다고 판단하는
    양자 서명의 검증 장치.
  13. 제10항에 있어서,
    상기 양자 메시지에 대하여 디코딩을 수행하여 원시 메시지를 획득하는 디코딩부를 더 포함하는 양자 서명의 검증 장치.
  14. 삭제
KR1020150049090A 2015-04-07 2015-04-07 양자 메시지에 대한 양자 서명 장치 KR101675674B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150049090A KR101675674B1 (ko) 2015-04-07 2015-04-07 양자 메시지에 대한 양자 서명 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150049090A KR101675674B1 (ko) 2015-04-07 2015-04-07 양자 메시지에 대한 양자 서명 장치

Publications (2)

Publication Number Publication Date
KR20160120062A KR20160120062A (ko) 2016-10-17
KR101675674B1 true KR101675674B1 (ko) 2016-11-11

Family

ID=57250188

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150049090A KR101675674B1 (ko) 2015-04-07 2015-04-07 양자 메시지에 대한 양자 서명 장치

Country Status (1)

Country Link
KR (1) KR101675674B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180135780A (ko) 2017-06-13 2018-12-21 한국과학기술연구원 양자서명을 위한 양자 암호화 시스템
US10958439B2 (en) 2018-04-20 2021-03-23 Electronics And Telecommunications Research Institute Apparatus and method for reliable quantum signature

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018093203A1 (ko) 2016-11-18 2018-05-24 서울대학교산학협력단 공개키를 이용하여 암호화하는 연산 장치 및 그 암호화 방법
KR101905689B1 (ko) 2016-11-18 2018-12-05 서울대학교산학협력단 공개키를 이용하여 암호화하는 연산 장치 및 그 암호화 방법
CN107612696B (zh) * 2017-08-21 2021-05-25 北京工业大学 一种量子可否认协议中两种协议单向归约的方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60220083T2 (de) * 2002-09-26 2008-01-10 Mitsubishi Denki K.K. Kryptographische Kommunikationsvorrichtung
KR100505335B1 (ko) 2003-02-28 2005-08-04 한국전자통신연구원 중재자를 이용한 양자 서명 방법
KR20140060022A (ko) * 2012-11-09 2014-05-19 한국전자통신연구원 중재자에 의한 양자 서명 방법 및 이를 이용하는 시스템

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180135780A (ko) 2017-06-13 2018-12-21 한국과학기술연구원 양자서명을 위한 양자 암호화 시스템
KR20190071659A (ko) 2017-06-13 2019-06-24 한국과학기술연구원 양자서명을 위한 양자 암호화 시스템
US10958439B2 (en) 2018-04-20 2021-03-23 Electronics And Telecommunications Research Institute Apparatus and method for reliable quantum signature

Also Published As

Publication number Publication date
KR20160120062A (ko) 2016-10-17

Similar Documents

Publication Publication Date Title
Bösch et al. Efficient helper data key extractor on FPGAs
KR101675674B1 (ko) 양자 메시지에 대한 양자 서명 장치
US8850199B2 (en) Hashing prefix-free values in a signature scheme
JP2007510349A (ja) 物理ランダム関数を共有する信頼できるフォワード秘密鍵のシステム及び方法
JP5510590B2 (ja) 伝送システムと方法ならびにプログラム
KR20140054151A (ko) 크레덴셜 검증
JP5854443B2 (ja) 誤り訂正符号方式を用いて計算環境における資産集合についての識別子を生成する変化許容力を有する方法
EP2991264B1 (en) Encrypted text matching system, method and program
WO2014092183A1 (ja) ビット列照合システムと方法とプログラム
US20160344428A1 (en) Joint encryption and error correction encoding
US9985779B2 (en) Encrypted text matching system, method, and computer readable medium
KR101861591B1 (ko) 생체 코드를 등록 및 인증하는 방법 및 장치
US20190349363A1 (en) Biometric authentication with enhanced biometric data protection
RU2707940C1 (ru) Способ многоуровневого контроля и обеспечения целостности данных
KR102211648B1 (ko) 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치 및 그 동작 방법
US9900146B2 (en) Encrypted text matching system, method, and computer readable medium
JP2017073716A (ja) タグリスト生成装置、タグリスト検証装置、タグリスト更新装置、タグリスト生成方法及びプログラム
JP5469631B2 (ja) 復号結果検証装置、方法及びプログラム
KR20190058884A (ko) 생체 정보 기반의 전자 서명이 가능한 데이터 전송 장치 및 그 동작 방법
CN112613078A (zh) 一种文档电子签名方法、验签方法及其装置
KR102665929B1 (ko) 물리적으로 복제 불가능한 기능의 원격 재등록
CN117240479B (zh) 多方量子签名方法、装置、计算机设备及存储介质
US20230171092A1 (en) System and Method for Secure Detection of Similarity and Dissimilarity of Events
Thanalakshmi et al. A quantum resistant chameleon hashing and signature scheme
US20220171835A1 (en) Linear sketch system, apparatus, authentication method, program, and recording medium

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191001

Year of fee payment: 4