KR20060008885A - 파라미터 생성 장치, 암호 시스템, 복호 시스템, 암호장치, 복호 장치, 암호화 방법, 복호화 방법, 및 그프로그램 - Google Patents

파라미터 생성 장치, 암호 시스템, 복호 시스템, 암호장치, 복호 장치, 암호화 방법, 복호화 방법, 및 그프로그램 Download PDF

Info

Publication number
KR20060008885A
KR20060008885A KR1020057019437A KR20057019437A KR20060008885A KR 20060008885 A KR20060008885 A KR 20060008885A KR 1020057019437 A KR1020057019437 A KR 1020057019437A KR 20057019437 A KR20057019437 A KR 20057019437A KR 20060008885 A KR20060008885 A KR 20060008885A
Authority
KR
South Korea
Prior art keywords
parameter
generating
decryption
encryption
key
Prior art date
Application number
KR1020057019437A
Other languages
English (en)
Other versions
KR101024768B1 (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 마쯔시다덴기산교 가부시키가이샤
Publication of KR20060008885A publication Critical patent/KR20060008885A/ko
Application granted granted Critical
Publication of KR101024768B1 publication Critical patent/KR101024768B1/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/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/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Storage Device Security (AREA)

Abstract

암호 장치와 복호 장치의 사이에 확실하고 안전하게 암호화 통신이 실행될 수 있도록 NTRU 암호 체계에 있어서 복호 에러를 발생하지 않는 파라미터를 생성하는 파라미터 생성장치는 복호 에러를 발생하지 않는 조건을 나타내고, 미리 주어진 에러 조건 정보에 근거하여 복호 에러를 발생하지 않는 임시 파라미터 세트를 생성하는 임시 파라미터 생성부; 및 상기 임시 파라미터 세트를 이용하여 상기 임시 파라미터 세트로부터 계산된 격자 상수에 근거하여, 복호 에러를 발생하지 않는 출력 파라미터를 출력하는 출력 파라미터 생성부를 포함한다.

Description

파라미터 생성 장치, 암호 시스템, 복호 시스템, 암호 장치, 복호 장치, 암호화 방법, 복호화 방법, 및 그 프로그램{PARAMETER GENERATION APPARATUS, ENCRYPTION SYSTEM, DECRYPTION SYSTEM, ENCRYPTION APPARATUS, DECRYPTION APPARATUS, ENCRYPTION METHOD, DECRYPTION METHOD, AND PROGRAM THEREOF}
본 발명은, 정보 보안 기술로서의 암호화 기술에 관한 것으로, 특히, NTRU(NTRU cryptosystems, Inc.의 상표) 암호체계의 파라미터 생성에 관한 것이다.
공개키 암호를 이용한 암호화 통신은 송신 장치와 수신 장치의 사이에 은닉 통신을 실현하는 방법 중 하나이다. 공개키 암호 체계에서, 송신 장치는 수신 장치의 공개키를 이용해 통신 내용을 암호화하여 수신 장치에 송신하고, 수신 장치는 암호화된 내용을 수신해, 그것을 자신의 비밀키로 복호하여 원래의 내용을 얻는다(예를 들면, 문헌 1: 현대 암호, 정보과학의 수학 시리즈, 오카모토 다츠아키, 야마모토 히로스케, 산업도서 1997 참조). 이 방법을 이용하는 일반적인 암호 시스템에서, 복수의 송신 장치 및 수신 장치가 존재한다. 송신 장치는 목적지 수신 장치의 공개키를 우선 취득한다. 이 공개키는, 목적지 수신 장치가 가지는 비밀키와 쌍을 이루고, 암호 시스템에서 공개되어 있다. 그리고, 송신 장치는 통신해야 할 데이터 내용을 상기와 같이 취득한 공개키로 암호화해 송신하는 반면, 수신 장 치는 이 암호화된 통신 데이터를 수신하고, 이 데이터를 자신의 비밀키로 복호하여, 원래의 데이터를 얻는다.
암호화는 송신 장치와 수신 장치의 사이의 은닉 통신을 실현하는 것을 목적으로 하고, 제삼자에 의해 행해진 복호에 대한 안전성을 확보하는 것이 당연히 요구된다. 공개키 암호체계에서, 다음의 두가지 유형의 복호화가 가능하다. 통신 데이터(이후, "평문"이라고 칭한다)는 암호화된 통신 데이터(이후, "암호화문"이라고 칭한다)에 근거하여 복호되고, 암호화문으로부터 평문을 얻기 위해 수신 장치가 비밀로 소지한 비밀키가 복호된다. 일반적으로, 공개키암호에서 제삼자가 이러한 복호을 하는데 충분히 긴 시간이 걸리는 것이 요구되므로(예를 들면, 최신 컴퓨터를 이용해 1000년이 걸린다), 현실적인 시간 내에서 복호할 수 없었다.
1996년, NTRU 암호체계가 고속 처리가 가능한 공개키 암호 시스템으로서 제안되었다(예를 들면, 문헌 2 : Jeffery Hoffstein, Jill Pipher, and Joseph H. Silverman, "NTRU: A ring based public key cryptosystem", Lecture Notes in Computer Science, 1423, pp.267-288, Springer-Verlag, 1998) 참조. NTRU 암호 체계는 문헌 2에 상세하게 기재되어 있으므로, 여기에서 상세한 설명을 하지 않는다. NTRU 암호체계에서, 암호화 및 복호화는 승잉여(power residue) 연산이 특정 자연수 법으로 행해지는 RSA(Rivest Shamir Adleman) 암호화 및 스칼라 승산이 타원 곡선상의 점에서 실시되는 ECC(elliptic-curve cryptography)의 경우에 비해 고속으로 연산 가능한 다항식 연산을 이용하여 실시된다. 그러므로, NTRU 암호체계는 현재의 공개키 암호 시스템의 경우보다 소프트웨어를 이용하여 고속으로 처리하는 것 을 가능하게 한다.
따라서, 공개키 암호로서 NTRU 암호체계를 이용한 암호 시스템은 송신 장치와 수신 장치 사이의 처리가 현재의 공개키 암호체계를 이용한 암호 시스템의 경우보다 고속으로 실시된다는 이점을 가진다.
NTRU 암호체계를 이용해 실제로 암호화 및 복호화를 실시하기 위해서, 음이 아닌 정수 파라미터(N, p, q, df, dg, d)를 이용하는 것이 필요하다(예를 들면, 문헌 2 참조). 현재, 이들 파라미터의 상세한 값이 제시되고 있다(예를 들면, 문헌 5: Joseph H. Silverman, "NTRU Cryptosystems Technical Report #011, Wraps, Gaps, and Lattice Constants", [online], 1999년 1월 21일,[2003년 4월 18일 검색], 인터넷<URL http://www.ntru.com/cryptolab/pdf/NTRUTechO11_v2.pdf>) 참조.
NTRU 암호체계에서, 평문 및 비밀키가 다음의 방법을 이용하여 제삼자에 의해 복호된다: 평문 및 비밀키에 대한 총 검색, LLL(Lenstra, Lenstra and Lovasz) 알고리즘의 이용(예를 들면, 문헌 2 참조). 그러나, 문헌 5에 제시된 파라미터를 이용하면, 복호에 요구되는 시간을 충분히 길게 할 뿐 아니라, NTRU 암호체계를 안전한 방법으로 한다(예를 들면, 문헌 3: Joseph H. Silverman, "NTRU Cryptosystems Technical Report #012, Estimated Breaking Times for NTRU Lattices", [online], 1999년 3월 9일,[2003년 2월 18일 검색], 인터넷<URL http://www.ntru.com/cryptolab/pdf/NTRUTechO12.pdf>, 문헌 4: Joseph H. Silverman, "NTRU Cryptosystems Technical Report #013, Dimension-Reduced Lattices, Zero-Forced Lattices, and the NTRU Public Key Cryptosystem", [online], 1999년 3월 9일, [2003년 2월 18일 검색], 인터넷<URL: http://www.ntru.com/cryptolab/pdf/NTRUTechO13. pdf>, 문헌 5) 참조.
그러나, NTRU 암호 체계에서 암호화문이 공개키로 평문을 암호화해 생성되고, 이러한 암호화문을 유효한 비밀키를 이용해 복호해 복호화문이 생성될 때, 복호화문이 원래의 평문과 일치하지 않는 문제가 있다(예를 들면, 문헌 2 참조). 이러한 비일치를 "복호 에러"라고 칭한다. 복호 에러의 발생 확률은 NTRU 암호 체계의 파라미터에 의거한다(예를 들면, 문헌 5 참조).
문헌 2는 복호 에러의 발생을 회피하도록, 복호 에러에 대해 서술하고 있다. 다음의 다항식을 계산하여 도출된 다항식(p·r ×g + f ×m)의 모든 계수가 ―q/2로부터 q/2의 범위에 있어야 한다: NTRU 암호 체계에서 공개키 다항식(h)을 생성하기 위해 이용되는 랜덤 다항식(g), 난수 다항식(r), 평문 다항식(m), 비밀키 다항식(f). 그러나, NTRU 파라미터가 상기의 방법으로 선택될 때 복호을 실행하기 위해 필요한 시간은 알려져 있지 않고, 복호에 대해서 안전하고 복호 에러를 발생하지 않는 NTRU 파라미터도 여전히 알려져 있지 않다.
상술한 것처럼, 고속 처리가 가능한 NTRU 암호 체계에서, 복호 에러의 발생시, 수신 장치가 송신 장치에 의해 암호화된 평문을 올바르게 얻을 수 없는 경우가 있다. 즉, 송신 장치와 수신 장치의 사이에 확실한 방법으로 암호화 통신이 실행될 수 없다.
말할 필요도 없이, 암호 시스템에서, 평문이 목적지에 올바르게 전달되고, 제삼자에 의한 암호 복호에 대한 안전성이 확실한 것이 중요하다.
그렇지만, 현재의 기술은 복호 에러를 발생하지 않는 NTRU 파라미터를 생성하기 위한 조건을 제시하지만, 이러한 조건은 공식화되어 있지 않으므로, 복호 에러를 발생하지 않는 NTRU 파라미터를 생성하는 것을 곤란하게 한다.
또한, 제삼자에 의한 복호에 대해서 안전하고, 복호 에러를 발생하지 않는 NTRU 파라미터를 생성하기 위한 조건은 아직 알려져 있지 않으므로, 이러한 NTRU 파라미터를 생성할 수 없다. 이것은 암호 장치 및 복호 장치가 안전하고 확실한 방법으로 암호화 통신을 행하는 것을 불가능하게 만든다.
본 발명은 상기의 문제점을 고려하여 고안된 것으로, 본 발명의 제1 목적은 NTRU 암호 체계에 있어서 복호 에러를 발생하지 않는 파라미터를 생성하는 파라미터 생성 장치를 제공하므로, 암호 장치와 복호 장치가 안전하고 확실한 방법으로 암호화 통신을 실시할 수 있게 한다.
본 발명의 제2 목적은 제삼자에 의한 복호에 대해서 안전하고, 복호 에러를 발생하지 않는 NTRU 암호 체계의 파라미터를 생성하는 파라미터 생성 장치를 제공하므로, 암호 장치와 복호 장치가 안전하고 확실한 방법으로 암호화 통신을 실시할 수 있게 한다.
또한, 본 발명의 제3 목적은 상기 파라미터 생성 장치에 의해 생성된 파라미터를 이용하여, 암호 장치와 복호 장치가 안전하고 확실하게 암호화 통신을 할 수 있는 암호 시스템, 암호 장치 및 복호 장치를 제공하는 것이다.
본 발명의 제 1양상에 따른 파라미터 생성장치는 NTRU 암호체계에 있어 복호 에러를 발생하지 않는 파라미터 세트인 출력 파라미터를 생성하는 파라미터 생성 장치이고, 이 파라미터 생성장치는 복호 에러를 발생하지 않는 조건을 나타내고, 미리 주어진 에러 조건 정보에 근거하여, 복호 에러를 발생하지 않는 출력 파라미터를 생성하는 에러 프리(error-free) 출력 파라미터 생성부를 포함한다.
파라미터 생성 장치는 에러 조건 정보에 근거하여, NTRU 암호체계에 있어 복호 에러를 발생하지 않는 파라미터 세트인 출력 파라미터를 출력한다. 따라서, 생성된 출력 파라미터를 이용하여 암호화 및 복호화를 행함으로써 복호 에러는 발생하지 않는다.
바람직하게, 에러 프리 출력 파라미터 생성부는 에러 조건 정보에 의거하여 복호 에러를 발생하지 않는 임시 파라미터 세트를 생성하는 임시 파라미터 생성부; 및 상기 임시 파라미터를 이용하여 상기 임시 파라미터 세트로부터 계산된 격자 상수에 근거하여 출력 파라미터를 생성하는 출력 파라미터 생성부를 포함한다. 또한, 임시 파라미터 생성부는 외부로부터 입력된 NTRU 암호체계에 있어 파라미터 세트인 입력 파라미터와 상기 에러 조건 정보에 근거하여, 복호 에러를 발생하지 않는 임시 파라미터 세트를 생성하는 것이 바람직하다. 또한, 출력 파라미터 생성부는 임시 파라미터 세트를 이용하여, 상기 격자 상수와 관련된 안전성 결정 정보와 제삼자에 의해 실행된 복호화에 대하여 안전성의 레벨을 나타내는 안전성 레벨정보에 근거하여 출력 파라미터를 생성하는 것이 바람직하다.
파라미터 생성장치는 격자 상수와 관련된 안전성 결정 정보가 안전성 레벨 정보를 만족할 수 있는 출력 파라미터를 생성할 수 있다. 따라서, 제삼자에 의한 복호화에 대하여 안전하고, 복호 에러를 발생하지 않는 NTRU 암호체계에 있어 파라미터를 생성하는 파라미터 생성장치를 제공할 수 있다.
바람직하게, 에러 조건 정보는, NTRU 암호체계에 있어서의 음이 아닌 정수(p), 음이 아닌 정수(q), 음이 아닌 정수(d), 및 비밀키 다항식(f)에서 계수의 값이 1이 되는 계수의 수를 규정하기 위한 음이 아닌 정수(df)에 대해서,
2·p·d + 2d·f - 1 < q/2
로서 표현되는 복호 에러를 발생하지 않는 조건식이다.
상기 서술된 것같이, 복호 에러를 발생하지 않는 파라미터를 생성하기 위한 조건을 공식화할 수 있다. 따라서, 복호 에러를 발생하지 않는 파라미터를 쉽게 결정할 수 있게 된다.
본 발명의 다른 양상에 따른 암호 시스템은 NTRU 암호 체계에 따라서 평문을 암호화하여 암호화문을 생성하는 암호 시스템이고, 복호 에러를 발생하지 않는 조건을 나타내고, 미리 주어진 에러 조건 정보에 근거하여, 복호 에러를 발생하지 않는 출력 파라미터를 생성하는 에러 프리 출력 파라미터 생성부; 파라미터 생성장치에 의해 생성된 출력 파라미터에 근거하여 공개키를 생성하는 공개키 생성부; 및 공개키에 근거하여 평문을 암호화하는 암호화부를 포함하는 파라미터 생성장치를 포함한다.
평문은 파라미터 생성장치에 의해 생성된 파라미터로부터 도출된 공개키로 암호화된다. 따라서, 암호 시스템에서, 복호 에러가 없는 암호화문을 생성할 수 있다.
본 발명의 또 다른 양상에 따른 복호 시스템은 NTRU 암호 체계에 따라서 암호화문을 복호화하여 복호화문을 생성하는 복호 시스템이고, 복호 에러를 발생하지 않는 조건을 나타내고, 미리 주어진 에러 조건 정보에 근거하여, 복호 에러를 발생하지 않는 출력 파라미터를 생성하는 에러 프리 출력 파라미터 생성부; 파라미터 생성장치에 의해 생성된 출력 파라미터에 근거하여 비밀키를 생성하는 비밀키 생성부; 및 비밀키에 근거하여 암호화문을 복호화하는 복호화부를 포함하는 파라미터 생성장치를 포함한다.
암호화문은 파라미터 생성장치에 의해 생성된 파라미터로부터 도출된 비밀키로 복호화된다. 따라서, 복호 시스템에서, 복호 에러를 발생하지 않고 암호화문을 복호화할 수 있다.
본 발명의 또 다른 양상에 따른 암호 시스템은 NTRU 암호 체계를 이용하는 암호 시스템이고, NTRU 암호 체계에 있어 복호 에러를 발생하지 않는 파라미터 세트인 출력 파라미터를 생성하여 출력하는 파라미터 생성 장치; NTRU 암호 체계에 있어 암호키 및 복호키를 생성하여 출력하는 키 생성장치; NTRU 암호 체계에 따라 평문을 암호화하여 암호화문을 생성하는 암호 장치; 및 암호화문을 복호화하여 복호화문을 생성하는 복호 장치를 포함하고, 파라미터 생성장치는 복호 에러를 발생하지 않는 조건을 나타내고, 미리 주어진 에러 조건 정보에 근거하여, 복호 에러를 발생하지 않는 임시 파라미터 세트를 생성하는 임시 파라미터 생성부; 및 상기 임시 파라미터 세트를 이용하여, 상기 임시 파라미터 세트로부터 계산된 격자 상수에 근거하여, 출력 파라미터를 생성하고, 생성된 출력 파라미터를 출력하는 출력 파라미터 생성부를 포함하고, 상기 키 생성장치는 파라미터 생성장치로부터 입력된 출력 파라미터를 이용하여 암호키 및 복호키를 생성하고, 생성된 암호키 및 복호키를 출력하는 생성키 출력부를 포함하고, 상기 암호 장치는 파라미터 생성장치로부터 입력된 출력 파라미터와 키 생성장치로부터 입력된 암호키를 이용하여, 평문을 암호화하여 암호화문을 생성하는 암호화부를 포함하고, 복호 장치는 파라미터 생성장치로부터 입력된 출력 파라미터와 키 생성장치로부터 입력된 복호키를 이용하여, 암호화문을 복호화하여 복호화문을 생성하는 복호화부를 포함한다.
파라미터 생성장치는 NTRU 암호 체계에 있어서 복호 에러를 발생하지 않는 파라미터 세트인 출력 파라미터를 생성한다. 키 생성장치는 입력된 생성된 출력 파라미터를 이용하여 암호키 및 복호키를 생성한다. 암호 장치 및 복호 장치는 암호키 및 복호키를 각각 이용하여 암호화 및 복호화를 행한다. 이것은 복호 에러를 발생하지 않는 암호 시스템을 제공할 수 있게 한다.
본 발명은 상기 특징 부들을 포함하는 파라미터 생성장치, 암호 시스템 및 복호 시스템 뿐아니라, 그 단계로서 그 특징 부들을 포함하는 파라미터 생성방법, 암호화 방법, 및 복호화 방법으로서 본 발명을 구체화할 수 있다. 또한, 본 발명은 컴퓨터가 이 단계들을 실행할 수 있게 하는 프로그램으로서 구체화할 수 있다. 이 프로그램은 CD-ROM(Compact Disc-Read Only Memory)과 같은 기록매체와 인터넷과 같은 통신 네트워크를 통하여 분배될 수 있다.
본 발명에 따르면, 암호 장치 및 복호 장치가 암호화 통신을 안전하고 확실하게 행할 수 있도록, 제삼자에 의한 복호화에 대하여 안전하고 어떠한 복호 에러를 발생하지 않는 파라미터 생성장치를 제공할 수 있다.
또한, 본 발명은 상기 파라미터 생성장치 또는 파라미터 변환장치에 의해 생성된 파라미터를 이용하여, 암호 장치 및 복호 장치가 암호화 통신을 안전하고 확실하게 행하는 암호 시스템, 암호 장치 및 복호 장치를 제공할 수 있다.
상기 서술된 것같이, 본 발명은 현재의 기술을 이용하여 구체화될 수 없는 파라미터 생성장치, 암호 시스템, 복호 시스템을 제공할 수 있으므로, 본 발명은 현저히 유용하다.
본 출원에 대한 기술적인 배경에 대한 더 많은 정보로서, 2003년 4월 24일에 출원된 미국 특허 출원 No.2003-119973이 참고로 본 명세서에 포함된다.
본 발명의 상기 및 그 외의 목적, 장점 및 특징은 본 발명의 구체적인 실시예를 나타내는 첨부 도면과 관련되어 이루어진 다음의 설명으로부터 분명해진다.
도 1은 본 발명의 제1 실시예에 따른 파라미터 생성 장치(1)의 구성을 나타내는 도이다.
도 2는 파라미터(N)에 대한 복호 시간(T)의 측정 데이터를 나타내는 도이다.
도 3은 본 발명의 제1 실시예에 따른 식 저장부(110)에 저장되어 있는 식 및 데이터를 설명하는 도이다.
도 4는 본 발명의 제1 실시예에 따른 파라미터 생성 장치(1)에 의해 실행된 처리의 전반부를 나타내는 흐름도이다.
도 5는 본 발명의 제1 실시예에 따른 파라미터 생성 장치(1)에 의해 실행된 처리의 후반부를 나타내는 흐름도이다.
도 6은 본 발명의 제2 실시예에 따른 파라미터 변환 장치(2)의 구성을 나타내는 도이다.
도 7은 본 발명의 제2 실시예에 따른 파라미터 변환 장치(2)에 의해 실행된 처리의 전반부를 나타내는 흐름도이다.
도 8은 본 발명의 제2 실시예에 따른 파라미터 변환 장치(2)에 의해 실행된 처리의 후반부를 나타내는 흐름도이다.
도 9는 안전성 레벨 정보와 그 안전성 레벨에 의해 표시된 안전성 레벨을 달성하는 NTRU 암호 체계에 있어서의 파라미터 세트를 나타내는 도이다.
도 10은 본 발명의 변형예(1)에 따른 식저장부(110)에 저장된 식 및 데이터를 설명하는 도이다.
도 11은 본 발명의 제3 실시예에 따른 암호 시스템(3)의 구성을 나타내는 도이다.
도 12는 본 발명의 제3 실시예에 따른 암호 장치(31)의 구성을 나타내는 도이다.
도 13은 본 발명의 제3 실시예에 따른 복호 장치(32)의 구성을 나타내는 도이다.
도 14는 본 발명의 제3 실시예에 따른 암호 시스템(3)의 동작을 나타내는 흐름도이다.
도 15는 본 발명의 제4 실시예에 따른 암호 시스템(4)의 구성을 나타내는 도 이다.
도 16은 본 발명의 제4 실시예에 따른 암호 장치(41)의 구성을 나타내는 도이다.
도 17은 본 발명의 제4 실시예에 따른 복호 장치(42)의 구성을 나타내는 도이다.
도 18은 본 발명의 제4 실시예에 따른 암호 시스템(4)의 동작을 나타내는 흐름도이다.
이하, 본 발명에 따르는 파라미터 생성 장치 및 파라미터 변환 장치의 실시예들에 대해서 도면을 참조하여 설명한다.
본 발명에 따르는 파라미터 생성 장치 및 파라미터 변환 장치는 NTRU 암호 체계의 파라미터(이후 "NTRU 파라미터"라고 한다)를 취급한다. NTRU 암호 체계는 문헌 2에서 상세히 서술하므로, 여기에서는 간단히 설명한다.
(1) NTRU 파라미터
NTRU 암호 체계는 음이 아닌 정수 파라미터(N, p, q, df, dg, d)를 이용한다. 다음은 문헌 2에서 제시된 NTRU 파라미터의 3가지 예이다: (N, p, q, df, dg, d) = (107, 3, 64, 15, 12, 5); (N, p, q, df, dg, d) = (167, 3, 128, 61, 20, 18); (N, p, q, df, dg, d) = (503, 3, 256, 216, 72, 55).
각각의 파라미터의 의미를 이하에 설명한다.
(i) 파라미터 N
NTRU 암호 체계는 다항식 연산을 행하여 암호화와 복호화를 실시하는 공개키암호 시스템이다. NTRU 암호 체계에서 이용된 다항식의 차원은 파라미터(N)에 의해 결정된다.
NTRU 암호 체계에서 이용된 다항식은 파라미터(N)에 대해 N-1 차원 이하의 정수 계수 다항식이다. 예를 들면 N=5이면, 다항식은 X^4+X^3+1 등이다. 여기서, "X^a"는 X의 a승을 나타낸다. 또, 암호화 또는 복호화에 이용되는, 공개키(h), 비밀키(f), 평문(m), 난수(r), 암호화문(c)은 N-1 차원 이하의 다항식으로 각각 표현된다(이후, 각각 공개키 다항식(h), 비밀키 다항식(f), 평문 다항식(m), 난수 다항식(r), 암호화문 다항식(c)라고 칭한다).
파라미터(N)에 대해 관계식 "X^N=1"을 이용하여, 연산 결과가 항상 N-1 차원 이하의 다항식이 되도록 다항식이 연산된다. 예를 들면, N=5일 때, 다항식과 다항식의 곱을 x, 정수와 다항식의 곱(또는 정수와 정수의 곱)을 "·"으로 하면, 다항식 X^4+X^2+1과 다항식 X^3+X의 곱은, 관계식 "X^5=1"을 이용하여 다음과 같으므로, N-1 차원 이하의 다항식이 된다:
(X^4+X^2+1) x (X^3+X)
=X^7+2·X^5+2·X^3+X
=X^2 x1+2·1+2·X^3+X
=2·X^3+X^2+X+2
(ii) 파라미터 p, q
NTRU 암호 체계는 음이 아닌 정수의 파라미터(p, q)를 이용한다. 문헌 2에 기재된 것같이, 이들 파라미터(p, q)는 서로소가 될 필요가 있다.
(iii) 파라미터 df, dg, d
NTRU 암호 체계에서 취급된 비밀키 다항식(f), 공개키 다항식의 생성시 비밀키 다항식(f)과 함께 이용되는 랜덤 다항식(g) 및 평문을 암호화하기 위해 이용된 난수 다항식(r)의 선택은 각각 파라미터(df, dg, d)에 의거한다.
먼저, 비밀키 다항식(f)은, df개의 계수가 "1"이고, (df-1)개의 계수가 "―1"이고, 다른 계수는 "O"이 되도록 선택된다. 즉, 난수 다항식(f)은 O차원(상수항)으로부터 (N-1) 차원까지의 범위에 있고, N개의 계수를 가지는 (N-1) 차원 이하의 다항식이다. 난수 다항식(f)은, 상기 N개의 계수 중에서 df개의 계수가 "1"이고, (df-1)개의 계수가 "―1"이고, (N-2df+1) 개의 계수가 O이 되도록 선택된다.
한편, 랜덤 다항식(g)은, dg개의 계수가 1이고, dg개의 계수가 "―1"이고, 다른 계수는 "O"이 되도록 선택된다. 또, 난수 다항식(r)은, d개의 계수가 "1"이고, d개의 계수가 "―1"이고, 다른 계수는 "O"이 되도록 선택된다.
(2) NTRU 암호 체계의 복호 에러
NTRU 암호 체계에서, 평문 다항식(m)을 암호화해 암호화된 다항식(c)이 생성되었을 때, 암호화문 다항식(c)을 복호해 얻어 지는 복호화된 다항식(m')이 평문 다항식(m)과 일치하지 않는 것이 가능하다. 이 경우, 복호화시에 평문 다항식(m)이 올바르게 얻어질 수 없다. 이 불일치를 복호 에러라고 한다.
문헌 2은 다음의 다항식을 계산하여 얻어진 다항식(p·r ×g + f ×m)에서 임의의 차수의 계수의 값이 -q/2로부터 q/2의 범위에 들어가지 않았을 때, 복호 에 러가 발생하는 것을 서술하고 있다: 공개키 다항식(h)을 생성하기 위해 이용되는 랜덤 다항식(g), 난수 다항식(r), 평문 다항식(m), 비밀키 다항식(f). 문헌 2에서 제시된 상기 3개의 파라미터의 이용은 문헌 5에 기재된 것같이, 발생 확률이 작지만(10^ (-5) 정도), 복호 에러를 발생한다.
(제1 실시예)
다음은 본 발명의 제1 실시예에 따르는 파라미터 생성 장치를 설명한다.
<파라미터 생성 장치(1)의 개요>
도 1을 참조하여, 파라미터 생성 장치(1)의 개요를 먼저 설명한다.
다음은 파라미터 생성 장치(1)에 미리 주어진다: 특정 파라미터를 갖는 NTRU 암호 체계에 있어 격자 상수(GL), 상기 격자 상수(GL)를 가지는 NTRU 암호 체계에 있어 복호 시간 평가식(EF), 복호 에러를 발생하지 않는 파라미터를 생성하는 조건식(ED), 및 초기 안전성 결정식(IF).
이 파라미터 생성 장치(1)는, 외부에서 입력으로서, NTRU 암호 체계에서 얻어지는 안전성 레벨을 나타내는 안전성 레벨 정보(SLI)를 수신한다. 파라미터 생성 장치(1)는, (i)LLL 알고리즘을 이용한 총 탐색(exhaustive search)과 복호에 의해 복호에 대한 안전성 레벨정보(SLI)로 표시되는 안전성 레벨을 달성하고, (ii) 미리 주어지고 있는, 격자 상수(GL), 복호 시간 평가식(EF), 조건식(ED) 및 초기 안전성 결정식(IF)를 이용하여, 복호 에러를 발생하지 않는 NTRU 암호 체계에 있어서 파라미터 세트(PS)를 생성하고, 이 파라미터 세트(PS)를 외부에 출력하는 장치이다.
이상이 파라미터 생성 장치(1)의 개요이지만, 격자 상수(GL), 복호 시간 평 가식(EF), 조건식(ED), 초기 안전성 결정식(IF)이 어떻게 주어지는지를 설명한 후, 파라미터 생성 장치(1)를 상세히 설명한다.
<격자 상수(GL), 복호 시간 평가식(EF), 조건식(ED)>
여기에서, 격자 상수(GL), 복호 시간 평가식(EF), 복호 에러를 발생하지 않는 파라미터의 조건식(ED)의 상세를 먼저 설명하고, 그것이 어떻게 주어지는지를 이어서 설명한다.
LLL 알고리즘을 이용한 복호에 필요한 복호 시간(T)을 평가하는 NTRU 암호 체계에서의 복호 시간 평가식(EF)은, NTRU 파라미터(df, dg, q)에 의해 결정되고, 파라미터(df, dg, q)로부터 계산된 격자 상수(GL)의 값에 의해 분류된다. 문헌 3은 격자 상수(GL)가 NTRU 파라미터(df, dg, q)로부터 다음과 같이 도출되는 것을 설명한다: GL=(4·pi·e·|f|·|g|/q)^(0.5).
문헌 3은 격자 상수(GL)가 고정되어 있을 때, 이들 파라미터(df, dg, q)를 가지는 NTRU 암호 체계에 있어서, 특정 정수(A, B)가 존재하고, LLL 알고리즘을 이용한 복호을 행하기 위해 필요한 복호 시간(T)이 파라미터(N)에 대해 다음의 복호 시간 평가식(EF)을 만족하는 것을 설명한다:
EF:log (T)≥A·N+B
여기서, "log (T)"는 복호 시간(T)의 자연 대수를 나타낸다. 또, "pi"는 원주율을 나타내고, "e"는 자연대수의 베이스를 나타내고, "|f|"는 비밀키 다항식(f)의 놈(norm)을 나타내고, "|g|"는 랜덤 다항식(g)의 놈을 나타낸다. 더 구체적으로는,
|f|=(2·df-1)^(0.5), 및
|g|=(2·df)^ (0.5)이다.
문헌 3은 상기 설명한 복호 시간 평가식(EF)에서 상수(A, B)가 파라미터(N)의 값이 작을 때 복호 시간(T)을 측정하고, 그 측정된 데이터를 이용해 근사하여 얻어질 수 있는 것을 설명한다.
한편, 문헌 4는, 격자 상수(GL)의 값의 크기가 커지면, LLL 알고리즘을 이용한 NTRU 암호 체계에서 복호이 보다 어려워지는 것을 기재하고 있다. 여기서, 특정 격자 상수(GL1)의 값에 대해, 격자 상수(GL1)의 값을 결정하기 위해 이용되는 파라미터(df, dg, q)를 가지는 NTRU 암호 체계에서 LLL 알고리즘을 이용한 복호을 실행하기 위해 필요한 복호 시간(T)을 평가하는 복호 시간 평가식(EF1)으로서,
EF1:log(T)≥A·N+B(A, B: 상수)
가 주어진다고 가정한다. 이상의 논의에 따르면, 다른 파라미터(df, dg, q)로부터 도출되는 격자 상수(GL)의 값이 상기 격자 상수(GL1)의 값보다 크면, 이러한 다른 파라미터(df, dg, q)를 가지는 NTRU 암호 체계에서 복호을 행하기 위해 필요한 복호 시간(T)은 적어도 상기 복호 시간 평가식(EF1)을 만족하는 것을 알 수 있다.
문헌 2는, NTRU 암호 체계의 복호 처리에서 도출된 다항식(p·r ×g + f ×m)의 모든 계수가 -q/2로부터q/2의 범위에 있으면, 복호이 정확히 실시되고, 복호 에러가 발생하지 않는 것을 기재하고 있다.
먼저, 각각의 파라미터(df, dg, q)의 값이 결정된다. 여기에서, 예를 들면, df=34, dg=34, q=512로 가정한다. 그러면, 격자 상수(GL)의 값이 이들 파라미터(df, dg, q)를 이용하여 도출되고, 이러한 격자 상수(GL)는 미리 식저장부(110)에 제공된다. 상기 예에서, 격자 상수(GL)는 GL=2.12이다.
다음, 파라미터(df, dg, q)를 가지는 NTRU 암호 체계에서 복호을 행하기 위해 필요한 복호 시간(T)을 평가하는 복호 시간 평가식(EF)은 다음과 같이 결정되고, 결정된 복호 시간(T)은 식저장부(11O)에 미리 저장된다.
더욱 구체적으로, 복호 시간 평가식(EF)은, 파라미터(df, dg, q)로부터 결정된 격자 상수(GL) 값이 2.12 이상일 때, LLL 알고리즘을 이용한 NTRU 암호 체계에서 복호을 행하기 위해 필요한 복호 시간(T)을 과소 평가하지 않고 정확히 평가할 수 있는 식이다.
(i) 파라미터(N)가 작은 값을 취할 때 복호 시간(T)의 도출
먼저, 문헌 3에 제시된 방법을 이용하여, LLL 알고리즘을 이용한 경우에 복호 시간(T)의 측정 데이터는, 결정된 파라미터(df, dg, q)에 대해 실험적으로 결정된다. 여기서, 도 2에 나타낸 복호 시간(T)의 각각의 측정 데이터는, 100O MIPS의 처리 속도를 가지는 컴퓨터에 의해 계산되고, 복호 시간(T)의 단위는 초이다. MIPS(Million Instruction Per Second)는 컴퓨터의 처리 능력을 나타내고, 1 MIPS는 컴퓨터가 초당 1OO만 명령을 실행할 수 있는 것을 의미한다. 본 예는 파라미터(N)로서 각각의 70에서 90까지의 값에 대해서 복호 시간을 측정할 수 있었음을 나타낸다.
(ii) 근사에 의한 복호 시간 평가식의 도출
다음, (i)에서 도출된 측정 데이터를 이용해, 다음의 복호 시간 평가식(EF)에서 상수(A, B)가 결정된다:
EF:log (T)=A·N+B.
이들 상수(A, B)는, 예를 들면, X=N, Y=log (T)일 때, Y=A·X+B의 계수(A, B)는 최소 자승법에 의해 결정된다.
여기서, 도 2에 나타낸 복호 시간(T)에 대한 측정 데이터의 경우, 상수(A, B)는, 대략 O.093, -3.8이다.
기본적으로는, 이 방법에 의해 도출된 다음의 복호 시간 평가식(EF)은 식저장부(110)에 제공될 수 있다.
EF:log (T)=O.093N-3.8.
그러나, 이하에 상세하게 기재하는 제1 실시예에서, 복호 시간 평가식(EF)에서 복호 시간(T)의 값은 MIPSyear치로서 취급된다. MIPSyear는 컴퓨터의 수율을 나타내고, 1 MIPSyear는 1 MIPS의 율로 처리할 수 있는 컴퓨터가 연간 취급할 수 있는 처리량이다.
그래서, 상기 도출된 복호 시간 평가식(EF)은 복호 시간(T)이 MIPSyear치로 표시되는 식으로 변형된다. 문헌 3에 기재된 방법에 따르면, MIPSyear치를 나타내는 복호 시간(T)은 복호 시간(T)과 측정 데이터를 계산한 컴퓨터의 처리 능력을 나타내는 값 1OOO MIPS를 승산하고, 그 결과를 1년의 초 수, 31557600 (1년=365.25일)로 나누어서 결정된다.
더 구체적으로, T'=100OT/31557600으로 하고, T'를 상기 복호 시간 평가식 (EF)에 대입하여, 다음의 변형된 복호 시간 평가식(EF)이 결정된다:
EF:long (T')=O.093N-14.2.
변형된 복호 시간 평가식(EF)은 식저장부(110)에 제공된다.
최소 자승법은 주지의 기술이므로, 여기에서 상세한 설명을 생략한다.
다음, 어떻게 조건식이 주어지는가에 대해서 설명한다.
먼저, p=3, dg>d로 한다. 여기서 p의 값은 NTRU 파라미터의 전형적인 값이다.
이 때, 다음의 조건식(ED)은 미리 식저장부(110)에 제공된다:
ED:6·d+2·d·f-1<q/2.
이 조건식은 이론적으로 복호 에러를 발생하지 않는 파라미터를 생성하는 조건식이다.
이하에 그 이유를 설명한다.
먼저, 상술한 것처럼, 다항식 p·r×g + f×m의 모든 계수가, -q/2로부터q/2의 범위에 있으면, 복호 에러는 발생하지 않는다.
여기서, 다항식(r)×g를 취하면, 그 적은, 문헌 2에 기재한 것같이, 다항식(a)의 k차원의 계수는 a (k)로 표시된다:
(r ×g)(k)
=r (O)·g(k)+r (1)·g (k-1)+...
+r(N-1)·g(k-(N-1)(mod N)).
그리고, 난수 다항식(r)은 d개의 계수가 "1"이고, d개의 계수가 "―1"이고, 다른 계수는 "O"인 다항식이다. 또한, 랜덤 다항식(g)은, dg개의 계수가 "1"이고, dg개의 계수가 "―1"이고, 다른 계수는 "O"인 다항식이다.
따라서, 다항식(r×g)의 k차 계수(r×g)(k)의 값은, dg>d이므로, 계수(r×g)(k)는
(r×g)(k)
=1·g(i1)+1·g(i2)+...+1·g(id)
―1·g(j1)-1·g(j2)-...-1·g(jd).
상기와 같이, 계수(r×g)(k)는 d개의 1·g(in) 항(1≤n≤d)과 d개의―1·g(j n) 항(1≤n≤d)으로 표시된다.
따라서, (r×g)(k)는 모든 g(in)이 1(1≤n≤d)이고, 모든 g(jn)이 ―1(1≤n≤d)일 때, 최대치를 취한다. 또한, 이러한 값은 최대 2d이다(최소치는 겨우 ―2d이다.).
여기서, p=3이므로, 상기로부터 다항식(p·r×g + f×m)의 가장 큰 계수의 값은, 최대 3·2 d+2 df-1인 것을 알 수 있다. 또한, 이러한 가장 큰 계수가 q/2 보다 작으면, 다항식(p·r×g + f×m)의 모든 계수는, -q/2로부터q/2의 범위내에 있고, 복호 에러는 발생하지 않는다.
그래서, 이하의 조건식 ED가 도출된다.
ED: 6·d + 2·d·f-1<q/2
상기의 논의에 따르면, 이 조건식이 만족되면, 복호 에러는 이론적으로 발생하지 않는다.
<초기 안전성 결정식 IF>
총 검색에 의한 복호에 대해 안전한 파라미터(df, dg, d)를 선택하기 위해서, 파라미터 생성 장치(1)는, 먼저, 제1 파라미터 생성부(102)에서, 안전성 레벨정보(SLI)에 맞도록 충분히 큰 파라미터(N)를 선택할 필요가 있다(상세는 후술한다).
이 때문에, 여기서 이용되는 초기 안전성 결정식(IF)의 일 예는 문헌 3에 기재된, df=61, dg=20, q=128의 경우에 NTRU 암호 체계에서, LLL 알고리즘을 이용하는 복호에 필요한 복호 시간을 평가하는 평가식이다. 더 구체적으로, 초기 안전성 결정식(IF)은
IF: log (T)=O.2002N-18.884로 표현된다.
이 초기 안전성 결정식(IF)은 식저장부(11O)에 미리 제공된다.
초기 안전성 결정식(IF)은, df=61, dg=20, q=128의 경우에 NTRU 암호 체계에서, LLL 알고리즘을 이용하는 복호에 필요한 복호 시간을 평가하는 평가식인, log (T) =O.2002N-7.608을 T가 MIPSyear치를 나타내도록 변환하여 얻어진 식이다.
다음에, 파라미터 생성 장치(1)에 대해서 상세히 설명한다.
<파라미터 생성 장치(1)의 구성>
도 1에 나타낸 것같이, 파라미터 생성 장치(1)는 입력부(101), 제1 파라미터 생성부(102), 제2 파라미터 생성부(103), 제3 파라미터 생성부(104), 안전성 판정부(105), 안전성 증가부(106), 출력부(107), 제1 파라미터 변경부(108), 제2 파라미터 변경부(109), 및 식저장부(110)로 구성된다. 이들 각각의 구성요소에 대해 이 하에 설명한다.
(1) 입력부(101)
입력부(1O1)는 외부로부터 안전성 레벨 정보(SLI)를 수신하고, 이러한 안전성 레벨 정보(SLI)를 제1 파라미터 생성부(102), 제2 파라미터 생성부(103), 안전성 증가부(106), 및 제2 파라미터 변경부(109)에 출력한다.
여기서, 안전성 레벨 정보(SLI)는, 달성해야 할 암호의 안전성 레벨을 나타내는 정보이며, 예를 들면, 암호의 안전성 레벨은 1024비트 RSA 암호에 상당한 것을 나타낸다. 여기에서, 안전성 레벨 정보(SLI)는 예를 들면 복호 알고리즘에서 실행된 처리량이다. 다음은 SLI가 (1O^12) MIPSyear라고 가정하여 설명한다.
(2) 제1 파라미터 생성부(102)
제1 파라미터 생성부(102)는 입력부(101)로부터 안전성 레벨 정보(SLI)를 수신하여, 식저장부(11O)로부터 초기 안전성 결정식(IF)을 읽어 내어, 안전성 레벨 정보(SLI)에 맞는 충분히 큰, NTRU 암호 체계의 파라미터(N)를 선택한다. 그리고, 파라미터(q)를 p=3, 그 외의 파라미터(q, df, dg, d)의 값을 O으로서 임시적으로 취하고, 제1 파라미터 생성부(102)는 선택된 파라미터(N)을 이용하여 파라미터 세트 PS=(N, p, q, df, dg, d)를 생성해, 제2 파라미터 생성부(103)에 출력한다.
더 구체적으로는, 파라미터(N)는, 초기 안전성 결정식(IF)의 값이 안전성 레벨 정보(SLI)에 의해 표시된 안전성 레벨이 되도록 파라미터(N)가 선택된다.
예를 들면, 안전성 레벨 정보(SLI)가 (10^12) MIPSyear이고, 식 저장부(11O)에 저장되어 있는 초기 안전성 결정식(IF)이
IF:log (T)=O.2202N-18.884로 하면, 안전성 레벨 정보(SLI)가 T에 대입되어 다음 식을 계산하여 N=233이 도출된다:
IF: log (10^12)=O.2002N-18.884.
(3) 제2 파라미터 생성부(103)
제2 파라미터 생성부(103)는 제1 파라미터 생성부(102) 또는 제1 파라미터 변경부(108)로부터 파라미터 세트(PS)를 받고, 입력부(101)로부터 안전성 레벨 정보(SLI)를 받는다. 그리고, 제2 파라미터 생성부(103)는 파라미터 세트(PS)에 포함된 파라미터(N)에 근거해 후술하는 방법을 이용하여 파라미터 후보 세트(DS)를 도출한다. 그리고, 제2 파라미터 생성부(103)는 파라미터(df, dg, d)를 선택하는데 파라미터 후보 세트(DS)의 충분한 요소수가 있는지 판별한다(예를 들면, 요소수가 3이상인지 어떤지). 충분한 요소수가 없으면, 제2 파라미터 생성부(103)는 파라미터 세트(PS)를 제1 파라미터 변경부(108)에 출력한다. 한편, 충분한 요소수가 있으면, 제2 파라미터 생성부(103)는 파라미터 후보 세트(DS)로부터 파라미터(df, dg, d)를 선택한다. 그리고, 이들 파라미터(df, dg, d)를 이용하여, 파라미터 생성부(103)는 파라미터 세트 PS=(N, p, q, df, dg, d)를 생성해, 제3 파라미터 생성부(104)에 출력한다.
이하에, 파라미터 후보 세트(DS)의 도출 방법과 파라미터(df, dg, d)의 선택 방법을 설명한다.
(i) 파라미터 후보 세트(DS)의 도출 방법
제2 파라미터 생성부(103)는 안전성 레벨 정보(SLI)와 파라미터(N)에 대해서 다음의 부등식을 만족하는 파라미터 후보 세트(DS)를 도출한다:
(C(N, k)·C (N-k, k))^ (0.5)≥SLI,
단, 정수 k는 (1≤k≤N).
여기서, "C (a, b)"는 a개의 수치 중에서 b개의 수치를 선택하는 조합의 수를 나타낸다.
파라미터 후보 세트(DS)는 예를 들면 다음과 같은 방법으로 도출된다. 제2 파라미터 생성부(103)는 k=1으로부터 k=N/2까지 오름차순으로 k를 선택하여, 각각의 선택된 k를 상기 부등식의 좌변에 대입한다. 제2 파라미터 생성부(103)는 파라미터 후보세트(DS)의 요소로서 이 부등식을 만족하는 모든 k를 처리한다.
문헌 5에 기재된 것같이, 상기 부등식의 좌변은 dg=k (또는 df=k)일 때, NTRU 암호 체계의 비밀키를 총 탐색으로 복호하기 위해 필요한 복호 시간을 나타내는 반면, d=k일 때, NTRU 암호 체계의 평문을 총 탐색으로 복호하기 위해 필요한 복호 시간을 나타낸다. 즉, 여기에서, 파라미터 후보 세트(DS)중에서 파라미터(df, dg, d)를 선택하여, 평문 및 비밀키를 총 탐색으로 복호하는 복호 시간이 입력부(101)에 입력된 안전성 레벨 정보(SLI)가 나타내는 안전성 레벨을 만족하도록 파라미터 후보 세트(DS)가 도출된다.
(ii) 파라미터(df, dg, d)의 선택 방법
제2 파라미터 생성부(103)는 파라미터 후보 집합(DS)으로부터, dg>d를 만족하는 파라미터(df, dg, d)를 임의로 선택한다. 여기에서, 제2 파라미터 생성부(103)는 파라미터 후보 세트(DS)로부터, df>dg>d를 만족하는 파라미터를 선택하여, 이것을 df, dg, d에 할당한다.
파라미터 후보 세트(DS)는, N이 충분히 큰 값일 때, 파라미터(df, dg, d)를 선택하는데 충분한 요소 수를 포함한다.
SLI=1O^12로 하면, N=10일 때 DS는 요소를 포함하지 않고, N=30일 때 DS={8, 9, 10, 11, 12} (8 ∼ 12의 5개의 정수)인 반면, N=100일 때 DS={4, 5, 6, ..., 50} (4 ∼ 50의 47개의 정수)이다.
(4) 제3 파라미터 생성부(104)
제3 파라미터 생성부(104)는 제2 파라미터 생성부(103)로부터 파라미터 세트(PS)를 받고, 식저장부(110)로부터 복호 에러를 발생하지 않는 파라미터를 생성하는 조건식(ED)을 읽어낸다. 그리고, 제3 파라미터 생성부(104)는 파라미터 세트(PS)에 포함된 파라미터(df, dg, d)에 대해, 조건식(ED)을 만족하고, 2의 멱(冪)이 되는 최소의 파라미터(q)를 파라미터(q)로서 선택한다. 결국, 제3 파라미터 생성부(104)는 선택한 파라미터(q)를 이용하여 파라미터 세트 PS=(N, p, q, df, dg, d)를 새롭게 생성하고, 생성한 파라미터 세트(PS)를 안전성 판정부(105)에 출력한다.
예를 들면, df=50, dg=24, d=16으로 하면, 조건식 ED는
ED: 6d+2df-1<(q/2)이고, q>294가 된다. 512는 이 조건식 q>294 및 q=2^i(i는 자연수)을 만족하는 최소의 q이므로, 파라미터(q)는 q=512로 처리된다. 파라미터(q)가 2의 멱이 되는 이유는, 선택되는 파라미터(p) (p=3)와 파라미터(q)가 서로소가 되기 때문이다. 파라미터(p, q)가 서로소가 되는 것은, 문헌 2에 기재된 것같이, NTRU 파라미터(p, q) 로서의 조건이다.
(5) 안전성 판정부(105)
안전성 판정부(105)는 제3 파라미터 생성부(104) 또는 제2 파라미터 변경부(109)로부터 파라미터 세트(PS)를 받는다. 안전성 판정부(105)는 다음 식으로부터 파라미터 세트(PS)의 파라미터(N, p, q, df, dg)를 가지는 NTRU 암호 체계의 격자 상수(SL)를, 파라미터(df, dg, q)를 이용해 도출한다:
SL : (4·pi·e·|f|·|g|/q)^(0.5).
여기서, "pi"는 원주율, "e"는 자연대수의 베이스, "|f|"=(2df-1)^ (0.5), "|g|"=(2dg)^ (0.5)를 나타낸다.
안전성 판정부(105)는 식저장부(110)로부터 격자 상수(GL)를 읽어내, GL≤SL일 때, 파라미터 세트(PS)를 안전성 증가부(106)에 출력한다. GL>SL이면, 안전성 판정부(105)는 파라미터 세트(PS)를 제2 파라미터 변경부(109)에 출력한다.
(6) 안전성 증가부(106)
안전성 증가부(106)는 안전성 판정부(105)로부터 파라미터 세트(PS)를 받을 뿐아니라, 입력부(1O1)로부터 안전성 레벨 정보(SLI)를 받아, 식저장부(110)로부터 복호 시간 평가식(EF)을 읽어 낸다. 그리고, 안전성 증가부(106)는 파라미터 세트(PS)의 파라미터(N)와 복호 시간 평가식(EF)로부터 NTRU 암호 체계에서 복호을 하기 위해 필요한 복호 시간(T)을 도출한다.
예를 들면, 복호 시간 평가식(EF)을
EF:log (T)=O.0093N-14.2로 하고, N=400이면, 복호 시간(T)은 대략 9.7 ×l0^9이다.
안전성 증가부(106)는 다음이 만족되는지를 판별하여 상기 도출한 복호 시간(T)이, 안전성 레벨 정보(SLI)에 의해 표시된 안전성 레벨을 달성하고 있는지를 판별한다:
T≥SL1.
T<SLI 이면, 복호 시간(T)이 T≥SLI을 만족하도록 파라미터(N)를 증가시키고, 증가시킨 파라미터(N)를 이용하여, 파라미터 세트 PS=(N, p, q, df, dg, d)를 새롭게 생성한다.
예를 들면, 안전성 레벨 정보(SLI)를 복호 시간 평가식(EF)의 T에 대입하여 얻어진 다음 식의 계산을 통해 파라미터(N)를 도출해, 새로운 파라미터 세트(PS)를 생성한다:
EF: log(SLI)=O.040N-6.2.
안전성 증가부(106)는 파라미터 세트(PS)의 파라미터(N)가 소수인지 아닌지를 판정한다. 파라미터(N)가 소수가 아닐 때, 안전성 증가부(106)는 파라미터(N)를 증가시켜서 증가된 파라미터(N)가 소수가 되도록 하고, 이러한 증가된 파라미터(N)를 이용하여, 새로운 파라미터 세트 PS=(N, p, q, df, dg, d)를 생성한다.
예를 들면, PS=(450, 3, 512, 50, 24, 16)의 경우, 파라미터(N)는 N=450을 만족하지만 소수는 아니다. 그러므로, 안전성 증가부(106)는 450을 넘는 소수 중 최소인 451을 파라미터(N)의 새로운 값으로서 이용하여 새로운 파라미터 세트 PS=(451, 3, 512, 50, 24, 16)을 생성한다.
파라미터(N)의 값이 합성수이면, NTRU 암호 체계의 안전성 레벨이 저하하는 것이 알려져 있기 때문에, 이것을 피하기 위해 상기의 처리는 실행되어야 한다. 파라미터(N)이 소수인지 아닌지를 판정하는 방법은 문헌 1에 기재되어 있으므로, 이 방법의 설명은 하지 않는다.
최종적으로, 안전성 증가부(106)는 파라미터 세트(PS)를 출력부(107)에 출력한다.
(7) 출력부(107)
출력부(107)는 안전성 증가부(106)로부터 파라미터 세트(PS)를 받아 외부에 출력한다.
(8) 제1 파라미터 변경부(108)
제1 파라미터 변경부(108)는 제2 파라미터 생성부(103) 또는 제2 파라미터 변경부(109)로부터 파라미터 세트(PS)를 받아, 이 파라미터 세트(PS)의 파라미터(N)를 증가시킨다. 여기에서, 예를 들면 N은 1O만큼 증가된다. 그리고, 제1 파라미터 변경부(108)는 증가된 파라미터(N)를 이용하여 새로운 파라미터 세트 PS= (N, p, q, df, dg, d)를 생성하고, 제2 파라미터 생성부(103)에 출력한다.
(9) 제2 파라미터 변경부(109)
제2 파라미터 변경부(109)는 입력부(101)로부터 안전성 레벨 정보(SLI)를 받을뿐 아니라, 안전성 판정부(105)로부터 파라미터 세트(PS)를 받고, 제2 파라미터 생성부(103)의 경우와 같이, 파라미터 후보 세트(DS)를 생성한다. 제2 파라미터 변경부(109)는 파라미터 세트(PS)의 파라미터(dg)와 파라미터 후보 세트(DS)의 모든 요소의 최대치 M를 비교한다. 만약 dg<M이면, 제2 파라미터 변경부(109)는 파라미 터(dg)를, 파라미터 후보 세트(DS)에 포함된 최대 요소보다 큰 값으로 변경하고, 변경한 파라미터(dg)를 이용하여 새로운 파라미터 세트 PS=(N, p, q, df, dg, d)를 생성하고, 생성된 파라미터 세트(PS)를 안전성 판정부(105)에 출력한다. 한편, dg≥M이면, 제2 파라미터 변경부(109)는 파라미터 세트(PS)를 제1 파라미터 변경부(108)에 출력한다.
(10) 식저장부(110)
도 3에 나타낸 것같이, 식저장부(110)는 미리, 격자 상수(GL), 복호 시간 평가식(EF), 복호 에러를 발생하지 않는 파라미터를 생성하는 조건식(ED), 초기 안전성 결정식(IF)을 저장한다. 여기서, 격자 상수(GL)로서
GL=2.12가 주어진다고 가정하면,
복호 시간 평가식(EF)으로서,
EF: log (T)=0.93N-14.2가 주어지고,
조건식(ED)으로서,
ED: 6d+2df-1<(q/2)가 주어지고,
초기 안전성 결정식(IF)으로서,
IF: log (T)=0.20O2N-18.884가 주어진다고 가정한다.
여기서, 복호 시간 평가식(EF)은 전술했던 대로, 파라미터(df, dg, q)로부터 도출된 격자 상수의 값이 상기 격자 상수(GL)의 값 이상일 때(이 경우는 2.12이상), LLL 알고리즘을 이용한 복호을 행하기 위해 필요한 복호 시간(T)을 적게 추측하지 않고 정확히 평가할 수 있다.
또, 조건식(ED)는, 상기 서술한 것같이, 복호 에러를 발생하지 않는 파라미터에 대한 조건을 나타내는 식이다. 한편, 초기 안전성 결정식(IF)은 , 총 탐색에 의한 복호에 대해 안전한 파라미터(df, dg, d)를 선택하기 위해서, 제1 파라미터 생성부(102)에서, 안전성 레벨 정보(SLI)에 맞는 충분히 큰 값인 파라미터(N)를 선택하기 위해서 이용되는 식이다.
<파라미터 생성 장치(1)의 동작>
도 4 및 5에 나타낸 흐름도를 이용해, 상기 구조의 파라미터 생성 장치(1)의 동작을 설명한다.
파라미터 생성 장치(1)는, 특정 파라미터를 갖는 NTRU 암호 체계의 격자 상수(GL), 그 격자 상수(GL)를 가지는 NTRU 암호 체계의 복호 시간 평가식(EF) 및 복호 에러를 발생하지 않는 파라미터를 생성하는 조건식(ED)이 미리 주어지고, 외부에서 안전성 레벨 정보(SLI)를 입력하면 이하의 처리를 실시한다.
입력부(1O1)가 외부에서 안전성 레벨 정보(SLI)를 받아, 이 안전성 레벨 정보(SLI)를 제1 파라미터 생성부(102), 제2 파라미터 생성부(103), 안전성 증가부(106) 및 제2 파라미터 변경부(109)에 출력한다(단계 S101).
제1 파라미터 생성부(102)는, 입력부(101)로부터 안전성 레벨 정보(SLI)를 받아, 식저장부(110)로부터 초기 안전성 결정식(IF)을 읽어 내고, 안전성 레벨 정보(SLI)에 맞는 충분히 큰 값인, NTRU 암호 체계의 파라미터(N)를 선택한다(단계 S102).
그리고, 선택한 파라미터(N)에 대해, 파라미터 p=3, 그 외의 파라미터(q, df, dg, d)의 값을 임시로 0으로 취하고, 제1 파라미터 생성부(102)는 파라미터 세트 PS=(N, p, q, df, dg, d)를 생성하고, 이 파라미터 세트(PS)를 제2 파라미터 생성부(103)에 출력한다(단계 S103).
제2 파라미터 생성부(103)는 제1 파라미터 생성부(102) 또는 제1 파라미터 변경부(108)로부터 파라미터 세트(PS)를 받고, 입력부(101)로부터 안전성 레벨 정보(SLI)를 받는다(단계 S104).
제2 파라미터 생성부(103)는 파라미터 후보 세트(DS)를 생성한다(단계 S105).
그리고, 제2 파라미터 생성부(103)는 파라미터(df, dg, d)를 선택하는데 충분한 DS의 요소수가 있는지를 판별한다(단계 S106).
충분한 DS의 요소수가 있지 않으면(단계 S106에서 "예"), 제2 파라미터 생성부(103)는 파라미터 세트(PS)를 제1 파라미터 변경부(108)에 출력한다(단계 S107).
제1 파라미터 변경부(108)는 제2 파라미터 생성부(103) 또는 제2 파라미터 변경부(109)로부터 파라미터 세트(PS)를 받고, 이 파라미터 세트(PS)에 포함된 파라미터(N)를 증가시키고, 증가된 파라미터(N)를 이용하여, 새로운 파라미터 세트PS=(N, p, q, df, dg, d)를 생성하고, 생성된 파라미터 세트(PS)를 제2 파라미터 생성부(103)에 출력한다. 그리고, 처리는 단계(S104)로 복귀한다(단계 S108).
충분한 요소수가 있으면(단계 S106에서 "아니오"), 제2 파라미터 생성부(103)는 파라미터 후보 세트(DS)로부터 파라미터(df, dg, d)를 선택한다. 그러면, 선택한 파라미터(df, dg, d)를 이용하여, 제2 파라미터 생성부(103)는 파라미터 세 트 PS=(N, p, q, df, dg, d)를 새롭게 생성하고, 생성된 파라미터 세트(PS)를 제3 파라미터 생성부(104)에 출력한다(단계 S109).
제3 파라미터 생성부(104)는 제2 파라미터 생성부(103)로부터 파라미터 세트(PS)를 받고, 식저장부(110)로부터 복호 에러가 발생하지 않는 파라미터를 생성하는 조건식(ED)을 읽어 낸다(단계 S11O).
그리고, 제3 파라미터 생성부(104)는 파라미터 세트(PS)에 포함된 파라미터(df, dg, d)에 대해, 조건식(ED)을 만족하고, 2의 멱이 되는 최소의 q를 파라미터(q)로서 선택한다. 결국, 제3 파라미터 생성부(104)는 선택한 파라미터(q)를 이용하여, 파라미터 세트 PS=(N, p, q, df, dg, d)를 새롭게 생성하여, 안전성 판정부(105)에 출력한다(단계 S111).
안전성 판정부(105)는, 제3 파라미터 생성부(104) 또는 제2 파라미터 변경부(109)로부터 파라미터 세트(PS)를 받아, 파라미터 세트(PS)의 파라미터(N, p, q, df, dg)를 가지는 NTRU 암호 체계의 격자 상수(SL)를 도출한다(단계 S112).
안전성 판정부(105)는, 식저장부(110)로부터 격자 상수(GL)를 읽어내, GL≤SL가 만족되는지 판별한다(단계 S113).
GL≤SL이면(단계 S113에서 "예"), 안전성 판정부(105)는 파라미터 세트(PS)를 안전성 증가부(106)에 출력한다(단계 S114).
안전성 증가부(106)는 안전성 판정부(105)로부터 파라미터 세트(PS)를 받을 뿐 아니라, 입력부(1O1)로부터 안전성 레벨 정보(SLI)를 받고, 식저장부(110)로 부터 복호 시간 평가식(EF)을 읽어 낸다(단계 S115).
또한, 안전성 증가부(106)는 파라미터 세트(PS)의 파라미터(N)와 복호 시간 평가식(EF)으로부터 NTRU 암호 체계에서 복호을 하는데 필요한 복호 시간(T)을 도출한다(단계 S116).
안전성 증가부(106)는 상기 도출된 복호 시간(T)이 T<SLI을 만족하는지 판별한다(단계 S117).
T<SLI 이면(단계 S117에서 "예"), 안전성 증가부(106)는 복호 시간(T)이 T≥SLI를 만족하도록 파라미터(N)를 증가시키고, 증가된 파라미터(N)를 이용하여 파라미터 세트 PS=(N, p, q, df, dg, d)를 새롭게 생성한다(단계 S118).
T≥SLI 이면(단계 S117에서 "아니오"), 단계 S118의 처리를 행한 후, 안전성 증가부(106)는 파라미터(N)가 소수인지 아닌지를 판별한다(단계 S119).
파라미터(N)가 소수가 아니면(단계 S118에서 "아니오"), 안전성 증가부(106)는, 파라미터(N)가 소수가 되도록, 파라미터(N)를 증가시키고, 이 증가된 파라미터(N)를 이용하여 새로운 파라미터 세트 PS=(N, p, q, df, dg, d)를 생성한다(단계 S120).
파라미터(N)가 소수이면(단계 S119에서 "예"), 파라미터(N)를 소수로 증가시키는 처리(단계 S120) 후, 안전성 증가부(106)는 파라미터 세트(PS)를 출력부(107)에 출력한다(단계 S121).
출력부(107)는 안전성 증가부(106)로부터 파라미터 세트(PS)를 받고, 이 파라미터 세트(PS)를 외부에 출력해 처리를 종료한다(단계 S122).
GS>SL이면(단계 S113에서 "아니오"), 제2 파라미터 변경부(109)는 입력부 (101)로부터 안전성 레벨 정보(SLI)를 받고, 안전성 판정부(105)로부터 파라미터 세트(PS)를 받아, 파라미터 후보 세트(DS)를 생성한다(단계 S123).
제2 파라미터 변경부(109)는 파라미터 세트(PS)의 파라미터(dg)와 파라미터 후보 세트(DS)의 모든 요소의 최대치(M)를 비교한다(단계 S124).
만약 dg<M이면(단계 S124에서 "예"), 제2 파라미터 변경부(109)는 파라미터(dg)를 파라미터 후보 세트(DS)에 포함된 최대 요소 보다 큰 값으로 변경하고, 변경한 파라미터(dg)를 이용하여, 새로운 파라미터 세트 PS=(N, p, q, df, dg, d)를 생성하고, 생성한 파라미터 세트(PS)를 안전성 판정부(105)에 출력한다(단계 S125). 그 다음, 처리는 단계 S112로 진행한다.
만약 dg≥M이면(단계 S124에서 "아니오"), 제2 파라미터 변경부(109)는 파라미터 세트(PS)를 제1 파라미터 변경부(108)에 출력한다(단계 S126). 그 다음, 처리는 단계 S108로 진행한다.
<파라미터 생성 장치(1)의 동작 검증>
다음은 제1 실시예에 따른 파라미터 생성 장치(1)의 전체의 동작을 설명한다.
먼저, 제1 파라미터 생성장치(102)가, 안전성 레벨 정보(SLI)에 맞는 충분히 큰 파라미터(N)를 선택한다(단계 S102).
다음에, 제2 파라미터 생성부(1O3)는 안전성 레벨 정보(SLI)로 표시된 안전성 레벨을 얻을 수 있는 파라미터 후보 세트로서 파라미터 후보 세트(DS)를 생성한다(단계 S109). 또한, 제2 파라미터 생성부(1O3)는 파라미터 후보 세트(DS)의 요소 로부터, 안전성 레벨 정보(SLI)로 표시된 안전성 레벨을 달성하는 파라미터(df, dg, d)를 선택한다(단계 S109).
파라미터 후보 세트(DS)에 충분한 요소수가 없을 때, 제1 파라미터 변경부(108)는 파라미터(N)를 증가시킨다(단계 S108). 일반적으로, 상술한 것처럼, 파라미터(N)의 값이 증가하면서 파라미터 후보 세트(DS)의 요소수도 커지므로, 반드시 파라미터(df, dg, d)를 선택할 수 있다.
그리고, 복호 에러를 발생하지 않는 파라미터를 생성하는 조건식(ED)을 만족하는 파라미터(q)를 선택하는 제3 파라미터 생성부(104)에 의해, 파라미터 세트 PS=(N, p, q, df, dg, d)의 값이 결정된다(단계 S111).
조건식(ED)을 만족하는 값이 파라미터(q)의 값으로 여기서 선택되면, 이 선택된 값은 일반적으로 문헌 2 및 문헌 3에 기재된 NTRU 암호 체계의 파라미터(q) 보다 커진다. 즉, 격자 상수(GL)의 값이 작아지므로, 동일한 정도의 크기의 파라미터(df, dg, d)를 이용하는 문헌 2 및 문헌 3에 기재된 NTRU 암호 체계와 비교하여, LLL 알고리즘을 이용하는 복호에 대하여 낮은 안전성 레벨(짧은 복호 시간)일 가능성이 있다.
이에 대해서, 미리 저장되어 있는 격자 상수(GL)에 근거해, 안전성 판정부(105)는, 생성된 파라미터 세트(PS)를 가지는 NTRU 암호 체계에서 복호을 하기 위해 필요한 시간을, 이 미리 저장된 격자 상수(GL)와 관련된 복호 시간 평가식(EF)을 이용하여 평가할 수 있는지를 판정한다(단계 S113). 가능하면, 안전성 증가부(106)는 안전성 레벨 정보(SLI)로 표시되는 안전성 레벨이 달성되도록 파라미터(N) 를 증가시킨다.
NTRU 암호 체계에서 복호 시간이 미리 저장된 격자 상수(GL)에 근거한 복호 시간 평가식(EF)으로 평가될 수 있다고 판정될 때, 제2 파라미터 변경부(109)는, 파라미터(dg)의 값을 증가시킴으로써(단계 S125), 이 파라미터를 가지는 NTRU 암호 체계의 격자 상수의 값을 크게 하여, 복호 시간이 복호 시간 평가식(EF)으로 평가될 수 있도록 한다. 복호 시간 평가식(EF)이 복호 시간을 평가하기 위해 이용될 수 없으면, 제1 파라미터 변경부(108)는 파라미터(N)를 증가시켜(단계 S108), 파라미터(df, dg, d, q)를 다시 한번 생성하도록 한다.
여기서, 파라미터(N)가 큰 값을 취하면, 파라미터 후보 세트(DS)는 일반적으로 큰 수의 요소를 가지게 된다. 따라서, 단계 S109에서, 파라미터(df, dg, d)가 다시 선택될 때, 다른 파라미터(df, d)의 값을 바꾸지 않고, 파라미터(dg)만이 큰 값을 가지는 것이 필요하다. 파라미터(dg)의 값이, 복호 에러 발생의 조건식에 영향을 주지 않으므로, 복호 에러 프리 통신이 보증된 채로, 격자 상수(GL)의 값을 증가시킴으로써, 복호 시간 평가식(EF)을 이용하여 복호 시간을 평가하는 것이 가능해진다.
상기 서술된 것같이, 본 발명은 제한된 횟수 동안 처리를 반복하여 다음의 특징을 가지는 NTRU 암호 체계에 있어 파라미터 세트(PS)를 생성하는 것을 가능하게 한다: 총 탐색에 의한 복호과 LLL 알고리즘을 이용하는 복호에 대해 안전성을 확보하는 입력된 안전성 레벨 정보(SLI)에 의해 표시된 안전성을 달성하는 파라미터 세트(PS); 및 복호 에러를 발생하지 않는 파라미터 세트(PS).
<제1 실시예에 의해 얻어지는 효과>
현재의 기술은 파라미터를 생성하는 조건이 알려져 있지 않으므로, 제삼자에 의한 암호 복호에 대해서 안전하고, 복호 에러를 발생하지 않는 NTRU 파라미터를 생성할 수 없다. 이 때문에, 암호 장치와 복호 장치가 안전하고 확실하게 암호화 통신을 할 수 없다.
그러나, 상기 서술한 것같이, 본 발명에 따르는 파라미터 생성 장치는, 이론적으로 복호 에러를 발생하지 않는 파라미터(q)를 결정하고, 입력된 안전성 레벨을 달성하는 파라미터(N)를 결정하므로, 안전성을 확보하고, 이론적으로 복호 에러를 발생하지 않는 NTRU 파라미터를 생성할 수 있게 된다.
(제2 실시예)
다음은 본 발명의 제2 실시예에 따르는 파라미터 변환 장치(2)를, 제1 실시예에 따르는 파라미터 생성장치(1)와의 차이점에 주로 집중하여 설명한다.
<파라미터 변환 장치(2)의 개요>
도 6을 참조하여, 본 실시예의 개요를 우선 설명한다.
이 파라미터 변환 장치(2)는 제1 실시예에 따른 파라미터 생성 장치(1)의 변형으로서 파라미터 변환 장치이다. 파라미터 생성 장치(1)와의 차이점은 파라미터 변환 장치(2)가, NTRU 암호 체계의 파라미터 세트(IPS)를 입력으로 했을 때, 이것을 (i)총 탐색에 의한 복호과 LLL 알고리즘을 이용하는 복호에 대해 안정성을 확보하는 입력된 안전성 레벨 정보(SLI)를 달성하고, (ii)복호 에러를 발생하지 않는 NTRU 암호 체계의 파라미터 세트(PS)로 변환한 후, 이 파라미터 세트(IPS)를 출력 하는 것이다.
제1 실시예에 따른 파라미터 생성 장치(1)의 경우와 같이, 파라미터 변환 장치(2)는 특정 파라미터를 갖는 NTRU 암호 체계의 격자 상수(GL), 상기 격자 상수(GL)를 가지는 NTRU 암호 체계의 복호 시간 평가식(EF) 및 복호 에러를 발생하지 않는 파라미터를 생성하는 조건식(ED)이 미리 주어진다.
<파라미터 변환 장치(2)의 구성>
도 6에 나타낸 것같이, 파라미터 변환 장치(2)는 입력부(101b), 제2 파라미터 생성부(103b), 제3 파라미터 생성부(104b), 안전성 판정부(105), 안전성 증가부(106), 출력부(107), 제1 파라미터 변경부(108), 제2 파라미터 변경부(109) 및 식저장부(110)로 구성된다.
파라미터 변환 장치(2)는 다음의 사항이 제1 실시예에 따른 파라미터 생성 장치(1)와 다르다: 입력부(101b)가 다르고, 제1 파라미터 생성부가 존재하지 않고, 제2 파라미터 생성부(103b)의 입출력이 다르고, 제3 파라미터 생성부(104b)의 입출력이 다르다.
다음은 파라미터 생성 장치(1)와의 차이점에 집중하여 파라미터 변환 장치(2)를 설명한다.
(1) 입력부(101b)
입력부(1O1b)는, 외부로부터 안전성 레벨 정보(SLI)와 NTRU 암호 체계의 파라미터세트(IPS)를 받고, 이 안전성 레벨정보(SLI)를 제2 파라미터 생성부(103b) 및 제2 파라미터 변경부(109)에 출력한다. 또한, 입력부(1O1b)는 파라미터세트(IPS)를 파라미터 세트(PS)로서 제3 파라미터 생성부(104b)에 출력한다.
(2) 제2 파라미터 생성부(103b)
제2 파라미터 생성부(103b)는 제1 파라미터 변경부(108)로부터 파라미터 세트(PS)를 받고, 입력부(1O1b)로부터 안전성 레벨 정보(SLI)를 받는다. 그리고, 제2 파라미터 생성부(103b)는 제2 파라미터 생성부(103)와 같은 방법으로, 파라미터 후보 세트(DS)를 생성한다. 그리고, 제2 파라미터 생성부(103b)는 제2 파라미터 생성부(103)와 같은 방법으로, 파라미터(df, dg, d)를 선택하는데 충분한 파라미터 후보 세트(DS)의 요소수가 있는지(예를 들면, 요소수가 3이상인지)를 판별한다. 충분한 요소수가 없으면, 제2 파라미터 생성부(103b)는 파라미터 세트(PS)를 제1 파라미터 변경부(108)에 출력한다. 한편, 충분한 요소수가 있으면, 제2 파라미터 생성부(103b)는 파라미터 후보 세트(DS)로부터 파라미터(df, dg, d)를 선택한다. 그리고, 선택된 파라미터(df, dg, d)를 이용하여, 제2 파라미터 생성부(103b)는 파라미터 세트 PS=(N, p, q, df, dg, d)를 새롭게 생성하여, 제3 파라미터 생성부(104b)에 출력한다.
(3) 제3 파라미터 생성부(104b)
제3 파라미터 생성부(104b)는 입력부(101b) 또는 제2 파라미터 생성부(103b)로부터 파라미터 세트(PS)를 받아, 식저장부(110)로부터 복호 에러를 발생하지 않는 파라미터의 조건식(ED)을 읽어낸다. 그리고, 제3 파라미터 생성부(104b)는 제3 파라미터 생성부(104)와 같은 방법으로, 파라미터 세트(PS)에 포함된 파라미터(df, dg, d)에 대해 조건식(ED)을 만족하고, 2의 멱이 되는 최소의 파라미터(q)를 파라미터(q)로서 선택한다. 결국, 제3 파라미터 생성부(104b)는 선택한 파라미터(q)를 이용하여, 파라미터 세트 PS=(N, p, q, df, dg, d)를 새롭게 생성하고, 생성된 파라미터 세트(PS)를 안전성 판정부(105)에 출력한다.
<파라미터 변환 장치(2)의 동작>
도 7, 도 8에 나타낸 흐름도를 참조해, 상기 구조의 파라미터 변환 장치(2)의 동작을 설명한다.
파라미터 변환 장치(2)는, 제1 실시예에 의한 파라미터 생성 장치(1)의 경우와 같이, 특정 파라미터를 가지는 NTRU 암호 체계의 격자 상수(GL), 그 격자 상수(GL)를 가지는 NTRU 암호 체계의 복호 시간 평가식(EF), 및 복호 에러를 발생하지 않는 파라미터를 생성하는 조건식(ED)이 미리 주어진다. 파라미터 변환 장치(2)는 외부로부터 안전성 레벨 정보(SLI) 및 파라미터 세트(IPS)를 입력하면, 다음의 동작을 실행한다.
입력부(1O1b)는 외부로부터 안전성 레벨 정보(SLI)와 NTRU 암호 체계의 파라미터세트(IPS)를 받고, 이 안전성 레벨 정보(SLI)를 제2 파라미터 생성부(103b), 안전성 증가부(106) 및 제2 파라미터 변경부(109)로 출력한다. 또한, 입력부(1O1b)는 파라미터세트(IPS)를 파라미터 세트(PS)로서 제3 파라미터 생성부(104b)에 출력하고, 단계(S210)로 처리를 진행시킨다(단계 S201).
제2 파라미터 생성부(103b)는 제1 파라미터 변경부(108)로부터 파라미터 세트(PS)를 받고, 입력부(1O1)로부터 안전성 레벨 정보(SLI)를 받는다(단계 S204).
제2 파라미터 생성부(103b)는 파라미터 후보 세트(DS)를 생성한다(단계 S205).
제2 파라미터 생성부(103b)는, 파라미터(df, dg, d)를 선택하기 위한 충분한 파라미터 후보 세트(DS)의 요소수가 있는지 판별한다.
파라미터 후보 세트(DS)가 충분한 요소수를 포함하면, 제2 파라미터 생성부(103b)는 파라미터 세트(PS)를 제1 파라미터 변경부(108)에 출력한다(단계 S207).
제1 파라미터 변경부(108)는 제2 파라미터 생성부(103b) 또는 제2 파라미터 변경부(109)로부터 파라미터 세트(PS)를 받고, 이 파라미터 세트(PS)의 파라미터(N)를 증가시키고, 증가한 파라미터(N)를 이용하여 새로운 파라미터 세트 PS=(N, p, q, df, dg, d)를 생성하고, 생성된 파라미터 세트(PS)를 제2 파라미터 생성부(103b)에 출력한다. 그리고, 처리는 단계(S204)로 복귀된다(단계 S208).
충분한 DS의 요소수가 있지 않으면(단계 S206에서 "아니오"), 제2 파라미터 생성부(103b)는 파라미터 후보 세트(DS)의 요소로부터 파라미터(df, dg, d)를 선택한다. 그리고, 선택한 파라미터(df, dg, d)를 이용하여, 제2 파라미터 생성부(103b)는 파라미터 세트 PS=(N, p, q, df, dg, d)를 새롭게 생성하고, 제3 파라미터 생성부(104b)에 출력한다(단계 S209).
제3 파라미터 생성부(104b)는 입력부(101b)로부터 파라미터 세트(PS)를 받고, 식저장부(110)로부터 복호 에러를 발생하지 않는 파라미터를 생성하는 조건식(ED)을 읽어낸다(단계 S210).
그리고, 제3 파라미터 생성부(104b)는 파라미터 세트(PS)의 파라미터(df, dg, d)에 대해 조건식(ED)을 만족하고, 2의 멱이 되는 최소의 파라미터(q)를 파라미터(q)로서 선택한다. 결국, 제3 파라미터 생성부(104b)는 선택한 파라미터(q)를 이용하여 파라미터 세트 PS=(N, p, q, df, dg, d)를 새롭게 생성하고, 생성한 파라미터 세트(PS)를 안전성 판정부(105)에 출력한다(단계 S211).
안전성 판정부(105)는 제3 파라미터 생성부(104b) 또는 제2 파라미터 변경부(109)로부터 파라미터 세트(PS)를 받고, 파라미터 세트(PS)의 파라미터(N, p, q, df, dg)를 가지는 NTRU 암호 체계의 격자 상수(SL)를 도출한다(단계 S212).
안전성 판정부(105)는 식저장부(110)로부터 격자 상수(GL)를 읽어내고, GL≤SL이 만족되는지 판별한다(단계 S213).
GL≤SL이면(단계 S213에서 "예"), 안전성 판정부(105)는 파라미터 세트(PS)를 안전성 증가부(106)에 출력한다(단계 S214).
안전성 증가부(106)는 안전성 판정부(105)로부터 파라미터 세트(PS)를 받고, 입력부(1O1b)로부터 안전성 레벨 정보(SLI)를 받아서, 식저장부(110)에서 복호 시간 평가식(EF)을 읽어낸다(단계 S215).
그리고, 안전성 증가부(106)는 파라미터 세트(PS)의 파라미터(N)와 복호 시간 평가식(EF)으로부터 NTRU 암호 체계에서 복호을 실행하기 위해 필요한 복호 시간(T)을 도출한다(단계 S216).
안전성 증가부(106)는 상기 도출한 복호 시간(T)이 T<SLI를 만족하는지 판별한다(단계 S217).
T<SLI이면(단계 S217에서 "예"), 안전성 증가부(106)는 복호 시간(T)이 T≥ SLI를 만족하도록 파라미터(N)를 증가시키고, 증가시킨 파라미터(N)를 이용하여 파라미터 세트 PS=(N, p, q, df, dg, d)를 새롭게 생성한다(단계 S218).
T≥SLI이면(단계 S217에서 "아니오"), 단계 S218의 처리를 행한 후, 안전성 증가부(106)는 파라미터(N)가 소수인지 판별한다(단계 S219).
파라미터(N)가 소수가 아니면(단계 S219에서 "아니오"), 안전성 증가부(106)는 파라미터(N)를 증가시키고, 이 증가한 파라미터(N)가 소수가 되도록 하고, 이 증가한 파라미터(N)를 이용하여 새로운 파라미터 세트 PS=(N, p, q, df, dg, d)를 생성한다(단계 S220).
파라미터(N)가 소수이면(단계 S219에서 "예"), 안전성 증가부(106)는, 파라미터(N)를 소수로 만드는 처리(단계 S220)를 행한 후, 파라미터 세트(PS)를 출력부(107)에 출력한다(단계 S221).
출력부(107)는, 안전성 증가부(106)로부터 파라미터 세트(PS)를 받고, 이 파라미터 세트(PS)를 외부에 출력하고, 처리를 종료한다(단계 S222).
GL>SL이면(단계 S213에서 "아니오"), 제2 파라미터 변경부(109)는 입력부(101b)로부터 안전성 레벨 정보(SLI)를 받고, 안전성 판정부(105)로부터 파라미터 세트(PS)를 받아서, 파라미터 후보 세트(DS)를 생성한다(단계 S223).
제2 파라미터 변경부(109)는 파라미터 세트(PS)의 파라미터(dg)와 파라미터 후보 세트(DS)의 모든 요소의 최대치(M)를 비교한다(단계 S224).
dg<M이면(단계 S224서 "예"), 제2 파라미터 변경부(109)는 파라미터(dg)를, 파라미터 후보 세트(DS)에 포함된 최대 요소보다 큰 값으로 변경하고, 변경한 파라 미터(dg)를 이용하여 새로운 파라미터 세트 PS=(N, p, q, df, dg, d)를 생성하고, 생성한 파라미터 세트(PS)를 안전성 판정부(105)에 출력한다(단계 S225). 다음에, 처리는 단계 S212로 복귀된다.
dg≥M이면(단계 S224서 "아니오"), 제2 파라미터 변경부(109)는 파라미터 세트(PS)를 제1 파라미터 변경부(108)에 출력한다(단계 S226). 다음에, 처리는 단계 S208로 복귀된다.
<파라미터 변환 장치(2)의 동작 검증>
다음은 제2 실시예에 의한 파라미터 변환 장치(2)의 전체의 동작을 설명한다.
먼저, 입력부(101b)가 NTRU 암호 체계의 입력 파라미터세트(IPS)를 파라미터 세트(PS)로서 제3 파라미터 생성부(104b)에 출력한다(단계 S201).
그리고, 제1 실시예의 경우와 같이, 제2 파라미터 생성부(103b)는 총 탐색에 의한 NTRU 암호 체계의 복호에 대해 안전성을 확보하는 안전성 레벨 정보(SLI)에 의해 표시된 안전성 레벨을 달성하는 파라미터 후보 세트(DS)를 생성한다(단계 S205).
그리고, 제3 파라미터 생성부(104)가, 단계(S211)에 대해서, 복호 에러를 발생하지 않는 파라미터를 생성하는 조건식(ED)을 만족하는 파라미터(q)를 선택하는 것으로, 파라미터 세트 PS=(N, p, q, df, dg, d)의 값이 결정된다.
여기서, 제1 실시예의 경우와 같이, 조건식(ED)을 만족하는 값이 파라미터(q)의 값으로서 선택되면, LLL 알고리즘을 이용하는 복호에 대한 안전성 레벨이 저 하될(복호 시간이 더 짧아질) 가능성이 있다.
그러므로, 미리 저장된 격자 상수(GL)에 근거해, 안전성 판정부(105)는, 생성된 파라미터 세트(PS)를 가지는 NTRU 암호 체계에서 복호을 하기 위해 필요한 복호 시간을, 그 미리 저장된 격자 상수(GL)에 근거하는 복호 시간 평가식(EF)을 이용하여 평가 가능한지를 판단한다(단계 S213). 만약 가능하면, 안전성 증가부(106)는, 안전성 레벨 정보(SLI)에 의해 표시된 안전성 레벨이 달성되도록, 파라미터(N)를 증가시킨다(단계 S218).
만약 가능하지 않으면, 제2 파라미터 변경부(109)는, 그 파라미터를 가지는 NTRU 암호 체계의 격자 상수의 값을 크게 하기 위해 파라미터(dg)의 값을 증가시킴으로서 복호 시간이 복호 시간 평가식(EF)으로 평가될 수 있는지 시도한다.
복호 시간 평가식(EF)이 복호 시간을 평가하기 위해 여전히 이용될 수 없으면, 제1 파라미터 변경부(108)는, 파라미터(N)를 증가시키고(단계 S208), 파라미터(df, dg, d, q)를 한번 더 생성하도록 한다(단계 S209 이후의 단계).
파라미터(N)가 큰 값을 취하면, 파라미터 후보 세트(DS)는 일반적으로 큰 요소수를 가지게 된다. 그래서, 파라미터(df, dg, d)가 한번 더 선택되면, 파라미터(dg)만이 큰 값을 취하는 것이 요구되고, 다른 파라미터(df, d)의 값은 변경되지 않는다. 파라미터(dg)의 값이 복호 에러 발생의 조건식에 영향을 주지 않으므로, 복호 에러 프리 통신이 보증되어 있고, 격자 상수(GL)의 값을 증가시킴으로 복호 시간 평가식(EF)을 이용하여 복호 시간을 평가하는 것이 가능해진다.
상기 서술한 것같이, 본 발명은 제한된 횟수의 반복에 의해, NTRU 암호 체계 의 입력 파라미터(IPS)를 다음의 특징을 가지는 NTRU 암호 체계의 파라미터 세트(PS)로 변환할 수 있다: 총 탐색에 의한 복호과 LLL 알고리즘을 이용하는 복호에 대해, 입력된 안전성 레벨 정보(SLI)가 나타내는 안전성 레벨을 달성하고, 복호 에러를 발생하지 않는 파라미터 세트(PS).
<제2 실시예에 의해 달성된 효과>
현재의 기술은 제삼자에 의한 복호에 대해서 안전하고, 복호 에러를 발생하지 않는 NTRU 파라미터를 생성하는 것이 불가능하므로, 이 파라미터를 생성하는 조건은 알려져 있지 않다. 이것은 암호 장치 및 복호 장치가 암호화 통신을 안전하고 확실하게 행하는 것을 불가능하게 한다.
그러나, 상기 서술한 것같이, 본 발명에 따르는 파라미터 변환장치는 이론상 복호 에러가 발생하지 않도록 입력된 NTRU 파라미터의 파라미터(q)를 결정하고, 입력된 안전성 레벨을 달성하도록 파라미터(N)를 결정하므로, 안전성을 확보하고 이론적으로 복호 에러를 발생하지 않는 NTRU 파라미터를 생성하는 것이 가능해진다.
(제3 실시예)
다음은 본 발명의 제3 실시예에 따르는 암호 시스템(3)을 설명한다.
<암호 시스템(3)의 구성>
도 11에 나타낸 것같이, 이 암호 시스템(3)은, 암호 장치(31), 복호 장치(32), 및 통신 채널(33)로 구성되고, 제1 실시예에 따른 파라미터 생성 장치(1) 또는 제2 실시예에 따른 파라미터 변환 장치(2)에 의해 생성된, 제삼자에 의한 복호에 대해서 안전하고, 복호 에러를 발생하지 않는 NTRU 파라미터를 이용하여 암호화 통신이 실시되는 시스템이다.
<암호 장치(31)의 구성>
도 12를 참조하면, 평문 다항식(m)을 암호화하여 암호화문 다항식(c)을 생성하는 암호 장치(31)는 파라미터 저장부(311), 공개키 저장부(312), 암호화부(313)로 구성된다.
(1) 파라미터 저장부(311)
파라미터 저장부(311)는, 제1 실시예에 따른 파라미터 생성 장치(1) 또는 제2 실시예에 따른 파라미터 변환 장치(2)에 의해서 생성된 NTRU 파라미터 즉, 파라미터(N), 파라미터(p), 파라미터(q), 파라미터(df), 파라미터(dg), 및 파라미터(d)를, 미리 저장하고 있다.
(2) 공개키 저장부(312)
공개키 저장부(312)는 미리 얻은 복호 장치(32)의 공개키 다항식(h)을 저장한다. 이 공개키 다항식(h)은, 파라미터(N)에 대해, N-1 차원 이하의 다항식으로 표시되는 다항식이다.
(3) 암호화부(313)
암호화부(313)는 파라미터 저장부(311)로부터 파라미터(N), 파라미터(p), 파라미터(q) 및 파라미터(d)를 받고, 공개키 저장부(312)로부터 공개키 다항식(h)을 받고, 외부로부터 파라미터(N)에 대해, N-1 차원 이하의 다항식으로 표시되는 평문 다항식(m)을 받는다.
파라미터(N) 및 파라미터(d)를 이용하여, d개의 계수가 "1"이고, d개의 계수 가 "―1"이고, 다른 계수가 O인 N-1 차원의 난수 다항식(r)을 임의로 선택한다.
암호화부(313)는 난수 다항식(r), 공개키 다항식(h), 파라미터(N), 파라미터 (p), 파라미터(q)를 이용하여 평문 다항식(m)에 대해 NTRU 암호 체계의 암호화 처리를 실시해, 암호화문 다항식(c)을 결정하도록 한다.
이 암호화문 다항식(c)를 결정하는 방법이 문헌 2에 상세히 기재되어 있으므로, 여기에서는 설명을 생략 한다. 암호화부(313)는 생성된 암호화문 다항식(c)을 통신 채널(33)을 통하여 복호 장치(32)에 송신한다.
<복호 장치(32)의 구성>
도 13을 참조하면, 암호화문 다항식(c)을 복호하여 복호화문 다항식(m')을 계산하는 복호 장치(32)는 파라미터 저장부(321), 키 생성부(322), 비밀키 저장부(323), 복호화부(324)로 구성된다.
(1) 파라미터 저장부(321)
파라미터 저장부(321)는, 암호 장치(31)의 파라미터 저장부(311)에 저장되어 있는 것과 동일한 NTRU 암호 체계의 파라미터를 저장하고 있다.
더 구체적으로, 파라미터 저장부(312)는 파라미터 저장부(311)에 저장되어 있는 것과 동일한 파라미터(N), 파라미터(p), 파라미터(q), 파라미터(df), 파라미터(dg), 파라미터(d)를 미리 저장하고 있다.
(2) 키 생성부(322)
키 생성부(322)는 파라미터 저장부(321)로부터 파라미터(N), 파라미터(p), 파라미터(q), 파라미터(df), 파라미터(dg)를 받아, 파라미터(N), 파라미터(p), 파 라미터(q), 파라미터(df), 파라미터(dg)를 이용하여, N-1 차원 이하의 다항식으로 표현된 비밀키 다항식(f), 공개키 다항식(h)을 생성한다. 비밀키 다항식(f) 및 공개키 다항식(h)을 생성하는 방법은, 문헌 2에 상세히 기재되어 있으므로, 여기에서는 설명을 생략한다.
그리고, 키 생성부(322)는 공개키 다항식(h)을 공개해 암호 장치(31)가 공개키를 얻을수 있도록 한다. 그리고, 키 생성부(322)는 비밀키 다항식(f)을 비밀키 저장부(323)에 저장한다.
(3) 비밀키 저장부(323)
비밀키 저장부(323)는, 미리 복호 장치(32)의 비밀키 다항식(f)을 저장하고 있다.
이 비밀키 다항식(f)은, 파라미터(N)에 대해, N-1 차원 이하의 다항식으로 표현된다.
(4) 복호화부(324)
복호화부(324)는 파라미터 저장부(321)로부터, 파라미터(N), 파라미터(p), 파라미터(q)를 받고, 비밀키 저장부(323)로부터, 비밀키 다항식(f)을 받고, 통신 채널(33)을 통하여 암호 장치(31)로부터 암호화문 다항식(c)을 받는다.
복호화부(324)는 비밀키 다항식(f), 파라미터(N), 파라미터(p), 파라미터(q)를 이용하여, 암호화문 다항식(c)에 대해 NTRU 암호 체계의 복호화를 실시해, 복호화문 다항식(m)'을 결정한다. NTRU 암호 체계의 복호화를 행하는 방법은 문헌 2에서 상세히 기재되어 있으므로, 여기에서 설명을 생략한다.
복호화부(324)는 이 생성된 복호화문 다항식(m)'을 외부에 출력한다.
<암호 시스템(3)의 동작>
다음은 상기 구성을 가지는 암호 시스템(3)의 동작을 설명한다. 도 14는 암호 시스템(3)의 동작을 나타내는 흐름도이다.
암호 시스템(3)에서, 제1 실시예에 따른 파라미터 생성 장치(1) 또는 제2 실시예에 따른 파라미터 변환 장치(2)에 의해서 생성된, NTRU 암호 체계의 파라미터로부터, 적어도, 파라미터(N), 파라미터(p), 파라미터(q), 파라미터(d)가 암호 장치(31)의 파라미터 저장부(311)에 저장되어 있고, 적어도 파라미터(N), 파라미터(p), 파라미터(q), 파라미터(df), 파라미터(dg)가 복호 장치(32)의 파라미터 저장부(321)에 저장되어 있다(단계 S301).
복호 장치(32)의 키 생성부(322)는 파라미터 저장부(321)로부터 파라미터(N), 파라미터(p), 파라미터(q), 파라미터(df), 파라미터(dg)를 받는다. 그리고, 키 생성부(322)는 비밀키 다항식(f), 공개키 다항식(h)을 생성하고, 공개키 다항식(h)을 공개하여 암호 장치(31)가 얻을 수 있도록 한다. 그리고, 키 생성부(322)는 비밀키 다항식(f)을 비밀키 저장부(323)에 기억한다(단계 S302).
암호 장치(31)의 공개키 저장부(312)는 복호 장치(32)의 공개키 다항식(h)을 얻어서 저장한다(단계 S303).
암호 장치(31)의 암호화부(313)는 파라미터 저장부(311)로부터 파라미터(N), 파라미터(p), 파라미터(q), 파라미터(d)를 받고, 공개키 저장부(312)로부터, 공개키 다항식(h)를 받고, 외부로부터, 파라미터(N)에 대해, N-1 차원 이하의 다항식으 로 표현되는 평문 다항식(m)을 받는다(단계 S304)
파라미터(N) 및 파라미터(d)를 이용하여, 암호 장치(31)의 암호화부(313)는 d개의 계수가 "1"이고, d개의 계수가 "―1"이고, 다른 계수는 "O"인 N-1 차원의 난수 다항식(r)을 임의로 선택한다. 암호화부(313)는 난수 다항식(r), 공개키 다항식(h), 파라미터(N), 파라미터(p) 및 파라미터(q)를 이용하여 평문 다항식(m)에 대해 NTRU 암호 체계의 암호화를 실시해, 암호화문 다항식(c)을 결정한다(단계 S305).
암호 장치(31)의 암호화부(313)는 암호화문 다항식(c)을 통신 채널(33)을 통하여 복호 장치(32)에 송신한다(단계 S306).
복호 장치(32)의 복호화부(324)는 파라미터 저장부(321)로부터, 파라미터(N), 파라미터(p), 파라미터(q)를 받고, 비밀키 저장부(323)로부터 비밀키 다항식(f)을 받고, 통신 채널(33)을 통하여 암호 장치(31)로부터 암호화문 다항식(c)를 받는다(단계 S307).
복호 장치(32)의 복호화부(324)는 비밀키 다항식(f), 파라미터(N), 파라미터(p), 파라미터(q)를 이용하여 암호화문 다항식(c)에 대해 NTRU 암호 체계의 복호화를 실시하고, 복호화문 다항식(m')을 결정한다(단계 S308).
그리고, 복호 장치(32)의 복호화부(324)는 이 복호화문 다항식(m')을 외부에 출력하고, 처리를 종료한다(단계 S309).
<암호 시스템(3)의 동작 검증>
먼저, 복호 장치(32)는, 제1 실시예에 따른 파라미터 생성 장치(1) 또는 제2 실시예에 따른 파라미터 변환 장치에 의해서 생성된 NTRU 파라미터를 이용하여, 비 밀키 다항식(f) 및 공개키 다항식(h)을 생성한다.
그리고, 암호 장치(31)는 제1 실시예의 파라미터 생성 장치(1) 또는 제2 실시예의 파라미터 변환 장치에 의해 생성된 NTRU 파라미터를 이용하여 평문 다항식(m)을 암호화한다.
상기 서술된 것같이, 제1 실시예에 따른 파라미터 생성 장치(1) 또는 제2 실시예에 따른 파라미터 변환 장치(2)에 의해서 생성된 파라미터를 이용하여, 비밀키 다항식(f) 및 공개키 다항식(h)뿐 아니라 암호화가 실시된다. 그러므로, 본 발명에 있어서의 암호화 통신은 제삼자에 의한 암호 복호에 대해서 안전하고, 이 암호화 통신에서 복호 에러가 발생하지 않는다고 할 수 있다.
<제3 실시예에 의해 달성된 효과>
현재의 기술은 제삼자에 의한 복호에 대해서 안전하고, 복호 에러를 발생하지 않는 NTRU 파라미터를 생성하는 것이 불가능하므로, 이 파라미터를 생성하는 조건은 알려져 있지 않다. 이것은 암호 장치 및 복호 장치가 암호화 통신을 안전하고 확실하게 행하는 것을 불가능하게 한다.
그러나, 상기 서술한 것같이, 본 발명에 따르는 암호 시스템에서, 비밀키 다항식(f) 및 공개키 다항식(h)뿐 아니라 암호화가 제1 실시예의 파라미터 생성 장치(1) 또는 제2 실시예의 파라미터 변환 장치(2)에 의해서 생성된 파라미터를 이용하여 실행되어, 암호 장치와 복호 장치가 안전하고 확실하게 암호화 통신을 할 수 있게 된다.
(제4 실시예)
다음은 본 발명의 제4 실시예에 따른 암호 시스템(4)을 설명한다.
<암호 시스템(4)의 구성>
도 15에 나타낸 것같이, 이 암호 시스템(4)은, 암호 장치(41), 복호 장치(42), 및 통신 채널(43)로 구성된다.
<암호 장치(41)의 구성>
도 16을 참조하면, 평문 다항식(m)을 암호화하여 암호화문 다항식(c)을 생성하는 암호 장치(41)는 파라미터 생성장치(1), 암호화부(313) 및 공개키 저장부(411)로 구성된다.
(1) 파라미터 생성장치(1) 및 암호화부(313)
파라미터 생성장치(1)는, 제1 실시예의 파라미터 생성 장치(1)와 동일하며, 암호화부(313)의 구성은 제3 실시예의 암호화부(313)와 동일하다. 그러므로, 그 상세한 설명은 여기에서 생략한다.
(2) 공개키 저장부(411)
공개키 저장부(411)는 복호 장치(42)의 공개키 다항식(h)을 받아서 저장하는 저장 장치이다.
<통신 채널(43)의 구성>
통신 채널(43)은 암호 장치(41)와 복호 장치(42) 사이에서 파라미터 세트(PS)를 송수신하기 위해 이용되는 확실한 통신 채널이다.
<복호 장치(42)의 구성>
도 17을 참조하면, 암호화문 다항식(c)을 복호하여 복호화문 다항식(m')을 결정하는 복호 장치(32)는 파라미터 수신부(421), 키 생성부(422), 비밀키 저장부(423), 복호화부(324)로 구성된다.
(1) 파라미터 수신부(421)
파라미터 저장부(421)는, 암호 장치(41)의 파라미터 생성장치(1)에 의해 생성된 NTRU 파라미터를 받는 처리 장치이다.
(2) 키 생성부(422)
키 생성부(422)는 제3 실시예의 키 생성부(322)의 구성에 부가하여, 생성된 공개키 다항식(h)을 통신채널(33)을 통하여 암호장치로 송신하는 처리장치이다.
(3) 비밀키 저장부(323) 및 복호화부(324)
비밀키 저장부(323) 및 복호화부(324)는 제 1실시예와 동일한 방법으로 구성된다. 그러므로, 상세한 설명은 여기에서 생략한다.
<암호 시스템(3)의 동작>
다음은 상기 구성을 가지는 암호 시스템(4)의 동작을 설명한다. 도 18은 암호 시스템(4)의 동작을 나타내는 흐름도이다.
암호 장치(41)의 파라미터 생성 장치(1)는 NTRU 파라미터(파라미터(N), 파라미터(p), 파라미터(q), 파라미터(d), 파라미터(df), 파라미터(dg))를 생성한다(단계 S401).
복호 장치(42)의 파라미터 수신부(421)는 파라미터 생성장치(1)로부터 파라미터(N), 파라미터(p), 파라미터(q), 파라미터(df), 파라미터(dg)를 받는다.
키 생성부(422)는 파라미터 수신부(421)로부터 파라미터(N), 파라미터(p), 파라미터(q), 파라미터(df), 파라미터(dg)를 얻고, 비밀키 다항식(f), 공개키 다항식(h)을 생성한다. 그리고, 비밀키 생성부(422)는 공개키 다항식(h)을 암호 장치(41)의 공개키 저장부(411)에 송신하는 반면, 비밀키 다항식(f)을 비밀키 저장부(323)에 저장한다(단계 S403).
암호 장치(41)의 암호화부(313)는 파라미터 생성부(1)로부터 파라미터(N), 파라미터(p), 파라미터(q), 파라미터(d)를 받고, 공개키 저장부(411)로부터, 공개키 다항식(h)를 받고, 외부로부터, 파라미터(N)에 대해, N-1 차원 이하의 다항식으로 표현되는 평문 다항식(m)을 받는다(단계 S405).
파라미터(N) 및 파라미터(d)를 이용하여, 암호 장치(41)의 암호화부(313)는 d개의 계수가 "1"이고, d개의 계수가 "―1"이고, 다른 계수는 "O"인 N-1 차원의 난수 다항식(r)을 임의로 선택한다. 그리고, 암호화부(313)는 난수 다항식(r), 공개키 다항식(h), 파라미터(N), 파라미터(p) 및 파라미터(q)를 이용하여 평문 다항식(m)에 대해 NTRU 암호 체계의 암호화를 실시해, 암호화문 다항식(c)을 결정한다(단계 S406).
암호 장치(41)의 암호화부(313)는 암호화문 다항식(c)을 통신 채널(33)을 통하여 복호 장치(42)에 송신한다(단계 S407).
복호 장치(42)의 복호화부(324)는 파라미터 저장부(321)로부터, 파라미터(N), 파라미터(p), 파라미터(q)를 받고, 비밀키 저장부(323)로부터 비밀키 다항식(f)을 받고, 통신 채널(33)을 통하여 암호 장치(31)로부터 암호화문 다항식(c)을 받는다(단계 S408).
복호 장치(42)의 복호화부(324)는 비밀키 다항식(f), 파라미터(N), 파라미터(p), 파라미터(q)를 이용하여 암호화문 다항식(c)에 대해 NTRU 암호 체계의 복호화를 실시하고, 복호화문 다항식(m')을 결정한다(단계 S409).
그리고, 복호 장치(32)의 복호화부(324)는 이 복호화문 다항식(m')을 외부에 출력하고, 처리를 종료한다(단계 S410).
본 실시예에 의하면, 제3 실시예의 암호 시스템(3)과 다르게, 평문 다항식(m)의 암호화와 암호화문 다항식(c)의 복호화는 미리 생성되어 파라미터 저장부(311 및 421)에 저장된 파라미터를 이용하는 대신에 암호 장치(1)의 파라미터 생성장치(1)에 의해 동적으로 생성된 파라미터를 이용하여 실행된다. 이것은 파라미터를 주기적으로 변경하는 것을 가능하게 하므로 암호화 통신의 안전성을 증가시킨다.
<변형예>
본 발명은 첨부된 도면을 참조하여 예를 들어 설명하였지만, 여러 변화와 변경이 본 기술에서 숙련된 자에게 가능하다. 그러므로, 이 변화와 변경이 본 발명의 범위를 벗어나지 않으면, 본 발명에 포함되는 것으로 해석된다. 다음의 변경도 또한 본 발명의 범위에 포함된다.
(1) 도 10에 나타내는 것같이, 격자 상수(GL) 및 복호 시간 평가식(EF)의 하나 이상의 쌍은 식저장부(110)에 저장될 수 있고, 이로 부터 안전성 판정부(105)가 GL≤SL을 만족하는 격자 상수(GL)와 복호 시간 평가식(EF)의 쌍을 읽어낼 수 있다.
또한, 식저장부(110)에 저장된 격자 상수(GL) 및 복호 시간 평가식(EF)은 이 후 변경될 수 있다.
(2) 제1 파라미터 생성부(102)에 의해 이용된 파라미터(N)의 선택 방법은, 상기 서술된 방법에 한정되지 않으므로, N의 값으로서 충분히 큰 값을 취할 수 있으면 임의의 방법도 응용가능하다. 예를 들면, F (x)=1O·log (x)의 단조 증가함수(F)에 대해, N=F(SLI)를 만족하는 파라미터(N)이 선택될 수 있다. 또, 파라미터(N)는 고정치도 가능하다.
(3) 제2 파라미터 생성부(103)에 의해 이용된 파라미터(df, dg 및 d)를 선택하는 방법은, 상기 서술된 방법에 한정되지 않으므로, dg>d가 만족되고, 총 탐색에 의한 복호에 대해, 비밀키의 안전성 레벨과 평문의 안전성 레벨이 안전성 레벨 정보(SLI)에 의해 표시된 안전성 레벨과 동등하기만 하면, 어떠한 방법도 이용 가능하다.
(4) 또, 파라미터 세트(PS)의 파라미터(q, df, dg, d)를 생성하는 방법으로서, 제2 파라미터 생성부(103)가 상술의 방법을 이용하여 파라미터(df, dg, d)를 선택하고, 제3 파라미터 생성부(104)가 조건식(ED)에 이 파라미터(df, dg, d)의 값을 대입해 파라미터(q)의 값을 결정하는 것으로 생성하는 방법에 더하여, 이 방법은 조건식(ED)과 외부로부터 미리 주어지고 있는 파라미터(q)의 값으로부터 도출되는 관계식에 근거하여, dg>d가 만족되도록 파라미터(df, dg, d)가 선택되는 것으로 이용될 수 있다.
더 구체적으로, q=256을 만족하는 파라미터(q)가 외부로부터 미리 주어지고 있는 경우를 가정한다. 이 경우, 파라미터 세트(PS)의 파라미터(q, df, dg, d)는 조건식(ED)와 파라미터(q)의 값으로부터, 도출된 다음의 관계식을 만족하고, dg>d를 만족하는 파라미터(df, dg, d)를 선택함으로써 생성될 수 있다:
6d+2df-1<128.
이 경우, 그러나, 이 파라미터(df, dg, d)를 가지고, 총 탐색에 의해 비밀키 및 평문을 복호하기 위해 필요한 복호 시간이 안전성 레벨 정보(SLI)가 나타내는 안전성 레벨을 만족하지 않을 가능성이 있다. 그래서, LLL 알고리즘을 이용하여 복호을 행하기 위해 필요한 복호 시간(T)이 상기 서술된 것같이 안전성 레벨 정보(SLI)에 의해 표시된 안전성 레벨을 달성할 수 있도록, 파라미터(N)가 안전성 증가부(106)에 의해 증가된 후, 제2 파라미터 생성부(103)의 구성의 설명에 기재되어 있는 것같이, 비밀키 및 평문을 총 탐색에 의해 복호하기 위해 필요한 복호 시간이 달성되도록 파라미터(N)가 증가될 수 있다.
또, 비밀키 및 평문을 총 탐색에 의해 복호하기 위해 필요한 복호 시간이, 안전성 레벨 정보(SLI)에 의해 표시된 안전성 레벨을 달성하도록 파라미터(N)가 증가된 후, LLL 알고리즘의 경우의 복호 시간(T)이 안전성 레벨 정보(SLI)에 의해 표시된 안전성 레벨을 달성하도록 파라미터(N)가 증가될 수 있다.
(5) 제3 파라미터 생성부(104)에 의해 이용된 파라미터(q)를 선택하는 방법은, 상기 서술된 방법에 한정되지 않으므로, 선택된 파라미터(q)가 조건식(ED)을 만족하고, 파라미터(p)와 서로소가 되는 한 어떠한 방법도 이용될 수 있다.
(6) 제1 파라미터 생성부(102)에 의해 생성된 파라미터(p) 및 파라미터 변환 장치(2)에 의해 취급된 파라미터세트(IPS, PS)에 포함된 파라미터(p)는, p=3으로 한정되지 않으므로, 다른 식을 만족하는 파라미터(p)도 이용될 수 있다.
예를 들면, 특정 음이 아닌 정수(k)에 대해서 p=k로 했을 때, 식저장부(110)에 저장되는 조건식(ED)이 다음과 같으면, 동일한 효과가 얻어질 수 있다:
ED: 2·k·d+2df-1<q/2.
(7) 상기 변형예(6)에 대해, 특정 다항식(b)에 대해서 p=b가 또한 가능하다. 예를 들면, p=(X+2)로 했을 때, 식저장부(11O)에 저장되는 조건식(ED)이 다음과 같으면, 동일한 효과가 얻어질 수 있다:
ED: 6d+2df-1<q/2.
왜냐하면, 상술한 것같이, 다항식(p×r×g + f×m)의 모든 계수가, -q/2로부터 q/2의 범위에 있으면, 복호 에러는 발생하지 않기 때문이다.
여기서, 다항식 r×g를 생각하면, 최대 계수값은 최대 2d이다(최소치는 겨우―2d이다).
여기서, p=(X+2)이므로, 다항식(a)의 k 차원의 계수를 a(k)로 표시하면,
p (0)=2, p (1)=1, p (i)=0 (i>1),
그리고, (p×(r×g))(k)
=p (O)·(r×g)(k) + p(1)·(r×g)(k-1)+
...+p (N-1)·(r×g)(k- (N-1)(mod N))
= (r×g)(k)+2·(r×g)(k-1)이다.
그러므로, 다항식(p×r×g)의 최대 계수값은 3·2d이다. 한편, 다항식(f×m)의 최대 계수 값은, 최대 2df-1이다(최소치는 겨우 ―2df+1이다.).
따라서, 상기 서술된 실시예의 경우와 같이, 다항식(p×r×g + f×m)의 최대 계수 값은 최대 3·2d+2d f-1인 것으로부터, 복호 에러를 이론상 발생하지 않는 파라미터를 생성하는 조건식(ED)으로서 다음 식을 도출할 수 있다.
ED: 6d+2df-1<q/2.
다항식(b)은 물론 b=(X+2)에 한정되지 않는다. 이 경우, 상기 처리를 실시하여 조건식(ED)을 도출할 수 있고, 동일한 효과를 얻을 수 있다.
(8) 파라미터 변환 장치(2)가 파라미터세트(PS)를 외부에서 받는 구성에 부가하여, 파라미터 변환 장치(2)는 안전성 레벨 정보(SLI)에 의해 표시되는 안전성 레벨을 달성하는 파라미터 세트(PS)의 리스트를 또한 보관 유지할 수 있다. 이 경우, 외부에서 입력부(101b)에 입력된 데이터는 단지 안전성 레벨 정보(SLI)이다. 즉, 입력부(101b)가, 도 9에 나타낸 것같이 파라미터세트(IPS)의 리스트를 보관 유지하고, 외부로부터 안전성 레벨 정보(SLI)를 입력하면, 이 SLI에 관련된 파라미터세트(IPS)를 파라미터 세트(PS)로서 제3 파라미터 생성부(105)에 출력한다.
(9) 문헌 4는, Zero-Run Lattice가 복호에 대해 이용되면, LLL 알고리즘을 이용하는 경우에 복호 시간이 감소할 가능성을 기재하고 있다.
LLL 알고리즘을 이용하는 경우에 복호 시간은, 이 Zero-Run Lattice를 이용하는 복호을 고려하는 복호 시간 평가식(EF)을 이용하여 평가될 수 있다.
(10) 암호 시스템(3)에 있어서, 비밀키 다항식(f) 및 공개키 다항식(h)은, 복호 장치(32)의 키 생성부(322)에 의해 생성되어야만 하는 것은 아니다. 예를 들면, 비밀키 다항식(f) 및 공개키 다항식(h)은, 키 관리 서버 등에 의해 복호 장치 (32)의 외부에서 생성될 수 있고, 그 다음 비밀키 저장부(323) 및 공개키 저장부(312)에 각각 입력되는 것이 가능하다.
(11) 암호 시스템(3)은 파라미터 생성 장치(1) 또는 파라미터 변환 장치(2)를 더 포함할 수 있고, 파라미터 생성 장치(1) 또는 파라미터 변환 장치(2)에 의해 출력된 NTRU 파라미터는 파라미터 저장부(311, 321)에 입력될 수 있다.
(12) 암호 시스템(3)은 암호 장치(31)가 파라미터 생성 장치(1) 또는 파라미터 변환 장치(2)를 더 갖춘 구성을 또한 가질 수 있다.
이 경우, 암호 장치(31)는 파라미터 저장부(311)에 입력되고, 통신 채널(33)을 통하여 복호 장치(32)에 송신되는 NTRU 파라미터를 생성한다. 그리고, 복호 장치(32)는 이 NTRU 파라미터를 받고, 파라미터 저장부(321)에 저장한다.
(13) 파라미터 저장부(311)에 저장되는 NTRU 파라미터는, 이 파라미터가 파라미터(N, p, q, df, dg, d) 중에서 적어도, 파라미터(N), 파라미터(p), 파라미터(q), 파라미터(d)를 포함하기만 하면, 어떠한 파라미터라도 좋다. 또, 파라미터 저장부(321)에 기억되는 NTRU 파라미터는, 이 파라미터가 적어도, 파라미터(N), 파라미터(p), 파라미터(q), 파라미터(df), 파라미터(dg)를 포함하기만 하면, 어떠한 파라미터라도 좋다. 예를 들면, p=2도 가능하다. 이 경우, 모든 다항식에서 모든 계수는 1 또는 0과 같게 된다. 이것은, 다항식 들 사이의 동작을 더 빠른 속도로 실행하는 것이 가능하고, 따라서 파라미터 생성, 파라미터 변환, 암호화, 및 복호화를 더 빠른 속도로 실행할 수 있다.
(14) 제4 실시예에 있어서의 암호 시스템의 암호 장치(41)에서, 파라미터 생 성장치(1) 대신에 파라미터 변환장치(2)가 이용될 수 있다.
(15) 파라미터 생성장치(1) 대신에 제4 실시예에 제시된 암호 시스템(4)의 암호 장치(41)가 파라미터 생성장치(1)에 의해 생성된 것과 동등한 파라미터를 받는 파라미터 수신 장치를 구비할 수 있다.
(16) 본 발명은 상기 서술된 각각의 실시예에 제시된 효과를 달성할 수 있는 방법으로 구체화될 수 있다. 또한, 본 발명은 이 방법이 컴퓨터에 의해 실현되는 컴퓨터 프로그램 및 이 컴퓨터 프로그램으로 구성된 디지털 신호로서 구체화될 수 있다.
또, 본 발명은, 상기 컴퓨터 프로그램 또는 상기 디지털 신호가 기록되는 반도체 메모리, 하드 디스크 드라이브, CD-ROM, DVD-ROM(Digital Versatile Disc-ROM), DVD-RAM 등의 컴퓨터 판독가능 기록매체로서 구체화될 수 있다.
(17) 본 발명은 상기 실시예 및 변형예의 조합으로서 구체화될 수 있다.
본 발명은 암호화 처리, 복호화 처리에 적용가능하고, 특히 디지털 서명, 전자 인증 기술 및 암호화 통신 등에 적용가능하다.

Claims (37)

  1. NTRU 암호체계에 있어서 복호 에러를 발생하지 않는 파라미터 세트인 출력 파라미터를 생성하는 파라미터 생성 장치로서,
    복호 에러를 발생하지 않는 조건을 나타내고 미리 주어진 에러 조건 정보에 근거하여, 복호 에러를 발생하지 않는 출력 파라미터를 생성하는 에러 프리(error-free) 출력 파라미터 생성부를 포함하는 파라미터 생성 장치.
  2. 제1 항에 있어서, 상기 에러 프리 출력 파라미터 생성부는
    에러 조건 정보에 근거하여 복호 에러를 발생하지 않는 임시 파라미터 세트를 생성하는 임시 파라미터 생성부; 및
    상기 임시 파라미터 세트를 이용하여, 상기 임시 파라미터 세트로부터 계산된 격자 상수에 근거하여, 출력 파라미터를 생성하는 출력 파라미터 생성부를 포함하는 파라미터 생성 장치.
  3. 제2 항에 있어서, 상기 임시 파라미터 생성부는 외부로부터 입력된 NTRU 암호체계에 있어서의 파라미터 세트인 입력 파라미터와 에러 조건 정보에 근거하여, 복호 에러를 발생하지 않는 임시 파라미터 세트를 생성하는 파라미터 생성 장치.
  4. 제2 항에 있어서, 상기 출력 파라미터 생성부는 임시 파라미터 세트를 이용 하여, 상기 격자 상수와 관련된 안전성 결정 정보와, 제삼자에 의해 실행된 복호화에 대하여 안전성의 레벨을 나타내는 안전성 레벨정보에 근거하여 출력 파라미터를 생성하는 파라미터 생성 장치.
  5. 제4 항에 있어서, 상기 출력 파라미터 생성부는 상기 안전성 결정 정보를 유지하는 안전성 결정 정보 유지부를 포함하고,
    상기 안전성 결정 정보는 외부로부터 주어지는 파라미터 생성 장치.
  6. 제4 항에 있어서, 상기 출력 파라미터 생성부는 하나 이상의 격자 상수 및 안전성 결정 정보 쌍을 저장하는 격자 상수 저장부를 포함하고,
    상기 격자 상수 및 상기 안전성 결정 정보는 외부로부터 주어지는 파라미터 생성 장치.
  7. 제6 항에 있어서, 상기 출력 파라미터 생성부는 격자 상수에 근거하여 상기 격자 상수 저장부에 저장된 상기 하나 이상의 쌍으로부터 하나의 안전성 결정 정보를 선택하는 안전성 결정 정보 선택부를 더 포함하고,
    상기 출력 파라미터 생성부는 선택된 안전성 결정 정보와 상기 선택된 안전성 결정 정보와 쌍을 이루는 격자상수를 이용하여 출력 파라미터를 생성하는 파라미터 생성 장치.
  8. 제6 항에 있어서, 상기 출력 파라미터 생성부는
    격자 상수 및 안전성 결정 정보에 근거하여 임시 파라미터 세트를 변경할 것인지 판정하는 변경 판정부;
    상기 변경부에서 상기 임시 파라미터 세트가 변경되어야 한다고 판단할 때, 임시 파라미터 세트를 이용하여 변경된 임시 파라미터 세트를 생성하는 임시 파라미터 변경부; 및
    안전성 레벨 정보에 근거하여, 변경된 임시 파라미터 세트를 이용하여 출력 파라미터를 생성하는 생성부를 포함하는 파라미터 생성 장치.
  9. 제8 항에 있어서, 상기 임시 파라미터 변경부는, 공개키 다항식을 생성하기 위해 이용되는 랜덤 다항식(g)에서 계수값이 1인 계수의 수를 규정하는, 임시 파라미터 세트에 포함된 음이 아닌(non-negative) 정수(dg)를 변경하여 변경된 임시 파라미터 세트를 생성하는 파라미터 생성 장치.
  10. 제2 항에 있어서, 상기 임시 파라미터 세트 및 상기 출력 파라미터는, NTRU 암호 체계에 있어서의 차원(N); 음이 아닌 정수(p), 음이 아닌 정수(q), 비밀키 다항식(f)에 있어서의 계수의 값이 1이 되는 계수의 수를 규정하는 음이 아닌 정수(df); 공개키 다항식을 생성하기 위해 이용되는 랜덤 다항식(g)에서 계수의 값이 1이 되는 계수의 수를 규정하는 음이 아닌 정수(dg); 평문을 암호화하기 위해 이용되는 난수 다항식(r)에서 계수의 값이 1이 되는 계수의 수를 규정하는 음이 아닌 정수(d)의 세트로 각각 구성되는 파라미터 생성 장치.
  11. 제10 항에 있어서, 상기 임시 파라미터 생성부는 복호화를 실행하기 위해 필요한 시간과 관련된 초기 안전성 결정정보를 유지하는 초기 안전성 결정정보 유지부를 포함하고, 안전성 레벨 정보 및 상기 초기 안전성 결정 정보에 근거하여, 임시 파라미터 세트에 포함된 차원(N)을 생성하는 파라미터 생성 장치.
  12. 제10 항에 있어서, 상기 임시 파라미터 생성부는 상기 안전성 레벨 정보와 상기 차원(N)에 근거하여, 상기 임시 파라미터 세트에 포함되는 상기 음이 아닌 정수(df), 상기 음이 아닌 정수(dg), 및 상기 음이 아닌 정수(d)를 생성하는 파라미터 생성 장치.
  13. 제10 항에 있어서, 상기 임시 파라미터 생성부는, 상기 에러 조건 정보에 근거하여, 상기 임시 파라미터 세트에 포함된 상기 음이 아닌 정수(q)를 생성하는 파라미터 생성 장치.
  14. 제10 항에 있어서, 상기 출력 파라미터 생성부는 상기 안전성 레벨 정보와 상기 안전성 결정 정보에 근거하여, 상기 출력 파라미터에 포함되는 상기 차원(N)을 생성하는 파라미터 생성 장치.
  15. 제1 항에 있어서, 상기 에러 조건 정보는, 복호 에러를 발생하지 않는 조건을 나타내는 조건식인 파라미터 생성 장치.
  16. 제15 항에 있어서, 상기 에러 조건 정보는, NTRU 암호체계에 있어서 음이 아닌 정수(p), 음이 아닌 정수(q), 음이 아닌 정수(d), 및 비밀키 다항식(f)에서 계수의 값이 1이 되는 계수의 수를 규정하기 위한 음이 아닌 정수(df)에 대해서,
    2·p·d + 2d·f - 1 < q/2
    로서 표현되는 복호 에러를 발생하지 않는 조건식인 파라미터 생성 장치.
  17. 제1 항에 있어서, 상기 NTRU 암호체계는
    가산, 감산 및 승산이 정의되어 있는 N차원의 어레이 군인 링(R)의 아이디얼(p, q)을 선택하는 선택 단계;
    링(R)의 요소(f, g)를 생성하고, f(mod q)의 역인 요소(F.sub.q)를 생성하고, f(mod p)의 역인 요소(F.sub.p)를 생성하는 생성단계;
    g를 이용하여 도출될 수 있는 곱에 합동, mod q인 h와 F.sub.q를 포함하는 공개키를 생성하는 공개키 생성단계;
    비밀키로서, f 및 F.sub.p가 도출될 수 있는 정보를 생성하는 비밀키 생성단계;
    공개키와 링(R)으로부터 무작위로 선택된 요소(i)를 이용하여 평문을 인코딩하여 암호화문을 생성하는 암호화 단계; 및
    비밀 키를 이용하여 암호화문을 복호화하여 복호화문을 생성하는 복호화 단계를 포함하는 방법에 의해 평문을 암호화하고 암호화문을 복호화하는 암호 시스템인 파라미터 생성 장치.
  18. NTRU 암호 체계에 따라 평문을 암호화함으로써 암호화문을 생성하는 암호 시스템으로서,
    복호 에러를 발생하지 않는 조건을 나타내고, 미리 주어진 에러 조건 정보에 근거하여, 복호 에러를 발생하지 않는 출력 파라미터를 생성하는 에러 프리 출력 파라미터 생성부를 포함하는 파라미터 생성 장치;
    상기 파라미터 생성장치에 의해 생성된 출력 파라미터에 근거하여 공개키를 생성하는 공개키 생성부; 및
    상기 공개키에 근거하여 평문을 암호화하는 암호화부;를 포함하는 암호 시스템.
  19. NTRU 암호 체계에 따라 암호화문을 복호화함으로써 복호화문을 생성하는 복호 시스템으로서,
    복호 에러를 발생하지 않는 조건을 나타내고, 미리 주어진 에러 조건 정보에 근거하여, 복호 에러를 발생하지 않는 출력 파라미터를 생성하는 에러 프리 출력 파라미터 생성부를 포함하는 파라미터 생성 장치;
    상기 파라미터 생성장치에 의해 생성된 출력 파라미터에 근거하여 비밀키를 생성하는 비밀키 생성부; 및
    상기 비밀키에 근거하여 암호화문을 복호화하는 복호화부;를 포함하는 복호 시스템.
  20. NTRU 암호 체계를 이용하는 암호 시스템으로서,
    NTRU 암호 체계에 있어서 복호 에러를 발생하지 않는 파라미터 세트인 출력 파라미터를 생성하여 출력하는 파라미터 생성 장치;
    NTRU 암호 체계에 있어서 암호키 및 복호키를 생성하여 출력하는 키 생성장치;
    NTRU 암호 체계에 따라 평문을 암호화하여 암호화문을 생성하는 암호 장치; 및
    암호화문을 복호화하여 복호화문을 생성하는 복호 장치를 포함하고,
    상기 파라미터 생성장치는
    복호 에러를 발생하지 않는 조건을 나타내고, 미리 주어진 에러 조건 정보에 근거하여, 복호 에러를 발생하지 않는 임시 파라미터 세트를 생성하는 임시 파라미터 생성부; 및
    상기 임시 파라미터 세트를 이용하여, 상기 임시 파라미터 세트로부터 계산된 격자 상수에 근거하여, 출력 파라미터를 생성하고, 생성된 출력 파라미터를 출력하는 출력 파라미터 생성부를 포함하고,
    상기 키 생성장치는 파라미터 생성장치로부터 입력된 출력 파라미터를 이용 하여 암호키 및 복호키를 생성하여, 생성된 암호키 및 복호키를 출력하는 생성키 출력부를 포함하고,
    상기 암호 장치는 상기 파라미터 생성장치로부터 입력된 출력 파라미터와 상기 키 생성장치로부터 입력된 암호키를 이용하여, 평문을 암호화하여 암호화문을 생성하는 암호화부를 포함하고,
    상기 복호 장치는 파라미터 생성장치로부터 입력된 출력 파라미터와 키 생성장치로부터 입력된 복호키를 이용하여, 암호화문을 복호화하여 복호화문을 생성하는 복호화부를 포함하는 암호 시스템.
  21. NTRU 암호 체계를 이용하는 암호 시스템으로서,
    NTRU 암호 체계에 있어서 복호 에러를 발생하지 않는 파라미터 세트인 출력 파라미터를 생성하여 출력하는 파라미터 생성 장치;
    NTRU 암호 체계에 있어서 암호키를 생성하여 출력하는 키 생성장치;및
    NTRU 암호 체계에 따라 평문을 암호화하여 암호화문을 생성하는 암호 장치를 포함하고,
    상기 파라미터 생성장치는
    복호 에러를 발생하지 않는 조건을 나타내고, 미리 주어진 에러 조건 정보에 근거하여, 복호 에러를 발생하지 않는 임시 파라미터 세트를 생성하는 임시 파라미터 생성부; 및
    상기 임시 파라미터 세트를 이용하여, 상기 임시 파라미터 세트로부터 계산 된 격자 상수에 근거하여, 출력 파라미터를 생성하고, 생성된 출력 파라미터를 출력하는 출력 파라미터 생성부를 포함하고,
    상기 키 생성장치는 파라미터 생성장치로부터 입력된 출력 파라미터를 이용하여 암호키를 생성하여, 생성된 암호키를 출력하는 생성키 출력부를 포함하고,
    상기 암호 장치는 파라미터 생성장치로부터 입력된 출력 파라미터와 키 생성장치로부터 입력된 암호키를 이용하여, 평문을 암호화하여 암호화문을 생성하는 암호화부를 포함하는 암호 시스템.
  22. NTRU 암호 체계에 따라 평문을 암호화하여 암호화문을 생성하는 암호 장치로서,
    복호 에러를 발생하지 않는 조건을 나타내고, 미리 주어진 에러 조건 정보에 근거하여, 복호 에러를 발생하지 않는 임시 파라미터 세트를 생성하는 임시 파라미터 생성부;
    상기 임시 파라미터 세트를 이용하여, 상기 임시 파라미터 세트로부터 계산된 격자 상수에 근거하여, 출력 파라미터를 생성하고, NTRU 암호체계에 있어서 복호 에러를 발생하지 않는 파라미터 세트인 생성된 출력 파라미터를 출력하는 출력 파라미터 생성부;
    출력 파라미터를 복호 장치에 송신하는 파라미터 송신부;
    복호 장치로부터, 출력 파라미터에 근거하여 생성된 NTRU 암호 체계의 암호키를 수신하는 암호키 수신부; 및
    출력 파라미터 및 암호키에 근거하여 평문을 암호화하여 암호화문을 생성하는 암호화문 생성부를 포함하는 암호 장치.
  23. NTRU 암호 체계에 따라 평문을 암호화하여 암호화문을 생성하는 암호 장치로서,
    복호 에러를 발생하지 않는 조건을 나타내고, 미리 주어진 에러 조건 정보에 근거하여 생성되고, 복호 에러를 발생하지 않는 출력 파라미터를 수신하는 파라미터 수신부;
    상기 파라미터 수신부에 의해 수신된 출력 파라미터에 근거하여 공개키를 생성하는 공개키 생성부; 및
    공개키에 근거하여 평문을 암호화하는 암호화부를 포함하는 암호 장치.
  24. NTRU 암호 체계에 따라 평문을 암호화하여 암호화문을 생성하는 암호 방법으로서,
    복호 에러를 발생하지 않는 조건을 나타내고, 미리 주어진 에러 조건 정보에 근거하여, 복호 에러를 발생하지 않는 임시 파라미터 세트를 생성하는 단계;
    NTRU 암호 체계에 있어 복호 에러를 발생하지 않는 파라미터 세트인 출력 파라미터를, 상기 임시 파라미터 세트를 이용하여, 상기 임시 파라미터 세트로부터 계산된 격자 상수에 근거해서 생성하고, 상기 생성된 출력 파라미터를 출력하는 단계;
    출력 파라미터에 근거하여 NTRU 암호 체계의 암호키를 생성하는 단계; 및
    출력 파라미터 및 암호키에 근거하여 평문을 암호화하여 암호화문을 생성하는 단계를 포함하는 암호 방법.
  25. NTRU 암호 체계에 따라 평문을 암호화하여 암호화문을 생성하는 프로그램으로서,
    복호 에러를 발생하지 않는 조건을 나타내고, 미리 주어진 에러 조건 정보에 근거하여, 복호 에러를 발생하지 않는 임시 파라미터 세트를 생성하는 단계;
    NTRU 암호 체계에 있어 복호 에러를 발생하지 않는 파라미터 세트인 출력 파라미터를, 상기 임시 파라미터 세트를 이용하여, 상기 임시 파라미터 세트로부터 계산된 격자 상수에 근거해서 생성하고, 상기 생성된 출력 파라미터를 출력하는 단계;
    출력 파라미터에 근거하여 NTRU 암호 체계의 암호키를 생성하는 단계; 및
    출력 파라미터 및 암호키에 근거하여 평문을 암호화하여 암호화문을 생성하는 단계를 컴퓨터가 실행하도록 하는 프로그램.
  26. NTRU 암호 체계를 이용하는 복호 시스템으로서,
    NTRU 암호 체계에 있어서 복호 에러를 발생하지 않는 파라미터 세트인 출력 파라미터를 생성하여 출력하는 파라미터 생성 장치;
    NTRU 암호 체계에 있어 복호키를 생성하여 출력하는 키 생성장치;및
    NTRU 암호 체계에 따라 암호화문을 복호화하여 복호화문을 생성하는 복호 장치를 포함하고,
    상기 파라미터 생성장치는
    복호 에러를 발생하지 않는 조건을 나타내고, 미리 주어진 에러 조건 정보에 근거하여, 복호 에러를 발생하지 않는 임시 파라미터 세트를 생성하는 임시 파라미터 생성부; 및
    상기 임시 파라미터 세트를 이용하여, 상기 임시 파라미터 세트로부터 계산된 격자 상수에 근거하여, 출력 파라미터를 생성하고, 생성된 출력 파라미터를 출력하는 출력 파라미터 생성부를 포함하고,
    상기 키 생성장치는 파라미터 생성장치로부터 입력된 출력 파라미터를 이용하여 복호키를 생성하여, 생성된 복호키를 출력하는 생성키 출력부를 포함하고,
    상기 복호 장치는 파라미터 생성장치로부터 입력된 출력 파라미터와 키 생성장치로부터 입력된 복호키를 이용하여, 암호화문을 복호화하여 복호화문을 생성하는 복호화부를 포함하는 복호 시스템.
  27. NTRU 암호 체계에 따라 암호 장치로부터 수신한 암호화문을 복호화하여 복호화문을 생성하는 복호 장치로서,
    NTRU 암호 체계에 대해 복호 에러를 발생하지 않는 파라미터 세트인 출력 파라미터를 암호 장치로부터 수신하는 파라미터 수신부;
    입력된 출력 파라미터를 이용하여, NTRU 암호 체계에 대해 암호키 및 복호키 를 생성하여, 생성된 암호키 및 복호키를 출력하는 생성키 생성부;
    암호키를 암호 장치에 송신하는 암호키 송신부;및
    출력 파라미터 및 복호 키에 근거하여 암호화문을 복호하여 복호화문을 생성하는 복호화문 생성부를 포함하는 복호 장치.
  28. NTRU 암호 체계에 따라 암호화문을 복호화하여 복호화문을 생성하는 복호 방법으로서,
    복호 에러를 발생하지 않는 임시 파라미터 세트를, 복호 에러를 발생하지 않는 조건을 나타내고, 미리 주어진 에러 조건 정보에 근거하여, 생성하는 단계;
    NTRU 암호 체계에 있어 복호 에러를 발생하지 않는 파라미터 세트인 출력 파라미터를, 상기 임시 파라미터 세트로부터 계산된 격자 상수에 근거하여, 상기 임시 파라미터 세트를 이용하여 생성하고, 상기 생성된 출력 파라미터를 출력하는 단계;
    출력 파라미터에 근거하여 NTRU 암호 체계의 복호키를 생성하는 단계; 및
    출력 파라미터 및 복호키에 근거하여 암호화문을 복호화하여 복호화문을 생성하는 단계를 포함하는 복호 방법.
  29. NTRU 암호 체계에 따라 암호화문을 복호화하여 복호화문을 생성하는 프로그램으로서,
    복호 에러를 발생하지 않는 임시 파라미터 세트를, 복호 에러를 발생하지 않 는 조건을 나타내고, 미리 주어진 에러 조건 정보에 근거하여, 생성하는 단계;
    NTRU 암호 체계에 있어 복호 에러를 발생하지 않는 파라미터 세트인 출력 파라미터를, 상기 임시 파라미터 세트로부터 계산된 격자 상수에 근거하여, 상기 임시 파라미터 세트를 이용하여 생성하고, 상기 생성된 출력 파라미터를 출력하는 단계;
    출력 파라미터에 근거하여 NTRU 암호 체계의 복호키를 생성하는 단계; 및
    출력 파라미터 및 복호키에 근거하여 암호화문을 복호화하여 복호화문을 생성하는 단계를 컴퓨터가 실행하도록 하는 프로그램.
  30. NTRU 암호 체계를 이용하는 암호 시스템으로서,
    외부로부터 입력된 NTRU 암호 체계에 있어 파라미터 세트인 입력 파라미터를 NTRU 암호 체계에 있어 복호 에러를 발생하지 않는 파라미터 세트인 출력 파라미터로 변환하는 파라미터 변환 장치;
    NTRU 암호 체계에 있어 암호키와 복호키를 생성하여 출력하는 키 생성장치;
    NTRU 암호 체계에 따라 평문을 암호화하여 암호화문을 생성하는 암호 장치;및
    암호화문을 복호화하여 복호화문을 생성하는 복호 장치를 포함하고,
    상기 파라미터 변환장치는
    입력 파라미터와, 복호 에러를 발생하지 않는 조건을 나타내고 미리 주어진 에러 조건 정보에 근거하여, 복호 에러를 발생하지 않는 임시 파라미터 세트를 생 성하는 임시 파라미터 생성부; 및
    상기 임시 파라미터 세트를 이용하여, 상기 임시 파라미터 세트로부터 계산된 격자 상수에 근거하여, 출력 파라미터를 생성하고, 생성된 출력 파라미터를 출력하는 출력 파라미터 생성부를 포함하고,
    상기 키 생성장치는 파라미터 변환장치로부터 입력된 출력 파라미터를 이용하여 암호키 및 복호키를 생성하고, 생성된 암호키 및 복호키를 출력하는 생성키 출력부를 포함하고,
    상기 암호 장치는 파라미터 변환장치로부터 입력된 출력 파라미터와 키 생성장치로부터 입력된 암호키를 이용하여, 평문을 암호화하여 암호화문을 생성하는 암호화부를 포함하고,
    상기 복호 장치는 파라미터 변환장치로부터 입력된 출력 파라미터와 키 생성장치로부터 입력된 복호키를 이용하여, 암호화문을 복호화하여 복호화문을 생성하는 복호화부를 포함하는 암호 시스템.
  31. NTRU 암호 체계를 이용하는 암호 시스템으로서,
    외부로부터 입력된 NTRU 암호 체계에 있어서의 파라미터 세트인 입력 파라미터로부터 출력 파라미터를 생성하고, NTRU 암호 체계에 있어 복호 에러를 발생하지 않는 파라미터 세트인 생성된 출력 파라미터를 출력하는 파라미터 생성 장치;
    NTRU 암호 체계에 있어 암호키를 생성하여 출력하는 키 생성장치;및
    NTRU 암호 체계에 따라 평문을 암호화하여 암호화문을 생성하는 암호 장치를 포함하고,
    상기 파라미터 생성장치는
    입력 파라미터와, 복호 에러를 발생하지 않는 조건을 나타내고 미리 주어진 에러 조건 정보에 근거하여, 복호 에러를 발생하지 않는 임시 파라미터 세트를 생성하는 임시 파라미터 생성부; 및
    상기 임시 파라미터 세트를 이용하여, 상기 임시 파라미터 세트로부터 계산된 격자 상수에 근거하여, 출력 파라미터를 생성하고, 생성된 출력 파라미터를 출력하는 출력 파라미터 생성부를 포함하고,
    상기 키 생성장치는 파라미터 생성장치로부터 입력된 출력 파라미터를 이용하여 암호키를 생성하고, 생성된 암호키를 출력하는 생성키 출력부를 포함하고,
    상기 암호 장치는 파라미터 생성장치로부터 입력된 출력 파라미터와 키 생성장치로부터 입력된 암호키를 이용하여, 평문을 암호화하여 암호화문을 생성하는 암호화부를 포함하는 암호 시스템.
  32. NTRU 암호 체계에 따라 평문을 암호화하여 암호화문을 생성하는 암호 장치로서,
    복호 에러를 발생하지 않는 임시 파라미터 세트를, NTRU 암호 체계에 있어 파라미터 세트이고 미리 주어진 입력 파라미터와, 복호 에러를 발생하지 않는 조건을 나타내고 미리 주어진 에러 조건 정보에 근거하여, 생성하는 임시 파라미터 생성부;
    상기 임시 파라미터 세트로부터 계산된 격자 상수에 근거하여, 상기 임시 파라미터 세트를 이용하여 출력 파라미터를 생성하고, NTRU 암호 체계에 있어 복호 에러를 발생하지 않는 파라미터 세트인 생성된 출력 파라미터를 출력하는 출력 파라미터 생성부;
    출력 파라미터를 복호 장치에 송신하는 파라미터 송신부;
    복호 장치로부터, 출력 파라미터에 근거하여 생성된 NTRU 암호 체계의 암호키를 수신하는 암호키 수신부; 및
    출력 파라미터 및 암호키에 근거하여 평문을 암호화하여 암호화문을 생성하는 암호화문 생성부를 포함하는 암호 장치.
  33. NTRU 암호 체계에 따라 평문을 암호화하여 암호화문을 생성하는 암호 방법으로서,
    복호 에러를 발생하지 않는 임시 파라미터 세트를, NTRU 암호 체계에 있어 파라미터 세트이고 미리 주어진 입력 파라미터와, 복호 에러를 발생하지 않는 조건을 나타내고 미리 주어진 에러 조건 정보에 근거하여, 생성하는 단계;
    NTRU 암호 체계에 있어 복호 에러를 발생하지 않는 파라미터 세트인 출력 파라미터를, 상기 임시 파라미터 세트로부터 계산된 격자 상수에 근거하여, 상기 임시 파라미터 세트를 이용하여 생성하고, 상기 생성된 출력 파라미터를 출력하는 단계;
    출력 파라미터에 근거하여 NTRU 암호 체계의 암호키를 생성하는 단계; 및
    출력 파라미터 및 암호키에 근거하여 평문을 암호화하여 암호화문을 생성하는 단계를 포함하는 암호 방법.
  34. NTRU 암호 체계에 따라 평문을 암호화하여 암호화문을 생성하는 프로그램으로서,
    복호 에러를 발생하지 않는 임시 파라미터 세트를, NTRU 암호 체계에 있어 파라미터 세트이고 미리 주어진 입력 파라미터와, 복호 에러를 발생하지 않는 조건을 나타내고 미리 주어진 에러 조건 정보에 근거하여, 생성하는 단계;
    NTRU 암호 체계에 있어 복호 에러를 발생하지 않는 파라미터 세트인 출력 파라미터를, 상기 임시 파라미터 세트로부터 계산된 격자 상수에 근거하여, 상기 임시 파라미터 세트를 이용하여 생성하고, 상기 생성된 출력 파라미터를 출력하는 단계;
    출력 파라미터에 근거하여 NTRU 암호 체계의 암호키를 생성하는 단계; 및
    출력 파라미터 및 암호키에 근거하여 평문을 암호화하여 암호화문을 생성하는 단계를 컴퓨터가 실행하도록 하는 프로그램.
  35. NTRU 암호 체계를 이용하는 복호 시스템으로서,
    외부로부터 입력된 NTRU 암호 체계에 있어 파라미터 세트인 입력 파라미터로부터 출력 파라미터를 생성하고, NTRU 암호 체계에 있어 복호 에러를 발생하지 않는 파라미터 세트인 생성된 출력 파라미터를 출력하는 파라미터 생성 장치;
    NTRU 암호 체계에 있어 복호키를 생성하여 출력하는 키 생성장치;및
    NTRU 암호 체계에 따라 암호화문을 복호화하여 복호화문을 생성하는 복호 장치를 포함하고,
    상기 파라미터 생성장치는
    미리 주어진 입력 파라미터와, 복호 에러를 발생하지 않는 조건을 나타내고 미리 주어진 에러 조건 정보에 근거하여, 복호 에러를 발생하지 않는 임시 파라미터 세트를 생성하는 임시 파라미터 생성부; 및
    상기 임시 파라미터 세트를 이용하여, 상기 임시 파라미터 세트로부터 계산된 격자 상수에 근거하여, 출력 파라미터를 생성하고, 생성된 출력 파라미터를 출력하는 출력 파라미터 생성부를 포함하고,
    상기 키 생성장치는 파라미터 생성장치로부터 입력된 출력 파라미터를 이용하여 복호키를 생성하여, 생성된 복호키를 출력하는 생성키 출력부를 포함하고,
    상기 복호 장치는 파라미터 생성장치로부터 입력된 출력 파라미터와 키 생성장치로부터 입력된 복호키를 이용하여, 암호화문을 복호화하여 복호화문을 생성하는 복호화부를 포함하는 복호 시스템.
  36. NTRU 암호 체계에 따라 암호화문을 복호화하여 복호화문을 생성하는 복호 방법으로서,
    복호 에러를 발생하지 않는 임시 파라미터 세트를, NTRU 암호 체계에 있어 파라미터 세트이고 미리 주어진 입력 파라미터와, 복호 에러를 발생하지 않는 조건 을 나타내고 미리 주어진 에러 조건 정보에 근거하여, 생성하는 단계;
    NTRU 암호 체계에 있어 복호 에러를 발생하지 않는 파라미터 세트인 출력 파라미터를, 상기 임시 파라미터 세트로부터 계산된 격자 상수에 근거하여, 상기 임시 파라미터 세트를 이용하여 생성하고, 상기 생성된 출력 파라미터를 출력하는 단계;
    출력 파라미터에 근거하여 NTRU 암호 체계의 복호키를 생성하는 단계; 및
    출력 파라미터 및 복호키에 근거하여 암호화문을 복호화하여 복호화문을 생성하는 단계를 포함하는 복호 방법.
  37. NTRU 암호 체계에 따라 암호화문을 복호화하여 복호화문을 생성하는 프로그램으로서,
    복호 에러를 발생하지 않는 임시 파라미터 세트를, NTRU 암호 체계에 있어 파라미터 세트이고 미리 주어진 입력 파라미터와, 복호 에러를 발생하지 않는 조건을 나타내고 미리 주어진 에러 조건 정보에 근거하여, 생성하는 단계;
    NTRU 암호 체계에 있어 복호 에러를 발생하지 않는 파라미터 세트인 출력 파라미터를, 상기 임시 파라미터 세트로부터 계산된 격자 상수에 근거하여, 상기 임시 파라미터 세트를 이용하여 생성하고, 상기 생성된 출력 파라미터를 출력하는 단계;
    출력 파라미터에 근거하여 NTRU 암호 체계의 복호키를 생성하는 단계; 및
    출력 파라미터 및 복호키에 근거하여 암호화문을 복호화하여 복호화문을 생 성하는 단계를 컴퓨터가 실행하도록 하는 프로그램.
KR1020057019437A 2003-04-24 2004-04-14 파라미터 생성 장치, 암호 시스템, 복호 시스템, 암호장치, 복호 장치, 암호화 방법, 복호화 방법, 및 그프로그램 KR101024768B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003119973 2003-04-24
JPJP-P-2003-00119973 2003-04-24

Publications (2)

Publication Number Publication Date
KR20060008885A true KR20060008885A (ko) 2006-01-27
KR101024768B1 KR101024768B1 (ko) 2011-03-24

Family

ID=33308121

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057019437A KR101024768B1 (ko) 2003-04-24 2004-04-14 파라미터 생성 장치, 암호 시스템, 복호 시스템, 암호장치, 복호 장치, 암호화 방법, 복호화 방법, 및 그프로그램

Country Status (5)

Country Link
US (1) US7929688B2 (ko)
EP (2) EP1616405A1 (ko)
KR (1) KR101024768B1 (ko)
CN (1) CN1778066B (ko)
WO (1) WO2004095771A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3761557B2 (ja) * 2004-04-08 2006-03-29 株式会社日立製作所 暗号化通信のための鍵配付方法及びシステム
JP4786531B2 (ja) 2004-05-12 2011-10-05 パナソニック株式会社 暗号システム、暗号装置、復号装置、プログラムおよび集積回路
JP2006127485A (ja) * 2004-09-30 2006-05-18 Sanyo Electric Co Ltd コンテンツ再生装置およびコンテンツ再生方法
US8938591B2 (en) * 2005-09-30 2015-01-20 Cleversafe, Inc. Dispersed storage processing unit and methods with data aggregation for use in a dispersed storage system
FR2899702A1 (fr) * 2006-04-10 2007-10-12 France Telecom Procede et dispositif pour engendrer une suite pseudo-aleatoire
US8117447B2 (en) * 2008-01-10 2012-02-14 Industrial Technology Research Institute Authentication method employing elliptic curve cryptography
US8281143B1 (en) 2008-09-29 2012-10-02 Symantec Operating Corporation Protecting against chosen plaintext attacks in untrusted storage environments that support data deduplication
US8271974B2 (en) * 2008-10-08 2012-09-18 Kaavo Inc. Cloud computing lifecycle management for N-tier applications
US8479304B1 (en) * 2009-03-31 2013-07-02 Symantec Corporation Selectively protecting against chosen plaintext attacks in untrusted storage environments that support data deduplication
US20140314229A1 (en) * 2011-12-09 2014-10-23 Morpho Cryptography on a simplified elliptical curve
US20170207918A1 (en) 2009-06-16 2017-07-20 Morpho Cryptography on an elliptical curve
JP5539024B2 (ja) * 2010-05-27 2014-07-02 キヤノン株式会社 データ暗号化装置およびその制御方法
US8677135B2 (en) * 2010-12-17 2014-03-18 Microsoft Corporation Digital signatures with error polynomials
JP5814880B2 (ja) * 2012-07-31 2015-11-17 三菱電機株式会社 暗号システム、暗号方法、暗号プログラム及び復号装置
WO2019178312A1 (en) * 2018-03-16 2019-09-19 Iot And M2M Technologies, Llc Configuration systems and methods for secure operation of networked transducers
IL272521B2 (en) * 2020-02-06 2023-05-01 Google Llc Creating sequences of network data while preventing the acquisition or manipulation of time data

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2316044A1 (fr) 1975-07-02 1977-01-28 Martelli Antonio Perfectionnements aux polisseuses lustreuses de dallages
US4328645A (en) 1980-06-04 1982-05-11 The Boeing Company Multiple spindle flexible sanding head
DE8702555U1 (ko) 1987-02-19 1987-04-02 Tabori, Franz, 5233 Nuembrecht, De
CA2263588C (en) * 1996-08-19 2005-01-18 Ntru Cryptosystems, Inc. Public key cryptosystem method and apparatus
DE19735936C1 (de) 1997-08-19 1998-09-24 Unislip Gmbh Universal-Schleifkopf für stationäre oder mobile Maschinen
US6243470B1 (en) * 1998-02-04 2001-06-05 International Business Machines Corporation Method and apparatus for advanced symmetric key block cipher with variable length key and block
US6832314B1 (en) * 1999-12-15 2004-12-14 Ericsson, Inc. Methods and apparatus for selective encryption and decryption of point to multi-point messages
JP2002133242A (ja) * 2000-10-20 2002-05-10 Nippon Conlux Co Ltd プロモーション方法およびシステム
US7373515B2 (en) * 2001-10-09 2008-05-13 Wireless Key Identification Systems, Inc. Multi-factor authentication system
JP3571018B2 (ja) 2001-10-09 2004-09-29 株式会社新光住設産業 屋根の融雪装置
JP2003124927A (ja) 2001-10-15 2003-04-25 Sony Corp 相互認証システム及び相互認証方法、相互認証装置、並びに記憶媒体
JP4208230B2 (ja) 2001-10-19 2009-01-14 パナソニック株式会社 配列出力装置、配列出力方法、暗号化装置、および復号化装置
EP2148463A3 (en) 2001-10-19 2015-04-22 Panasonic Intellectual Property Management Co., Ltd. A numerical array output device, a numerical array output method, an encryption device, and a decryption device

Also Published As

Publication number Publication date
US7929688B2 (en) 2011-04-19
EP1616405A1 (en) 2006-01-18
CN1778066B (zh) 2011-10-12
US20060239459A1 (en) 2006-10-26
KR101024768B1 (ko) 2011-03-24
EP1914925A1 (en) 2008-04-23
CN1778066A (zh) 2006-05-24
WO2004095771A1 (en) 2004-11-04

Similar Documents

Publication Publication Date Title
KR101024768B1 (ko) 파라미터 생성 장치, 암호 시스템, 복호 시스템, 암호장치, 복호 장치, 암호화 방법, 복호화 방법, 및 그프로그램
JP4786531B2 (ja) 暗号システム、暗号装置、復号装置、プログラムおよび集積回路
JP6720424B1 (ja) 鍵共有デバイス及び方法
Smart et al. Fully homomorphic encryption with relatively small key and ciphertext sizes
Nguyen et al. Lattice reduction in cryptology: An update
Perlner et al. Quantum resistant public key cryptography: a survey
JP4620669B2 (ja) 署名生成装置、署名検証装置、それらの方法、および集積回路
JP2009116183A (ja) 暗号装置、復号装置、鍵生成装置及びプログラム
KR20190081259A (ko) Module-Wavy와 Module-LWR에 기반한 공개키 암호 키 생성 및 암복호화 방법
US11288985B2 (en) Encryption device, decryption device, encryption method, decryption method, encryption program product, and decryption program product
US20160072622A1 (en) Method and apparatus for scalar multiplication secure against differential power attacks
JP4567364B2 (ja) パラメータ生成装置、暗号化システム、復号化システム、暗号装置、暗号化方法、復号化方法、およびプログラム
Jochemsz Cryptanalysis of RSA variants using small roots of polynomials
JP2007187908A (ja) サイドチャネル攻撃に耐性を有するモジュラーべき乗算計算装置及びモジュラーべき乗算計算方法
US7321658B2 (en) Padding application method ensuring security of cryptosystem and encryptor/decryptor
US20080019508A1 (en) Public key cryptographic methods and systems with rebalancing
JP2011150006A (ja) 暗号化システム、公開鍵暗号化方法、鍵生成装置、計算機および公開鍵秘密鍵生成プログラム
JP7443217B2 (ja) 暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラム
Buchmann et al. Post-quantum signatures
JP5297918B2 (ja) 暗号化数値二進変換システム及び方法とプログラム
US20070189515A1 (en) Public key cryptosystem and associated method utilizing a hard lattice with O(n log n) random bits for security
Hovd The handling of noise and security of two fully homomorphic encryption schemes
Skatharoudis Attacks on the RSA Cryptosystem
Wolf Hidden field equations
JP4237306B2 (ja) 超楕円曲線c生成装置、暗号管理装置、データ送信装置及びデータ受信装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee