KR20070011293A - 암호 시스템, 암호 장치, 복호 장치, 프로그램 및 집적회로 - Google Patents

암호 시스템, 암호 장치, 복호 장치, 프로그램 및 집적회로 Download PDF

Info

Publication number
KR20070011293A
KR20070011293A KR1020067016741A KR20067016741A KR20070011293A KR 20070011293 A KR20070011293 A KR 20070011293A KR 1020067016741 A KR1020067016741 A KR 1020067016741A KR 20067016741 A KR20067016741 A KR 20067016741A KR 20070011293 A KR20070011293 A KR 20070011293A
Authority
KR
South Korea
Prior art keywords
circle
encryption
ring
text
polynomial
Prior art date
Application number
KR1020067016741A
Other languages
English (en)
Inventor
마사토 야마미치
유이치 후타
모토지 오모리
Original Assignee
마쯔시다덴기산교 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마쯔시다덴기산교 가부시키가이샤 filed Critical 마쯔시다덴기산교 가부시키가이샤
Publication of KR20070011293A publication Critical patent/KR20070011293A/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
    • 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
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Landscapes

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

Abstract

종래보다 고속 처리 가능한 암호 통신 시스템은, 암호 장치와 복호 장치를 구비하고 있고, p=3 또한 q=2^k(k : 2 이상의 정수)가 되는 파라미터를, 암호 장치와 복호 장치의 사이에서 공유하고 있다(S161). 복호 장치는, 이 파라미터를 사용해 공개 키 및 비밀 키를 작성한다(S162∼S165). 암호 장치는, 복호 장치의 공개 키를 사용해 평문의 암호화를 행한다(S166∼S170). 복호 장치는, 복호 장치의 비밀 키를 사용해 암호문을 복호화한다(S171∼S173).

Description

암호 시스템, 암호 장치, 복호 장치, 프로그램 및 집적 회로{ENCRYPTION SYSTEM, ENCRYPTION DEVICE, DECRYPTION DEVICE, PROGRAM, AND INTEGRATED CIRCUIT}
본 발명은, 정보 시큐러티 기술로서의 암호 기술에 관한 것이며, 특히 복호 에러가 발생하지 않는 암호에 관한 것이다.
종래, 송신 장치와 수신 장치의 사이에서 비닉(秘匿) 통신을 실현하는 방법으로서, 공개 키 암호를 사용한 암호화 통신이 제안되어 있다. 종래의 암호화 통신에 관해서 간단히 설명하면, 송신 장치가, 통신 내용을 수신 장치의 공개 키를 사용해 암호화하여 송신하고, 수신 장치는, 암호화된 통신 내용을 수신하여, 그것을 자신의 비밀 키를 사용해 복호하여 원래의 통신 내용을 얻는 방법이다(예를 들면, 비특허 문헌 1 참조). 여기서, 공개 키의 값으로부터 비밀 키의 값을 계산하는 것은 곤란하다. 이 방법을 사용하는 일반적인 암호 통신 시스템에서는, 송신 장치 및 수신 장치는, 모두 복수 존재한다. 우선 송신 장치는, 통신처 수신 장치의 공개 키를 취득한다. 이 공개 키는, 통신처 수신 장치가 갖는 비밀 키와 쌍이 되는 것이며 당해 시스템에 있어서 공개되어 있다. 그리고, 송신 장치는, 통신해야 할 데이터 내용을 상기와 같이 취득한 공개 키로 암호화하여 송신한다. 한편, 수신 장치는, 상기와 같이 암호화된 통신 내용 데이터를 수신한다. 그리고, 수신 장치는, 암호화된 통신 내용 데이터를 자신이 갖는 비밀 키로 복호하여 원래의 통신 내용 데이터를 얻는다.
1996년, 고속 처리가 가능한 공개 키 암호로서, NTRU(엔티알유·크립트 시스템즈 인코포레이티드의 상표) 암호가 제안되었다(예를 들면, 비특허 문헌 2 참조). 이 NTRU 암호는, 어떤 법 하에서 멱승 나머지 연산을 행하는 RSA(Rivest Shamir Adleman) 암호나 타원 곡선 상의 점의 스칼라 배(倍)연산을 행하는 타원 곡선 암호에 비해, 고속으로 연산 가능한 다항식 연산에 의해 암호화와 복호화를 행한다. 이 때문에, 종래의 공개 키 암호보다도 고속으로 처리하는 것이 가능하고, 소프트웨어 처리에서도 실용적인 시간으로 암호화 및 복호화의 처리가 가능하다.
따라서, 공개 키 암호에 NTRU 암호를 사용한 암호 통신 시스템에서는, 종래의 공개 키 암호를 사용한 암호 통신 시스템보다도, 송신 장치 및 수신 장치의 처리를 고속으로 행할 수 있다는 이점이 있다.
이 NTRU 암호 방식에 대해서는, 비특허 문헌 2에 상세히 설명되어 있으므로 여기서는 상세한 설명을 생략하지만, 이하에 간단히 설명한다.
<NTRU 암호 방식>
(1) NTRU 암호의 파라미터
NTRU 암호는, 음이 아닌 정수의 파라미터, N, p, q, df, dg, d를 갖는다. 이하에, 이들 파라미터의 의미를 설명한다.
(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)차 이하의 다항식으로서 표현된다.
그리고, 다항식 연산은, 상기 파라미터 N에 대해, 「X^N=1」이라는 관계식을 사용해, 연산 결과가 항상 (N-1)차 이하의 다항식이 되도록 연산된다. 예를 들면, N=5인 경우, 다항식 X^4+X^2+1과 다항식 X^3+X의 적(積)은, 다항식과 다항식의 적을 「×」,정수와 다항식의 적(또는 정수와 정수의 적)을「·」라고 하면, 「X^5=1」이라는 관계로부터,
(X^4+X^2+1)×(X^3+X)
=X^7+2·X^5+2·X^3+X
=X^2×1+2·1+2·X^3+X
=2·X^3+X^2+X+2
와 같이, 항상 (N-1)차원 이하의 다항식이 되도록 계산된다.
(ii) 파라미터 p, q
NTRU 암호에서는, 2이상의 정수인 파라미터 p, q가 사용된다. NTRU 암호에 서 출현하는 다항식의 계수는, p, q를 법(法)으로 한 나머지를 취한다. 비특허 문헌 2에 기재된 바와 같이, 이 파라미터 p, q는 서로 소(素)가 될 필요가 있다.
(iii) 파라미터 df, dg, d
NTRU 암호에서 다루는 비밀 키의 일부인 다항식 f, 공개 키인 다항식 h를 생성할 때 다항식 f와 함께 사용하는 다항식 g, 및 평문을 암호화할 때 사용하는 난수인 다항식 r의 선택 방법은, 각각 파라미터 df, dg, 및 d에 의해 결정된다.
우선 다항식 f는, df개의 계수가 1이고, 또한 (df-1)개의 계수가 -1이고, 또한 다른 계수는 0이 되도록 선택된다. 즉, 다항식 f는 (N-1)차 이하의 다항식이고, 0차(상수항)부터 (N-1)차까지의 N개의 계수를 갖는다. 이 N개의 계수 중, df개의 계수가 1이고, 또한 (df-1)개의 계수가 -1이고, 또한 (N-2df+1)개의 계수가 0이 되도록 다항식 f가 선택된다.
그리고, 다항식 g는, dg개의 계수가 1이고, 또한 dg개의 계수가 -1이고, 또한 다른 계수가 0이 되도록 선택된다. 또, 난수인 다항식 r은, d개의 계수가 1이고, 또한 d개의 계수가 -1이고, 또한 다른 계수가 0이 되도록 선택된다.
비특허 문헌 2에는, NTRU 암호의 파라미터의 예로서, (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)의 3개의 예를 들고 있다.
(2) NTRU 암호의 키 생성
NTRU 암호에서는, 상술한 바와 같이, 파라미터 df 및 dg를 사용해 랜덤하게 다항식 f 및 다항식 g가 각각 생성된다. 그리고 비특허 문헌 2에 기재된 바와 같 이, Fq×f=1(mod q)가 되는 관계를 갖는 다항식 Fq를 사용해,
h=Fq×g(mod q)
에 의해, 다항식 h가 생성된다. 여기서, a(mod b)는 a를 b로 나눴었을 때의 나머지를 나타낸다.
또, NTRU 암호에서는, 비밀 키를 (f, Fp), 공개 키를 h로 한다.
여기서, 「x=y(mod q)」는, 다항식 y의 제i차 계수를 나머지가 0부터 q-1의 범위에 들어가도록 하기 위해서, 법 q로 나눴을 때의 나머지를 다항식 x의 제i차 계수로 하는 연산이다(0≤i≤N-1). 즉, y의 각 계수를, 0부터 (q-1)의 범위에 들어가도록 mod q 연산(q로 나눴을 때의 나머지를 구하는 연산, 법 q로의 나머지 연산)을 실시한 다항식을, 다항식 x로 하는 연산이다.
(3) NTRU 암호의 암호화
NTRU 암호의 암호화에서는, 평문인 다항식 m을 암호화하여, 암호문인 다항식 c를 계산한다. 우선, 상술한 것과 같은 다항식인 난수 r을 랜덤하게 생성한다. 즉, 난수 r은 (N-1)차 이하의 다항식이고, 0차(상수항)부터 (N-1)차까지 N개의 계수가 있는데, 이 N개의 계수 중, d개의 계수가 1이고, 또한 d개의 계수가 -1이고, 또한 (N-2d)개의 계수가 0이 되도록, 랜덤하게 다항식(난수) r을 선택한다.
그리고, 이 난수 r과 공개 키 h를 사용해, 계수가 0, 1 또는 -1인 (N-1)차 이하의 평문 m에 대해,
c=p·r×h+m(mod q)
에 의해, 암호문 c를 생성한다.
이 연산은, 상술한 바와 같이, 다항식 (p·r×h+m)의 각 계수를, 0부터 (q-1)의 범위에 들어가도록 mod q 연산을 실시한 다항식을, 다항식 c로 하는 연산이다.
(4) NTRU 암호의 복호화
NTRU 암호의 복호화에서는, 암호문인 다항식 c를 복호화하여, 복호문인 다항식 m'를 계산한다. 복호화시에는, 우선 암호문 c에 대해, 비밀 키의 일부인 다항식 f를 사용해,
a=f×c(mod q*)
에 의해 다항식 a를 계산한다.
여기서, (mod q*)는, 상술한 (mod q) 연산과 달리, 다항식 (f×c)의 제i차 계수를, 〈-q/2〉+1부터 〈q/2〉의 범위에 들어가도록 법 q로 나눴을 때의 나머지를, 다항식 a의 제i차 계수로 하는 연산이다(0≤i≤N-1). 즉, 계수가 〈q/2〉부터 q-1까지의 사이의 값인 경우는, 계수로부터 q를 감산하여, 상기 범위에 들어가도록 조정한다. 여기서, 〈x〉는, x 이하의 수 중에서 가장 큰 수를 나타낸다. 예를 들면 〈-1/2〉=-1이다.
다음에, 다항식 a에 대해, 파라미터 p를 사용해,
b=a(mod p)
에 의해, 다항식 b를 생성한다.
그리고, 다항식 b에 대해, 비밀 키의 일부인 다항식 Fp를 사용해,
m'=Fp×b(mod p*)
에 의해, 복호문 m'를 계산한다.
또한, 이 (mod p*)라는 연산은, 상술한 바와 같이, 다항식 (Fp×b)의 제i차 계수를, 〈-p/2〉+1부터 〈p/2〉의 범위에 들어가도록 법 p로 나눴을 때의 나머지를, 다항식 m'의 제i차 계수로 하는 연산이다.
또한, 이 NTRU 암호에 관해, 상술한 파라미터는 모두 p=3이 되는 파라미터인데, 이 파라미터 외에 p=2가 되는 파라미터도 개시되어 있다(예를 들면, 비특허 문헌 3 참조). 또한, 비특허 문헌 2에 기재된 바와 같이, p=3인 경우는, 평문 m은 계수가 0, 1 또는 -1의 3치인 다항식이지만, p=2인 경우는, 평문 m은 계수가 0 또는 1의 2치인 다항식이다. 그리고, 비밀 키인 다항식 f, 다항식 g, 난수 r은, p=2인지 p=3인지에 관계없이 계수가 0, 1 또는 -1의 3치인 다항식이다.
또, 이 NTRU 암호에 관해, 키 생성 처리에 있어서,
h=p·Fq×g(mod q)
를 만족하도록, 공개 키 h를 생성하여, 암호화 처리를
c=r×h+m(mod q)
에 의해 행하는 방법도 개시되어 있다(예를 들면, 비특허 문헌 5 참조).
그러나, 상술한 NTRU 암호는, 공개 키를 사용해 평문을 암호화하여 암호문을 생성하고, 정규의 비밀 키를 사용해 암호문을 복호하여 복호문을 생성해도, 복호문이 원래의 평문과 다른 경우가 발생한다(예를 들면, 비특허 문헌 2 참조). 이것을 복호 에러(decryption failure)가 발생한다고 말한다. 비특허 문헌 2에 기재된 NTRU 암호는, 상술한 파라미터를 취하는 방법에 따라 복호 에러의 발생 확률이 변 하는데, 당해 문헌에 개시되어 있는 파라미터에서는 모두, 10^(-5) 정도의 확률로 복호 에러가 발생하는 것이 알려져 있다(예를 들면, 비특허 문헌 3 참조).
이에 대해, 최근 파라미터를 후술하는 파라미터에 한정하여, 복호화시에 복호 에러 발생 확률을 저감시키는 계산을 추가함으로써, 복호 에러 확률을 2^(-100) 이하로 하는 새로운 NTRU 암호 방식인 NTRUEncrypt라고 불리는 방식이 제안되어 있다(예를 들면, 비특허 문헌 4 참조).
이 NTRUEncrypt 방식에 대해서는, 비특허 문헌 4에 상세히 설명되어 있으므로, 여기서는 상세한 설명을 생략하지만, 이하에 간단히 설명한다.
<NTRUEncrypt 방식>
(1) NTRUEncrypt의 파라미터
NTRUEncrypt에서는, 음이 아닌 정수의 파라미터, N, p, q, df, dg, d를 갖는다. 비특허 문헌 4에는, NTRUEncrypt의 파라미터로서 (N, P, q, df, dg, d)=(251, 2, 239, 72, 72, 72)라는 파라미터만이 개시되어 있다. NTRUEncrypt에서는, 이들 파라미터 중, 파라미터 df, dg, d의 의미가 NTRU 암호와 다르다.
이하에, 상술한 NTRU 암호와의 차이점을 중심으로 이들 파라미터의 의미를 설명한다.
(i) 파라미터 N
NTRUEncrypt는, NTRU 암호와 동일하게, 다항식의 연산에 의해 암호화와 복호화를 행하는 공개 키 암호 방식이다. NTRU 암호와 동일하게, NTRUEncrypt에서 다루는 다항식은, 상기 파라미터 N에 대해 (N-1)차 이하의 정수계수 다항식이고, 다 항식 연산은, X^N=1이라는 관계식을 사용해 연산 결과가 항상 (N-1)차 이하의 다항식이 되도록 연산된다.
(ii) 파라미터 p, q
NTRUEncrypt에서는, 상술한 바와 같이 p=2, 또한 q=239가 되는 파라미터 p, q를 사용한다. 이 파라미터 p, q는 서로 소가 되어 있다.
(iii) 파라미터 df, dg, d
NTRUEncrypt에서 다루는 비밀 키의 일부인 다항식 f, 공개 키인 다항식 h를 생성할 때 다항식 f와 함께 사용하는 다항식 g, 및 평문을 암호화할 때 사용하는 난수인 다항식 r의 선택 방법은, 각각 파라미터 df, dg, d에 의해 결정된다.
우선, df개의 계수가 1이고, 또한 다른 계수는 0이 되는 (N-1)차 이하의 다항식 f가 선택된다.
그리고, dg개의 계수가 1이고, 또한 다른 계수는 0이 되는 (N-1)차 이하의 다항식이 선택된다. 또, 난수 r로서 마찬가지로, d개의 계수가 1이고, 또한 다른 계수는 0이 되는 (N-1)차 이하의 다항식이 선택된다.
즉, NTRU 암호에서는, 다항식 f, g, r로서, 계수가 0, 1 또는 -1인 다항식을 선택했던 것에 비해, NTRUEncrypt에서는, 다항식 f, g, r로서, 계수가 0 또는 1인 다항식을 선택하는 점이 NTRU 암호와 다르다.
(2) NTRUEncrypt의 키 생성
NTRUEncrypt에서는, 상술한 바와 같이, 파라미터 df, dg를 사용해 랜덤하게 다항식 f, g를 생성한다. 그리고 비특허 문헌 4에 기재된 바와 같이, Fq×f=1 (mod q)가 되는 다항식 Fq를 사용해,
h=p·Fq×g(mod q)
에 의해, 다항식 h를 생성한다. 또, NTRUEncrypt에서는, 비밀 키를(f, Fp), 공개 키를 다항식 h로 한다.
(3) NTRUEncrypt의 암호화
NTRUEncrypt에서는, 우선 상술한 바와 같은 난수 r을 랜덤하게 생성한다. 즉, 파라미터 d를 사용해 d개의 계수가 1이고, 또한 다른 계수는 0이 되는 (N-1)차 이하의 다항식을 랜덤하게 선택해, 난수 r로 한다.
그리고, 이 난수 r과 공개 키 h를 사용해, 계수가 0 또는 1인 (N-1)차 이하의 평문 m에 대해,
c=r×h+m(mod q)
에 의해, 암호문 c를 생성한다.
이 연산은, 상술한 바와 같이, 다항식 (r×h+m)의 각 계수를, 0부터 (q-1)의 범위에 들어가도록 mod q 연산을 실시한 다항식을, 다항식 c로 하는 연산이다.
또한, NTRU 암호의 설명에서 말한 바와 같이, 키 생성 처리에 있어서,
h=Fq×g(mod q)
를 만족하도록 공개 키 h를 생성하여, 암호화 처리를,
c=p·r×h+m(mod q)
에 의해 행해도 암호문 c의 값은 동일해지므로, 본질적인 차이는 없다.
(4) NTRUEncrypt의 복호화
복호화시에는, 우선 암호문 c에 대해 비밀 키의 일부인 다항식 f를 사용해,
a=f×c(mod q**)
에 의해 다항식 a를 계산한다.
여기서, (mod q**)는, 상술한 (mod q) 연산과 달리, 다항식 (f×c)의 제i차 계수를 적절한 폭 q의 구간에 들어가도록 법 q로 나눴을 때의 나머지를, 다항식 a의 제i차 계수로 하는 연산이다(0≤i≤N-1). 구체적인 연산 방법은, 비특허 문헌 4에, center1 또는 center2라고 불리는 알고리즘으로 규정되어 있다.
이하에, center2의 알고리즘을 나타낸다.
(center2 알고리즘)
Step1 : A=f×c(mod q)로 하고, I1=(A(1)-p×d×dg)/(df^(-1) mod q)
mod q를 계산한다. 여기서, A(1)는 다항식 A의 변수 x에 1을 대입했을 때의 값을 나타낸다.
Step2 : I1이〈(N-q)/2〉+1부터 〈(N+q)/2〉의 범위에 들어가도록 I1에 q의 배수를 더해 조정했을 때의 값을 I2로 한다(당연히 I2=I1 mod q를 만족한다).
Step3 : J=df×I2+p×d×dg를 계산한다.
Step4 : A의 각 계수가 〈J/N-q/2〉+1부터 〈J/N+q/2〉의 범위에 들어가도록, 각 계수에 q의 배수를 더해 조정한 후의 다항식을 a(=f×c(mod q**))로 한다.
이 연산은, 복호 에러 발생 확률을 감소시키기 위해서 행하는 처리이다.
다음에, 다항식 a에 대해, 파라미터 p를 사용해,
b=a(mod p)
에 의해, 다항식 b를 생성한다.
그리고, 다항식 b에 대해, 비밀 키의 일부인 다항식 Fp를 사용해,
m'=Fp×b(mod p)
에 의해, 복호문 m'를 생성한다.
또한, 이 NTRUEncrypt에 관해, df개의 계수가 1이고, 또한 다른 계수는 0이 되는 (N-1)차 이하의 다항식 F를 선택해, f=1+p·F라는 식에 의해 다항식 f를 구성하는 방식도 개시되어 있다(예를 들면, 비특허 문헌 4 참조). 이 방식은, 비특허 문헌 4에 기재된 바와 같이, 다항식 f가 f=1+p·F라는 형태이므로, Fp×f=1(mod p)가 되는 다항식 Fp는 Fp=1(mod p)가 되므로, 복호화 처리에서 행하는 다항식 Fp와의 다항식 승산이 불필요해져,
m'=a(mod p)
에 의해, 복호문 m'를 생성할 수 있다.
이 NTRUEncrypt는, 복호화시에 복호 에러 발생 확률을 감소시키는 처리를 행함으로써, NTRU 암호보다도 복호 에러가 발생하기 힘들게 한 방식인데, 그 복호 에러 발생 확률은 2^(-100) 이하라는 것밖에 나타나 있지 않아, 복호 에러 발생 확률이 0, 즉 복호 에러를 전혀 발생시키지 않는 방법에 관해서는 알려려 있지 않다.
또한, NTRU 암호및 NTRUEncrypt 모두 다항식을 사용해 연산을 표현하고 있는데, 특허 문헌 1에서는 이것을 일반적인 환(環) R의 원(元)으로서 표현하고 있다. 구체적으로는, 상기의 다항식을 환 R의 원으로 하고, p, q를 환 R의 이데알(ideal)로 하고 있다.
특허 문헌 1 : 일본 특표 2000-516733호 공보
비특허 문헌 1 : 岡本龍明, 山本博資, 「현대 암호」, 시리즈/정보 과학의 수학, 산업도서, 1997.
비특허 문헌 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.
비특허 문헌 3 :Joseph H. Silverman, "NTRU Cryptosystems Technical Report #011, Version 2, Wraps, Gaps, and Lattice Constants", [online], 2001년 3월15일, [2003년 12월 15일 검색], 인터넷 <URL : http//www.ntru. com/cryptolab/pdf/NTRUTech011_v2.pdf>
비특허 문헌 4 : Joseph H. Silverman, W. Whyte, “NTRU Cryptosystems Technical Report #018, Version 1, Estimating Decryption Failure Probabilities for NTRUEncrypt", [online], 2003년, [2003년 12월 15일 검색], 인터넷 <URL http.//www.ntru.com/cryptolab/pdf/NTRUTech018. pdf>
비특허 문헌 5 : NTRU Cryptosystems, Inc., "The NTRU Public Key Cryptosystem - A Tutorial", [online], [2003년 12월 15일 검색], 인터넷 <URL : http://www.ntru.com/cryptolab/pdf/ntrututorials.pdf>
비특허 문헌 6 : Nick Howgrave-Graham, Joseph H. Silverman, and William Whyte, "NTRU Cryptosystems Technical Report #004, Version 2, A Meet-In-The-Middle Attack on an NTRU Private Key", [online], 2003년, [2003년 12월 15일 검색], 인터넷 <URL : http://www.ntru.com/cryptolab/pdf/NTRUTech018. pdf>“The NTRU Public Key Cryptosystem - A Tutolial", [online], [2003년 12월 15일 검색], 인터넷 <URL : http://www.ntru.com/cryptolab/pdf/NTRUTech004v2. pdf>
비특허 문헌 7 : Jeffery Hoffstein, Joseph H. Silverman, and William Whyte,“NTRU Cryptosystems Technical Report #012, Version 2, Estimated Breaking Times for NTRU Lattices", [online], 2003년, [2003년 12월 15일 검색], 인터넷 <URL : http.//www.ntru.com/cryptolab/pdf/NTRUTech012v2. pdf>
그러나, 상술한 NTRUEncrypt 방식에서는, q가 2 이외의 소수(素數)이므로, 암호화 처리 및 복호화 처리에서 행하는 다항식 계수의 법 q으로의 나머지 연산을 NTRU 암호 방식에 비해 용이하게 행할 수 없다. 이 때문에, NTRU 암호 방식에 비해 암호화 처리 및 복호화 처리의 처리 속도가 느려진다는 과제가 있다.
또, 상술한 NTRUEncrypt 방식에서는, 복호 에러 발생 확률은 0이 아니기 때문에, 송신 장치와 수신 장치의 사이에서 암호화 통신을 행하는 암호 통신 시스템에 적용한 경우, 송신 장치가 송신한 데이터 내용이, 수신 장치에서 정확하게 얻어지지 않는 경우가 있다는 과제가 있다.
본 발명은, 상기 종래의 과제를 해결하는 것으로, NTRUEncrypt 방식보다 고속의 NTRU 암호 방식을 새롭게 구성하여, 새롭게 구성한 NTRU 암호 방식을 암호 시스템에 적용함으로써, 더욱 고속의 암호 시스템을 제공하는 것을 제1의 목적으로 한다.
또, 복호 에러가 원리적으로 발생하지 않는 NTRU 암호 방식을 새롭게 구성하여, 새롭게 구성한 NTRU 암호 방식을 암호 시스템에 적용함으로써, 송신 장치가 송신한 데이터 내용이, 항상 수신 장치에서 정확하게 얻어지는 암호 시스템을 제공하는 것을 제2의 목적으로 한다.
상기 목적을 달성하기 위해서, 본 발명에 따른 암호 시스템은, 소정의 암호 방식에 따라서 평문을 암호화하여 암호문을 생성하는 암호 장치와, 상기 소정의 암호 방식에 따라서 상기 복호문을 복호화하여 복호문을 생성하는 복호 장치를 구비하는 암호 시스템으로서, 상기 복호 장치는, 가산, 감산, 승산이 정의된 N차원 배열의 집합인 환 R과, 상기 환 R의 이데알 p, q에 대해, 상기 환 R의 원 f, g와, f(mod q)의 역수인 원 Fq와(여기서 a(mod b)는, a를 b로 나눴을 때의 나머지를 나타낸다), f(mod p)의 역수인 원 Fp를 생성하고, 상기 원 g 및 상기 원 Fq의 적과 법을 q로 해서 합동인 원 h를 공개 키로서 생성하고, 상기 원 f 및 상기 원 Fp를 얻을 수 있는 정보를 비밀 키로서 생성하는 키 생성부와, 상기 비밀 키를 사용해 상기 암호문을 복호화하여 상기 복호문을 생성하는 복호화부를 구비하고, 상기 암호 장치는, 상기 공개 키 및 상기 환 R로부터 랜덤하게 선택한 원 r을 사용해 상기 평문을 암호화하여 상기 암호문을 생성하는 암호화부를 구비하고, 상기 원 f, 상기 원 g, 상기 원 r, 상기 평문인 N차원 배열의 모든 요소는 0 또는 1이고, 상기 이데알 p와 상기 이데알 q는 서로 소이고, 상기 이데알 q는 q=(2^k)*R인(단, 2^k는 1에 2를 k회 곱한 결과이고, *는 환 R의 승산을 나타낸다) 것을 특징으로 한다.
q를 상술한 바와 같이 정의하고 있다. 이 때문에, q가 정수인 경우에는, q는 2의 멱승이 되고, 법 q로의 나머지 연산(mod q 연산)을 비트 마스크 연산에 의해 행할 수 있다. 따라서, 암호 시스템은 고속으로 처리를 행할 수 있다.
또, 상기 키 생성부는, 상기 원 f는, N차원 배열의 값이 1이 되는 요소의 수를 규정하는 음이 아닌 정수 df에 기초해 생성되고, 상기 원 g는, N차원 배열의 값이 1이 되는 요소의 수를 규정하는 음이 아닌 정수 dg에 기초해 생성되고, 상기 원 r은, N차원 배열의 값이 1이 되는 요소의 수를 규정하는 음이 아닌 정수 d에 기초해 선택되고, 상기 이데알 p는, 상기 환 R의 원 pg에 대해 p=pg*R이고, 상기 이데알 q는, 상기 환의 원 qg에 대해 q=qg*R이고, 상기 차원 N, 상기 원 pg, 상기 원 qg, 상기 음이 아닌 정수 df, 상기 음이 아닌 정수 dg, 상기 음이 아닌 정수 d는, 복호 에러 발생 유무를 판정하는 에러 조건 정보에 기초하고 있어도 된다. 또한, 상기 에러 조건 정보는, 복호 에러가 발생하지 않기 위한 조건을 나타내는 조건식이어도 된다. 구체적으로는 상기 조건식은, Min(dg, d)+df<(qg-1)/p(단, Min(a, b)는 a와 b 중 작은 쪽의 수를 나타낸다)이다.
상술한 조건식을 만족하도록 파라미터를 설정하면, 실시형태에 있어서 후술하는 바와 같이, 다항식 p·r×g+f×m의 모든 계수가 0부터 (q-1)의 범위에 들어가게 되어 복호 에러는 발생하지 않는다.
또한, 본 발명은, 이러한 특징적인 수단을 구비하는 암호 시스템으로서 실현할 수 있을 뿐만 아니라, 암호 시스템에 포함되는 특징적인 수단을 단계로 하는 암호 방법으로서 실현하거나, 암호 시스템을 구성하는 암호 장치 및 복호 장치에 포함되는 특징적인 수단으로서 컴퓨터를 기능시키는 프로그램으로서 실현하거나 할 수도 있다. 그리고, 그러한 프로그램은, CD-ROM(Compact Disc-Read Only Memory) 등의 기록 매체나 인터넷 등의 통신 네트워크를 통해 유통시킬 수 있는 것은 말할 필요도 없다.
본 발명에 의하면, 종래 최고속의 NTRUEncrypt 방식보다도 고속 처리 가능한 NTRU 암호 방식을 새롭게 구성하고, 또 이 NTRU 암호 방식을 암호 통신에 적용함으로써, 종래보다도 고속 처리 가능한 암호 시스템을 구성할 수 있다.
또, 복호 에러가 원리적으로 발생하지 않는 NTRU 암호 방식을 구성하고, 또 이 NTRU 암호 방식을 암호 시스템에 적용함으로써, 암호 장치가 송신한 데이터 내용이, 항상 복호 장치에서 정확하게 얻어지는 암호 시스템을 구성할 수 있다.
또한, 복호 에러가 원리적으로 발생하지 않고, 또한 고속 처리 가능한 NTRU 암호 방식을 구성하고, 또 이 NTRU 암호 방식을 암호 시스템에 적용함으로써, 암호 장치가 송신한 데이터 내용이 항상 복호 장치에서 정확하게 얻어지고, 종래보다도 고속 처리 가능한 암호 시스템을 구성할 수 있게 되었다.
이상에 의해, 종래 달성할 수 없었던 암호 시스템, 암호 장치 및 복호 장치를 제공할 수가 있어, 그 실용적 가치는 크다.
도 1은, 본 발명의 실시형태 1에 따른 암호 통신 시스템의 구성을 도시한 블록도이다.
도 2는, 실시형태 1에 따른 암호 장치의 구성을 도시한 블록도이다.
도 3은, 실시형태 1에 따른 암호 장치의 동작을 도시한 흐름도이다.
도 4는, 실시형태 1에 따른 복호 장치의 구성을 도시한 블록도이다.
도 5는, 실시형태 1에 따른 복호 장치의 동작을 도시한 흐름도이다.
도 6은, 실시형태 1에 따른 암호 통신 시스템 전체의 동작을 도시한 흐름도이다.
도 7은, 본 발명의 실시형태 2에 따른 암호 통신 시스템의 구성을 도시한 블록도이다.
도 8은, 실시형태 2에 따른 암호 장치의 구성을 도시한 블록도이다.
도 9는, 실시형태 2에 따른 복호 장치의 구성을 도시한 블록도이다.
도 10은, 실시형태 2에 따른 암호 통신 시스템 전체의 동작을 도시한 흐름도이다.
도 11은, 실시형태 3에 따른 암호 통신 시스템의 구성을 도시한 블록도이다.
도 12는, 실시형태 3에 따른 암호 장치의 구성을 도시한 블록도이다.
도 13은, 실시형태 3에 따른 복호 장치의 구성을 도시한 블록도이다.
도 14는, 실시형태 3에 따른 암호 통신 시스템 전체의 동작을 도시한 흐름도이다.
〈부호의 설명〉
1, 1b, 1c…암호 통신 시스템 10, 10b, 10c…암호 장치
11, 11b, 11c, 21, 21b, 21c…파라미터 기억부
12…공개 키 기억부 13, 13b, 13c…암호화부
20, 20b, 20c…복호 장치 22, 22b, 22c…키 생성부
23…비밀 키 기억부 24, 24b, 24c…복호화부
30…통신로
이하 본 발명의 실시형태에 관해, 도면을 참조하면서 설명한다.
(실시형태 1)
본 실시형태 1에 따른 암호 통신 시스템, 암호 장치 및 복호 장치에서는, 종래에 최고속인 NTRUEncryp 방식보다도 고속 처리 가능한 NTRU 암호 방식을 새롭게 구성하여, 이 새롭게 구성한 NTRU 암호 방식을 사용해 암호화 통신을 행한다(이후, 이 새롭게 구성한, 종래보다도 고속 처리 가능한 NTRU 암호 방식을 「제1 변형 NTRU 암호 방식」이라고 부른다).
따라서, 먼저 고속 NTRU 암호 방식에 관해 설명한다.
이하, 종래의 NTRUEncrypt 방식과의 차이점을 중심으로 제1 변형 NTRU 암호 방식에 관해 설명한다.
<제1 변형 NTRU 암호 방식>
제1 변형 NTRU 암호 방식은, 종래의 NTRUEncrypt보다도 고속 처리 가능해지도록 개변한 것이다.
제1 변형 NTRU 암호 방식은, 파라미터로서 p=3, q=2^k(k : 2 이상의 정수)가 되는 파라미터를 사용하면서, 다항식 f, g, 난수인 다항식 r 및 평문인 다항식 m으로서, 계수가 0 또는 1의 2치인 다항식을 선택하는 점이 종래의 NTRUEncrypt와 다르다. 또한, 파라미터 p는, 파라미터 q와 서로 소가 되는 값이면 되며, 3 이외의 값이어도 된다.
이하, 이 제1 변형 NTRU 암호 방식에 관해 설명한다.
(1) 제1 변형 NTRU 암호 방식의 파라미터
제1 변형 NTRU 암호 방식은, 음이 아닌 정수의 파라미터, N, p, q, df, dg, d를 갖는다.
이들 파라미터의 의미는, 종래의 NTRUEncrypt 방식과 동일하지만, p=3 또한 q=2^k(k : 2 이상의 정수)가 되는 파라미터를 생성하고, p=3으로 하고 있음에도 불구하고, 다항식 f, g, r로서 계수가 0 또는 1의 2치인 다항식을 사용하는 점이, 종래의 NTRUEncrypt와 다르다.
(2) 제1 변형 NTRU 암호 방식의 키 생성
제1 변형 NTRU 암호 방식에서는, 상술한 바와 같이, 파라미터 df, dg를 사용해 랜덤하게 다항식 f, 다항식 g를 생성한다. 구체적으로는, df개의 계수가 1이고, 그 이외의 계수가 0인 다항식 f를 생성하고, dg개의 계수가 1이고, 그 이외의 계수가 0인 다항식 g를 생성한다. 그리고 비특허 문헌 2에 기재된 바와 같이, Fq×f=1(mod q)가 되는 다항식 Fq를 사용해,
h=Fq×g(mod q)
에 의해, 다항식 h를 생성한다. 비밀 키를 (f, Fp), 공개 키를 h로 한다.
여기서, x=y(mod q)는, 다항식 y의 제i차 계수를, 나머지가 0부터 q-1의 범위에 들어가도록 법 q로 나눴을 때의 나머지를, 다항식 x의 제i차 계수로 하는 연산이다(0≤i≤N-1). 즉, y의 각 계수를, 0부터 (q-1)의 범위에 들어가도록 mod q 연산을 실시한 다항식을, 다항식 x로 하는 연산이다.
(3) 제1 변형 NTRU 암호 방식의 암호화
제1 변형 NTRU 암호 방식의 암호화에서는, 평문인 계수가 0 또는 1의 2치인 다항식 m을 암호화하여, 암호문인 다항식 c를 계산한다. 우선, 상술한 바와 같은 난수인 다항식 r을 랜덤하게 생성한다. 즉, 난수 r은 (N-1)차 이하의 다항식이며, 제0차(상수항)부터 제(N-1)차까지 N개의 계수가 있는데, 이 N개의 계수 중, d개의 계수가 1이고, 또한 d개의 계수가 -1이고, 또한 (N-2d)개의 계수는 0이 되도록, 랜덤하게 난수 r을 선택한다.
그리고, 이 난수 r과 공개 키 h를 사용해, 계수가 0, 1 또는 -1인 (N-1)차 이하의 평문 m에 대해,
c=p·r×h+m(mod q)
에 의해, 암호문 c를 생성한다.
이 연산은, 상술한 바와 같이, 다항식 (p·r×h+m)의 각 계수를, 0부터 (q-1)의 범위에 들어가도록 mod q 연산을 실시한 다항식을, 다항식 c로 하는 연산이다.
제1 변형 NTRU 암호 방식은, p=3으로 하고 있음에도 불구하고, 계수가 0 또는 1의 2치인 다항식을 사용하는 점이, 종래의 NTRUEncrypt와 다르다.
(4) 제1 변형 NTRU 암호 방식의 복호화
제1 변형 NTRU 암호 방식의 복호화에서는, 암호문인 다항식 c를 복호화하여, 복호문인 다항식 m'를 계산한다. 복호화시에는, 우선 암호문 c에 대해, 비밀 키의 일부인 다항식 f를 사용해,
a=f×c(mod q*)
에 의해 다항식 a를 계산한다.
여기서, (mod q*)는, 상술한 (mod q) 연산과 달리, 다항식 (f×c)의 제i차 계수를, 〈-q/2〉+1부터 〈q/2〉의 범위에 들어가도록 법 q로 나눴을 때의 나머지를, 다항식 a의 제i차 계수로 하는 연산이다(0≤i≤N-1). 즉, 계수가 〈q/2〉부터 q-1인 경우는, 계수로부터 q를 감산하여, 상기 범위에 들어가도록 조정한다. 여기서 〈x〉는, x 이하의 수 중에서 가장 큰 수를 나타낸다. 예를 들면, 〈-1/2〉=-1이다.
다음에, 다항식 a에 대해, 파라미터 p를 사용해,
b=a(mod p)
에 의해, 다항식 b를 생성한다.
그리고, 다항식 b에 대해, 비밀 키의 일부인 다항식 Fp를 사용해,
m'=Fp×b(mod p*)
에 의해, 복호문 m'를 계산한다.
또한, 이 (mod p*)라는 연산은, 상술한 바와 같이, 다항식 (Fp×b)의 제i차 계수를, 〈-p/2〉+1부터 〈p/2〉의 범위에 들어가도록 법 p로 나눴을 때의 나머지를, 다항식 m'의 제i차 계수로 하는 연산이다.
<종래 기술과 제1 변형 NTRU 암호 방식의 차이점>
이하, 제1 변형 NTRU 암호 방식이, 종래의 NTRUEncrypt 방식보다도 고속처리 가 가능한 것을 설명하고, 종래의 NTRU 암호 및 NTRUEDcrypt 방식과의 차이에 관해 설명한다.
(NTRUEncrypt와의 비교)
NTRUEncrypt에서는, 상술한 바와 같이, 비밀 키인 다항식 f, 다항식 g, 난수인 다항식 r, 평문인 다항식 m으로서, 계수가 0 또는 1인 2치의 다항식을 사용하는데, 파라미터로서는, p=2 또한 q=239가 되는 파라미터밖에 개시되어 있지 않다.
NTRUEncrypt의 키 생성, 암호화 및 복호화에서의 주된 연산에는, 예를 들면,
c=r×h+m(mod q)
와 같이, 다항식의 계수의 mod q 연산을 행하는 연산이 포함된다.
이 때, NTRUEncrypt에서는 q=239인 것에 비해, 제1 변형 NTRU 암호 방식에서는, q=2^k(k : 2 이상의 정수)이므로, 제1 변형 NTRU 암호 방식에서는, mod q 연산을, 비트 마스크 연산으로 고속으로 처리할 수 있다.
예를 들면, 제1 변형 NTRU 암호 방식의 파라미터 q가 q=256(=2^8)인 경우에는, 계수의 mod q 연산은, 비트 마스크 연산에서 하위 8비트만을 취하는 연산으로 실현할 수 있다.
NTRUEncrypt에서는 p=2인데, 제1 변형 NTRU 암호 방식은 p=3이고, mod p의 계산에 대해서는, NTRUEncrypt 쪽이 고속으로 행할 수 있다. 그러나, mod p의 계산은 복호화시에만 행하는 것과, NTRUEncrypt에는 복호 에러 발생 확률 저감을 위한 계산이 필요하지만, 제1 변형 NTRU 암호 방식에서는 불필요하기 때문에, mod p의 계산량 증가와 상쇄된다.
따라서, 암호화 및 복호화를 포함한 전체적으로는, 제1 변형 NTRU 암호 방식은, NTRUEncrypt보다 고속이다.
(종래 기술과의 차이)
종래의 NTRU 암호에서는, p=3이 되는 파라미터에 대해, 다항식 f, g, 난수인 다항식 r, 평문인 다항식 m에, 계수가 0, 1 또는 -1인 3치의 다항식을 사용하고 있다(p=2인 경우는, 이들 다항식 중, 평문 m 이외에 계수가 0, 1 또는 -1인 3치의 다항식을 사용한다. 또, p≠2, 3인 경우는, 다항식 f, g, r에 0, 1 또는 -1인 3치의 다항식을 사용하고, m에 〈-p/2〉+1부터 〈p/2〉의 범위의 정수를 계수로 갖는 p치의 다항식을 사용한다).
한편, 종래의 NTRUEncrypt에서는, p=2가 되는 파라미터에 대해, 다항식 f, g, 난수인 다항식 r, 평문인 다항식 m에, 계수가 0 또는 1인 2치의 다항식을 사용하고 있다.
그 때문에, NTRU 암호에서는, p=3이 되는 파라미터에 대해서는, 다항식 f, g, 난수인 다항식 r, 평문인 다항식 m으로서, 3치의 다항식을 사용하는 것이 통상적이고, 상술한 제1 변형 NTRU 암호 방식처럼 p=3인 경우에, 이들 다항식으로서 2치의 다항식을 사용한 경우에, 암호의 안전성에 어떠한 영향이 발생하는지는 개시되어 있지 않았다.
그러나, p=3이 되는 파라미터에 대해, 다항식 f, g, 난수인 다항식 r, 평문인 다항식 m으로서 계수가 0 또는 1이 되는 2치의 다항식을 사용해도, 종래의 NTRU 암호 및 NTRUEncrypt와 동일하게, 파라미터를 적절히 선택하면, 안전성에 문제는 발생하지 않는다. 이하에 그것을 설명한다.
NTRU 암호 및 NTRUEncrypt에 대한 공격 방법으로서는, 비특허 문헌 2에 기재된 바와 같이, 다항식 f, g, r에 대한 무작위 공격과, LLL 알고리즘을 사용한 공격(lattice based attack)이 알려져 있다.
무작위 공격에 대한 안전성은, 비특허 문헌 2나 비특허 문헌 6에 기재된 바와 같이, 다항식 f, g, r이 취할 수 있는 값의 총수에 의존한다. 그 때문에, p=3이 되는 파라미터에 대해, 이들의 다항식으로서 3치의 다항식을 사용하는 대신에, 2치의 다항식을 사용했다고 해도, 이들 다항식이 취할 수 있는 값의 총수가 충분히 커지도록, 파라미터 df, dg, d를 선택하면 안전성에 문제는 발생하지 않는다.
또, LLL 공격에 대한 안전성은, 다항식 f, g의 0이 아닌 계수의 수에 의존하는 것이 비특허 문헌 7에 기재되어 있다. 그 때문에, 0이 아닌 계수의 수가 충분히 커지도록 df, dg를 선택하면, 안전성에 문제는 발생하지 않는다.
<변형 NTRU 암호 방식의 파라미터의 생성 방법>
여기서는, 상술한 제1 변형 NTRU 암호 방식의 파라미터의 생성 방법의 일례를 든다.
상술한 바와 같이, 제1 변형 NTRU 암호 방식의 파라미터는, p=3, 또한 q=2^k(k : 2 이상의 정수)가 되는 파라미터를 생성하면 된다.
그 때문에, 여기서는, 우선 p=3으로 하고, 계수의 mod q 연산이, 비트 마스크 연산에서 하위 8비트만을 취하는 연산으로 실현 가능해지도록 q=256으로 한다.
그리고, dt=dg=d로 해서, 상술한 무작위 공격 및 LLL 공격에 대한 안전성이 규정값 이상이 되도록, N, df, dg, d의 값을 생성한다.
또한, 이것은 파라미터의 생성 방법의 일례이며, p=3, 또한 q=2^k(k : 2 이상의 정수)가 되는 파라미터를 생성하면, 다른 생성 방법이어도 된다.
이후에는, 이 생성 방법에 의해 생성된, (N, p, q, df, dg, d)=(251, 3, 256, 72, 72, 72)라는 파라미터를 사용한 경우를 설명한다.
이상, 제1 변형 NTRU 암호 방식에 관해 설명했는데, 이후 본 실시형태에 따른 암호 통신 시스템, 암호 장치 및 복호 장치에 관해 설명한다.
<암호 통신 시스템(1)의 개요>
도 1은, 본 발명의 실시형태 1에 있어서의 암호 통신 시스템(1)의 전체 구성을 도시한 도면이다. 먼저, 동 도면을 사용해 암호 통신 시스템(1)의 개요를 설명한다.
이 암호 통신 시스템(1)은, 평문 m의 암호화 통신을 행하는 시스템이며, 암호 장치(10)와, 복호 장치(20)로 구성되어 있고, 암호 장치(10)와 복호 장치(20)는 통신로(30)를 통해 서로 접속되어 있다.
그리고, 이 암호 통신 시스템(1)은, 암호 장치(10)와 복호 장치(20)의 사이에서, 제1 변형 NTRU 암호 방식의 파라미터로서, (N, p, q, df, dg, d)=(251, 3, 256, 72, 72, 72)를 공유하고 있다.
이 암호 통신 시스템(1)에 있어서, 암호 장치(10)는, 외부로부터 입력된 평문 m을, 상술한 제1 변형 NTRU 암호 방식을 사용해 암호화하여 암호문 c를 생성하고, 통신로(30)를 통해 복호 장치(20)에 송신한다.
그리고, 복호 장치(20)는, 통신로(30)를 통해 암호 장치(10)로부터 수신한 암호문 c를 복호하여 복호문 m'를 생성해서 출력한다.
이상이 암호 통신 시스템(1)의 개요인데, 이하 암호 통신 시스템(1)의 구성을 설명한 뒤, 그 동작에 관해 설명한다.
<암호 통신 시스템(1)의 구성>
암호 통신 시스템(1)은, 도 1에 도시한 바와 같이, 암호 장치(10)와, 복호 장치(20)로 구성되며, 암호 장치(10)와 복호 장치(20)는 통신로(30)를 통해 상호 접속되어 있다.
이하, 이들 구성 요소에 관해 상세히 설명한다.
<암호 장치(10)의 구성>
암호 장치(10)는, 도 2에 도시한 바와 같이, 파라미터 기억부(11)와, 공개 키 기억부(12)와, 암호화부(13)로 구성된다.
(1) 파라미터 기억부(11)
파라미터 기억부(11)는, 예를 들면 RAM(Random Access Memory)이나 EEPROM(Electrically Erasable Programmable Read Only Memory)과 같은 메모리로 구성되어 있고, 후술하는 암호화부(13)로부터 액세스 가능한 것이다.
파라미터 기억부(11)는, p=3 또한 q=2^k(k : 2 이상의 정수)가 되는 파라미터를 미리 기억하고 있다. 여기서는, 상술한 바와 같이, 파라미터 (N, p, q, df, dg, d)=(251, 3, 256, 72, 72, 72)를 미리 기억하고 있는 것으로 한다.
(2) 공개 키 기억부(12)
공개 키 기억부(12)는, 예를 들면 마이크로컴퓨터 및 RAM과 같은 메모리로 구성되어 있고, 후술하는 암호화부(13)로부터 액세스 가능한 것이다.
공개 키 기억부(12)는, 미리 통신로(30)를 통해 복호 장치(20)의 공개 키 h를 취득하여 기억하고 있다.
(3) 암호화부(13)
암호화부(13)는, 예를 들면 마이크로컴퓨터에 의해 구성되어 있고, 파라미터 기억부(11) 및 공개 키 기억부(12)에 액세스 가능하다.
암호화부(13)는, 파라미터 기억부(11)로부터 파라미터 N, 파라미터 q, 파라미터 d를 읽어내고, 공개 키 기억부(12)로부터 공개 키 h를 읽어낸다.
그리고, 암호화부(13)는, 외부로부터 파라미터 N에 대해, (N-1)차 이하의 다항식으로 표시되는, 계수가 0 또는 1인 평문 m을 수취한다.
그리고, 암호화부(13)는, 파라미터 N, 파라미터 d를 사용해, d개의 계수가 1이고, 또한 다른 계수가 0이 되도록, (N-1)차 이하의 다항식 r을 랜덤하게 선택한다. 이것은, 예를 들면 0부터 N-1까지의 범위의 중복되지 않는 d개의 난수치 Ri(1≤i≤d)를 선택해, 제Ri차(1≤i≤d)의 계수를 1로 하고, 다른 계수는 0으로 함으로써 실현할 수 있다.
그리고, 암호화부(13)는, 평문 m에 대해, 난수인 다항식 r, 공개 키 h, 파라미터 N, 파라미터 q를 사용해, 제1 변형 NTRU 암호 방식의 암호화 처리를 행하여, 암호문 c를 생성한다.
그리고, 암호화부(13)는, 생성한 암호문 c를 통신로(30)를 통해 복호 장치 (20)로 송신한다.
<암호 장치(10)의 동작>
여기서는, 상술한 암호 장치(10)의 동작에 관해 설명한다.
암호 장치(10)는, p=3 또한 q=2^k(k : 2 이상의 정수)가 되는 파라미터를 미리 기억하고 있고, 복호 장치(20)의 공개 키 h를 공개 키 기억부(12)에 미리 기억하고 있다. 그리고, 외부로부터, 파라미터 N에 대해 (N-1)차 이하의 다항식으로 표시되는 평문 m이 입력되면, 이하에 나타내는 처리를 행하여, 상술한 제1 변형 NTRU 암호 방식을 사용해 평문 m을 암호화하여 암호문 c를 생성하여, 통신로(30)를 통해 복호 장치(20)로 송신한다.
이하, 도 3에 도시한 흐름도를 사용해 설명한다.
먼저, 암호화부(13)는, 외부로부터 평문 m이 입력되면, 파라미터 기억부(11)로부터 파라미터 N, 파라미터 q, 파라미터 d를 읽어내고, 공개 키 기억부(12)로부터 공개 키 h를 읽어낸다(단계 S101).
다음에, 암호화부(13)는, 파라미터 N, 파라미터 d를 사용해, d개의 계수가 1이고, 또한 다른 계수가 0이 되도록, (N-1)차 이하의 다항식 r을 랜덤하게 선택한다(단계 S102).
이어서, 암호화부(13)는, 평문 m에 대해, 난수인 다항식 r, 공개 키 h, 파라미터 N, 파라미터 q를 사용해, 제1 변형 NTRU 암호 방식의 암호화 처리를 행하여, 암호문 c를 생성한다(단계 S103).
다음에, 암호화부(13)는, 생성한 암호문 c를, 통신로(30)를 통해 복호 장치 (20)로 송신하고 처리를 종료한다(단계 S104).
<복호 장치(20)의 구성>
복호 장치(20)는, 도 4에 도시한 바와 같이, 파라미터 기억부(21)와, 키 생성부(22)와, 비밀 키 기억부(23)와, 복호화부(24)로 구성된다.
(1) 파라미터 기억부(21)
파라미터 기억부(21)는, 예를 들면 EEPROM과 같은 메모리로 구성되어 있고, 후술하는 키 생성부(22) 및 복호화부(24)로부터 액세스 가능한 것이다.
파라미터 기억부(21)는, 암호 장치(10)의 파라미터 기억부(11)와 동일한 파라미터 (N, p, q, df, dg, d)를 미리 기억하고 있다. 여기서는, 상술한 바와 같이, 파라미터 (N, p, q, df, dg, d)=(251, 3, 256, 72, 72, 72)를 미리 기억하고 있는 것으로 한다.
(2) 키 생성부(22)
키 생성부(22)는, 예를 들면 마이크로컴퓨터에 의해 구성되어 있고, 제1 변형 NTRU 암호 방식의 비밀 키 (f, Fp) 및 공개 키 h를 생성한다.
키 생성부(22)는, 파라미터 기억부(21)로부터 파라미터 N, 파라미터 q, 파라미터 df, 파라미터 dg를 읽어내어, 파라미터 N, 파라미터 df를 사용해, df개의 계수가 1이고, 또한 그 밖의 계수가 0이 되도록, (N-1)차 이하의 다항식으로 표시되는 다항식 f를 선택한다. 이것은, 예를 들면 0부터 (N-1)까지의 범위의 중복되지 않는 df개의 난수치 Ri(1≤i≤df)를 선택하고, 제Ri차(1≤i≤df)의 계수를 1로 하고, 다른 계수는 0으로 함으로써 실현할 수 있다.
그리고, 키 생성부(22)는, 파리미터 N, 파라미터 dg를 사용해, dg개의 계수가 1이고, 또한 그 밖의 계수는 0이 되도록, (N-1)차 이하의 다항식으로 표시되는 다항식 g를 선택한다.
그리고, 키 생성부(22)는, 상술한 제1 변형 NTRU 암호 방식의 키 생성 처리를 행하여, 다항식 Fp 및 h를 생성한다.
그리고, 키 생성부(22)는, 다항식 h를 공개 키로서 공개하여, 미리 암호 장치(10)가 취득할 수 있도록 하고, 다항식 f와 Fp의 쌍 (f, Fp)를 비밀 키 기억부(23)에 기억한다.
(3) 비밀 키 기억부(23)
비밀 키 기억부(23)는, 예를 들면 RAM과 같은 메모리로 구성되어 있고, 키 생성부(22) 및 후술하는 복호화부(24)로부터 액세스 가능한 것이다.
비밀 키 기억부(23)는, 미리 키 생성부(22)가 생성한 다항식 f와 Fp의 쌍 (f, Fp)를 기억하고 있다.
(4) 복호화부(24)
복호화부(24)는, 예를 들면 마이크로컴퓨터에 의해 구성되어 있고, 파라미터 기억부(21) 및 비밀 키 기억부(23)에 액세스 가능하다.
복호화부(24)는, 파라미터 기억부(21)로부터, 파라미터 N, 파라미터 p, 파라미터 q를 읽어내고, 비밀 키 기억부(23)로부터 다항식 f와 Fp의 쌍 (f, Fp)를 읽어낸다.
그리고, 복호화부(24)는, 통신로(30)를 통해 암호 장치(10)로부터 파라미터 N에 대해, (N-1)차 이하의 다항식으로 표시되는 암호문 c를 수취한다.
그리고, 복호화부(24)는, 암호문 c에 대해, 비밀 키인 다항식 f 및 Fp, 파라미터 N, 파라미터 p, 파라미터 q를 사용해, 제1 변형 NTRU 암호 방식의 복호화 처리를 행하여 복호문 m'를 생성한다.
그리고, 복호화부(24)는, 생성한 복호문 m'를 외부로 출력한다.
<복호 장치(20)의 동작>
여기서는, 상술한 복호 장치(20)의 동작에 관해 설명한다.
복호 장치(20)는, 암호 장치(10)와 동일한 파라미터를 미리 기억하고 있고, 복호 장치(20)의 비밀 키인 다항식 f 및 Fp의 쌍 (f, Fp)와 공개 키인 다항식 h를 생성하고, 공개 키 h를 공개하여 미리 암호 장치(10)가 취득할 수 있도록 하고, 비밀 키 (f, Fp)를 비밀 키 기억부(23)에 기억하고 있다. 그리고, 복호 장치(20)는, 통신로(30)를 통해 암호 장치(10)로부터, 파라미터 N에 대해 (N-1)차 이하의 다항식으로 표시되는 암호문 c를 수신하면, 이하에 나타내는 처리를 행하여, 상술한 고속 NTRU 암호 방식을 사용해 복호문 m'을 생성하여, 외부로 출력한다.
이하, 도 5에 도시한 흐름도를 사용해 설명한다.
먼저, 복호화부(24)는, 통신로(30)를 통해 암호 장치(10)로부터 암호문 다항식 c를 수신하면, 파라미터 기억부(21)로부터, 파라미터 N, 파라미터 p, 파라미터 q를 읽어내고, 비밀 키 기억부(23)로부터 비밀 키 (f, Fp)를 읽어낸다(단계 S131).
다음에, 복호화부(24)는, 암호문 c에 대해, 비밀 키인 다항식 f 및 Fp, 파라미터 N, 파라미터 p, 파라미터 q를 사용해, 제1 변형 NTRU 암호 방식의 복호화 처 리를 행하여 복호문 m'를 생성한다(단계 S132).
이어서, 복호화부(24)는, 생성한 복호문 m'를 외부로 출력하고 처리를 종료한다(단계 S133).
<암호 통신 시스템(1)의 동작>
이상, 암호 통신 시스템(1)의 구성에 관해 설명했는데, 여기서는 암호 통신 시스템(1) 전체의 동작에 관해, 도 6에 도시한 흐름도를 사용해 설명한다.
먼저 파라미터 기억부(11) 및 파라미터 기억부(21)는, p=3 또한 q=2^k가 되는 파라미터를 미리 기억하고 있다(단계 S161).
다음에, 키 생성부(22)는, 파라미터 기억부(21)로부터 파라미터 N, 파라미터 q, 파라미터 df, 파라미터 dg를 읽어내어, 파라미터 N, 파라미터 df를 사용해, df개의 계수가 1이고, 또한 그 밖의 계수가 0이 되도록, (N-1)차 이하의 다항식으로 표시되는 다항식 f를 선택한다(단계 S162).
다음에, 키 생성부(22)는, 파라미터 N, 파라미터 dg를 사용해, dg개의 계수가 1이고, 또한 그 밖의 계수는 0이 되도록, (N-1)차 이하의 다항식으로 표시되는 다항식 g를 선택한다(단계 S163).
이어서, 키 생성부(22)는, 상술한 제1 변형 NTRU 암호 방식의 키 생성 처리를 행하여, 다항식 h를 생성한다(단계 S164).
다음에, 키 생성부(22)는, 다항식 h를 공개 키로서 공개하여, 암호 장치(10)가 취득할 수 있도록 하고, 다항식 f 및 Fp의 쌍 (f, Fp)를 비밀 키로서 비밀 키 기억부(23)에 기억한다(단계 S165).
다음에, 공개 키 기억부(12)는, 통신로(30)를 통해 복호 장치(20)의 공개 키 h를 취득하여 기억한다(단계 S166).
이어서, 암호화부(13)는, 외부로부터 계수가 0 또는 1인 평문 m이 입력되면, 파라미터 기억부(11)로부터 파라미터 N, 파라미터 q, 파라미터 d를 읽어내고, 공개 키 기억부(12)로부터 공개 키 h를 읽어낸다(단계 S167).
다음에, 암호화부(13)는, 파라미터 N, 파라미터 d를 사용해, d개의 계수가 1이고, 또한 다른 계수가 0이 되도록, (N-1)차원 이하의 다항식 r을 랜덤하게 선택한다(단계 S168).
이어서, 암호화부(13)는, 평문 m에 대해, 난수인 다항식 r, 공개 키 h, 파라미터 N, 파라미터 q를 사용해, 제1 변형 NTRU 암호 방식의 암호화 처리를 행하여, 암호문 c를 생성한다(단계 S169).
다음에, 암호화부(13)는, 생성한 암호문 c를 통신로(30)를 통해 복호 장치(20)로 송신한다(단계 S170).
이어서, 복호화부(24)는, 통신로(30)를 통해 암호 장치(10)로부터 암호문 c를 수신하면, 파라미터 기억부(21)로부터, 파라미터 N, 파라미터 p, 파라미터 q를 읽어내고, 비밀 키 기억부(23)로부터 비밀 키 (f, Fp)를 읽어낸다(단계 S171).
다음에, 복호화부(24)는, 암호문 c에 대해, 비밀 키인 다항식 f 및 Fp, 파라미터 N, 파라미터 p, 파라미터 q를 사용해, 제1 변형 NTRU 암호 방식의 복호화 처리를 행하여 복호문 m'를 생성한다(단계 S172).
이어서, 복호화부(24)는, 생성한 복호문 m'을 외부로 출력하여 처리를 종료 한다(단계 S173).
<암호 통신 시스템(1)의 동작 검증>
우선, 암호 장치(10) 및 복호 장치(20)는, 단계 S161에 있어서, p=3 또한 q=2^k(k : 2 이상의 정수)가 되는 파라미터를 기억하고 있다.
그리고, 복호 장치(20)가, 미리 이 파라미터를 사용해, 단계 S162 및 단계 S163에 있어서 계수가 0 또는 1의 2치인 다항식 f 및 g를 생성하고, 단계 S164에 있어서 이들 다항식을 기초로 공개 키인 다항식 h를 생성하고 있다.
그리고, 암호 장치(10)에서는, 단계 S168에서 계수가 0 또는 1의 2치인 다항식 r을 생성하고, 단계 S169에서, p=3 또한 q=2^k(k : 2 이상의 정수)가 되는 파라미터와 공개 키 h와 난수 r을 사용해, 계수가 0 또는 1의 2치인 평문 m을 암호화하여 암호문 c를 생성하고 있다.
그리고, 복호 장치(20)에서는, 단계 S172에 있어서, 비밀 키인 다항식 f 및 Fp와 기억하고 있는 p=3 또한 q=2^k(k : 2 이상의 정수)가 되는 파라미터를 사용해 복호문 m'를 생성하고 있다.
이러한 구성에 의하면, p=3 또한 q=2^k가 되는 파라미터에 대해, 다항식 f, g, 난수인 다항식 r, 평문인 다항식 m으로서, 2치의 다항식을 사용하고 있기 때문에, 제1 변형 NTRU 암호 방식을 사용해 암호화 통신을 행할 수 있다.
또한, 상술한 제1 변형 NTRU 암호 방식의 설명에서 말한 바와 같이, NTRUEncrypt 방식보다도 고속 처리 가능해진다.
이에 의해, 종래의 NTRUEncrypt 방식보다도 고속 처리 가능한 제1 변형 NTRU 암호 방식을 새롭게 구성할 수 있고, 또 이 제1 변형 NTRU 암호 방식을 암호 통신에 적용하여, 종래보다도 고속 처리 가능한 암호 통신 시스템을 제공할 수 있다.
<변형예>
또한, 상기에 설명한 실시형태는, 본 발명의 실시형태의 일례이며, 본 발명은 이 실시형태에 조금도 한정되지 않으며, 그 주지를 일탈하지 않는 범위에 있어서 여러가지 형태로 실시할 수 있는 것이다. 이하와 같은 경우도 본 발명에 포함된다.
(1) 암호 통신 시스템(1)에서는, 제1 변형 NTRU 암호 방식의 파라미터로서, p=3 또한 q=2^k(k : 2 이상의 정수)라는 조건을 만족하는 파라미터를 사용하고 있는데, 또한 후술하는 조건식 EFC1을 만족하는 파라미터를 사용해도 된다.
이에 의해, 후술하는 바와 같이 복호 에러가 원리적으로 발생하지 않게 되기 때문에, 암호 장치가 송신한 데이터 내용이, 항상 복호 장치에서 정확하게 얻어지는 암호 통신 시스템을 실현할 수 있다.
또한, 이 때, 복호 에러가 원리적으로 발생하지 않기 때문에, NTRUEncrypt와 달리, 복호 에러 발생 확률을 감소시키는 처리가 불필요하기 때문에, 이하와 같이 복호화를 행해도 된다.
우선, 암호문 c에 대해, 비밀 키의 일부인 다항식 f를 사용해,
a=f×c(mod q)
에 의해 다항식 a가 계산된다.
그리고, 이 다항식 a에 대해, NTRUEncrypt와 동일하게 하여, 복호 에러 발생 확률을 저감시키는 처리가 행해져, 복호문 m'가 생성된다.
(2) 암호 통신 시스템(1)에서는, 제1 변형 NTRU 암호 방식의 비밀 키의 일부인 다항식 f로서, df개의 계수가 1이고, 또한 그 밖의 계수는 0인, (N-1)차 이하의 다항식을 선택하고 있는데, NTRUEncrypt 방식과 동일하게, df개의 계수가 1이고, 또한 그밖의 계수는 0인, (N-1)차 이하의 다항식 F를 사용해, f=1+p·F에 의해 다항식 f를 선택해도 된다.
이에 의해, NTRUEncrypt 방식과 동일하게, NTRU 암호의 복호화 처리에서 행하는, 다항식 Fp와의 다항식 승산이 불필요해진다. 또, 이 경우, 비밀 키의 일부인 다항식 Fp와의 다항식 승산이 불필요하기 때문에, 비밀 키는 (f, Fp)가 아니라, 다항식 f로 해도 된다.
(실시형태 2)
본 실시형태 2에 따른 암호 통신 시스템, 암호 장치 및 복호 장치에서는, NTRUEncrypt 방식을 개량하여, 복호 에러가 원리적으로 발생하지 않는 NTRU 암호 방식을 새롭게 구성하여, 이 새롭게 구성한 NTRU 암호 방식을 사용해 암호화 통신을 행한다(이후, 이 새롭게 구성한, 복호 에러가 원리적으로 발생하지 않는 NTRU 암호 방식을, 「제2 변형 NTRU 암호 방식」이라고 부른다).
그를 위해, 우선 제2 변형 NTRU 암호 방식에 관해 설명한다.
이하, 종래의 NTRUEncrypt 방식과의 차이점을 중심으로, 제2 변형 NTRU 암호 방식에 관해 설명한다.
<제2 변형 NTRU 암호 방식>
변형 NTRU 암호 2는, 종래의 NTRUEncrypt 방식을 복호 에러가 원리적으로 발생하지 않도록 개변한 것이다.
변형 NTRU 암호 2는, 후술하는 조건식 EFC1을 만족하도록 파라미터를 생성하는 점이 종래의 NTRUEncrypt와 다르다.
이하, 이 변형 NTRU 암호 2에 관해 설명한다.
(1) 제2 변형 NTRU 암호 방식의 파라미터
변형 NTRU 암호 2는, 음이 아닌 정수의 파라미터, N, p, q, df, dg, d를 갖는다. 이들 파라미터의 의미는 종래의 NTRUEncrypt 방식과 동일한데, 이하의 조건식 EFC1을 만족하도록 파라미터 p, q, df, dg, d를 선택하는 점이 종래의 NTRUEncrypt 방식과 다르다.
EFC1 : p·Min(dg, d)+df<q
이 조건식 EFC1을 만족하는 파라미터를 사용하면, 후술하는 바와 같이, 복호 에러가 원리적으로 발생하지 않도록 할 수 있다.
(2) 제2 변형 NTRU 암호 방식의 키 생성
제2 변형 NTRU 암호 방식에서는, 상술한 바와 같이 파라미터 df, dg를 사용해 랜덤하게 다항식 f, 다항식 g를 생성한다. 그리고 비특허 문헌 2에 기재된 바와 같이, Fq×f=1(mod q)가 되는 다항식 Fq를 사용해,
h=Fq×g(mod q)
에 의해, 다항식 h를 생성한다. 여기서, 비밀 키를 (f, Fp), 공개 키를 h로 한다.
(3) 제2 변형 NTRU 암호 방식의 암호화
제2 변형 NTRU 암호 방식의 암호화에서는, 평문인 계수가 0 또는 1의 2치인 다항식 m을 암호화하여, 암호문인 다항식 c를 계산한다. 우선, 상술한 바와 같은 다항식 r을 랜덤하게 생성한다. 즉, 난수 r은 (N-1)차 이하의 다항식이고, 제0차(상수항)부터 제(N-1)차까지 N개의 계수가 있는데, 이 N개의 계수 중, d개의 계수가 1이고, 또한 d개의 계수가 -1이고, 또한 (N-2d)개의 계수는 0이 되도록, 랜덤하게 다항식 r을 선택한다.
그리고, 이 난수 r과 공개 키 h를 사용해, 계수가 0, 1 또는 -1인 (N-1)차 이하의 평문 m에 대해,
c=p·r×h+m(mod q)
에 의해 암호문 c를 생성한다.
(4) 제2 변형 NTRU 암호 방식의 복호화
제2 변형 NTRU 암호 방식에서는, 후술하는 바와 같이, 복호 에러가 원리적으로 발생하지 않기 때문에, NTRUEncrypt와 달리, 복호 에러 발생 확률을 감소시키는 처리가 불필요하다.
그 때문에, 이하와 같이 복호화를 행한다.
제2 변형 NTRU 암호 방식의 복호화에서는, 암호문인 다항식 c를 복호화하여, 복호문인 다항식 m'를 계산한다. 복호화시에는, 우선 암호문 c에 대해 비밀 키의 일부인 다항식 f를 사용해,
a=f×c(mod q*)
에 의해 다항식 a를 계산한다.
다음에, 다항식 a에 대해 파라미터 p를 사용해,
b=a(mod p)
에 의해, 다항식 b를 생성한다.
그리고, 다항식 b에 대해 비밀키의 일부인 다항식 Fp를 사용해,
m'=Fp×b(mod p*)
에 의해, 복호문 m'를 계산한다.
이상과 같이, 제2 변형 NTRU 암호 방식에서는, 종래의 NTRUEncrypt 방식과 달리, 비특허 문헌 4에 기재된 center1 또는 center2라고 불리는 알고리즘과 같은 복호 에러 발생 확률을 감소시키는 처리는 행하지 않는다.
<복호 에러가 원리적으로 발생하지 않는 이유>
이하, 제2 변형 NTRU 암호 방식은 복호 에러가 원리적으로 발생하지 않는 것을 설명한다.
우선, 복호 에러가 발생하지 않기 위한 조건에 관해서 설명한 뒤, 상술한 조건식 EFC1을 만족하는 파라미터를 사용하는 제2 변형 NTRU 암호 방식은, 복호 에러가 원리적으로 발생하지 않는 것을 설명한다.
(복호 에러가 발생하지 않기 위한 조건)
제2 변형 NTRU 암호 방식은, 종래의 NTRUEncrypt 방식을 복호 에러가 원리적으로 발생하지 않도록 개변한 것이다.
NTRUEncrypt에서 복호 에러가 발생하지 않기 위한 조건은 개시되어 있지 않 다. 그러나, 다항식 p·r×g+f×m의 모든 계수가 0부터 (q-1)의 범위에 들어가 있으면, 정확하게 복호 처리를 행할 수 있어 복호 에러는 발생하지 않는다.
이하에 그 이유를 설명한다.
(i) NTRU 암호 방식의 경우
NTRUEncrypt에서 복호 에러가 발생하지 않기 위한 조건을 설명하기 위해서, 우선 비특허 문헌 2에 기재된 NTRU 암호에 있어서 복호 에러가 발생하지 않기 위한 조건에 관해 설명한다.
NTRU 암호에 관해서는, 비특허 문헌 2에, 복호 처리시에 있어서 계산되는 다항식 (p·r×g+f×m)의 계수 전부가, -q/2부터 q/2의 범위에 들어가 있으면, 정확하게 복호 처리를 행할 수 있어 복호 에러가 발생하지 않는 것이 기재되어 있다. 이것은 이하의 이유에 의한 것이다.
비특허 문헌 2에 기재된 NTRU 암호의 복호 처리에서는, 우선 암호문 c에 대해, 비밀 키의 일부인 다항식 f를 사용해,
a=c×f(mod q*)
에 의해 다항식 a를 연산한다. 여기서 (mod q*)는, 다항식 c×f의 제i차 계수를, 나머지가 〈-q/2〉+1부터 〈q/2〉의 범위에 들어가도록 법 q로 나눴을 때의 나머지를, 다항식 a의 제i차 계수로 하는 연산이다. 즉, 다항식 c와 다항식 f의 승산 결과의 다항식을 구하여, 그 각 계수를 〈-q/2〉+1부터 〈q/2〉의 범위에 들어가도록 mod q 연산을 실시한 다항식을, 다항식 a로 하는 연산이다.
이 때, 이 다항식 a의 값은, 비특허 문헌 2에 기재된 바와 같이, 평문 m과 암호문 c의 관계식 및 비밀 키의 일부인 다항식 f와 공개 키 h의 관계식으로부터,
a=c×f(mod q*)
=(p·r×h+m)×f(mod q*)
=p·r×g+f×m(mod q*)
가 된다. 즉, 다항식 a는, 다항식 p·r×g+f×m의 각 계수를 -q/2부터 q/2의 범위에 들어가도록 mod q 연산을 실시한 다항식이 되어 있다.
여기서, NTRU 암호에서는, 난수 r, 다항식 f, g 및 평문 m은, 계수가 0, 1 또는 -1이 되는 다항식이다. 그 때문에, p·r×g+f×m은, 그 계수가 음의 값이 될 가능성이 있는 다항식이다.
이 음의 계수값을 취할 수 있는 다항식 p·r×g+f×m의 모든 계수가 -q/2부터 q/2의 범위에 들어가 있으면, 다항식 p·r×g+f×m(mod q*)의 값은, 다항식 p·r×g+f×m의 값과 같아지므로, 다항식 a의 값은,
a=p·r×g+f×m(mod q*)
=p·r×g+f×m
이 된다. 그러면, 비특허 문헌 2에 기재된 바와 같이, 그 후의 복호 처리에 있어서 정확하게 평문 m을 복원할 수 있기 때문에 복호 에러는 발생하지 않는다.
(ⅱ) NTRUEncrypt 방식의 경우
한편, NTRUEncrypt에서는, 복호 에러가 발생하지 않기 위한 조건은 개시되어 있지 않지만, 상술한 바와 같이 다항식 p·r×g+f×m의 모든 계수가 0부터 (q-1)의 범위에 들어가 있으면, 정확하게 복호 처리를 행할 수 있어 복호 에러는 발생하지 않는다. 이것은 이하의 이유에 의한 것이다.
복호 알고리즘 D에서는, 비특허 문헌 4에 기재된 바와 같이, 우선 암호문 c에 대해 비밀 키의 일부인 다항식 f를 사용해,
a=c×f(mod q)
에 의해 다항식 a를 연산한다. 이 연산은, 다항식 c와 다항식 f의 승산 결과의 다항식을 구하여, 그 각 계수를 0부터 (q-1)의 범위에 들어가도록 mod q 연산을 실시한 다항식을, 다항식 a로 하는 연산이다.
이 때, 이 다항식 a의 값은, 비특허 문헌 4에 기재된 바와 같이, 평문 m과 암호문 c의 관계식 및 비밀 키의 일부인 다항식 f와 공개 키 h의 관계식으로부터,
a=c×f(mod q)
=p·r×g+f×m(mod q)
가 된다. 즉, 다항식 a는, 다항식 p·r×g+f×m의 각 계수를 0부터 (q-1)의 범위에 들어가도록 mod q 연산을 실시한 다항식이 되어 있다.
여기서, NTRUEncrypt에서는, 난수인 다항식 r, 다항식 f, g 및 평문인 다항식 m은, 계수가 0 또는 1이 되는 다항식이다. 그 때문에, p·r×g+f×m은, 그 계수가 0 또는 양의 값이 되는 다항식이다.
이 다항식 p·r×g+f×m의 모든 계수가 0부터 (q-1)의 범위에 들어가 있으면, 다항식 p·r×g+f×m(mod q)의 값은, 다항식 p·r×g+f×m의 값과 같아지므로, 다항식 a의 값은,
a=p·r×g+f×m(mod q)
=p·r×g+f×m
이 된다. 그러면, 비특허 문헌 2에 기재된 NTRU 암호와 동일하게, 그 후의 복호 처리에 있어서 정확하게 평문 m을 복원할 수 있기 때문에, 복호 에러는 발생하지 않는다.
(조건식 EFC1를 만족하는 파라미터를 사용하면 복호 에러가 발생하지 않게 되는 이유)
제2 변형 NTRU 암호 방식은, 조건식 EFC1을 만족하도록 파라미터를 설정하도록 종래의 NTRUEncrypt 방식을 개변하여, 복호 에러가 원리적으로 발생하지 않도록 한 것이다.
이하, 조건식 EFC1을 만족하도록 파라미터를 설정하면, 다항식 p·r×g+f×m의 모든 계수가, 0부터 (q-1)의 범위에 들어가서, 복호 에러는 발생하지 않게 되는 것을 설명한다.
우선, 다항식 p·r×g를 생각한다.
여기서, 다항식 r×g의 k차 계수는, 다항식 a의 k차 계수를 a(k)로 표시하면,
(r×g)(k)
=r(0)·g(k)+r(1)·g(k-1)+…
+r(N-1)·g(k-(N-1)(mod N))
이다(다항식과 다항식의 승산 방법에 대해서는, 예를 들면 비특허 문헌 2 참조).
상술한 바와 같이, 난수 r은, d개의 계수가 1이고, 또한 다른 계수는 0이 되는 다항식이고, 다항식 g는, dg개의 계수가 1이고, 또한 다른 계수는 0이 되는 다항식이다.
그러면, 다항식 r×g의 계수는 (r×g)(k)의 값은,
r×g(k)
=r(0)·g(k)+ r(1)·g(k-1)+…
+r(N-1)·g(k-(N-1)(mod N))
=1·g(i1)+1·g(i2)+…+1·g(id)
+0·g(j1)+0·g(j2)+…+0·g(j(N-d))
=1·g(i1)+1·g(i2)+…+1·g(id)
와 같이, d개의 1·g(in)이라는 항(1≤n≤d)으로 표시된다.
d≤dg인 경우, g(in)이 모두 1인 경우를 생각할 수 있고(1≤n≤d≤dg),이 때 (r×g)(k)는 최대치를 취하고, 그 값은 고작 d이다.
또한, d>dg인 경우, g(in)이 모두 1인 경우는 있을 수 없으므로, g(in) 중 dg개가 1이고, (d-dg)개가 0인 경우에 (r×g)(k)는 최대치를 취하고, 그 값은 고작 dg이다.
이상에 의해, 다항식 r×g의 계수의 최대치는 Min(dg, d)이다.
따라서, 다항식 p·r×g의 계수의 최대치는, 다항식 r×g의 계수의 최대치에 p를 곱한 것이 되므로, p·Min(dg, d)가 된다.
다음에, 다항식 f×m을 생각한다.
여기서, 다항식 f×m의 제k차 계수를 생각하면, 다항식 f는 df개의 계수가 1이고, 또한 다른 계수는 0이 되는 다항식이기 때문에, 상술한 논의와 동일하게,
f×m(k)
=f(0)·m(k)+ f(1)·m(k-1)+…
+f(N-1)·m(k-(N-1)(mod N))
=1·m(i1)+1·m(i2)+…+1·m(idf)
와 같이, df개의 1·m(in)이라는 항(1≤n≤ df)으로 표시된다.
평문인 다항식 m은 계수가 0 또는 1이기 때문에, m(in)이 모두 1인 경우를 생각할 수 있고(1≤n≤df), 이 때 (f×m)(k)는 최대치를 취하고, 그 값은 고작 df이다.
이상에 의해, 다항식 f×m의 계수의 최대치는 df이다.
이상을 정리하면, 다항식 p·r×g+f×m의 계수의 최대치는 고작,
p·Min(dg, d)+df
이다.
그리고, 계수의 최대치가 q-1 이하이면, 다항식 p·r×g+f×m의 모든 계수가 0부터 (q-1)의 범위에 들어가 있는 것이 되므로, 복호 에러는 발생하지 않는다.
즉, 복호 에러가 원리적으로 발생하지 않기 위해서는,
p·Min(dg, d)+df<q
가 되도록 하면 되며, 하기 조건식 EFC1이 도출된다.
EFC1 : p·Min(dg, d)+df<q
<제2 변형 NTRU 암호 방식의 파라미터 생성 방법>
여기서는, 상술한 제2 변형 NTRU 암호 방식의 파라미터의 생성 방법의 일례를 든다.
상술한 바와 같이, 제2 변형 NTRU 암호 방식의 파라미터는, 상술한 조건식 EFC1을 만족하는 파라미터를 생성하면 된다.
그 때문에, 여기서는 우선 p=2로 하고, p와 서로 소가 되도록 q=239로 한다.
그리고, df=dg=d로 해서, 상술한 조건식 EFC1을 만족하도록, df, dg, d의 값을 생성한다. 그리고, 상술한 무작위 공격 및 LLL 공격에 대한 안전성이 규정값 이상이 되도록 N의 값을 생성한다.
또한, 이것은 파라미터 생성 방법의 일례이고, 조건식 EFC1을 만족하도록 파라미터를 생성하면, 다른 생성 방법이어도 된다.
이후에서는, 이 생성 방법에 의해 생성된, (N, p, q, df, dg, d)=(251, 2, 239, 63, 63, 63)이라는 파라미터를 사용한 경우를 설명한다.
이상, 제2 변형 NTRU 암호 방식에 관해 설명했는데, 이후 본 실시형태에 따른 암호 통신 시스템, 암호 장치 및 복호 장치에 관해 설명한다.
<암호 통신 시스템(1b)의 개요>
도 7은, 본 발명의 실시형태 2에 있어서의 암호 통신 시스템(1b)의 전체 구성을 도시한 도면이다. 먼저, 동 도면을 사용해 암호 통신 시스템(1b)의 개요를 설명한다.
이 암호 통신 시스템(1b)은, 평문 m의 암호화 통신을 행하는 시스템이고, 암 호 장치(10b)와, 복호 장치(20b)로 구성되어 있고, 암호 장치(10b)와 복호 장치(20b)는 통신로(30)를 통해 상호 접속되어 있다.
그리고, 이 암호 통신 시스템(1b)은, 암호 장치(10b)와 복호 장치(20b)의 사이에서, 제2 변형 NTRU 암호 방식의 파라미터로서, (N, p, q, df, dg, d)=(251, 2, 239, 63, 63, 63)을 공유하고 있다.
이 암호 통신 시스템(1b)에서, 암호 장치(10b)는, 외부로부터 입력된 평문 m을, 상술한 제2 변형 NTRU 암호 방식을 사용해 암호화하여 암호문 c를 생성하고, 통신로(30)를 통해 복호 장치(20b)에 송신한다.
그리고, 복호 장치(20b)는, 통신로(30)를 통해 암호 장치(10b)로부터 수신한 암호문 c를 복호하여 복호문 m'를 생성하여 출력한다.
이상이, 암호 통신 시스템(1b)의 개요인데, 이하 암호 통신 시스템(1)과의 차이점을 중심으로, 그 구성 및 동작에 관해 설명한다.
<암호 통신 시스템(1b)의 구성>
암호 통신 시스템(1b)은, 도 7에 도시한 바와 같이, 암호 장치(10b)와, 복호 장치(20b)로 구성되며, 암호 장치(10b)와 복호 장치(20b)는 통신로(30)를 통해 상호 접속되어 있다.
이하, 이들 구성 요소에 관해 암호 통신 시스템(1)과의 차이점을 중심으로 설명한다.
<암호 장치(10b)의 구성>
암호 장치(10b)는, 도 8에 도시한 바와 같이, 파라미터 기억부(11b)와, 공개 키 기억부(12)와, 암호화부(13b)로 구성된다.
이하, 이들 구성 요소에 관해, 암호 장치(10)와의 차이점을 중심으로 설명한다.
(1) 파라미터 기억부(11b)
파라미터 기억부(11b)는, 예를 들면 RAM이나 EEPROM과 같은 메모리로 구성되어 있고, 후술하는 암호화부(13b)로부터 액세스 가능한 것이다.
파라미터 기억부(11b)는, 상술한 조건식 EFC1을 만족하는 파라미터를 미리 기억하고 있다. 여기서는, 상술한 바와 같이, 파라미터 (N, p, q, df, dg, d)=(251, 2, 239, 63, 63, 63)을 미리 기억하고 있는 것으로 한다.
(2) 암호화부(13b)
암호화부(13b)는, 예를 들면 마이크로컴퓨터에 의해 구성되어 있고, 파라미터 기억부(11b) 및 공개 키 기억부(12)에 액세스 가능하다.
암호화부(13b)는, 제1 변형 NTRU 암호 방식의 암호화 처리를 행하는 대신에, 제2 변형 NTRU 암호 방식의 암호화 처리를 행하여 암호문 c를 생성하는 점이, 암호화부(13)와 다르다.
<복호 장치(20b)의 구성>
복호 장치(20b)는, 도 9에 도시한 바와 같이, 파라미터 기억부(21b)와, 키 생성부(22b)와, 비밀 키 기억부(23)와, 복호화부(24b)로 구성된다.
이하, 이들 구성 요소에 관해, 복호 장치(20)와의 차이점을 중심으로 설명한다.
(1) 파라미터 기억부(21b)
파라미터 기억부(21b)는, 예를 들면 RAM이나 EEPROM과 같은 메모리로 구성되어 있고, 후술하는 키 생성부(22b) 및 복호화부(24b)로부터 액세스 가능한 것이다.
파라미터 기억부(21b)는, 암호 장치(10b)의 파라미터 기억부(11b)와 동일한 파라미터 (N, p, q, df, dg, d)를 미리 기억하고 있다. 여기서는, 상술한 바와 같이, 파라미터 (N, p, q, df, dg, d)=(251, 2, 239, 63, 63, 63)을 미리 기억하고 있는 것으로 한다.
(2) 키 생성부(22b)
키 생성부(22b)는, 예를 들면 마이크로컴퓨터에 의해 구성되어 있고, 에러 프리 NTRU 암호의 비밀 키 f 및 공개 키 h를 생성한다.
키 생성부(22b)는, 제1 변형 NTRU 암호 방식의 키 생성 처리를 행하는 대신에, 제2 변형 NTRU 암호 방식의 키 생성 처리를 행하는 점이, 키 생성부(22)와 다르다.
(3) 복호화부(24b)
복호화부(24b)는, 예를 들면 마이크로컴퓨터에 의해 구성되어 있고, 파라미터 기억부(21b) 및 비밀 키 기억부(23)에 액세스 가능하다.
복호화부(24b)는, 제1 변형 NTRU 암호 방식의 복호화 처리를 행하는 대신에, 제2 변형 NTRU 암호 방식의 복호화 처리를 행하여 복호문 m'를 생성하는 점이, 복호화부(24)와 다르다.
<암호 통신 시스템(1b)의 동작>
이상, 암호 통신 시스템(1b)의 구성에 관해 설명했는데, 여기서는 암호 통신 시스템(1b) 전체의 동작에 관해, 도 10에 도시한 흐름도를 사용해 설명한다.
먼저, 파라미터 기억부(11b) 및 파라미터 기억부(21)는, 조건식 EFC1을 만족하는 파라미터를 미리 기억하고 있다(단계 S261).
다음에, 키 생성부(22b)는, 파라미터 기억부(21b)로부터 파라미터 N, 파라미터 q, 파라미터 df, 파라미터 dg를 읽어내어, 파라미터 N, 파라미터 df를 사용해, df개의 계수가 1이고, 또한 그 밖의 계수가 0이 되도록, (N-1)차 이하의 다항식으로 표시되는 다항식 f를 선택한다(단계 S262).
이어서, 키 생성부(22b)는, 파라미터 N, 파라미터 dg를 사용해, dg개의 계수가 1이고, 또한 그 밖의 계수는 0이 되도록, (N-1)차 이하의 다항식으로 표시되는 다항식 g를 선택한다(단계 S263).
다음에, 키 생성부(22b)는, 상술한 제2 변형 NTRU 암호 방식의 키 생성 처리를 행하여, 다항식 Fp 및 h를 생성한다(단계 S264).
이어서, 키 생성부(22b)는, 다항식 h를 공개 키로서 공개하여, 암호 장치(10b)가 취득할 수 있도록 하고, 다항식 f와 Fp의 쌍 (f, Fp)를 비밀 키로서 비밀 키 기억부(23)에 기억한다(단계 S265).
다음에, 공개 키 기억부(12)는, 통신로(30)를 통해 복호 장치(20b)의 공개 키 h를 취득하여 기억한다(단계 S266).
다음에, 암호화부(13b)는, 외부로부터 계수가 0 또는 1인 평문 m이 입력되면, 파라미터 기억부(11b)로부터 파라미터 N, 파라미터 q, 파라미터 d를 읽어내고, 공개 키 기억부(12)로부터 공개 키 h를 읽어낸다(단계 S267).
이어서, 암호화부(13b)는, 파라미터 N, 파라미터 d를 사용해, d개의 계수가 1이고, 또한 다른 계수가 0이 되도록, (N-1)차 이하의 다항식 r을 랜덤하게 선택한다(단계 S268).
다음에, 암호화부(13b)는, 평문 m에 대해, 난수 r, 공개 키 h, 파라미터 N, 파라미터 q를 사용해, 제2 변형 NTRU 암호 방식의 암호화 처리를 행하여, 암호문 c를 생성한다(단계 S269).
이어서, 암호화부(13b)는, 생성한 암호문 c를 통신로(30)를 통해 복호 장치(20b)로 송신한다(단계 S270).
다음에, 복호화부(24b)는, 통신로(30)를 통해 암호 장치(10b)로부터 암호문 c를 수신하면, 파라미터 기억부(21b)로부터, 파라미터 N, 파라미터 p, 파라미터 q를 읽어내고, 비밀 키 기억부(23)로부터 비밀 키 (f, Fp)를 읽어낸다(단계 S271).
이어서, 복호화부(24b)는, 암호문 c에 대해, 비밀 키인 다항식 f 및 Fp, 파라미터 N, 파라미터 p, 파라미터 q를 사용해, 제2 변형 NTRU 암호 방식의 복호화 처리를 행하여, 복호문 m'를 생성한다(단계 S272).
다음에, 복호화부(24b)는, 생성한 복호문 m'를 외부로 출력하고 처리를 종료한다(단계 S273).
<암호 통신 시스템(1b)의 동작 검증>
우선, 암호 장치(10b) 및 복호 장치(20b)는, 단계 S261에 있어서, 조건식 EFC1을 만족하는 파라미터를 기억하고 있다.
그리고, 복호 장치(20b)가 미리 이 파라미터를 사용해, 단계 S262 및 단계 S263에 있어서, 계수가 0 또는 1의 2치인 다항식 f 및 g를 생성하고, 단계 S264에 있어서, 이들 다항식을 기초로 공개 키인 다항식 h를 생성하고 있다.
그리고, 암호 장치(10b)에서는, 단계 S267에서 계수가 0 또는 1의 2치인 다항식 r을 생성하고, 단계 S268에서 조건식 EFC1을 만족하는 파라미터와 공개 키 h와 난수 r을 사용해, 계수가 0 또는 1의 2치인 다항식인 평문 m을 암호화하여 암호문 c를 생성하고 있다.
그리고, 복호 장치(20b)에서는, 단계 S271에 있어서, 비밀 키인 다항식 f 및 Fp와 기억하고 있는 조건식 EFC1을 만족하는 파라미터를 사용해 복호문 m'를 생성하고 있다.
이러한 구성에 의하면, 조건식 EFC1을 만족하는 파라미터를, 암호 장치(10b)와 복호 장치(20b)의 사이에서 공유하여, 이 파라미터를 사용해 암호화 통신을 행하고 있으므로, 상술한 조건식 EFC1의 설명에서 말한 바와 같이, 복호 에러는 원리적으로 일어나지 않고, 복호문 m'는 반드시 평문 m과 동일하게 된다.
이에 의해, 복호 에러가 원리적으로 발생하지 않는 제2 변형 NTRU 암호 방식을 구성할 수 있고, 또 제2 변형 NTRU 암호 방식을 암호 통신 시스템에 적용하여, 암호 장치가 송신한 데이터 내용이, 항상 복호 장치에서 정확하게 얻어지는 암호 통신 시스템을 제공할 수 있다.
<변형예>
또한, 상기에 설명한 실시형태는, 본 발명의 실시형태의 일례이고, 본 발명 은 이 실시형태에 조금도 한정되지 않으며, 그 주지를 일탈하지 않는 범위에 있어서 여러가지 형태로 실시할 수 있는 것이다. 이하와 같은 경우도 본 발명에 포함된다.
(1) 암호 통신 시스템(1b)에서는, 제2 변형 NTRU 암호 방식의 파라미터로서 p=2가 되는 파라미터를 사용하고 있는데, 조건식 EFC1을 만족하면 다른 파라미터여도 되고, 예를 들면 p=3이 되는 파라미터를 사용해도 된다. 또, 상술한 실시형태에서는, 조건식 EFC1을 만족하는 파라미터로서 파라미터 (N, p, q, df, dg, d)=(251, 2, 239, 63, 63, 63)을 사용해 설명했는데, NTRUEncrypt 방식에서 채용되고 있는 파라미터 (N, p, q, df, dg, d)=(251, 2, 239, 72, 72, 72)여도 조건식 EFC1을 만족하므로, 이 파라미터를 사용해도 된다.
(2) 암호 통신 시스템(1b)에서는, 제2 변형 NTRU 암호 방식의 비밀 키의 일부인 다항식 f로서, df개의 계수가 1이고, 또한 그 밖의 계수는 0인, (N-1)차 이하의 다항식을 선택하고 있는데, NTRUEncrypt 방식과 동일하게, df개의 계수가 1이고, 또한 그 밖의 계수는 0인, (N-1)차 이하의 다항식 F를 사용해, f=1+p·F에 의해 비밀 키 f를 선택하여, 후술하는 조건식 EFC2를 만족하는 파라미터를 생성하도록 해도 된다. 이 경우는, 비밀 키를 (f, Fp)가 아니라, 다항식 f로 해도 된다.
이에 의해, NTRUEncrypt 방식과 동일하게, NTRU 암호의 복호화 처리에서 행하는 다항식 Fp와의 다항식 승산이 불필요해진다. 또한, 후술하는 바와 같이 조건식 EFC2를 만족하는 파라미터가 생성되기 때문에, 복호 에러가 원리적으로 발생하지 않아, 실시형태 2와 동일하게, 암호 장치가 송신한 데이터 내용이, 항상 복호 장치에서 정확하게 얻어지는 암호 통신 시스템을 실현할 수 있다.
(실시형태 3)
본 실시형태 3에 따른 암호 통신 시스템, 암호 장치 및 복호 장치에서는, NTRUEncrypt 방식을 개량하여, 복호 에러가 원리적으로 발생하지 않고, 또한 고속 처리 가능한 NTRU 암호 방식을 새롭게 구성하여, 이 새롭게 구성한 NTRU 암호 방식을 사용해 암호화 통신을 행한다(이후, 이 새롭게 구성한, 복호 에러가 원리적으로 발생하지 않는 NTRU 암호 방식을, 「제3 변형 NTRU 암호 방식」이라고 부른다).
그를 위해, 먼저 제3 변형 NTRU 암호 방식에 관해 설명한다.
이하, 종래의 NTRUEncrypt 방식과의 차이점을 중심으로, 제3 변형 NTRU 암호 방식에 관해 설명한다.
<제3 변형 NTRU 암호 방식>
제3 변형 NTRU 암호 방식은, 종래의 NTRUEncrypt 방식을 복호 에러가 원리적으로 발생하지 않고, 또한 고속 처리 가능하도록 개변한 것이다.
제3 변형 NTRU 암호 방식은, 파라미터로서 p=3, q=2^k(k : 2 이상의 정수)가 되는 파라미터를 사용하면서, 다항식 f, g, 난수인 다항식 r 및 평문인 다항식 m으로서, 계수가 0 또는 1의 2치인 다항식을 선택하는 점, 및 후술하는 조건식 EFC2를 만족하도록 파라미터를 생성하는 점이 종래의 NTRUEncrypt와 다르다.
이하, 이 제3 변형 NTRU 암호 방식에 관해 설명한다.
(1) 제3 변형 NTRU 암호 방식의 파라미터
제3 변형 NTRU 암호 방식은, 음이 아닌 정수의 파라미터, N, p, q, df, dg, d를 갖는다. 이들 파라미터의 의미는, 종래의 NTRUEncrypt 방식과 동일한데, p=3 또한 q=2^k(k : 2 이상의 정수)가 되는 파라미터를 생성하고, p=3으로 하고 있음에도 불구하고, 다항식 f, g, 난수인 다항식 r로서 계수가 0 또는 1의 2치인 다항식을 사용하는 점, 및 이하의 조건식 EFC2를 만족하도록 파라미터 p, q, df, dg, d를 선택하는 점이 종래의 NTREncrypt 방식과 다르다.
EFC2 : Min(dg, d)+df<(q-1)/p
이렇게 p=3이라는 파라미터를 사용함에도 불구하고, 다항식 f, g, 난수인 다항식 r로서 계수가 0 또는 1의 2치인 다항식을 사용함으로써, 종래의 NTRUEncrypt보다도 고속 처리 가능해지도록 할 수 있다.
또한, 이 조건식 EFC2를 만족하는 파라미터를 사용하면, 후술하는 바와 같이, 복호 에러가 원리적으로 발생하지 않도록 할 수 있다.
(2) 제3 변형 NTRU 암호 방식의 키 생성
제3 변형 NTRU 암호 방식에서는, 상술한 바와 같이, 파라미터 df, dg를 사용해 랜덤하게 다항식 f, 다항식 g를 생성한다. 여기서 다항식 f는, df개의 계수가 1이고, 또한 그 밖의 계수는 0인, (N-1)차 이하의 다항식 F를 사용해, f=1+p·F에 의해 다항식 f를 선택한다.
그리고 비특허 문헌 2에 기재된 바와 같이, Fq×f=1(mod q)가 되는 다항식 Fq를 사용해,
h=Fq×g(mod q)
에 의해 다항식 h를 생성한다. 여기서, 비밀 키를 다항식 f, 공개 키를 h로 한다.
(3) 제3 변형 NTRU 암호 방식의 암호화
제3 변형 NTRU 암호 방식의 암호화에서는, 평문인 계수가 0 또는 1의 2치인 다항식 m을 암호화하여, 암호문인 다항식 c를 계산한다. 우선, 상술한 바와 같은 다항식 r을 랜덤하게 생성한다. 즉, 난수 1은 (N-1)차 이하의 다항식이고, 제0차(상수항)부터 제(N-1)차까지 N개의 계수가 있는데, 이 N개의 계수 중, d개의 계수가 1이고, 또한 d개의 계수가 -1이고, 또한 (N-2d)개의 계수는 0이 되도록, 랜덤하게 다항식 r을 선택한다.
그리고, 이 난수 r과 공개 키 h를 사용해, 계수가 0, 1 또는 -1인 (N-1)차 이하의 평문 m에 대해,
c=p·r×h+m(mod q)
에 의해, 암호문 c를 생성한다.
(4) 제3 변형 NTRU 암호 방식의 복호화
제3 변형 NTRU 암호 방식에서는, 후술하는 바와 같이, 복호 에러가 원리적으로 발생하지 않기 때문에, NTRUEncrypt와 달리, 복호 에러 발생 확률을 감소시키는 처리가 불필요하다.
그 때문에, 이하와 같이 복호화를 행한다.
제3 변형 NTRU 암호 방식의 복호화에서는, 암호문인 다항식 c를 복호화하여, 복호문인 다항식 m'를 계산한다. 복호화시에는, 우선 암호문 c에 대해, 비밀 키의 일부인 다항식 f를 사용해,
a=f×c(mod q*)
에 의해 다항식 a를 계산한다.
다음에, 다항식 a에 대해, 파라미터 p를 사용해,
b=a(mod p)
에 의해 다항식 b를 생성한다.
그리고, 비특허 문헌 4에 기재된 바와 같이, 비밀 키인 다항식 f가 f=1+p·F라는 형태이므로, Fp×f=1(mod p)가 되는 다항식 Fp는 Fp=1(mod p)가 되기 때문에, 복호화 처리에서 행하는 다항식 Fp와의 다항식 승산이 불필요해지므로,
m'=a(mod p*)
에 의해, 복호문 m'를 생성한다.
이상과 같이, 제3 변형 NTRU 암호 방식에서는, 종래의 NTRUEncrypt 방식과 달리, 비특허 문헌 4에 기재된 center1 또는 center2라고 불리는 알고리즘과 같은 복호 에러 발생 확률을 감소시키는 처리는 행하지 않는다.
<복호 에러가 원리적으로 발생하지 않는 이유>
이하, 상술한 조건식 EFC2를 만족하는 파라미터를 사용하는 제3 변형 NTRU 암호 방식은, 복호 에러가 원리적으로 발생하지 않는 것을 설명한다.
(조건식 EFC2를 만족하는 파라미터를 사용하면 복호 에러가 발생하지 않게 되는 이유)
제3 변형 NTRU 암호 방식은, 조건식 EFC2를 만족하도록 파라미터를 설정하도록, 종래의 NTRUEncrypt 방식을 개변하여, 복호 에러가 원리적으로 발생하지 않도 록 한 것이다.
이하, 조건식 EFC2를 만족하도록 파라미터를 설정하면, 다항식 p·r×g+f×m의 모든 계수가, 0부터 (q-1)의 범위에 들어가서, 복호 에러는 발생하지 않게 되는 것을 설명한다.
우선, 다항식 p·r×g를 생각하면, 상술한 바와 같이, 다항식 p·r×g의 계수의 최대치는 p·Min(dg, d)가 된다.
다음에, 다항식 f×m을 생각한다.
비밀 키인 다항식 f는 f=1+p·F이므로,
f×m
=(1+p·F)×m
=m+p·F×m
이다.
여기서, 다항식 F×m의 제k차 계수를 생각하면, 다항식 F는 df개의 계수가 1이고, 또한 다른 계수는 0이 되는 다항식이기 때문에, 상술한 논의와 동일하게,
F×m(k)
= F(0)·m(k)+F(1)·m(k-1)+…
+F(N-1)·m(k-(N-1)(mod N))
=1·m(il)+ 1·m(i2)+…+1·m(idf)
와 같이, df개의 1·m(in)이라는 항(1≤n≤df)으로 표시된다.
평문인 다항식 m은 계수가 0 또는 1이기 때문에, m(in)이 모두 1인 경우를 생각할 수 있고(1≤n≤df), 이 때 (F×m)(k)는 최대치를 취하고, 그 값은 고작 df이다.
이상에 의해, 다항식 F×m의 계수의 최대치는 df이다.
따라서, 평문인 다항식 m의 계수의 최대치는 1이고, p·F×m의 계수의 최대치는 p·df가 되기 때문에, 다항식 f×m(=m+p·F×m)의 계수의 최대치는 1+p·df가 된다.
이상을 정리하면, 다항식 p·r×g+ f×m의 계수의 최대치는 고작,
p·Min(dg, d)+1+p·df이다.
그리고, 계수의 최대치가 q-1 이하이면, 다항식 p·r×g+f×m의 모든 계수가 0부터 (q-1)의 범위에 들어가 있는 것이 되므로, 복호 에러는 발생하지 않는다.
즉, 복호 에러가 원리적으로 발생하지 않기 위해서는,
p·Min(dg, d)+1+p·df<q
가 되도록 하면 되며, 이 식을 변형하면 하기 조건식 EFC2가 도출된다.
EFC2 : Min(dg, d)+df<(q-1)/p
<제3 변형 NTRU 암호 방식의 파라미터 생성 방법>
여기서는, 상술한 제3 변형 NTRU 암호 방식의 파라미터의 생성 방법의 일례를 든다.
상술한 바와 같이, 제3 변형 NTRU 암호 방식의 파라미터는, p=3 또한 q=2^k(k : 2 이상의 정수)로 하고, 상술한 조건식 EFC2를 만족하는 파라미터를 생성하면 된다.
그를 위해, 여기서는 우선 p=3으로 하고, p와 서로 소가 되고 또한 계수의 mod q 연산이, 비트 마스크 연산에서 하위 8비트만을 취하는 연산으로 실현 가능해지도록 q=256으로 한다.
그리고, df=dg=d로 해서, 상술한 조건식 EFC2를 만족하도록 df, dg, d의 값을 생성한다. 그리고, 상술한 무작위 공격 및 LLL 공격에 대한 안전성이 규정값 이상이 되도록 N의 값을 생성한다.
또한, 이것은 파라미터 생성 방법의 일례이고, 조건식 EFC2를 만족하도록 파라미터를 생성하면, 다른 생성 방법이어도 된다.
이후에는, 이 생성 방법에 의해 생성된, (N, p, q, df, dg, d)=(251, 3, 256, 42, 42, 42)라는 파라미터를 사용한 경우를 설명한다.
이상, 제3 변형 NTRU 암호 방식에 관해 설명했는데, 이후 본 실시형태에 따른 암호 통신 시스템, 암호 장치 및 복호 장치에 관해 설명한다.
<암호 통신 시스템(1c)의 개요>
도 11은, 본 발명의 실시형태 3에 있어서의 암호 통신 시스템(1c)의 전체 구성을 도시한 도면이다. 먼저, 동 도면을 사용해 암호 통신 시스템(1c)의 개요를 설명한다.
이 암호 통신 시스템(1c)은, 평문 m의 암호화 통신을 행하는 시스템이고, 암호 장치(10c)와, 복호 장치(20c)로 구성되어 있고, 암호 장치(10c)와 복호 장치(20c)는 통신로(30)를 통해 상호 접속되어 있다.
그리고, 이 암호 통신 시스템(1c)은, 암호 장치(10c)와 복호 장치(20c)의 사 이에서, 제3 변형 NTRU 암호 방식의 파라미터로서, (N, p, q, df, dg, d)=(251, 3, 256, 42, 42, 42)를 공유하고 있다.
이 암호 통신 시스템(1c)에서, 암호 장치(10c)는, 외부로부터 입력된 평문 m을, 상술한 제3 변형 NTRU 암호 방식을 사용해 암호화하여 암호문 c를 생성하여, 통신로(30)를 통해 복호 장치(20c)로 송신한다.
그리고, 복호 장치(20c)는, 통신로(30)를 통해 암호 장치(10c)로부터 수신한 암호문 c를 복호하여 복호문 m'를 생성하여 출력한다.
이상이 암호 통신 시스템(1c)의 개요인데, 이하 암호 통신 시스템(1)과의 차이점을 중심으로, 그 구성 및 동작에 관해 설명한다.
<암호 통신 시스템(1c)의 구성>
암호 통신 시스템(1c)은, 도 11에 도시한 바와 같이, 암호 장치(10c)와, 복호 장치(20c)로 구성되고, 암호 장치(10c)와 복호 장치(20c)는 통신로(30)를 통해 상호 접속되어 있다.
이하, 이들 구성 요소에 관해 암호 통신 시스템(1)과의 차이점을 중심으로 설명한다.
<암호 장치(10c)의 구성>
암호 장치(10c)는, 도 12에 도시한 바와 같이, 파라미터 기억부(11c)와, 공개 키 기억부(12)와, 암호화부(13c)로 구성된다.
이하, 이들 구성 요소에 관해, 암호 장치(10)와의 차이점을 중심으로 설명한다.
(1) 파라미터 기억부(11c)
파라미터 기억부(11c)는, 예를 들면 RAM이나 EEPROM과 같은 메모리로 구성되어 있고, 후술하는 암호화부(13c)로부터 액세스 가능한 것이다.
파라미터 기억부(11c)는, 상술한 바와 같이, p=3 또한 q=2^k(k : 2 이상의 정수)로 하고, 조건식 EFC2를 만족하는 파라미터를 미리 기억하고 있다. 여기서는, 상술한 바와 같이, 파라미터 (N, p, q, df, dg, d)=(251, 3, 256, 42, 42, 42)를 미리 기억하고 있는 것으로 한다.
(2) 암호화부(13c)
암호화부(13c)는, 예를 들면 마이크로컴퓨터에 의해 구성되어 있고, 파라미터 기억부(11c) 및 공개 키 기억부(12)에 액세스 가능하다.
암호화부(13c)는, 제1 변형 NTRU 암호 방식의 암호화 처리를 행하는 대신에, 제3 변형 NTRU 암호 방식의 암호화 처리를 행하여 암호문 c를 생성하는 점이, 암호화부(13)와 다르다.
<복호 장치(20c)의 구성>
복호 장치(20c)는, 도 13에 도시한 바와 같이, 파라미터 기억부(21c)와, 키 생성부(22c)와, 비밀 키 기억부(23)와, 복호화부(24c)로 구성된다.
이하, 이들 구성 요소에 관해, 복호 장치(20)와의 차이점을 중심으로 설명한다.
(1) 파라미터 기억부(21c)
파라미터 기억부(21c)는, 예를 들면 RAM이나 EEPROM과 같은 메모리로 구성되 어 있고, 후술하는 키 생성부(22c) 및 복호화부(24c)로부터 액세스 가능한 것이다.
파라미터 기억부(21c)는, 암호화부(10c)의 파라미터 기억부(11c)와 동일한 파라미터 (N, p, q, df, dg, d)를 미리 기억하고 있다. 여기서는, 상술한 바와 같이, 파라미터 (N, p, q, df, dg, d)=(251, 3, 256, 42, 42, 42)를 미리 기억하고 있는 것으로 한다.
(2) 키 생성부(22c)
키 생성부(22c)는, 예를 들면 마이크로컴퓨터에 의해 구성되어 있고, 제3 변형 NTRU 암호 방식의 비밀 키인 다항식 f 및 공개 키인 다항식 h를 생성한다.
키 생성부(22c)는, 제1 변형 NTRU 암호 방식의 키 생성 처리를 행하는 대신에 제3 변형 NTRU 암호 방식의 키 생성 처리를 행하는 점이, 키 생성부(22)와 다르다.
(3) 복호화부(24c)
복호화부(24c)는, 예를 들면 마이크로컴퓨터에 의해 구성되어 있고, 파라미터 기억부(21c) 및 비밀 키 기억부(23)에 액세스 가능하다.
복호화부(24c)는, 제1 변형 NTRU 암호 방식의 복호화 처리를 행하는 대신에, 제3 변형 NTRU 암호 방식의 복호화 처리를 행하여 복호문 m'를 생성하는 점이, 복호화부(24)와 다르다.
<암호 통신 시스템(1c)의 동작>
이상, 암호 통신 시스템(1c)의 구성에 관해 설명했는데, 여기서는, 암호 통신 시스템(1c) 전체의 동작에 관해, 도 14에 도시한 흐름도를 사용해 설명한다.
먼저, 파라미터 기억부(11c) 및 파라미터 기억부(21c)는, p=3 또한 q=2^k(k : 2 이상의 정수)이고, 조건식 EFC2를 만족하는 파라미터를 미리 기억하고 있다(단계 S36l).
다음에, 키 생성부(22d), 파라미터 기억부(21c)로부터 파라미터 N, 파라미터 q, 파라미터 df, 파라미터 dg를 읽어내어, 파라미터 N, 파라미터 df를 사용해, df개의 계수가 1이고, 또한 그 밖의 계수가 0이 되도록, (N-1)차 이하의 다항식으로 표시되는 다항식 F를 선택해, f=1+p·F에 의해 비밀 키 f를 생성한다(단계 S362).
이어서, 키 생성부(22c)는, 파라미터 N, 파라미터 dg를 사용해, dg개의 계수가 1이고, 또한 그 밖의 계수는 0이 되도록, (N-1)차 이하의 다항식으로 표시되는 다항식 g를 선택한다(단계 S363).
다음에, 키 생성부(22c)는, 상술한 제3 변형 NTRU 암호 방식의 키 생성 처리를 행하여, 공개 키인 다항식 h를 생성한다(단계 S364).
이어서, 키 생성부(22d), 다항식 h를 공개 키로서 공개하여, 암호 장치(10c)가 취득할 수 있도록 하고, 다항식 f를 비밀 키로서 비밀 키 기억부(23)에 기억한다(단계 S365).
다음에, 공개 키 기억부(12)는, 통신로(30)를 통해 복호 장치(20c)의 공개 키 h를 취득하여 기억한다(단계 S366).
이어서, 암호화부(13c)는, 외부로부터 계수가 0 또는 1인 평문 m이 입력되면, 파라미터 기억부(11c)로부터 파라미터 N, 파라미터 q, 파라미터 d를 읽어내고, 공개 키 기억부(12)로부터 공개 키 h를 읽어낸다(단계 S367).
다음에, 암호화부(13c)는, 파라미터 N, 파라미터 d를 사용해, d개의 계수가 1이고, 또한 다른 계수가 0이 되도록, (N-1)차 이하의 다항식 r을 랜덤하게 선택한다(단계 S368).
이어서, 암호화부(13c)는, 평문 m에 대해, 난수 r, 공개 키 h, 파라미터 N, 파라미터 q를 사용해, 제3 변형 NTRU 암호 방식의 암호화 처리를 행하여, 암호문 c를 생성한다(단계 S369).
다음에, 암호화부(13c)는, 생성한 암호문 c를 통신로(30)를 통해 복호 장치(20c)로 송신한다(단계 S370).
이어서, 복호화부(24c)는, 통신로(30)를 통해 암호 장치(10c)로부터 암호문 c를 수신하면, 파라미터 기억부(21c)로부터, 파라미터 N, 파라미터 p, 파라미터 q를 읽어내고, 비밀 키 기억부(23)로부터 비밀 키 f를 읽어낸다(단계 S371).
다음에, 복호화부(24c)는, 암호문 c에 대해, 비밀 키 f, 파라미터 N, 파라미터 p, 파라미터 q를 사용해, 제3 변형 NTRU 암호 방식의 복호화 처리를 행하여, 복호문 m'를 생성한다(단계 S372).
이어서, 복호화부(24c)는, 생성한 복호문 m'을 외부로 출력하고 처리를 종료한다(단계 S373).
<암호 통신 시스템(1c)의 동작 검증>
우선, 암호 장치(10c) 및 복호 장치(20c)는, 단계 S361에 있어서, p=3 또한 q=2^k(k : 2 이상의 정수)이고, 조건식 EFC2를 만족하는 파라미터를 기억하고 있다.
그리고, 복호 장치(20c)가, 미리 이 파라미터를 사용해, 단계 S362 및 단계 S363에 있어서, 계수가 0 또는 1의 2치인 비밀 키 f 및 다항식 g를 생성하고, 단계 S364에 있어서, 이들 다항식을 기초로 공개 키 h를 생성하고 있다.
그리고, 암호 장치(10c)에서는, 단계 S368에서, 계수가 0 또는 1의 2치인 다항식 r을 생성하고, 단계 S369에서, p=3 또한 q=2^k(k : 2 이상의 정수)이고, 조건식 EFC2를 만족하는 파라미터와 공개 키 h와 난수 r을 사용해, 계수가 0 또는 1의 2치인 평문 m을 암호화하여 암호문 c를 생성하고 있다.
그리고, 복호 장치(20c)에서는, 단계 S372에 있어서, 비밀 키 f와 기억하고 있는 p=3 또한 q=2^k(k : 2 이상의 정수)이고 조건식 EFC2를 만족하는 파라미터를 사용해 복호문 m'를 생성하고 있다.
이러한 구성에 의하면, p=3 또한 q=2^k(k : 2 이상의 정수)이고, 조건식 EFC2를 만족하는 파라미터를, 암호 장치(10c)와 복호 장치(20c)의 사이에서 공유하여, 이 파라미터를 사용해 암호화 통신을 행하고 있으므로, 상술한 바와 같이, 종래의 NTRUEncrypt보다도 고속 처리 가능해지도록 할 수 있다. 또, 상술한 조건식 EFC2의 설명에서 말한 바와 같이, 복호 에러는 원리적으로 일어나지 않아, 복호문 m'는 반드시 평문 m과 동일하게 된다.
이에 의해, 복호 에러가 원리적으로 발생하지 않고, 또한 고속 처리 가능한 제3 변형 NTRU 암호 방식을 구성할 수 있고, 또 제3 변형 NTRU 암호 방식을 암호 통신 시스템에 적용하여, 암호 장치가 송신한 데이터 내용이, 항상 복호 장치에서 정확하게 얻어지고, 종래보다도 고속 처리 가능한 암호 통신 시스템을 제공할 수 있다.
(그 밖의 변형예)
또한, 상기에 설명한 실시형태는, 본 발명의 실시형태의 일례이며, 본 발명은 이 실시형태에 조금도 한정되지 않으며, 그 주지를 일탈하지 않는 범위에 있어서 여러가지 형태로 실시할 수 있는 것이다. 상술한 변형예에 추가해, 이하와 같은 경우도 본 발명에 포함된다.
(1) 암호 통신 시스템(1, 1b, 1c)에서는, 파라미터 생성 방법의 일례, 및 이 파라미터 생성 방법에 의해 생성한 파라미터의 구체예를 나타내고 있는데, 이것은 파라미터 생성 방법의 설명에서 말한 바와 같이, 다른 생성 방법이어도 되고, 또 조건을 만족하면 다른 파라미터여도 되며, 이것에 한정되지 않는다.
(2) 암호 통신 시스템(1)에서는, 암호 장치(10)와 복호 장치(20)의 사이에서, 동일한 파라미터로서, (N, p, q, df, dg, d)=(251, 3, 256, 42, 42, 42)를 공유하고 있는데, 암호 장치(10)에서, 이 파라미터 중, 암호화 처리에 필요한 것만을 유지하도록 해도 되고, 복호 장치(20)에서, 키 생성 처리 및 복호화 처리에 필요한 것만을 유지하도록 해도 된다.
(3) 암호 통신 시스템(1)에서는, 복호 장치(20)가 키 생성 처리를 행하고 있었는데, 또한 전용 통신로를 통해 암호 장치(10) 및 복호 장치(20)와 통신 가능한 키 생성 장치를 구비하고, 복호 장치(20)가 키 생성 처리를 행하는 대신에, 키 생성 장치가 키 생성 처리를 행하고, 암호 장치(10)가, 키 생성 장치로부터 전용 통신로를 통해, 공개 키 h를 취득하여 공개 키 기억부(12)에 미리 기억해 두고, 복호 장치(20)가, 키 생성 장치로부터 전용 통신로를 통해, 비밀 키의 일부 또는 비밀 키 그 자체인 다항식 f를 취득하여 비밀 키 기억부(23)에 미리 기억해 두어도 된다. 또한, 전용 통신로 대신에 통신로(30)를 사용해도 된다.
(4) 실시형태 1 내지 3에서는, 다항식을 사용해 연산을 표현하고 있는데, 특허 문헌 1처럼 이것을 일반적인 환 R의 원으로서 표현해도 된다. 구체적으로는, 다항식을 환 R의 원으로 하고, p, q를 환 R의 이데알로 해도 된다. 또한 실시형태 1 내지 3의 p, q를 이데알 p=pg·R, q=qg·R로 해도 된다. 구체적으로는, 실시형태 1 내지 3에 있어서, p=3, q=2^k인 경우에, p=3·R, q=(2^k)·R이어도 된다. 이 때, 2는 환 R에서의 2이고, 환 R에서의 가산법군의 영원(零元) 0에 승산법군의 단위원 1을 2회 더한 것이다. 동일하게 3은 영원 0에 단위원 1을 3회 더한 것이다. 또한, 2^k는 승산법군의 단위원 1에 2를 k회 곱한 것이다.
또, dg, d를 원 g, r을 N차원 배열로 표현했을 때의 요소가 1인 개수, df를 f 또는 F를 N차원 배열로 표현했을 때의 요소가 1인 개수로 하여, 복호 에러가 발생하지 않는 조건식을 pg×Min(dg, d)+1+pg×df<qg로 해도 된다.
(5) 본 발명은, 상기에 나타낸 방법인 것으로 해도 된다. 또, 이들 방법을 컴퓨터에 의해 실현하는 컴퓨터 프로그램인 것으로 해도 되고, 상기 컴퓨터 프로그램으로 이루어지는 디지털 신호인 것으로 해도 된다.
또, 본 발명은, 상기 컴퓨터 프로그램 또는 상기 디지털 신호를 컴퓨터 읽기 가능한 기록 매체, 예를 들면 반도체 메모리, 하드디스크 드라이브, CD-ROM, DVD-ROM, DVD-RAM 등에 기록한 것으로 해도 된다.
(6) 상기 실시형태 및 변형예를 각각 조합하는 것으로 해도 된다.
(7) 또, 블록도(도 2나 도 4 등)의 각 기능 블록은 전형적으로는 집적 회로인 LSI로서 실현된다. 이들은 개별적으로 1칩화되어도 되고, 일부 또는 전부를 포함하도록 1칩화되어도 된다.
또한, LSI는 집적도의 차이에 따라, IC, 시스템 LSI, 슈퍼 LSI, 울트라 LSI라고 호칭되는 경우도 있다.
또, 집적 회로화의 수법은 LS1에 한정되지 않고, 전용 회로 또는 범용 프로세서로 실현해도 된다. LSI 제조 후에, 프로그램하는 것이 가능한 FPGA(Field Programmable Gate Array)나, LSI 내부의 회로 셀의 접속이나 설정을 재구성 가능한 리컨피규러블 프로세서를 이용해도 된다.
또한, 반도체 기술의 진보 또는 파생하는 다른 기술에 의해 LSI를 대신하는 집적 회로화의 기술이 등장하면, 당연히 그 기술을 사용해 기능 블록의 집적화를 행해도 된다. 다른 기술로서 바이오 기술 등이 가능성으로서 있을 수 있다.
본 발명에 따른 암호 통신 시스템, 암호 장치 및 복호 장치는 종래보다도 고속 처리 가능하다는 효과, 또는 복호 에러를 원리적으로 발생시키지 않도록 할 수 있다는 효과를 갖고, 키 배포나 콘텐츠 배포 등의 암호 통신 시스템 등으로서 유용하다.

Claims (32)

  1. 소정의 암호 방식에 따라서 평문을 암호화하여 암호문을 생성하는 암호 장치와, 상기 소정의 암호 방식에 따라서 상기 복호문을 복호화하여 복호문을 생성하는 복호 장치를 구비하는 암호 시스템으로서,
    상기 복호 장치는,
    가산, 감산, 승산이 정의된 N차원 배열의 집합인 환(環) R과, 상기 환 R의 이데알(ideal) p, q에 대해, 상기 환 R의 원(元) f, g와, f(mod q)의 역수인 원 Fq와(여기서 a(mod b)는, a를 b로 나눈 나머지를 나타낸다), f(mod p)의 역수인 원 Fp를 생성하고, 상기 원 g 및 상기 원 Fq의 적(積)과 법(法)을 q로 해서 합동인 원 h를 공개 키로서 생성하고, 상기 원 f 및 상기 원 Fp를 얻을 수 있는 정보를 비밀 키로서 생성하는 키 생성부와,
    상기 비밀 키를 사용해 상기 암호문을 복호화하여 상기 복호문을 생성하는 복호화부를 구비하고,
    상기 암호 장치는,
    상기 공개 키 및 상기 환 R로부터 랜덤하게 선택한 원 r을 사용해 상기 평문을 암호화하여 상기 암호문을 생성하는 암호화부를 구비하고,
    상기 원 f, 상기 원 g, 상기 원 r, 상기 평문인 N차원 배열의 모든 요소는 0 또는 1이고, 상기 이데알 p와 상기 이데알 q는 서로 소(素)이고, 상기 이데알 q는 q=(2^k)* R인(단, 2^k는 1에 2를 k회 곱한 결과이고, *는 환 R의 승산을 나타낸다) 것을 특징으로 하는 암호 시스템.
  2. 청구항 1에 있어서,
    상기 이데알 p는 p=3*R인 것을 특징으로 하는 암호 시스템.
  3. 청구항 1에 있어서,
    상기 환 R은 다항식 환인 것을 특징으로 하는 암호 시스템.
  4. 청구항 1에 있어서,
    상기 복호화부는, 또한 상기 복호문을 생성하는 과정에서 출현하는 상기 환 R의 원에 대해, 복호 에러 발생 확률이 낮아지는 처리를 실시하는 것을 특징으로 하는 암호 시스템.
  5. 청구항 4에 있어서,
    상기 복호 에러 발생 확률이 낮아지는 처리는, NTRU 암호 방식에서의 center1 알고리즘 또는 center2 알고리즘인 것을 특징으로 하는 암호 시스템.
  6. 청구항 1에 있어서,
    상기 키 생성부는,
    상기 원 f는, N차원 배열의 값이 1이 되는 요소의 수를 규정하는 음이 아닌 정수 df에 기초해 생성되고,
    상기 원 g는, N차원 배열의 값이 1이 되는 요소의 수를 규정하는 음이 아닌 정수 dg에 기초해 생성되고, .
    상기 원 r은, N차원 배열의 값이 1이 되는 요소의 수를 규정하는 음이 아닌 정수 d에 기초해 선택되고,
    상기 이데알 p는, 상기 환 R의 원 pg에 대해 p=pg*R이고, 상기 이데알 q는, 상기 환의 원 qg에 대해 q=qg*R이고,
    상기 차원 N, 상기 원 pg, 상기 원 qg, 상기 음이 아닌 정수 df, 상기 음이 아닌 정수 dg, 상기 음이 아닌 정수 d는, 복호 에러 발생 유무를 판정하는 에러 조건 정보에 기초하고 있는 것을 특징으로 하는 암호 시스템.
  7. 청구항 6에 있어서,
    상기 에러 조건 정보는, 복호 에러가 발생하지 않기 위한 조건을 나타내는 조건식인 것을 특징으로 하는 암호 시스템.
  8. 청구항 7에 있어서,
    상기 조건식은, Min(dg, d)+df<(qg-1)/p(단, Min(a, b)는 a와 b 중 작은 쪽의 수를 나타낸다)인 것을 특징으로 하는 암호 시스템(단, Min(a, b)는 a와 b 중 작은 쪽의 수를 나타낸다).
  9. 청구항 1에 있어서,
    상기 음이 아닌 정수 df는, 상기 원 f의 N차원 배열의 요소의 값이 1이 되는 요소의 수를 규정하는 대신에, 상기 환 R의 원 F의 N차원 배열의 요소의 값이 1이 되는 요소의 수를 규정하고,
    상기 이데알 p는, 상기 환 R의 원 pg에 대해 p=pg*R이고,
    상기 비밀 키는 상기 환 R의 원 (1+pg*F)인 것을 특징으로 하는 암호 시스템.
  10. 청구항 1에 있어서,
    상기 소정의 암호 방식은, NTRU 암호 방식인 것을 특징으로 하는 암호 시스템.
  11. 소정의 암호 방식에 따라서 평문을 암호화하여 암호문을 생성하는 암호 장치로서,
    공개 키 및 가산, 감산, 승산이 정의된 N차원 배열의 집합인 환 R로부터 랜덤하게 선택한 원 r을 사용해 상기 평문을 암호화하여 상기 암호문을 생성하는 암호화부를 구비하고,
    상기 소정의 암호 방식은,
    상기 환 R과, 상기 환 R의 이데알 p, q에 대해, 상기 환 R의 원 f, g와, f(mod q)의 역수인 원 Fq와, f(mod p)의 역수인 원 Fp를 생성하고, 상기 원 g 및 상기 원 Fq의 적과 법을 q로 해서 합동인 원 h를 공개 키로서 생성하고, 상기 원 f 및 상기 원 Fp를 얻을 수 있는 정보를 비밀 키로서 생성하는 키 생성 단계와,
    상기 공개 키 및 상기 환 R로부터 랜덤하게 선택한 원 r을 사용해 상기 평문을 암호화하여 상기 암호문을 생성하는 암호화 단계와,
    상기 비밀 키를 사용해 상기 암호문을 복호화하여 상기 복호문을 생성하는 복호화 단계를 포함하는 방법에 의해 평문의 암호화 및 암호문의 복호화가 행해지는 암호 방식이고,
    상기 원 f, 상기 원 g, 상기 원 r, 상기 평문인 N차원 배열의 모든 요소는 0 또는 1이고, 상기 이데알 p와 상기 이데알 q는 서로 소이고, 상기 이데알 q는 q=(2^k)*R인 것을 특징으로 하는 암호 장치.
  12. 청구항 11에 있어서,
    상기 이데알 p는 p=3*R인 것을 특징으로 하는 암호 장치.
  13. 청구항 11에 있어서,
    상기 환 R은 다항식 환인 것을 특징으로 하는 암호 장치.
  14. 청구항 11에 있어서,
    상기 원 f는, N차원 배열의 값이 1이 되는 요소의 수를 규정하는 음이 아닌 정수 df에 기초해 생성되고,
    상기 원 g는, N차원 배열의 값이 1이 되는 요소의 수를 규정하는 음이 아닌 정수 dg에 기초해 생성되고,
    상기 원 r은, N차원 배열의 값이 1이 되는 요소의 수를 규정하는 음이 아닌 정수 d에 기초해 선택되고,
    상기 이데알 p는, 상기 환 R의 원 pg에 대해 p=pg*R이고, 상기 이데알 q는, 상기 환의 원 qg에 대해 q=qg*R이고,
    상기 차원 N, 상기 원 pg, 상기 원 qg, 상기 음이 아닌 정수 df, 상기 음이 아닌 정수 dg, 상기 음이 아닌 정수 d는, 복호 에러 발생 유무를 판정하는 에러 조건 정보에 기초하고 있는 것을 특징으로 하는 암호 장치.
  15. 청구항 14에 있어서,
    상기 에러 조건 정보는, 복호 에러가 발생하지 않기 위한 조건을 나타내는 조건식인 것을 특징으로 하는 암호 장치.
  16. 청구항 15에 있어서,
    상기 조건식은, Min(dg, d)+df<(qg-1)/p(단, Min(a, b)는 a와 b 중 작은 쪽의 수를 나타낸다)인 것을 특징으로 하는 암호 장치.
  17. 청구항 11에 있어서,
    상기 소정의 암호 방식은, NTRU 암호 방식인 것을 특징으로 하는 암호 장치.
  18. 소정의 암호 방식에 따라서 암호문을 복호화하여 복호문을 생성하는 복호 장치로서,
    가산, 감산, 승산이 정의된 N차원 배열의 집합인 환 R과, 상기 환 R의 이데알 p, q에 대해, 상기 환 R의 원 f, g와, f(mod q)의 역수인 원 Fq와, f(mod p)의 역수인 원 Fp를 생성하고, 상기 원 g 및 상기 원 Fq의 적과 법을 q로 해서 합동인 원 h를 공개 키로서 생성하고, 상기 원 f 및 상기 원 Fp를 얻을 수 있는 정보를 비밀 키로서 생성하는 키 생성부와,
    상기 비밀 키를 사용해 상기 암호문을 복호화하여 상기 복호문을 생성하는 복호화부를 구비하고,
    상기 소정의 암호 방식은,
    가산, 감산, 승산이 정의된 N차원 배열의 집합인 환 R과, 상기 환 R의 이데알 p, q에 대해, 상기 환 R의 원 f, g와, f(mod q)의 역수인 원 Fq와, f(mod p)의 역수인 원 Fp를 생성하고, 상기 원 g 및 상기 원 Fq의 적과 법을 q로 해서 합동인 원 h를 공개 키로서 생성하고, 상기 원 f 및 상기 원 Fp를 얻을 수 있는 정보를 비밀 키로서 생성하는 키 생성 단계와,
    상기 공개 키 및 상기 환 R로부터 랜덤하게 선택한 원 r을 사용해 상기 평문을 암호화하여 상기 암호문을 생성하는 암호화 단계와,
    상기 비밀 키를 사용해 상기 암호문을 복호화하여 상기 복호문을 생성하는 복호화 단계를 포함하는 방법에 의해 평문의 암호화 및 암호문의 복호화가 행해지 는 암호 방식이고,
    상기 원 f, 상기 원 g, 상기 원 r, 상기 평문인 N차원 배열의 모든 요소는 0 또는 1이고, 상기 이데알 p와 상기 이데알 q는 서로 소이고, 상기 이데알 q는 q=(2^k)*R인 것을 특징으로 하는 복호 장치.
  19. 청구항 18에 있어서,
    상기 이데알 p는 p=3*R인 것을 특징으로 하는 복호 장치.
  20. 청구항 18에 있어서,
    상기 환 R은 다항식 환인 것을 특징으로 하는 복호 장치.
  21. 청구항 18에 있어서,
    상기 복호화부는, 또한 상기 복호문을 생성하는 과정에서 출현하는 상기 환 R의 원에 대해, 상기 복호문이 상기 평문과 같아질 확률이 높아지는 처리를 실시하는 것을 특징으로 하는 복호 장치.
  22. 청구항 21에 있어서,
    상기 복호문이 상기 평문과 같아질 확률이 높아지는 처리는, NTRU 암호 방식에서의 center1 알고리즘 또는 center2 알고리즘인 것을 특징으로 하는 복호 장치.
  23. 청구항 18에 있어서,
    상기 원 f는, N차원 배열의 값이 1이 되는 요소의 수를 규정하는 음이 아닌 정수 df에 기초해 생성되고,
    상기 원 g는, N차원 배열의 값이 1이 되는 요소의 수를 규정하는 음이 아닌 정수 dg에 기초해 생성되고,
    상기 원 r은, N차원 배열의 값이 1이 되는 요소의 수를 규정하는 음이 아닌 정수 d에 기초해 선택되고,
    상기 이데알 p는, 상기 환 R의 원 pg에 대해 p=pg*R이고, 상기 이데알 q는, 상기 환의 원 qg에 대해 q=qg*R이고,
    상기 차원 N, 상기 원 pg, 상기 원 qg, 상기 음이 아닌 정수 df, 상기 음이 아닌 정수 dg, 상기 음이 아닌 정수 d는, 복호 에러 발생 유무를 판정하는 에러 조건 정보에 기초하고 있는 것을 특징으로 하는 복호 장치.
  24. 청구항 23에 있어서,
    상기 에러 조건 정보는, 복호 에러가 발생하지 않기 위한 조건을 나타내는 조건식인 것을 특징으로 하는 복호 장치.
  25. 청구항 24에 있어서,
    상기 조건식은, Min(dg, d)+df<(qg-1)/p(단, Min(a, b)는 a와 b 중 작은 쪽의 수를 나타낸다)인 것을 특징으로 하는 복호 장치.
  26. 청구항 18에 있어서,
    상기 음이 아닌 정수 df는, 상기 원 f의 N차원 배열의 요소의 값이 1이 되는 요소의 수를 규정하는 대신에, 상기 환 R의 원 F의 N차원 배열의 요소의 값이 1이 되는 요소의 수를 규정하고,
    상기 이데알 p는, 상기 환 R의 원 pg에 대해 p=pg*R이고,
    상기 비밀 키는 상기 환 R의 원 (1+pg*F)인 것을 특징으로 하는 복호 장치.
  27. 청구항 18에 있어서,
    상기 소정의 암호 방식은, NTRU 암호 방식인 것을 특징으로 하는 복호 장치.
  28. 평문을 암호화하여 암호문을 생성하고, 또한 상기 복호문을 복호화하여 복호문을 생성하는 암호 방법으로서,
    공개 키 및 가산, 감산, 승산이 정의된 N차원 배열의 집합인 환 R과, 상기 환 R의 이데알 p, q에 대해, 상기 환 R의 원 f, g와, f(mod q)의 역수인 원 Fq와, f(mod p)의 역수인 원 Fp를 생성하고, 상기 원 g 및 상기 원 Fq의 적과 법을 q로 해서 합동인 원 h를 공개 키로서 생성하고, 상기 원 f 및 상기 원 Fp를 얻을 수 있는 정보를 비밀 키로서 생성하는 키 생성 단계와,
    상기 공개 키 및 상기 환 R로부터 랜덤하게 선택한 원 r을 사용해 상기 평문을 암호화하여 상기 암호문을 생성하는 암호화 단계와,
    상기 비밀 키를 사용해 상기 암호문을 복호화하여 상기 복호문을 생성하는 복호화 단계를 포함하는 것을 특징으로 하는 암호 방법.
  29. 컴퓨터를, 소정의 암호 방식에 따라서 평문을 암호화하여 암호문을 생성하는 암호 장치로서 기능시키기 위한 프로그램으로서,
    공개 키 및 가산, 감산, 승산이 정의된 N차원 배열의 집합인 환 R로부터 랜덤하게 선택한 원 r을 사용해 상기 평문을 암호화하여 상기 암호문을 생성하는 암호화부로서 컴퓨터를 기능시키고,
    상기 소정의 암호 방식은,
    상기 환 R과, 상기 환 R의 이데알 p, q에 대해, 상기 환 R의 원 f, g와, f(mod q)의 역수인 원 Fq와, f(mod p)의 역수인 원 Fp를 생성하고, 상기 원 g 및 상기 원 Fq의 적과 법을 q로 해서 합동인 원 h를 공개 키로서 생성하고, 상기 원 f 및 상기 원 Fp를 얻을 수 있는 정보를 비밀 키로서 생성하는 키 생성 단계와,
    상기 공개 키 및 상기 환 R로부터 랜덤하게 선택한 원 r을 사용해 상기 평문을 암호화하여 상기 암호문을 생성하는 암호화 단계와,
    상기 비밀 키를 사용해 상기 암호문을 복호화하여 상기 복호문을 생성하는 복호화 단계를 포함하는 방법에 의해 평문의 암호화 및 암호문의 복호화가 행해지는 암호 방식이고,
    상기 원 f, 상기 원 g, 상기 원 r, 상기 평문인 N차원 배열의 모든 요소는 0 또는 1이고, 상기 이데알 p와 상기 이데알 q는 서로 소이고, 상기 이데알 q는 q=(2^k)*R인 것을 특징으로 하는 프로그램.
  30. 컴퓨터를, 소정의 암호 방식에 따라서 암호문을 복호화하여 복호문을 생성하는 복호 장치로서 기능시키기 위한 프로그램으로서,
    가산, 감산, 승산이 정의된 N차원 배열의 집합인 환 R과, 상기 환 R의 이데알 p, q에 대해, 상기 환 R의 원 f, g와, f(mod q)의 역수인 원 Fq와, f(mod p)의 역수인 원 Fp를 생성하고, 상기 원 g 및 상기 원 Fq의 적과 법을 q로 해서 합동인 원 h를 공개 키로서 생성하고, 상기 원 f 및 상기 원 Fp를 얻을 수 있는 정보를 비밀 키로서 생성하는 키 생성부와,
    상기 비밀 키를 사용해 상기 암호문을 복호화하여 상기 복호문을 생성하는 복호화부로서 컴퓨터를 기능시키고,
    상기 소정의 암호 방식은,
    가산, 감산, 승산이 정의된 N차원 배열의 집합인 환 R과, 상기 환 R의 이데알 p, q에 대해, 상기 환 R의 원 f, g와, f(mod q)의 역수인 원 Fq와, f(mod p)의 역수인 원 Fp를 생성하고, 상기 원 g 및 상기 원 Fq의 적과 법을 q로 해서 합동인 원 h를 공개 키로서 생성하고, 상기 원 f 및 상기 원 Fp를 얻을 수 있는 정보를 비밀 키로서 생성하는 키 생성 단계와,
    상기 공개 키 및 상기 환 R로부터 랜덤하게 선택한 원 r을 사용해 상기 평문을 암호화하여 상기 암호문을 생성하는 암호화 단계와,
    상기 비밀 키를 사용해 상기 암호문을 복호화하여 상기 복호문을 생성하는 복호화 단계를 포함하는 방법에 의해 평문의 암호화 및 암호문의 복호화가 행해지는 암호 방식이고,
    상기 원 f, 상기 원 g, 상기 원 r, 상기 평문인 N차원 배열의 모든 요소는 0 또는 1이고, 상기 이데알 p와 상기 이데알 q는 서로 소이고, 상기 이데알 q는 q=(2^k)*R인 것을 특징으로 하는 프로그램.
  31. 소정의 암호 방식에 따라서 평문을 암호화하여 암호문을 생성하는 집적 회로로서,
    공개 키 및 가산, 감산, 승산이 정의된 N차원 배열의 집합인 환 R로부터 랜덤하게 선택한 원 r을 사용해 상기 평문을 암호화하여 상기 암호문을 생성하는 암호화부를 구비하고,
    상기 소정의 암호 방식은,
    상기 환 R과, 상기 환 R의 이데알 p, q에 대해, 상기 환 R의 원 f, g와, f(mod q)의 역수인 원 Fq와, f(mod p)의 역수인 원 Fp를 생성하고, 상기 원 g 및 상기 원 Fq의 적과 법을 q로 해서 합동인 원 h를 공개 키로서 생성하고, 상기 원 f 및 상기 원 Fp를 얻을 수 있는 정보를 비밀 키로서 생성하는 키 생성 단계와,
    상기 공개 키 및 상기 환 R로부터 랜덤하게 선택한 원 r을 사용해 상기 평문을 암호화하여 상기 암호문을 생성하는 암호화 단계와,
    상기 비밀 키를 사용해 상기 암호문을 복호화하여 상기 복호문을 생성하는 복호화 단계를 포함하는 방법에 의해 평문의 암호화 및 암호문의 복호화가 행해지 는 암호 방식이고,
    상기 원 f, 상기 원 g, 상기 원 r, 상기 평문인 N차원 배열의 모든 요소는 0 또는 1이고, 상기 이데알 p와 상기 이데알 q는 서로 소이고, 상기 이데알 q는 q=(2^k)*R인 것을 특징으로 하는 집적 회로.
  32. 소정의 암호 방식에 따라서 암호문을 복호화하여 복호문을 생성하는 집적 회로로서,
    가산, 감산, 승산이 정의된 N차원 배열의 집합인 환 R과, 상기 환 R의 이데알 p, q에 대해, 상기 환 R의 원 f, g와, f(mod q)의 역수인 원 Fq와, f(mod p)의 역수인 원 Fp를 생성하고, 상기 원 g 및 상기 원 Fq의 적과 법을 q로 해서 합동인 원 h를 공개 키로서 생성하고, 상기 원 f 및 상기 원 Fp를 얻을 수 있는 정보를 비밀 키로서 생성하는 키 생성부와,
    상기 비밀 키를 사용해 상기 암호문을 복호화하여 상기 복호문을 생성하는 복호화부를 구비하고,
    상기 소정의 암호 방식은,
    가산, 감산, 승산이 정의된 N차원 배열의 집합인 환 R과, 상기 환 R의 이데알 p, q에 대해, 상기 환 R의 원 f, g와, f(mod q)의 역수인 원 Fq와, f(mod p)의 역수인 원 Fp를 생성하고, 상기 원 g 및 상기 원 Fq의 적과 법을 q로 해서 합동인 원 h를 공개 키로서 생성하고, 상기 원 f 및 상기 원 Fp를 얻을 수 있는 정보를 비밀 키로서 생성하는 키 생성 단계와,
    상기 공개 키 및 상기 환 R로부터 랜덤하게 선택한 원 r을 사용해 상기 평문을 암호화하여 상기 암호문을 생성하는 암호화 단계와,
    상기 비밀 키를 사용해 상기 암호문을 복호화하여 상기 복호문을 생성하는 복호화 단계를 포함하는 방법에 의해 평문의 암호화 및 암호문의 복호화가 행해지는 암호 방식이고,
    상기 원 f, 상기 원 g, 상기 원 r, 상기 평문인 N차원 배열의 모든 요소는 0 또는 1이고, 상기 이데알 p와 상기 이데알 q는 서로 소이고, 상기 이데알 q는 q=(2^k)*R인 것을 특징으로 하는 집적 회로.
KR1020067016741A 2004-05-12 2005-04-28 암호 시스템, 암호 장치, 복호 장치, 프로그램 및 집적회로 KR20070011293A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004142022 2004-05-12
JPJP-P-2004-00142022 2004-05-12

Publications (1)

Publication Number Publication Date
KR20070011293A true KR20070011293A (ko) 2007-01-24

Family

ID=35320424

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067016741A KR20070011293A (ko) 2004-05-12 2005-04-28 암호 시스템, 암호 장치, 복호 장치, 프로그램 및 집적회로

Country Status (6)

Country Link
US (1) US7773746B2 (ko)
EP (1) EP1746561A1 (ko)
JP (1) JP4786531B2 (ko)
KR (1) KR20070011293A (ko)
CN (1) CN100535962C (ko)
WO (1) WO2005109379A1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100742093B1 (ko) * 2007-05-10 2007-07-24 인하대학교 산학협력단 엔티알유 암호화 및 복호화를 위한 다항식 컨볼루션 연산방법
WO2020166879A1 (en) * 2019-02-15 2020-08-20 Crypto Lab Inc. Apparatus for performing threshold design on secret key and method thereof
KR20200099957A (ko) * 2019-02-15 2020-08-25 주식회사 크립토랩 비밀 키에 대한 정족수 설계를 수행하는 장치 및 방법
KR20230082783A (ko) * 2021-12-02 2023-06-09 조선대학교산학협력단 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템을 위한 다항식 역원 생성 장치 및 방법
KR20230082789A (ko) * 2021-12-02 2023-06-09 조선대학교산학협력단 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 장치 및 방법

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1954548B (zh) * 2005-04-18 2010-07-21 松下电器产业株式会社 签名生成装置及签名验证装置
CN101321058B (zh) * 2007-06-07 2010-12-15 管海明 一种用于编码和译码数字消息的方法和系统
US8964971B2 (en) 2007-07-17 2015-02-24 Certicom Corp. Method of providing text representation of a cryptographic value
JP2009278223A (ja) * 2008-05-13 2009-11-26 Panasonic Corp 電子証明システム及び秘匿通信システム
US8045708B2 (en) * 2008-05-21 2011-10-25 Apple Inc. Discrete key generation method and apparatus
CN105337737B (zh) * 2014-07-03 2018-11-20 华为技术有限公司 公钥加密通信方法和装置
US9942031B2 (en) 2014-09-03 2018-04-10 Research Foundation Of The City University Of New York System and method for private-key fully homomorphic encryption and private search between rings
US11164484B2 (en) * 2017-01-20 2021-11-02 Nippon Telegraph And Telephone Corporation Secure computation system, secure computation device, secure computation method, and program
CN107592203A (zh) * 2017-09-25 2018-01-16 深圳技术大学筹备办公室 一种基于格的聚合签名方法及其系统
CN109450634B (zh) * 2018-10-18 2020-03-31 南京大学 Rsa公钥分解和解密方法及系统
CN110175067B (zh) * 2019-03-05 2023-06-13 广东电网有限责任公司信息中心 一种移动应用立体防御方法和系统
CN113391576A (zh) * 2020-03-13 2021-09-14 苏州拉普斯自动化有限公司 一种基于物联网的信息物理系统及方法
CN111767532A (zh) * 2020-06-12 2020-10-13 上海橙群微电子有限公司 编程器鉴权方法和鉴权系统
US11522674B1 (en) * 2021-09-09 2022-12-06 Aires Investment Holdings Private Limited Encryption, decryption, and key generation apparatus and method involving diophantine equation and artificial intelligence

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2263588C (en) * 1996-08-19 2005-01-18 Ntru Cryptosystems, Inc. Public key cryptosystem method and apparatus
GB0013398D0 (en) 2000-06-01 2000-07-26 Tao Group Ltd A method of protecting a cryptosystem from a multiple transmission attack
GB0013399D0 (en) 2000-06-01 2000-07-26 Tao Group Ltd Decryption of cipher polynomials
EP1569378A4 (en) * 2002-12-03 2006-08-02 Matsushita Electric Ind Co Ltd TOGETHER FOR USING KEYS, PRODUCING EQUIPMENT FOR SHARED KEYS, AND RESTORING KEYS TO SHARED KEYS
JP4567364B2 (ja) 2003-04-24 2010-10-20 パナソニック株式会社 パラメータ生成装置、暗号化システム、復号化システム、暗号装置、暗号化方法、復号化方法、およびプログラム
KR101024768B1 (ko) 2003-04-24 2011-03-24 파나소닉 주식회사 파라미터 생성 장치, 암호 시스템, 복호 시스템, 암호장치, 복호 장치, 암호화 방법, 복호화 방법, 및 그프로그램

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100742093B1 (ko) * 2007-05-10 2007-07-24 인하대학교 산학협력단 엔티알유 암호화 및 복호화를 위한 다항식 컨볼루션 연산방법
WO2020166879A1 (en) * 2019-02-15 2020-08-20 Crypto Lab Inc. Apparatus for performing threshold design on secret key and method thereof
KR20200099957A (ko) * 2019-02-15 2020-08-25 주식회사 크립토랩 비밀 키에 대한 정족수 설계를 수행하는 장치 및 방법
US11201735B2 (en) 2019-02-15 2021-12-14 Seoul National University R&Db Foundation Apparatus for performing threshold design on secret key and method thereof
KR20230082783A (ko) * 2021-12-02 2023-06-09 조선대학교산학협력단 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템을 위한 다항식 역원 생성 장치 및 방법
KR20230082789A (ko) * 2021-12-02 2023-06-09 조선대학교산학협력단 다항식을 이용하여 데이터의 암복호화를 수행하는 암호화 시스템에서 사용되는 다항식의 역원을 생성하기 위한 역원 생성 장치 및 방법

Also Published As

Publication number Publication date
EP1746561A1 (en) 2007-01-24
CN100535962C (zh) 2009-09-02
US20070274518A1 (en) 2007-11-29
JP4786531B2 (ja) 2011-10-05
JPWO2005109379A1 (ja) 2008-03-21
CN1922643A (zh) 2007-02-28
WO2005109379A1 (ja) 2005-11-17
US7773746B2 (en) 2010-08-10

Similar Documents

Publication Publication Date Title
KR20070011293A (ko) 암호 시스템, 암호 장치, 복호 장치, 프로그램 및 집적회로
KR101027199B1 (ko) 키공유 시스템, 공유키 생성장치 및 공유키 복원장치
US20070195948A1 (en) Method and device for the encryption and decryption of data
CN111404672B (zh) 量子密钥分发方法及装置
US8594332B2 (en) Key generating apparatus, encrypting apparatus and decrypting appatatus
KR20050069936A (ko) 암호 장치, 복호 장치, 및 암호 시스템
JP4611305B2 (ja) 情報伝達システム、暗号装置及び復号装置
EP2808860A1 (en) Proxy calculation system, proxy calculation method, proxy calculation requesting apparatus, and proxy calculation program and recording medium therefor
US7929688B2 (en) Parameter generation apparatus, encryption system, decryption system, encryption apparatus, decryption apparatus, encryption method, decryption method, and program thereof
EP1914924A1 (en) Time apparatus, encrypting apparatus, decrypting apparatus, and encrypting/decrypting system
CN105339995A (zh) 解密装置、解密能力提供装置、其方法、以及程序
US11288985B2 (en) Encryption device, decryption device, encryption method, decryption method, encryption program product, and decryption program product
US7321658B2 (en) Padding application method ensuring security of cryptosystem and encryptor/decryptor
US20110176677A1 (en) Multi-party variance multiplication device, multi-party variance multiplication system and method
JP4650933B2 (ja) 秘密計算方法及びシステム
JP4567364B2 (ja) パラメータ生成装置、暗号化システム、復号化システム、暗号装置、暗号化方法、復号化方法、およびプログラム
JP7486688B2 (ja) 暗号文変換システム、暗号文変換方法、及び暗号文変換プログラム
CN117714046A (zh) 基于分布式不经意传输的方法及系统
CN117857008A (zh) 基于整数自举的环面全同态加密算法的数据处理方法
CN115801234A (zh) 一种基于国密的数据不经意传输方法
JP2001117492A (ja) 公開鍵暗号システム、暗号化装置、復号化装置、暗号化方法、復号化方法、および、情報記録媒体

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
NORF Unpaid initial registration fee