KR20020081120A - 정보보안장치, 소수생성장치 및 소수생성방법 - Google Patents

정보보안장치, 소수생성장치 및 소수생성방법 Download PDF

Info

Publication number
KR20020081120A
KR20020081120A KR1020020020752A KR20020020752A KR20020081120A KR 20020081120 A KR20020081120 A KR 20020081120A KR 1020020020752 A KR1020020020752 A KR 1020020020752A KR 20020020752 A KR20020020752 A KR 20020020752A KR 20020081120 A KR20020081120 A KR 20020081120A
Authority
KR
South Korea
Prior art keywords
prime
generating
mod
generated
numbers
Prior art date
Application number
KR1020020020752A
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 KR20020081120A publication Critical patent/KR20020081120A/ko

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • 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/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3033Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7204Prime number generation or prime number testing
    • 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
    • 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/80Wireless

Landscapes

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

Abstract

정보보안장치는 소수 q를 입력으로 하여, q보다 큰 소수 N을 생성한다. 2 ×u ×q + 1 ≠0 mod Li(i = 1, 2, ···, n)을 만족하는 수 u를 생성하는 부분정보 설정부와, 난수 R'를 생성하는 난수생성부와, 수 u와, 난수 R'를 이용하여, R = u + L1×L2×···×Ln×R'와, N = 2 ×R ×q + 1을 생성하는 판정대상 생성부와, 수 N 및 수 R을 이용하여 소수판정하는 소수판정부를 구비한다.

Description

정보보안장치, 소수생성장치 및 소수생성방법{INFORMATION SECURITY DEVICE, PRIME NUMBER GENERATION DEVICE, AND PRIME NUMBER GENERATION METHOD}
본 발명은 소수생성을 이용하여 실현하는 정보보안 기술에 관한 것이다.
최근, 컴퓨터 기술 및 통신기술에 기초하는 데이터 통신이 널리 보급되고 있어, 이 데이터 통신에서는 비밀통신방식이나 디지털 서명방식이 이용된다.
여기서, 비밀통신방식이라는 것은 특정한 통신상대 외에는 통신내용을 누설하지 않고 통신을 행하는 방식이다. 또한, 디지털 서명방식이라는 것은 통신상대에게 통신내용의 정당성을 보이거나, 발신자의 신원을 증명하는 통신방식이다.
1. 공개키 암호방식
이들 비밀통신방식 또는 디지털 서명방식에 있어서는, 공개키 암호방식이라고 하는 암호방식이 이용된다. 공개키 암호방식은 통신상대가 다수일 때, 통신상대마다 다른 암호키를 용이하게 관리하기 위한 방식으로, 다수의 통신상대와 통신을 행하는데 불가결한 기반기술이다. 공개키 암호방식을 이용하는 비밀통신에서는 암호화키와 복호화키가 달라 복호화키는 비밀로 하지만, 암호화키는 공개한다. 비밀로 하는 복호화키를 비밀키라고 하고, 공개하는 암호화키를 공개키라고 한다.
공개키 암호방식의 일종인 RSA 암호방식에서는 정수의 소인수분해 문제를 푸는 것이 계산량 상으로 곤란한 것을 안전성의 근거로 하고 있다. 소인수분해 문제라는 것은 p, q를 소수로 하고, 정수 n = p ×q로 할 때, 정수 n에 대하여 소수 p, q를 구하는 문제이다. 여기서, ×는 통상의 곱셈이다.
또, 소인수분해 문제에 대해서는, 오카모토 다츠아키라, 오타 가즈오 공동편집, 「암호·제로 지식문제·수론」, 공립출판, 1990, 144∼151페이지에 상세하게 서술되어 있다.
(소인수분해 문제를 응용하는 RSA 암호방식)
소인수분해 문제를 응용하는 RSA 암호방식에 대하여 설명한다.
(1) 키의 생성
다음에 나타내는 바와 같이 하여 공개키 및 비밀키를 계산한다.
① 무작위로 큰 소수 p, q를 선택하여, 그 곱 n = p ×q를 계산한다.
② (p - 1) 및 (q - 1)의 최소공배수 L = LCM (p - 1, q - 1)을 계산한다.
③ L과 서로 소(素)이고 L보다 작은 정수 e를 무작위로 선택한다.
1eL-1, GCD (e, L) = 1
여기서, GCD (e, L)은 e 및 L의 최대공약수를 나타내고 있다.
④ d = e-1mod L을 계산한다.
이와 같이 하여 얻어진 정수 e 및 정수 n이 공개키이다. 또한, 정수 d가 비밀키이다.
(2) 암호문의 생성
공개키인 정수 e 및 정수 n을 이용하여 평문 m에 암호연산을 하여 암호문 c를 계산한다.
c = memod n
(3) 복호문의 생성
비밀키인 정수 d를 이용하여 암호문 c에 복호연산을 하여 복호문 m'을 계산한다.
m' = cdmod n
또,
m' = cdmod n
= (me)dmod n
= m** (e ×d mod L) mod n
= m1mod n
= m mod n
이기 때문에, 복호문 m'는 평문 m과 일치한다.
또, 이 명세서에서 연산자 **는 누승을 나타낸다. 예를 들어, A**x는 Ax로서, A를 X회 곱하는 것을 나타낸다.
또한, RSA 암호에 대해서는 오카모토 다츠아키라, 야마모토 히로시, 「현대암호」, 산업도서 1997, 110∼113페이지에 상세하게 설명되어 있다.
2. 종래예 1 - 확률적 소수생성방법
상기에 나타낸 소인수분해를 응용한 RSA 암호에서의 공개키의 생성단계에서 소수생성이 행해진다. 소수생성에 대해서는, A. J. Menezes, P. C. van Oorschot, S. A. Vanstone, "Handbook of applied cryptography", CRC Press, 1997, 145∼154페이지에 상세하게 설명되어 있다.
종래 기술로서의 확률적 소수생성방법에 대하여 설명한다. 이 확률적 소수생성방법은 소수판정법인 밀러 라빈(Miller-Rabin)법을 응용하고 있다. 밀러 라빈법에 대해서는, A. J. Menezes, P. C. van Oorschot, S. A. Vanstone, "Handbook ofapplied cryptography", CRC Press, 1997, 138∼140페이지에 상세하게 설명되어 있다. 이 소수판정법에 의해 판정되는 소수는 「소수인 확률이 높은」수로서, 100% 소수라고는 할 수 없다는 것을 주의해야 한다.
미리 자연수 x와, 작은 소수 L1, L2, ···, Ln이 부여되어 있는 것으로 한다. 여기서, 작은 소수의 일례는 「2, 3, 5, 7」이다.
상기 확률적 소수생성방법으로는 다음에 나타내는 단계를 반복함으로써, 소수를 생성한다.
(단계 1) 초기값으로서, 자연수 x를 변수 N에 대입한다.
(단계 2) 변수 N보다 큰 수 중, 소수 L1, L2, ···, Ln의 어느 것으로도 나누어 떨어지지 않는 수로서, 가장 작은 수를 얻고, 얻어진 수를 변수 N에 대입한다.
(단계 3) 밀러 라빈법에 의해 변수 N의 값이 소수인지의 여부를 판정한다. 여기서, 변수 N에 대하여 소수판정을 10회 반복한다. 판정 결과, 소수라고 판정되는 경우에는, 변수 N의 값을 소수로서 출력한다. 소수가 아니라고 판정되는 경우에는, 단계 2로 되돌아가 소수가 출력될 때까지 처리를 반복한다.
상기와 같이, 작은 소수 2, 3, 5, 7로 나누어 떨어지지 않는 수를 구하는 이유는 단계 3의 소수판정의 회수를 줄이기 위해서이다. 즉, 소수판정하는 대상이 되는 수를 2, 3, 5, 7로 나누어 떨어지지 않는 수만으로 좁히고 있다. 2 ×x + 1 mod 210이 2, 3, 5, 7로 나누어 떨어지지 않는 수는 47개 있기 때문에, 상기한 바와 같이, 2, 3, 5, 7로 나누어 떨어지지 않는 수만을 대상으로 하여 소수판정하면, 소수판정하는 회수는 47/210으로 저감할 수 있다.
그러나, 단계 2에 의해 얻어진 변수 N의 값이 합성수(소수가 아닌 수)일 때, 밀러 라빈법에 의한 소수판정이 성립하는 확률은 1/4 이하인 것이 알려져 있다. 이와 같이, 얻어진 변수 N의 값이 합성수이어도, 밀러 라빈법에 의한 소수판정이 성립할 가능성이 있다. 그 때문에, 상기 확률적 소수생성방법은 확률적으로만 소수를 생성할 수 있고, 확정적으로 소수를 생성할 수 없다는 문제가 있다.
(확률적 소수생성방법의 계산량)
다음에, 상기 확률적 소수생성방법을 이용하여 소수를 생성하는 경우의 계산량에 대하여 설명한다. 여기서는, 누승잉여연산의 회수로 계산량을 어림하는 것으로 한다.
상기 확률적 소수생성방법에서는 상술한 바와 같이, 소수라고 생각되는 수에 대해서는 밀러 라빈법에 의한 소수판정을 1O회 반복한다. 이하에서는, 합성수에 대해서 행해지는 밀러 라빈법에 의한 소수판정 회수의 평균을 구한다.
제 i회째의 소수판정시행을 행하는 확률을 Pi로 하면, 제 i+1회째의 소수판정시행을 행하는 확률 Pi+1은 제 i회의 Pi의 확률로 소수판정시행을 행하고, 또한 1/4 이하의 확률로 추가로 소수판정시행을 행하는 확률이다.
따라서,
Pi+1 Pi×1/4
이다. 제 1회째의 소수판정시행은 반드시 행하기 때문에 그 확률은 1이므로, P1= 1이다. 따라서,
Pi (1/4) ** (i-1)
이다.
밀러 라빈법에 의한 소수판정 1회당 누승잉여연산을 1회 행한다. 상기 확률적 소수생성방법에서는 밀러 라빈법에 의한 소수판정을 최대 1O회 행하기 때문에, 1개의 합성수에 대한 누승잉여 연산회수의 평균값은,
이다.
일반적으로 N을 임의로 선택할 때, N이 소수가 되는 확률은 1/(ln N) 정도이기 때문에, 평균적으로는, ln N회의 소수판정을 행하면 소수를 발견할 수 있게 된다. 여기서, ln N은 N의 자연대수이다. 그러나, 2, 3, 5, 7로 나누어 떨어지는 수는 미리 제외하고 있기 때문에, 그 회수는(2 ×3 ×5 ×7)/210 = 48/210으로 저감할 수 있다. 여기서,(2 ×3 ×5 ×7)은 210 미만의 자연수인 2, 3, 5, 7과 서로 소인 수의 개수를 나타내고 있다. 따라서, 소수판정을 행하는 수(합성수와 마지막의 소수라고 생각되는 수)의 개수는,
8/35 ×(ln N)
이다. 그 중에서, 마지막 수가 소수라고 생각되면, 소수판정을 행하는 합성수의 개수는,
(8/35 ×(ln N)) - 1
이 된다.
이상으로부터 누승잉여연산의 회수는 평균적으로,
이하이다. 예를 들어, N이 512비트일 때, 많아도 116.8회인 것이 보증되고 있다. 소수판정을 행하는 수를 2, 3, 5, 7로 나누어 떨어지지 않는 수로 좁혀지지 않는 경우, 즉, 모든 수를 소수판정을 행하는 대상으로 하는 경우, 누승잉여연산의 회수는 평균적으로,
이하이다. N이 512비트일 때, 이 값은 481.9가 된다. 이상으로부터 종래예 1은 누승잉여연산 회수를 약 1/4로 저감할 수 있다. 그러나, 상술한 바와 같이, 확정적으로 소수를 출력할 수 없다.
3. 종래예 2 - 확정적 소수생성방법
확정적으로 소수를 생성할 수 있는 마우러(Maurer)법에 의한 확정적 소수생성방법에 대하여 설명한다. 여기서, 마우러법에 대해서는, A. J. Menezes, P. C. van Oorschot, S. A. Vanstone, "Handbook of applied cryptography", CRC Press, 1997, 152∼153페이지에 상세하게 설명되어 있다.
상기 확정적 소수생성방법에서는 다음에 나타내는 단계를 반복함으로써, 소수를 생성한다.
미리 크기 Lenq의 소수 q가 주어져 있다.
(단계 1) Lenq-1 비트의 난수 R을 선택한다. 또, 난수 R의 선두 비트는 반드시 1이 되도록 한다.
(단계 2) 수 N을 아래의 식에 따라 계산한다.
N = 2 ×q ×R + 1
(단계 3) 수 N이 소수인지의 여부를 다음에 나타내는 제 1 판정 및 제 2 판정이 모두 성립하는 경우에, 소수라고 판정한다. 그 밖의 경우에, 소수가 아니라고 판정한다.
(제 1 판정) 2N-1= 1 mod N
(제 2 판정) GCD (22R- 1, N) = 1
소수라고 판정되는 경우에는, 수 N을 소수로서 출력한다. 소수가 아니라고 판정되는 경우에는, 단계 1로 되돌아가 소수가 출력될 때까지 처리를 반복한다.
이 판정방법은 포클링턴(Pocklington)의 소수판정법이라고 하여, A. J.Menezes, P. C. van Oorschot, S. A. Vanstone, "Handbook of applied cryptography", CRC Press, 1997, 144 페이지에 상세하게 서술되어 있다.
포클링턴의 소수판정법에서는 N = 2 ×q ×R + 1의 q가 소수이고, 제 1 판정 및 제 2 판정의 결과가 참이면, 반드시 N이 소수가 된다. 그 때문에, 확정적으로 소수라는 것을 판정할 수 있어, 확정적인 소수생성이 가능하게 된다.
이와 같이 하여, 마우러법에 의한 확정적 소수생성방법에서는 크기 Lenq의 소수 q를 기초로 하여 크기 2 ×Lenq의 소수 N을 생성한다.
따라서, 마우러법에 의한 확정적 소수생성방법을 이용하여 소정 길이의 소수를 생성하는 경우에는, 상기 소정 길이 이하의 소수의 생성을 반복하여 행한다. 예를 들어, 512비트 길이의 소수를 생성하는 경우에는, 미리 주어진 8비트의 소수를 기초로 하여 16비트의 소수를 생성한다. 다음에, 생성한 16비트의 소수를 기초로 하여 32비트의 소수를 생성한다. 다음에, 생성한 32비트의 소수를 기초로 하여 64비트의 소수를 생성한다. 이하 동일한 소수생성을 반복하여, 512비트의 소수를 생성한다.
또, 상기 제 2 판정을 다음 판정으로 대신하여도 된다.
22R≠1 mod N
(확정적 소수생성방법의 계산량)
다음에, 마우러법에 의한 확정적 소수생성방법을 이용하여 소수를 생성하는 경우의 계산량에 대하여 설명한다.
여기서는, 512비트의 수의 누승잉여연산의 회수로 계산량을 어림한다. 즉, 256비트의 소수를 이용하여, 512비트의 소수를 생성하는 경우에 대하여 생각한다.
일반적으로, 양의 정수 R을 임의로 선택할 때, 양의 정수 R이 소수가 되는 확률은,
1/(ln R) 정도이기 때문에, 이 경우, 512비트의 소수를 생성하기 위해서 포클링턴 판정을 시행하는 회수는 ln 2512로 어림할 수 있다. 종래예 2에서는 홀수에 대해서만 소수판정을 행하기 때문에, 이 개수는,
(ln 2512)/2이 된다.
다음에, 상기 제 1 판정을 통과하는 확률은 밀러 라빈 판정을 통과하는 확률과 동일하게, 1/4 이하이다. 따라서, 1개의 합성수에 대하여 행하는 누승잉여연산의 회수는 1 + 1/4 이하이다. 당연히, 소수에 대하여 행하는 누승잉여연산 회수는 2이다.
이상으로부터 256비트의 소수를 이용하여, 512비트의 소수를 생성하기 위해서 행하는 512비트의 누승잉여연산 회수는,
(1 + 1/4)((ln 2512)/2 - 1) + 2 = 222.6
이하이다.
128비트로부터 256비트의 소수를 생성하는 경우도 동일하게 생각하면, 256비트의 누승잉여연산에서의 판정회수는 (ln 2256)/2이고, 256비트의 소수를 생성하기위해서 행하는 256비트의 누승잉여연산 회수는,
(1 + 1/4)((ln 2256)/2 - 1) + 2
이하이다. 누승잉여연산의 계산량은 법 N에 의존하고, N의 3승의 차수이다. 따라서, 256비트의 누승잉여연산 8회를 512비트의 누승잉여연산 1회에 상당하다고 생각한다.
64비트로부터 128비트 등 외에도 동일하게 생각하면, 종래예 2 전체의 계산량을 512비트의 누승잉여 연산회수로 어림할 수 있다.
16, 32비트의 소수생성의 계산량은 64, 128, 256, 512비트의 소수생성의 계산량에 비해 작기 때문에 무시하고, 종래예 2 전체의 계산량을 512비트의 누승잉여연산회수로 나타내면,
(1 + 1/4) ×{((ln 264)/2 - 1)/512
+ ((ln 2128)/2 - 1)/64
+ ((ln 2256)/2 - 1)/8
+ ((ln 2512)/2 - 1)}
+ 2(1/512 + 1/64 + 1/8 + 1)
= 237.4
이하이다.
종래예 2에서의 계산량은 종래예 1의 116.8회 이하에 비하면, 계산량이 2배이상 많게 된다. 이상 설명한 바와 같이, 종래예 2에 의하면, 확정적인 소수생성이 가능하지만, 종래예 1보다 계산량이 많다.
이와 같이, 계산량이 적은 소수생성법으로는 확정적으로 소수생성을 할 수 없다는 문제가 있다. 또한, 확정적으로 소수생성이 가능한 소수법으로는 계산량이 많다는 문제가 있다.
본 발명은 상기의 문제점을 해결하여 계산량이 적으면서 확정적으로 소수생성이 가능한 소수생성장치, 소수생성방법, 소수생성 프로그램, 소수생성 프로그램을 기록하고 있는 기록매체 및 정보보안장치를 제공하는 것을 목적으로 한다.
도 1은 컨텐츠 분배송신 시스템 1의 구성을 나타내는 블록도.
도 2는 메모리카드(10)의 구성을 나타내는 블록도.
도 3은 소수생성부(101)의 구성을 나타내는 블록도.
도 4는 PC(30)의 구성을 나타내는 블록도.
도 5는 분배송신 서버장치(40)의 구성을 나타내는 블록도.
도 6은 컨텐츠 분배송신 시스템 1의 동작을 나타내는 플로우차트.
도 7은 소수생성부(101)의 동작을 나타내는 플로우차트.
도 8은 소수생성부(101b)의 구성을 나타내는 블록도.
도 9는 소수생성부(101b)의 동작을 나타내는 플로우차트.
도 10은 암호통신 시스템의 동작을 나타내는 플로우차트.
상기 목적을 달성하기 위해서, 소인수분해를 하는 것이 계산량 상으로 곤란한 것을 근거로 하여 2개의 소수를 생성하고 생성한 2개의 소수의 곱셈을 이용하여, 소정의 정보를 안전하고 또한 확실하게 취급하는 정보보안장치에 있어서,
각 소수생성시에 기존에 알고 있는 소수 q의 2배의 비트길이를 갖는 소수 N을 생성하고,
상기 정보보안장치는,
소수 q 및 n개의 소수 L1, L2, ···, Ln을 취득하고, 여기서, 소수 L1, L2, ···, Ln은 각각 소수 q보다 작은 2 이외의 소수이며, 소수 q는 q = 1 mod Li(i = 1, 2, ···, n)를 만족하는 취득수단과,
취득한 상기 소수 L1, L2, ···, Ln에 관한 수를 제외한 선택에 의해 취득한 상기 소수 q의 2배의 비트길이를 갖는 수 N을 생성하는 생성수단과,
생성한 수 N의 소수판정을 행하여, 수 N이 소수라고 판정된 경우에, 수 N을 소수로서 출력하는 판정수단을 포함한다.
이 구성에 의하면, 확정적인 소수생성을 할 수 있는 동시에, 종래와 비교하여, 계산시간을 단축시킬 수 있다.
또한, 상기 생성수단은 N = 1 mod Li(i = 1, 2, ···, n)를 만족하는 상기 수 N을 생성한다. 또한, 상기 생성수단은,
(Lenq - LenL - 1) 비트길이의 난수 R'를 생성하고, 여기서, Lenq는 소수 q의 비트길이이며, LenL은 (L1×L2× ···×Ln)의 비트길이인 난수생성부와,
생성한 R' 및 상기 소수 L1, L2, ···, Ln을 이용하여, 수 R = L1×L2× ···×Ln×R'에 의해 수 R을 생성하고,
취득한 소수 q 및 생성한 수 R을 이용하여, 수 N = 2 ×R ×q + 1을 생성하는 판정대상 생성부를 포함하며,
상기 판정수단은 상기 수 N 및 상기 수 R을 이용하여, 상기 수 N의 소수판정을 행한다.
이 구성에 의하면, 계산시간을 단축시킬 수 있다.
또한, 상기 생성수단은,
취득한 상기 소수 q를 이용하여,
2 ×u ×q + 1 ≠0 mod Li(i = 1, 2, ···, n)
을 만족하는 수 u를 생성하는 부분정보 생성부와,
난수 R'을 생성하는 난수생성부와,
취득한 상기 소수 L1, L2, ···, Ln과, 생성한 상기 수 u와, 생성한 상기 난수 R'을 이용하여,
R = u + L1×L2× ···×Ln×R'
에 의해 수 R을 생성하고,
취득한 상기 소수 q와, 생성한 수 R을 이용하여,
N = 2 ×R ×q + 1
에 의해 수 N을 생성하는 판정대상 생성부를 포함한다.
상기 판정수단은 상기 수 N 및 상기 수 R을 이용하여, 상기 수 N의 소수판정을 행한다.
이 구성에 의하면, 생성하는 소수의 종류를 한정하지 않고, 계산시간을 단축시킬 수 있다.
(실시예)
본 발명의 상술한 목적과 특징 및 이점은 첨부도면과 관련한 다음의 상세한 설명을 통해 보다 명백해질 것이다.
1. 제 1 실시예
본 발명에 관한 일실시예로서의 컨텐츠 분배송신 시스템 1에 대하여 설명한다.
1.1 컨텐츠 분배송신 시스템 1의 구성
컨텐츠 분배송신 시스템 1은 도 1에 나타내는 바와 같이, 메모리카드(10), 휴대정보 단말장치(이하, PDA라고 한다)(20), 헤드폰(21), 퍼스널 컴퓨터(이하, PC라고 한다)(30), 분배송신 서버장치(40) 및 휴대전화(50)로 구성되어 있다.
분배송신 서버장치(40)는 음악인 디지털 저작물을 암호화하여 암호화 디지털 저작물을 얻고, 얻어진 암호화 디지털 저작물을 인터넷(60)을 통해 PC(30)로 송신하고, PC(30)는 암호화 디지털 저작물을 수신한다.
이용자는 메모리 카드(10)를 PC(30)에 장착하고, PC(30)는 수신한 암호화 디지털 저작물을 메모리 카드(10)로 기입한다. 메모리 카드(10)는 암호화 디지털 저작물을 복호하여, 디지털 저작물을 생성하고, 생성된 디지털 저작물을 기억한다. 다음에, 이용자는 암호화 디지털 저작물이 기입되어 있는 메모리 카드(10)를 PDA(20)에 장착한다. PDA(20)에는 헤드폰(21)이 접속되어 있고, PDA(20)는 메모리 카드(10)에 기입되어 있는 디지털 저작물을 변환하여 전기신호를 생성하고, 생성된 전기신호를 헤드폰(21)으로 출력한다. 헤드폰(21)은 전기신호를 음성으로 변환하여, 음성을 출력한다.
또한, 분배송신 서버장치(40)는 음악인 디지털 저작물을 암호화하여 암호화 디지털 저작물을 얻고, 얻어진 암호화 디지털 저작물을 인터넷(60), 휴대전화망(62) 및 무선기지국(61)을 통하여 휴대전화(50)로 송신하고,휴대전화(50)는 암호화 디지털 저작물을 수신한다.
이용자는 메모리 카드(10)를 휴대전화(50)에 장착하고, 휴대전화(50)는 수신한 암호화 디지털 저작물을 메모리 카드(10)로 기입한다. 메모리 카드(10)는 기입되어 있는 암호화 디지털 저작물을 복호하여, 음악인 디지털 저작물을 생성하고, 생성된 디지털 저작물을 기억한다. 휴대전화(50)는 메모리 카드(10)에 기억되어 있는 디지털 저작물을 변환하여 전기신호를 생성하고, 생성된 전기신호를 음성으로 변환하여, 음성을 출력한다.
이와 같이 하여, 이용자는 분배송신 서버장치(40)로부터 음악인 디지털 저작물을 수신하여, 즐길 수 있다.
1.2 메모리 카드(10)
메모리 카드(10)는 도 2에 나타내는 바와 같이, 소수생성부(101), 생성제어부(102), 소수기억부(103), 난수생성부(104), 비밀키기억부(105), 공개키생성부(106), 공개키기억부(107), 복호부(108), 메모리부(109), 제어부(112), 인증부(113) 및 송수신부(114)로 구성되어 있다.
메모리 카드(10)는 구체적으로는, 마이크로 프로세서, ROM, RAM 등으로 구성되는 컴퓨터 시스템이다. 상기 RAM에는 컴퓨터 프로그램이 기억되어 있다. 상기 마이크로 프로세서가 상기 컴퓨터 프로그램에 따라 동작함으로써, 메모리 카드(10)는 그 기능을 달성한다.
(1) 비밀키기억부(105)
비밀키기억부(105)는 비밀키로서의 수 n과 수 d를 기억하기 위한 영역을 구비하고 있다.
(2) 공개키기억부(107)
공개키기억부(107)는 공개키로서의 수 n과 수 e를 기억하기 위한 영역을 구비하고 있다.
(3) 메모리부(109)
메모리부(109)는 일반영역(111)과 보안(secure)영역(110)으로 구성되어 있다. 일반영역(111) 및 보안영역(110)은 각각 정보를 기억하기 위한 영역이다. 일반영역(111)은 외부로부터의 정보의 자유로운 기입과, 정보의 자유로운 판독이 허가되는 영역이다. 한편, 보안영역(110)은 인증부(113)에 의해 메모리 카드(10)가 장착되는 상대의 장치의 정당성이 인증된 경우에만, 정보의 기입 및 정보의 판독이 허가되는 영역이다.
(4) 소수기억부(103)
소수기억부(103)는 소수 pa및 소수 pb를 기억하기 위한 영역을 구비하고 있다.
(5) 생성제어부(102)
생성제어부(102)는 소수 q와, 소수 q의 비트크기 Lenq와, 2 이외의 작은 소수인 L1, L2, ···, Ln과, (L1×L2×···×Ln)의 비트크기 LenL을 소수생성부(101)로 출력한 다음에, 소수생성부(101)로부터 1개의 소수 p를 받아들이고, 받아들인 소수 p를 소수 pa로서 소수기억부(103)로 기입한다.
다음에, 마찬가지로 하여 소수 q와, 소수 q의 비트크기 Lenq와, 2 이외의 작은 소수인 L1, L2, ···, Ln과, (L1×L2×···×Ln)의 비트크기 LenL을 소수생성부(101)로 출력한 다음에, 소수생성부(101)로부터 1개의 소수 p를 받아들이고, 받아들인 소수 p를 소수 pb로서 소수기억부(103)로 기입한다.
또, 소수 q와, 소수 q의 비트크기 Lenq와, 2 이외의 작은 소수인 L1, L2, ···, Ln과, (L1×L2×···×Ln)의 비트크기 LenL에 대해서는 후술한다.
상기에 설명한 바와 같이, 생성제어부(102)는 소수생성부(101)를 2회 제어함으로써, 2개의 소수를 생성하고 있다. 후술하는 바와 같이, 소수생성부(101)에 의해 소수를 생성하는 프로세스에서 난수를 이용하고 있기 때문에, 생성된 2개의 소수가 우연히 일치할 가능성은 낮다고 생각된다. 그러나, 생성된 2개의 소수가 우연히 일치한 경우에 있어서, 생성제어부(102)는 다시 2회째의 소수생성을 하도록 소수생성부(101)를 제어하여, 반드시 다른 2개의 소수를 채용하도록 하여도 된다.
또한, 생성제어부(102)는 상기 2회의 소수생성시에 소수 q와, 비트크기 Lenq와, 소수 L1, L2, ···, Ln과, 비트크기 LenL로 이루어지는 파라미터군을 이용한다고 하지만, 2회의 소수생성시에 다른 파라미터군을 이용하여도 된다.
즉, 1회째의 소수생성시에 소수 q와, 비트크기 Lenq와, n개의 소수 L1, L2, ···, Ln과, 비트크기 LenL로 이루어지는 파라미터군을 이용한다. 다음에, 2회째의 소수생성시에 소수 q'와, 소수 q'의 비트크기 Lenq'와, j개의 2 이외의 작은 소수인 L1', L2', ···, Lj'와, (L1'×L2'×···×Lj')의 비트크기 LenL'로 이루어지는 파라미터군을 이용하여도 된다.
여기서, 소수 q ≠소수 q'이고, n ≠j이다. 또한, 소수 (L1, L2, ···, Ln)≠소수 (L1',L2', ···, Lj')이다. 이것은 소수 (L1, L2, ···, Ln)과, 소수 (L1',L2', ···, Lj')의 적어도 1개가 다른 것을 나타내고 있다.
(6) 소수생성부(101)
소수생성부(101)는 도 3에 나타내는 바와 같이, 난수생성부(131), 판정대상 생성부(132), 제 1 소수판정부(133), 제 2 소수판정부(134) 및 제어부(135)로 구성되어 있다.
소수생성부(101)는,
q = 1 mod L1,
q = 1 mod L2,
···
q = 1 mod Ln을 만족하는 소수 q와,
소수 q의 비트크기 Lenq가 주어졌을 때, 소수 q의 비트크기의 2배의 비트크기를 갖는 소수 p를 출력한다.
여기서, L1, L2, ···, Ln은 2 이외의 작은 소수이다.
또한, (L1×L2×···×Ln)의 비트크기 LenL은 미리 주어져 있는 것으로 한다.
작은 소수의 예로서, 상정하는 입력 q의 비트크기보다 작은 소수 예컨대, L1= 3, L2= 5 등을 들 수 있다.
(난수생성부(131))
난수생성부(131)는 생성제어부(102)로부터 비트크기 Lenq 및 LenL을 받아들이고, 받아들인 비트크기 Lenq 및 LenL을 이용하여, (Lenq - LenL - 1) 비트크기의 난수 R'를 생성하고, 생성된 난수 R'를 판정대상 생성부(132)로 출력한다.
또한, 난수생성부(131)는 제 1 소수판정부(133)로부터 후술하는 제 1 판정정보를 받아들인다. 또한, 제 2 소수판정부(134)로부터 후술하는 제 2 판정정보를 받아들인다. 난수생성부(131)는 제 1 판정정보 또는 제 2 판정정보를 받아들이면, 다시 받아들인 비트크기 Lenq 및 LenL을 이용하여, (Lenq - LenL - 1) 비트크기의 난수 R'를 생성하고, 생성된 난수 R'를 판정대상 생성부(132)로 출력한다.
(판정대상 생성부(132))
판정대상 생성부(132)는 생성제어부(102)로부터 소수 q를 받아들이고, 난수생성부(131)로부터 난수 R'를 받아들인다.
다음에, 판정대상 생성부(132)는 받아들인 소수 q와 난수 R'를 이용하여, 이하의 식을 만족하는 수 R과 수 N을 생성한다.
R = L1×L2×···×Ln×R'
N = 2 ×R ×q + 1
다음에, 판정대상 생성부(132)는 생성한 수 R을 제 2 소수판정부(134)로 출력하고, 생성된 수 N을 제 1 소수판정부(133) 및 제 2 소수판정부(134)로 출력한다.
(제 1 소수판정부(133))
제 1 소수판정부(133)는 판정대상 생성부(132)로부터 수 N을 받아들이고, 받아들인 수 N을 이용하여, 다음에 나타내는 판정식 1의 성립을 판정한다.
2N-1= 1 mod N (판정식 1)
판정식 1이 성립하는 경우에는, 그 취지를 나타내는 제 1 판정정보를 제 2 소수판정부(134)로 출력한다. 판정식 1이 성립하지 않는 경우에는, 그 취지를 나타내는 제 1 판정정보를 난수생성부(131)로 출력한다.
(제 2 소수판정부(134))
제 2 소수판정부(134)는 판정대상 생성부(132)로부터 수 N과 수 R을 받아들이고, 또한, 제 1 소수판정부(133)로부터 판정식 1이 성립하는 취지를 나타내는 제 1 판정정보를 받아들인다.
판정식 1이 성립하는 취지를 나타내는 제 1 판정정보를 받아들이면, 다음에 제 2 소수판정부(134)는 받아들인 수 N과 수 R을 이용하여, 다음에 나타내는 판정식 2의 성립을 판정한다.
22R≠1 mod N (판정식 2)
판정식 2가 성립하는 경우에는, 소수 p로서 수 N을 생성제어부(102)로 출력한다. 판정식 2가 성립하지 않는 경우에는, 그 취지를 나타내는 제 2 판정정보를 난수생성부(131)로 출력한다.
(제어부(135))
제어부(135)는 소수생성부(101)를 구성하는 각 요소를 제어한다.
(소수생성부(101)의 동작의 검증)
제 1 소수판정부(133) 및 제 2 소수판정부(134)에 의한 판정은 포클링턴 판정이다. 포클링턴 판정에 대해서는, 오카모토 에이지, 「암호이론입문」, 공립출판, 1993, 21페이지 및 A. J. Menezes, P. C. van Oorschot, S. A. Vanstone, Handbook of applied cryptography", CRC Press, 1997, 144페이지에 상세하게 서술되어 있다.
N = 2 × R ×q + 1의 q가 소수이고
2N-1= 1 mod N
22R≠1 mod N
의 양쪽이 성립하는 경우, N이 소수가 되기 때문에, 소수생성부(101)는 소수를 출력한다. 또한, 난수 R'의 비트크기가 Lenq - LenL - 1이기 때문에, 수 R의 비트크기가 Lenq - 1이 되어, 수 N의 비트크기가 2 ×Lenq가 된다.
(7) 공개키생성부(106)
공개키생성부(106)는 소수기억부(103)로부터 소수 pa및 소수 pb를 판독하고, 판독된 소수 pa와 소수 pb를 곱하여 정수 n = pa×pb를 산출하며, 산출된 정수 n을 비밀키기억부(105) 및 공개키기억부(107)에 기입하여, 수 (pa- 1)과 수 (pb- 1)과의 최소공배수 L = LCM (pa- 1, pb- 1)를 산출하다.
또한, 공개키생성부(106)는 난수생성부(104)로부터 난수 e를 받아들이고, 받아들인 난수 e를 이용하여, 수 d = e-1mod L을 산출하며, 산출된 수 d를 비밀키기억부(105)에 기입하고, 난수 e를 공개키기억부(107)에 기입한다.
(8) 난수생성부(104)
난수생성부(104)는 난수 e를 생성하고, 생성된 난수 e를 공개키생성부(106)로 출력한다.
(9) 송수신부(114)
송수신부(114)는 공개키기억부(107)로부터 정수 n 및 난수 e를 판독하고, 판독된 정수 n 및 난수 e를 PC(30)로 출력한다.
또한, 송수신부(114)는 분배송신 서버장치(40)로부터 인터넷(60) 및 PC(30)를 통하여 암호문 c를 수신하고, 수신된 암호문 c를 메모리부(109) 내의 일반영역(111)으로 기입한다.
(10) 복호부(108)
복호부(108)는 일반영역(111)으로부터 암호문 c를 판독하고, 비밀키기억부(105)로부터 수 d 및 정수 n을 판독하며, 판독된 수 d 및 정수 n을 이용하여, 다음 식에 의해 암호문 c를 복호하여, 복호문 m'을 생성한다.
m' = cdmod n
다음에, 복호부(108)는 생성된 복호문 m'를 메모리부(109) 내의 보안영역(110)으로 기입한다.
(11) 인증부(113)
인증부(113)는 메모리 카드(10)가 장착되는 상대의 장치와의 사이에서 상대의 장치의 정당성을 인증한다. 정당성이 인증된 경우에, 메모리부(109) 내의 보안영역(110)으로의 정보의 기입 및 보안영역(110)으로부터의 정보의 판독을 허가한다.
(12) 제어부(112)
제어부(112)는 메모리 카드(10)를 구성하는 각 요소를 제어한다.
1.3 PC(30)
PC(30)는 도 4에 나타내는 바와 같이, 송수신부(301), 인증부(302), 제어부(303), 송수신부(304), 입력부(305), 표시부(306)로 구성되어 있다.
이 장치는 구체적으로는, 마이크로 프로세서, ROM, RAM, 하드디스크 유니트, 액정 디스플레이 유니트, 키보드, 마우스 등으로 구성되는 컴퓨터 시스템이다. 상기 RAM 또는 상기 하드디스크 유니트에는 컴퓨터 프로그램이 기억되어 있다. 상기 마이크로 프로세서가 상기 컴퓨터 프로그램에 따라 동작함으로써, 상기 장치는 그 기능을 달성한다.
PC(30)는 메모리 카드(10)로부터 정수 n 및 난수 e를 받아들이고, 받아들인정수 n 및 난수 e를 인터넷(60)을 통하여 분배송신 서버장치(40)로 송신한다. 또한, PC(30)는 분배송신 서버장치(40)로부터 인터넷(60)을 통하여 암호문 c를 받아들이고, 받아들인 암호문 c를 메모리 카드(10)의 송수신부(114)로 송신한다.
1.4 분배송신 서버장치(40)
분배송신 서버장치(40)는 도 5에 나타내는 바와 같이, 송수신부(401), 공개키기억부(402), 암호화부(403), 제어부(404) 및 정보기억부(405)로 구성되어 있다.
이 장치는 PC(30)와 마찬가지로, 컴퓨터 시스템이며, 마이크로 프로세서가 컴퓨터 프로그램에 따라 동작함으로써, 상기 장치는 그 기능을 달성한다.
(1) 정보기억부(405)
정보기억부(405)는 미리 평문 m을 기억하고 있다. 평문 m은 구체적으로는, 디지털 음악정보이다.
(2) 공개키기억부(402)
공개키기억부(402)는 공개키로서의 정수 n 및 난수 e를 기억하기 위한 영역을 구비하고 있다.
(3) 송수신부(401)
송수신부(401)는 PC(30)로부터 인터넷(60)을 통하여 정수 n 및 난수 e를 수신하고, 수신된 정수 n 및 난수 e를 공개키기억부(402)로 기입한다.
또한, 송수신부(401)는 암호화부(403)로부터 암호문 c를 받아들이고, 받아들인 암호문 c를 인터넷(60)을 통하여 PC(30)로 송신한다.
(4) 암호화부(403)
암호화부(403)는 정보기억부(405)로부터 평문 m을 판독하고, 공개키기억부(402)로부터 정수 n 및 난수 e를 판독하며, 판독된 정수 n 및 난수 e를 이용하여, 다음 식에 의해 평문 m을 암호화하여, 암호문 c를 생성한다.
c = memod n
다음에, 암호화부(403)는 생성된 암호문 c를 송수신부(401)로 출력한다.
(5) 제어부(404)
제어부(404)는 분배송신 서버장치(40)를 구성하는 각 요소를 제어한다.
1.5 PDA(20) 및 헤드폰(21)
PDA(20)는 메모리 카드(10)의 메모리부(109) 내의 보안영역(110)에 기입되어 있는 복호문 m'를 판독하고, 판독된 복호문 m'를 아날로그의 음성신호로 변환하여, 음성신호를 헤드폰(21)으로 출력한다.
헤드폰(21)은 음성신호를 음성으로 변환하여 출력한다.
1.6 휴대전화(50)
휴대전화(50)는 무선전파를 이용하여, 다른 전화기와의 사이에서 통신을 행할 수 있는 휴대형의 전화기로서의 구성을 갖고, 또한 PC(30) 및 PDA(20)와 동일한 구성을 갖는다.
이 휴대전화(50)는 구체적으로는, 마이크로 프로세서, ROM, RAM, 액정 디스플레이 유니트, 입력부, 통신부, 마이크, 스피커 등으로 구성되는 컴퓨터 시스템이다. 상기 RAM에는 컴퓨터 프로그램이 기억되어 있다. 상기 마이크로 프로세서가 상기 컴퓨터 프로그램에 따라 동작함으로써, 휴대전화(50)는 그 기능을 달성한다.
휴대전화(50)는 PC(30)와 마찬가지로, 메모리 카드(10)로부터 정수 n 및 난수 e를 받아들이고, 받아들인 정수 n 및 난수 e를 인터넷(60)을 통하여 분배송신 서버장치(40)로 송신한다. 또한, 휴대전화(50)는 분배송신 서버장치(40)로부터 인터넷(60)을 통하여 암호문 c를 받아들이고, 받아들인 암호문 c를 메모리 카드(10)의 송수신부(114)로 송신한다.
휴대전화(50)는 PDA(20)와 마찬가지로, 메모리 카드(10)에 기억되어 있는 디지털 저작물을 변환하여 전기신호를 생성하고, 생성된 전기신호를 음성으로 변환하여, 음성을 출력한다.
1.7 컨텐츠 분배송신 시스템 1의 동작
(1) 컨텐츠 분배송신 시스템 1의 동작
컨텐츠 분배송신 시스템 1의 동작에 대하여 도 6에 나타내는 플로우차트를 이용하여 설명한다.
메모리 카드(1O)의 소수생성부(101)는 무작위로 소수 pa및 소수 pb를 생성하고, 생성된 소수 pa및 소수 pb를 소수기억부(103)로 기입한다(단계 S101). 다음에, 공개키생성부(106)는 소수기억부(103)로부터 소수 pa및 소수 pb를 판독하고, 판독된 소수 pa와 소수 pb를 곱하여 정수 n = pa×pb를 산출하고, 산출된 정수 n을 비밀키기억부(105) 및 공개키기억부(107)로 기입하여, 수 (pa- 1)과 수 (pb- 1)과의최소공배수 L = LCM (pa- 1, pb- 1)를 산출한다(단계 S102). 다음에, 난수생성부(104)는 난수 e를 생성하고, 생성된 난수 e를 공개키생성부(106)로 출력한다(단계 S103). 다음에 공개키생성부(106)는 난수 e를 받아들이고, 받아들인 난수 e를 이용하여, 수 d = e-1mod L를 산출하며, 산출된 수 d를 비밀키기억부(105)로 기입하고, 난수 e를 공개키기억부(107)로 기입한다(단계 S104). 다음에, 송수신부(114)는 공개키기억부(107)로부터 정수 n 및 난수 e를 판독하고, 판독된 정수 n 및 난수 e를 PC(30)로 출력하며(단계 S105), PC(30)는 정수 n 및 난수 e를 인터넷(60)을 통하여 분배송신 서버장치(40)로 송신한다(단계 S106).
분배송신 서버장치(40)의 공개키기억부(402)는 PC(30)로부터 인터넷(60) 및 송수신부(401)를 통하여 정수 n 및 난수 e를 수신하여 기억하고(단계 S106), 암호화부(403)는 정보기억부(405)로부터 평문 m을 판독하고, 공개키기억부(402)로부터 정수 n 및 난수 e를 판독하며, 판독된 정수 n 및 난수 e를 이용하여, 다음 식에 의해 평문 m을 암호화하여, 암호문 c를 생성한다.
c = memod n (단계 S107)
다음에, 암호화부(403)는 송수신부(401) 및 인터넷(60)을 통하여 암호문 c를 PC(30)로 송신하고(단계 S108), PC(30)는 암호문 c를 받아들이고, 받아들인 암호문 c를 메모리 카드(10)의 송수신부(114)로 송신하며, 송수신부(114)는 수신된 암호문 c를 메모리부(109) 내의 일반영역(111)으로 기입한다(단계 S109). 복호부(108)는 일반영역(111)으로부터 암호문 c를 판독하고, 비밀키기억부(105)로부터 수 d 및 정수 n을 판독하며, 판독된 수 d 및 정수 n을 이용하여, 다음 식에 의해 암호문 c를 복호하여, 복호문 m'를 생성한다. m' = cdmod n
다음에, 복호부(108)는 생성된 복호문 m'를 메모리부(109) 내의 보안영역(110)으로 기입한다(단계 S110).
PDA(20)는 메모리 카드(10)의 메모리부(109) 내의 보안영역(110)에 기입되어 있는 복호문 m'를 판독하고(단계 S111), 판독된 복호문 m'를 아날로그의 음성신호로 변환하여, 음성신호를 헤드폰(21)으로 출력한다. 헤드폰(21)은 음성신호를 음성으로 변환하여 출력한다(단계 S112).
또, 메모리 카드(10)에서의 상기 동작은 제어부(112)가 메모리 카드(10)를 구성하는 각 요소를 제어함으로써 행해진다.
(2) 소수생성부(101)의 동작
소수생성부(101)의 동작에 대하여 도 7에 나타내는 플로우차트를 이용하여 설명한다.
난수생성부(131)는 Lenq - LenL - 1비트의 난수 R'를 생성하여, 판정대상 생성부(132)로 출력한다(단계 S132). 다음에, 판정대상 생성부(132)는 수 R과 수 N을 계산하여, 수 N을 제 1 소수판정부(133)로 출력하고, 수 N과 수 R을 제 2 소수판정부(134)에 출력한다(단계 S133). 다음에, 제 1 소수판정부(133)는 2N-1= 1 mod N(판정식 1)의 성립을 판정하여, 성립하지 않은 경우는(단계 S134), 단계 S132로 되돌아가 처리를 반복한다.
성립하는 경우에는(단계 S134), 제 2 소수판정부(134)는 22R≠1 mod N(판정식 2)의 성립을 판정하여, 성립하지 않은 경우는(단계 S135), 단계 S132로 되돌아가 처리를 반복한다. 성립하는 경우는(단계 S135), 소수로서 수 N을 생성제어부(102)로 출력하고, 소수생성부(101)는 처리를 종료한다.
또, 소수생성부(101)에서의 상기 동작은 제어부(135)가 소수생성부(101)를 구성하는 각 요소를 제어함으로써 행해진다.
1.8 계산량의 평가
소수생성부(101)에 의한 계산량에 대하여 설명한다.
이하에 있어서, L1= 3, L2= 5, L3= 7, n = 3, Lenq = 256비트로 하여, 2 ×Lenq = 512비트의 누승잉여연산에서의 연산회수를 어림한다.
일반적으로, 수 R을 임의로 선택하는 경우, R이 소수가 되는 확률은 1/(ln R) 정도이기 때문에, 이 경우, 512비트의 소수를 생성하기 위해서 포클링턴 판정을 시행하는 회수는 ln (2512)으로 어림할 수 있다. 여기서, ln R은 R의 자연대수이다.
상기 제 1 실시예에서는,
N = 2 ×R ×q + 1
= 2 ×L1×L2×···×Ln×R' ×q + 1
이므로,
N = 1 mod 2,
N = 1 mod L1,
N = 1 mod L2,
···,
N = 1 mod Ln이고,
N은 L1, L2, ···, Ln의 어느 것으로도 나누어 떨어지지 않는다.
mod (2 ×L1×L2×···×Ln)의 수가 2, L1, L2, ···, Ln으로 나누어 떨어지지 않는 확률은,
(2 ×L1×L2×···×Ln)/(L1×L2×···×Ln)
= (2-1) ×(L1- 1) ×(L2- 1) ×‥·×(Ln- 1)
/(2 ×L1×L2×···×Ln)
이다.는 오일러(Euler Leonhard)함수라고 하고, 츠지이 시게오, 가사바라 마사오, 「암호와 정보보안」, 소황당, 1990, 11∼12페이지에 상세하게 설명되어 있다.
따라서, 포클링턴 판정을 시행하는 수의 개수는,
(2 - 1) ×(L1- 1) ×(L2- 1) ×‥·×(Ln- 1)
/(2 ×L1×L2×···×Ln)
배로 저감할 수 있다.
여기서,
L1= 3, L2= 5, L3= 7, n = 3이기 때문에,
(2 - 1) ×(3 - 1) ×(5 - 1) ×(7 - 1)/(2 ×3 ×5 ×7)
= 48/210
= 8/35
가 된다. 이것은, 종래예 1과 동일한 확률이다.
다음에, 제 1 소수판정부(133)의 판정을 통과하는 확률은 밀러 라빈 판정을 통과하는 확률과 동일하여, 1/4 이하이다. 따라서, 1개의 합성수에 대하여 행하는 누승잉여연산의 회수는 1 + 1/4 이하이다. 당연히, 소수에 대하여 행하는 누승잉여연산 회수는 2이다.
이상으로부터 256비트의 소수를 이용하여, 512비트의 소수를 생성하기 위해서 행하는 512비트의 누승잉여연산 회수는,
(1 + 1/4)((ln 2512) ×8/35 - 1) + 2 = 89.5
이하이다.
제 1 실시예에서는 Lenq = 256비트의 소수로부터 2 ×Lenq = 512비트의 소수를 생성하지만, 제 1 실시예의 소수생성부(101)를 재귀적으로 사용하는 것으로, 간단히 소수를 알 수 있는 16비트의 소수로부터 512비트의 소수를 생성할 수 있다.
따라서, 128비트로부터 256비트의 소수를 생성하는 경우도 마찬가지로 생각하면, 256비트의 소수를 생성하기 위해서 행하는 256비트의 누승잉여연산 회수는,
(1 + 1/4)((ln 2256) ×8/35 - 1) + 2 = 45.1
이하이다.
누승잉여연산의 계산량은 법의 N에 의존하고, N의 3승의 차수이다. 따라서, 256비트의 누승잉여연산 8회를 512비트의 누승잉여연산 1회에 상당한다고 생각된다.
64비트로부터 128비트 등 외에도 마찬가지로 생각하면, 제 1 실시예의 소수생성부(101) 전체의 계산량을 512비트의 누승잉여연산 회수로 어림할 수 있다. 16, 32비트의 소수생성의 계산량은 64, 128, 256, 512비트의 소수생성의 계산량에 비하여 작기 때문에 무시하고, 제 1 실시예의 소수생성부(101) 전체의 계산량을 512비트의 누승잉여연산 회수로 나타내면,
(1 + 1/4){((ln 264) ×8/35 - 1)/512
+ ((ln 2128) ×8/35 - 1)/64
+ ((ln 2256) ×8/35 - 1)/8
+ ((ln 2512) ×8/35 - 1)}
+ 2 (1/512 + 1/64 + 1/8 + 1)
= 109.0
이하이다.
이것은, 종래예 1의 116.8회 이하와 비교하여 계산량이 작고, 또한, 확정적으로 소수생성이 가능하게 된다. 또한, 확정적인 소수생성법인 종래예 2에 비하여2.2배 고속이다.
이상으로 설명한 바와 같이, 제 1 실시예에 의하면, 종래예와 비교하면, 확정적인 소수생성의 계산시간을 단축할 수 있다는 뛰어난 효과가 있다.
그러나, 제 1 실시예에 의하면,
N = 1 mod 2,
N = 1 mod L1,
N = 1 mod L2,
··
N = 1 mod Ln을 만족하는 소수 N으로 한정하여 소수생성을 행하기 때문에, 생성할 수 있는 소수의 종류가 적다.
암호로의 사용을 생각하면, 소수의 종류가 한정되는 것은 암호의 사용법에 따라서는 안전성 면에서 우려되는 경우가 있다.
다음에 나타내는 제 2 실시예는 이 문제를 해결하는 것을 목적으로 하고 있다.
2. 제 2 실시예
본 발명에 관한 다른 실시예로서의 컨텐츠 분배송신 시스템 1b(도시생략)에 대하여 설명한다.
컨텐츠 분배송신 시스템 1b는 컨텐츠 분배송신 시스템 1과 동일한 구성을 갖고 있다. 메모리 카드(10)는 소수생성부(101) 대신에, 소수생성부(101b)를 구비하고 있다. 여기서는, 컨텐츠 분배송신 시스템 1과의 상이점을 중심으로서 설명한다.
2.1 메모리 카드(10)의 생성제어부(102)
생성제어부(102)는 소수생성부(101b)로, 소수 q와, 소수 q의 비트크기 Lenq와, 2 이외의 작은 소수인 L1, L2, ···, Ln과, (L1×L2×···×Ln)의 비트크기 LenL과, q mod L1, q mod L2, ‥·, q mod Ln을 출력하고, 다음에 소수생성부(1O1b)로부터 1개의 소수 p를 받아들여, 받아들인 소수 p를 소수 pa로서 소수기억부(103)로 기입한다.
다음에, 마찬가지로 하여 소수생성부(101b)로, 소수 q와, 소수 q의 비트크기 Lenq와, 2 이외의 작은 소수인 L1, L2, ···, Ln과, (L1×L2×···×Ln)의 비트크기 LenL과, q mod L1, q mod L2, ‥·, q mod Ln을 출력하고, 다음에 소수생성부(1O1b)로부터 1개의 소수 p를 받아들여, 받아들인 소수 p를 소수 pb로서 소수기억부(103)로 기입한다.
2.2 메모리 카드(10)의 소수생성부(101b)
소수생성부(1O1b)는 소수 q, q mod L1, q mod L2, ‥·, q mod Ln(L1, L2, ···, Ln은 2 이외의 작은 소수) 및 소수 q의 비트크기 Lenq가 주어진 경우, 소수 q의 비트크기의 2배의 비트크기를 갖는 소수 p를 생성하여 출력한다.
여기서, L1, L2, ···, Ln및 (L1×L2×···×Ln)의 비트크기 LenL은 미리 주어져 있는 것으로 한다. 또한, 작은 소수의 예로서, 입력되는 소수 q의 비트크기보다 작은 소수를 들 수 있다.
소수생성부(101b)는 도 8에 나타내는 바와 같이, 부분정보 설정부(136b), 난수생성부(131b), 판정대상 생성부(132b), 제 1 소수판정부(133b), 제 2 소수판정부(134b) 및 제어부(135b)로 구성된다.
(1) 부분정보 설정부(136b)
부분정보 설정부(136b)는 생성제어부(102)로부터 소수 q, q mod L1, q mod L2, ‥·, q mod Ln을 받아들여,
2 ×u ×q + 1 ≠0 mod L1,
2 ×u ×q + 1 ≠0 mod L2,
‥·
2 ×u ×q + 1 ≠0 mod Ln
을 만족하는 수 u를 산출하고, 산출된 수 u를 판정대상 생성부(132b)로 출력한다.
부분정보 설정부(136b)에 대하여 이하에 상세하게 설명한다.
부분정보 설정부(136b)는 도 8에 나타내는 바와 같이, 정수생성부(141b) 및 정보합성부(142b)로 구성된다.
(정수생성부(141b))
정수생성부(141b)는 난수 N1(1N1 L1-1), N2(1N2 L2-1), ‥·,Nn(1Nn Ln-1)을 발생하여,
ui= (Ni-1)/(2 ×(q mod Li)) mod Li(i=1, 2, ‥·, n)
을 계산한다.
다음에, 계산하여 얻은 ui(i=1, 2, ‥·, n)를 정보합성부(142b)로 출력한다.
(정보합성부(142b))
정보합성부(142b)는 정수생성부(141b)로부터 ui(i=1, 2, ‥·, n)를 받아들여, 받아들인 ui(i=1, 2, ‥·, n)를 이용하여, 중국인의 잉여정리에서,
u = uimod Li(i=1, 2, ‥·, n)
을 만족하는 u mod (L1×L2×···×Ln)을 구한다.
여기서, 중국인의 잉여정리에 대해서는 오카모토 에이지, 「암호이론입문」, 공립출판, 1993, 10페이지에 상세하게 서술되어 있다.
구체적으로는 정보합성부(142b)는,
u'2= ((L1)-1mod L2) ×((u2-u1) mod L2) + u1
u'3= ((L1×L2)-1mod L3) ×((u3-u'2) mod L3) + u'2
‥·
u'n= ((L1×L2×···×Ln-1)-1mod Ln) ×((un-u'n-1) mod Ln) + u'n-1
을 계산하여, u = u'n으로 한다.
다음에, 정보합성부(142b)는 계산하여 얻은 수 u를 판정대상 생성부(132b)로 출력한다.
(2) 난수생성부(131b)
난수생성부(131b)는 생성제어부(102)로부터 Lenq 및 LenL을 받아들이고, 받아들인 Lenq 및 LenL을 이용하여, (Lenq - LenL - 1) 비트길이의 난수 R'를 생성하며, 생성된 난수 R'를 판정대상 생성부(132b)로 출력한다.
또한, 난수생성부(131b)는 제 1 소수판정부(133b)로부터 후술하는 제 3 판정정보를 받아들인다. 또한, 제 2 소수판정부(134b)로부터 후술하는 제 4 판정정보를 받아들인다. 난수생성부(131b)는 제 3 판정정보, 또는 제 4 판정정보를 받아들이면, 다시 받아들인 비트크기 Lenq 및 LenL을 이용하여, (Lenq - LenL - 1) 비트크기의 난수 R'를 생성하고, 생성된 난수 R'를 판정대상 생성부(132b)로 출력한다.
(3) 판정대상 생성부(132b)
판정대상 생성부(132b)는 생성제어부(102)로부터 소수 q, L1, L2, ···, Ln을 받아들이고, 부분정보 설정부(136b)로부터 수 u를 받아들이며, 난수생성부(131b)로부터 난수 R'를 받아들인다.
다음에, 받아들인 소수 q, L1, L2, ···, Ln, 수 u 및 난수 R'를 이용하여이하의 식을 만족하는 수 R 및 수 N을 생성한다.
R = u + L1×L2×···×Ln×R'
N = 2 ×R ×q + 1
다음에, 판정대상 생성부(132b)는 생성된 수 R 및 수 N을 제 2 소수판정부(134b)로 출력하고, 생성된 수 N을 제 1 소수판정부(133b)로 출력한다.
(4) 제 1 소수판정부(133b)
제 1 소수판정부(133b)는 판정대상 생성부(132b)로부터 수 N을 받아들이고, 받아들인 수 N을 이용하여, 다음 판정식 3이 성립하는지의 여부를 판정한다.
2N-1= 1 mod N (판정식 3)
판정식 3이 성립하는 경우에는, 제 1 소수판정부(133b)는 성립하는 취지를 나타내는 제 3 판정정보를 제 2 소수판정부(134b)로 출력한다. 판정식 3이 성립하지 않은 경우에는, 성립하지 않는 취지를 나타내는 제 3 판정정보를 난수생성부(131b)로 출력한다.
(5) 제 2 소수판정부(134b)
제 2 소수판정부(134b)는 판정대상 생성부(132b)로부터 수 R 및 수 N을 받아들인다. 또한, 제 1 소수판정부(133b)로부터 판정식 3이 성립하는 취지를 나타내는 제 3 판정정보를 받아들인다.
제 3 판정정보를 받아들이면, 제 2 소수판정부(134b)는 받아들인 수 R 및 수 N을 이용하여, 다음 판정식 4가 성립하는지의 여부를 판정한다.
22R≠1 mod N (판정식 4)
판정식 4가 성립하는 경우에는, 제 2 소수판정부(134b)는 수 N을 소수 p로서 생성제어부(102)로 출력한다.
판정식 4가 성립하지 않는 경우에는, 제 2 소수판정부(134b)는 판정식 4가 성립하지 않는 취지를 나타내는 제 4 판정정보를 난수생성부(131b)로 출력한다.
(6) 제어부(135b)
제어부(135b)는 소수생성부(101b)를 구성하는 각 요소를 제어한다.
2.3 소수생성부(101b)의 검증
제 1 소수판정부(133b) 및 제 2 소수판정부(134b)는 각각 소수생성부(101)의 제 1 소수판정부(133) 및 제 2 소수판정부(134)와 동일하기 때문에, 소수생성부(101b)는 소수생성부(101)와 마찬가지로 소수를 출력한다.
또한, 난수 R'의 비트크기가 Lenq - LenL - 1이기 때문에, R의 비트크기가 Lenq - 1이 되고, N의 비트크기가 2 ×Lenq가 된다.
2.4 소수생성부(101b)의 동작
소수생성부(101b)의 동작에 대하여 도 9에 나타내는 플로우차트를 이용하여 설명한다.
부분정보 설정부(136b)는 2 ×u ×q + 1 ≠O mod (L1×L2×···×Ln)을 만족하는 u를 계산하고, 계산된 u를 판정대상 생성부(132b)로 출력한다(단계 S152). 다음에, 난수생성부(131b)는 Lenq - LenL - 1비트의 난수 R'를 생성하고,생성된 난수 R'를 판정대상 생성부(132b)로 출력한다(단계 S153). 판정대상 생성부(132b)는 R과 N을 계산하여, N을 제 1 소수판정부(133b)로 출력하고, N과 R을 제 2 소수판정부(134b)로 출력한다(단계 S154). 제 1 소수판정부(133b)는 판정식 3의 성립을 판정하여, 성립하지 않는 경우는(단계 S155), 단계 S153으로 되돌아가 처리를 반복한다.
성립하는 경우는(단계 S155), 제 2 소수판정부(134b)는 판정식 4의 성립을 판정하고, 성립하지 않는 경우는(단계 S156), 단계 S153으로 되돌아가 처리를 반복한다. 성립하는 경우는(단계 S156), 제 2 소수판정부(134b)는 소수 p로서 수 N을 생성제어부(102)로 출력하고(단계 S157), 소수생성부(101b)는 처리를 종료한다.
2.4 계산량의 평가와 효과
계산량에 대해서는 제 1 실시예와 거의 동일하다.
단, 제 1 실시예의 계산량과 비교하여, 부분정보 설정부(136b)의 계산량만이 증가한다. 그러나, 부분정보 설정부(136b)는 mod L1, mod L2, ···, mod Ln의 계산 및 중국인의 잉여정리의 계산뿐으로, 2 ×Lenq비트의 수의 계산과 비교하여, 작아서 거의 0으로 간주하여도 문제없다.
따라서, 제 2 실시예에 대하여 계산량에 관해, 제 1 실시예와 동일한 효과를 바랄 수 있다.
또한, N = N1mod L1, N2mod L2, ···, Nnmod Ln이고, N1, N2, ···, Nn은 난수이기 때문에, 소수생성부(101b)는 생성하는 소수를 한정하지 않는다. 그 때문에, 소수가 한정됨으로 인한 안전성의 우려가 없어진다.
따라서, 소수생성부(101b)에 의하면, (1) 생성하는 소수를 한정하지 않고, (2) 확정적인 소수를 생성하며, (3) 종래예와 비교하여 고속으로 소수를 생성한다고 하는 뛰어난 효과가 있다.
이상으로 설명한 바와 같이, 제 2 실시예에 의하면, 종래예와 비교하여 확정적인 소수생성의 계산시간을 단축할 수 있고, 게다가, 생성하는 소수의 종류를 한정하지 않기 때문에, 소수를 한정함으로 인한 안전성의 우려가 없어져, 안전성 면에서도 좋다. 이 때문에, 고속의 암호방식이나 서명방식을 가능하게 하는 소수생성부를 제공할 수 있어, 그 실용적 가치는 크다.
3. 변형예
제 1 실시예, 또는 제 2 실시예에서 각각 설명한 소수생성을 적용하는 암호통신 시스템(도시생략)에 대하여 설명한다.
암호통신 시스템은 관리센터장치, 사용자 A 장치 및 사용자 B 장치로 구성된다. 관리센터장치, 사용자 A 장치 및 사용자 B 장치는 각각 서로 네트워크를 통하여 접속되어 있다.
관리센터장치는 내부에 제 1 실시예에 나타내는 생성제어부(102) 및 소수생성부(101)를 구비하여, 생성제어부(102) 및 소수생성부(101)에 의해 2개의 소수 pa및 소수 pb를 생성한다. 또, 관리센터장치는 내부에 제 2 실시예에 나타내는 생성제어부(102) 및 소수생성부(101b)를 구비하여도 된다.
이하에, 암호통신 시스템의 동작에 대하여 도 10에 나타내는 플로우차트를 이용하여 설명한다. 여기서는, 소인수분해하는 것이 계산량 상으로 곤란한 것을 안전성의 근거로 하는 RSA 암호를 응용하고 있다. RSA 암호에 대해서는 오카모토 다츠아키라, 야마모토 히로시, 「현대암호」, 산업도서, 1997, 110∼113페이지에 상세하게 설명되어 있다.
(1) 관리센터장치에 의한 공개키의 생성
관리센터장치는 생성제어부(102) 및 소수생성부(101)에 의해 무작위로 소수 pa및 소수 pb를 생성하고(단계 S171), 소수 pa및 소수 pb를 이용하여, n = pa×pb, 및 L = LCM (pa-1, pb-1)를 계산한다(단계 S172).
다음에, 관리센터장치는 무작위로 난수 e(1eL-1, GCD(e, L) = 1)를 발생시켜, d = e-1mod L을 계산한다(단계 S173). 여기서, GCD(e, L)은 e와 L의 최대공약수이다.
그 후, 관리센터장치는 소수 pa, 소수 pb및 수 d를 비밀키로 하여 사용자 A 장치에 대하여 비밀리에 송신하고(단계 S174), 사용자 B 장치에 대하여 수 n 및 수 e를 사용자 A 장치의 공개키로 하여 공개하여 송신한다(단계 S175).
(2) 사용자 B 장치에 의한 암호문의 생성
사용자 B 장치는 c = memod n을 계산한다(단계 S176). 여기서, m은 사용자 B 장치가 사용자 A 장치로 송신하는 메시지이다. 다음에, 사용자 B 장치는 얻어진c를 암호문으로서 사용자 A 장치에 송신한다(단계 S177).
(3) 사용자 A 장치에 의한 암호문의 복호
사용자 A 장치는,
m' = cdmod n을 계산하여, 복호 메시지 m'를 얻는다(단계 S178).
여기서,
cd= (me)dmod n
= m**(e ×d mod L) mod n
= m1mod n
= m mod n
가 되므로, 메시지 m이 복호 메시지 m'와 동일한 것은 분명하다.
이상 설명한 바와 같이, 공개키의 생성의 단계 S171에서 소수생성이 행해진다.
이 소수생성의 단계에서 제 1 실시예 또는 제 2 실시예에 나타내는 생성제어부 및 소수생성부가 이용되기 때문에, 제 1 실시예 또는 제 2 실시예에서 설명한 효과가 얻어진다.
4.정리
이상 설명한 바와 같이, 소수 q와 2 이외의 상기 소수 q보다 작은 소수 L1, L2, ···, Ln(n2)을 입력으로 하여, 상기 소수 q보다 큰 소수 N을 출력하는 소수생성부는 소수 q가 q = 1 mod Li(i = 1, 2, ···, n)를 만족하고, N = 1 mod Li(i = 1, 2, ···, n)를 만족하는 N을 소수로서 생성한다.
또한, 소수생성부는 난수 R'를 생성하고, 상기 소수 q와 상기 난수 R'로부터 R = L1×L2×···×Ln×R'와, N = 2 ×R ×q + 1을 생성하며, 생성된 상기 N 및 상기 R을 이용하여 상기 N의 소수판정을 행한다.
또한, 소수 q와 2 이외의 상기 소수 q보다 작은 소수 L1, L2, ···, Ln(n2)을 입력으로 하여, 상기 소수 q보다 큰 소수 N을 출력하는 소수생성부는 2 ×u ×q + 1 ≠0 mod Li(i = 1, 2, ···, n)을 만족하는 u를 출력하여, 난수 R'를 생성하고, 생성된 상기 u 및 상기 난수 R'를 이용하여, R = u + L1×L2×···×Ln×R'과, N = 2 ×R ×q + 1을 출력하고, 상기 N 및 상기 R을 이용하여, 상기 N의 소수판정을 행한다.
또한, 상기 소수생성부는 정수 N1(1N1 L1-1), N2(1N2 L2-1), ···, Nn(1Nn Ln-1)을 발생하여, ui= (Ni-1)/(2 ×(q mod Li)) mod Li(i = 1, 2, ···, n)를 계산하고, 상기 ui(i = 1, 2, ···, n)를 이용하여, u = uimod Li(i = 1, 2, ···, n)를 만족하는 u를 계산한다.
또한, 상기 소수판정부는 상기 N에 대하여 2N-1= 1 mod N의 성립을 판정하여, 상기 N 및 R에 대하여 22R≠1 mod N의 성립을 판정한다.
이와 같이, 본 발명에 의하면 확정적인 소수생성을 할 수 있는 동시에, 종래예와 비교하여, 계산시간을 단축할 수 있다. 또한, 생성하는 소수의 종류를 한정하지 않도록 할 수 있기 때문에, 소수를 한정함으로 인한 안전성의 우려가 없어져, 안전성 면에서도 좋다.
이상으로부터 고속의 암호방식이나 서명방식을 가능하게 하는 정보보안장치 및 소수생성장치를 제공할 수 있어, 그 실용적 가치는 크다.
5. 그 밖의 변형예
이상, 실시예에 근거하여 설명하였지만, 본 발명은 이들의 실시예에 한정되지 않는 것은 물론이다. 다음과 같이 구성하여도 된다.
(1) 본 발명은 본 실시예에 나타내는 소수생성부에 의해 정수 Len을 입력으로 하여, Len 비트의 소수를 출력하여도 된다.
(2) 상기에서 설명한 소수생성부는 독립한 1개의 장치로 하여도 된다.
(3) 본 발명은 본 실시예에 나타내는 소수생성부를 구비하는 소수응용장치로 하여도 된다. 소수응용장치의 구체적인 예는, 암호화장치 및 암호복호장치로 이루어지는 암호통신 시스템, 디지털서명 작성장치 및 서명검증장치로 이루어지는 디지털서명 시스템이다. 이들 시스템은 정보를 안전하고 또한 확실히 취급하는 정보보안 시스템이다.
(4) 제 1 소수판정부 133, 제 2 소수판정부 134, 제 1 소수판정부 133b, 제2 소수판정부 134b는 상기 실시예와 다른 소수판정식을 사용하여도 된다.
예를 들어, 제 1 소수판정부 133 및 제 1 소수판정부 133b는 다음 판정식을 이용하여도 된다.
aN-1= 1 mod N
으로 하여도 된다. 단, a는 1aN-1을 만족하는 정수이다.
또한, 제 2 소수판정부 134 및 제 2 소수판정부 134b는 다음의 판정식을 이용하여도 된다.
b2R≠1 mod N
또는,
GCD (b2R- 1, N) = 1
로 하여도 된다. 단, b는 1bN-1을 만족하는 정수이다.
(5) 디지털 저작물은 음악으로 하고 있지만, 그 밖의 디지털 정보로 하여도 된다. 예컨대, 음성, 동화상, 정지화상, 문장, 표형식의 데이터, 컴퓨터 프로그램 등의 디지털 정보로 하여도 된다.
(6) 상기의 실시예에 있어서 RSA 암호를 적용하는 보안 시스템에서의 소수생성부에 대하여 설명하고 있지만, 소수생성부의 이용은 RSA 암호를 적용하는 보안 시스템에 한정되는 것이 아니다. 예를 들어, 타원암호에 있어서 소수생성부를 적용하는 것이 가능하다. 타원암호에서는 1개의 소수를 생성하여 이용한다.
(7) 본 발명은 상기에 나타내는 방법으로 하여도 된다. 또한, 이들 방법을 컴퓨터에 의해 실현하는 컴퓨터 프로그램으로 하여도 되고, 상기 컴퓨터 프로그램으로 이루어지는 디지털 신호로 하여도 된다.
또한, 본 발명은 상기 컴퓨터 프로그램 또는 상기 디지털 신호를 컴퓨터 판독가능한 기록매체 예컨대, 플렉시블디스크, 하드디스크, CD-ROM, MO, DVD, DVD-ROM, DVD-RAM, 반도체 메모리 등에 기록한 것이어도 된다. 또한, 이들 기록매체에 기록되어 있는 상기 컴퓨터 프로그램 또는 상기 디지털 신호로 하여도 된다.
또한, 본 발명은 상기 컴퓨터 프로그램 또는 상기 디지털 신호를 전기통신회선, 무선 또는 유선 통신회선, 인터넷을 대표로 하는 네트워크 등을 경유하여 전송하는 것이어도 된다.
또한, 본 발명은 마이크로 프로세서와 메모리를 구비한 컴퓨터 시스템으로, 상기 메모리는 상기 컴퓨터 프로그램을 기억하고 있어, 상기 마이크로 프로세서는 상기 컴퓨터 프로그램에 따라서 동작하여도 된다.
또한, 상기 프로그램 또는 상기 디지털 신호를 상기 기록매체에 기록하여 이송함으로써, 또는 상기 프로그램 또는 상기 디지털 신호를 상기 네트워크 등을 경유하여 이송함으로써, 독립한 다른 컴퓨터 시스템에 의해 실시하여도 된다.
(8) 상기 실시예 및 상기 변형예를 각각 조합하여도 된다.
상술한 본 발명의 바람직한 실시예들은 예시의 목적을 위해 개시된 것이며, 당업자라면 첨부된 특허청구범위에 개시된 본 발명의 사상과 범위를 통해 각종 수정, 변경, 대체 및 부가가 가능할 것이다.
이상과 같이 본 발명에 의하면, 계산량이 적으면서 확정적으로 소수생성이 가능한 소수생성장치, 소수생성방법, 소수생성 프로그램, 소수생성 프로그램을 기록하고 있는 기록매체 및 정보보안장치를 제공할 수 있다.

Claims (12)

  1. 소인수분해를 하는 것이 계산량 상으로 곤란한 것을 근거로 하여 2개의 소수를 생성하고 생성한 2개의 소수의 곱셈을 이용하여, 소정의 정보를 안전하고 또한 확실히 취급하는 정보보안장치에 있어서,
    각 소수생성시에 기존에 알고 있는 소수 q의 2배의 비트길이를 갖는 소수 N을 생성하고,
    상기 정보보안장치는,
    소수 q 및 n개의 소수 L1, L2, ···, Ln을 취득하고, 여기서, 소수 L1, L2, ···, Ln은 각각 소수 q보다 작은 2 이외의 소수이며, 소수 q는 q = 1 mod Li(i = 1, 2, ···, n)을 만족하는 취득수단과,
    취득한 상기 소수 L1, L2, ···, Ln에 관한 수를 제외한 선택에 의해 취득한 상기 소수 q의 2배의 비트길이를 갖는 수 N을 생성하는 생성수단과,
    생성한 수 N의 소수판정을 행하여, 수 N이 소수라고 판정된 경우에, 수 N을 소수로서 출력하는 판정수단을 포함하는 것을 특징으로 하는 정보보안장치.
  2. 제 1항에 있어서,
    상기 생성수단은,
    N = 1 mod Li(i = 1, 2, ···, n)을 만족하는 상기 수 N을 생성하는 것을특징으로 하는 정보보안장치.
  3. 제 2항에 있어서,
    상기 생성수단은,
    (Lenq - LenL - 1) 비트길이의 난수 R'를 생성하고, 여기서, Lenq는 소수 q의 비트길이이며, LenL은 (L1×L2×···×Ln)의 비트길이인 난수생성부와,
    생성한 R' 및 상기 소수 L1, L2, ···, Ln를 이용하여, 수 R = L1×L2×···×Ln×R'에 의해 수 R를 생성하고,
    취득한 소수 q 및 생성한 수 R를 이용하여, 수 N = 2 ×R ×q + 1을 생성하는 판정대상 생성부를 포함하고,
    상기 판정수단은 상기 수 N 및 상기 수 R을 이용하여, 상기 수 N의 소수판정을 행하는 것을 특징으로 하는 정보보안장치.
  4. 제 3항에 있어서,
    상기 판정수단은 생성한 상기 수 N에 대하여,
    제 1 판정식 2N-1= 1 mod N
    이 성립하는지의 여부를 판정하고,
    또한, 생성한 상기 수 N 및 상기 수 R에 대하여,
    제 2 판정식 22R≠1 mod N
    이 판정하는지의 여부를 판정하며,
    제 1 판정식 및 제 2 판정식의 양쪽이 성립하는 경우에, 수 N이 소수라고 판정하는 것을 특징으로 하는 정보보안장치.
  5. 제 1항에 있어서,
    상기 생성수단은,
    취득한 상기 소수 q를 이용하여,
    2 ×u ×q + 1 ≠0 mod Li(i = 1, 2, ···, n)
    을 만족하는 수 u를 생성하는 부분정보 생성부와,
    난수 R'를 생성하는 난수생성부와,
    취득한 상기 소수 L1, L2, ···, Ln과, 생성한 상기 수 u와, 생성한 상기 난수 R'를 이용하여,
    R = u ×L1×L2×···×Ln×R'
    에 의해 수 R를 생성하고,
    취득한 상기 소수 q와, 생성한 수 R을 이용하여,
    N = 2 ×R ×q + 1
    에 의해 수 N을 생성하는 판정대상 생성부를 포함하며,
    상기 판정수단은 상기 수 N 및 상기 수 R을 이용하여, 상기 수 N의 소수판정을 행하는 것을 특징으로 하는 정보보안장치.
  6. 제 5항에 있어서,
    상기 부분정보 생성부는,
    정수 N1(1N1 L1-1), 정수 N2(1N2 L2-1), ···, 정수 Nn(1Nn Ln-1)을 생성하고,
    수 ui= (Ni-1)/(2 ×(q mod Li)) mod Li(i = 1, 2, ···, n)
    을 산출하는 정수생성부와,
    산출한 상기 수 ui(i = 1, 2, ···, n)를 이용하여,
    수 u = uimod Li(i = 1, 2, ···, n)
    을 만족하는 u를 산출하는 정보합성부를 포함하는 것을 특징으로 하는 정보보안장치.
  7. 제 6항에 있어서,
    상기 판정수단은 생성한 상기 수 N에 대하여,
    제 1 판정식 2N-1= 1 mod N
    이 성립하는지의 여부를 판정하고,
    또한, 생성한 상기 수 N 및 상기 수 R에 대하여,
    제 2 판정식 22R≠1 mod N
    이 판정하는지의 여부를 판정하며,
    제 1 판정식 및 제 2 판정식의 양쪽이 성립하는 경우에, 수 N이 소수라고 판정하는 것을 특징으로 하는 정보보안장치.
  8. 소인수분해를 하는 것이 계산량 상으로 곤란한 것을 근거로 하여 2개의 소수를 생성하고 생성한 2개의 소수의 곱셈을 이용하여, 소정의 정보를 안전하고 또한 확실히 취급하는 IC 카드에 있어서,
    각 소수생성시에 기존에 알고 있는 소수 q의 2배의 비트길이를 갖는 소수 N을 생성하고,
    상기 IC 카드는,
    소수 q 및 n개의 소수 L1, L2, ···, Ln을 취득하고, 여기서, 소수 L1, L2, ···, Ln은 각각 소수 q보다 작은 2 이외의 소수이며, 소수 q는 q = 1 mod Li(i = 1, 2, ···, n)를 만족하는 취득수단과,
    취득한 상기 소수 L1, L2, ···, Ln에 관한 수를 제외한 선택에 의해 취득한 상기 소수 q의 2배의 비트길이를 갖는 수 N을 생성하는 생성수단과,
    생성한 수 N의 소수판정을 행하여, 수 N이 소수라고 판정된 경우에, 수 N을 소수로서 출력하는 판정수단을 포함하는 것을 특징으로 하는 IC 카드.
  9. 기존에 알고 있는 소수 q의 2배의 비트길이를 갖는 소수 N을 생성하는 소수생성장치에 있어서,
    소수 q 및 n개의 소수 L1, L2, ···, Ln을 취득하고, 여기서, 소수 L1, L2, ···, Ln은 각각 소수 q보다 작은 2 이외의 소수이며, 소수 q는 q = 1 mod Li(i = 1, 2, ···, n)를 만족하는 취득수단과,
    취득한 상기 소수 L1, L2, ···, Ln에 관한 수를 제외한 선택에 의해 취득한 상기 소수 q의 2배의 비트길이를 갖는 수 N을 생성하는 생성수단과,
    생성한 수 N의 소수판정을 행하여, 수 N이 소수라고 판정된 경우에, 수 N을 소수로서 출력하는 판정수단을 포함하는 것을 특징으로 하는 소수생성장치.
  10. 기존에 알고 있는 소수 q의 2배의 비트길이를 갖는 소수 N을 생성하는 소수생성장치에서 이용되는 소수생성방법에 있어서,
    소수 q 및 n개의 소수 L1, L2, ···, Ln을 취득하고, 여기서, 소수 L1, L2, ···, Ln은 각각 소수 q보다 작은 2 이외의 소수이며, 소수 q는 q = 1 mod Li(i = 1, 2, ···, n)를 만족하는 취득단계와,
    취득한 상기 소수 L1, L2, ···, Ln에 관한 수를 제외한 선택에 의해 취득한 상기 소수 q의 2배의 비트길이를 갖는 수 N을 생성하는 생성단계와,
    생성한 수 N의 소수판정을 행하여, 수 N이 소수라고 판정된 경우에, 수 N을소수로서 출력하는 판정단계를 포함하는 것을 특징으로 하는 소수생성방법.
  11. 기존에 알고 있는 소수 q의 2배의 비트길이를 갖는 소수 N을 생성하는 컴퓨터로 이용되는 소수생성 프로그램에 있어서,
    소수 q 및 n개의 소수 L1, L2, ···, Ln을 취득하고, 여기서, 소수 L1, L2, ···, Ln은 각각 소수 q보다 작은 2 이외의 소수이며, 소수 q는 q = 1 mod Li(i = 1, 2, ···, n)를 만족하는 취득단계와,
    취득한 상기 소수 L1, L2, ···, Ln에 관한 수를 제외한 선택에 의해 취득한 상기 소수 q의 2배의 비트길이를 갖는 수 N을 생성하는 생성단계와,
    생성한 수 N의 소수판정을 행하여, 수 N이 소수라고 판정된 경우에, 수 N을 소수로서 출력하는 판정단계를 포함하는 것을 특징으로 하는 소수생성 프로그램.
  12. 기존에 알고 있는 소수 q의 2배의 비트길이를 갖는 소수 N을 생성하는 컴퓨터에서 이용되는 소수생성 프로그램을 기록하고 있는 컴퓨터 판독가능한 기록매체에 있어서,
    상기 소수생성 프로그램은,
    소수 q 및 n개의 소수 L1, L2, ···, Ln을 취득하고, 여기서, 소수 L1, L2, ···, Ln은 각각 소수 q보다 작은 2 이외의 소수이며, 소수 q는 q = 1 mod Li(i =1, 2, ···, n)를 만족하는 취득단계와,
    취득한 상기 소수 L1, L2, ···, Ln에 관한 수를 제외한 선택에 의해 취득한 상기 소수 q의 2배의 비트길이를 갖는 수 N을 생성하는 생성단계와,
    생성한 수 N의 소수판정을 행하여, 수 N이 소수라고 판정된 경우에, 수 N을 소수로서 출력하는 판정단계를 포함하는 것을 특징으로 하는 소수생성 프로그램.
KR1020020020752A 2001-04-17 2002-04-17 정보보안장치, 소수생성장치 및 소수생성방법 KR20020081120A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2001-00117842 2001-04-17
JP2001117842 2001-04-17

Publications (1)

Publication Number Publication Date
KR20020081120A true KR20020081120A (ko) 2002-10-26

Family

ID=18968317

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020020752A KR20020081120A (ko) 2001-04-17 2002-04-17 정보보안장치, 소수생성장치 및 소수생성방법

Country Status (6)

Country Link
US (1) US7130422B2 (ko)
EP (2) EP1465366B1 (ko)
KR (1) KR20020081120A (ko)
CN (1) CN1267816C (ko)
DE (2) DE60212248T2 (ko)
TW (1) TWI244610B (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2841411B1 (fr) * 2002-06-19 2004-10-29 Gemplus Card Int Procede de generation de cles electroniques pour procede de crytographie a cle publique et objet portatif securise mettant en oeuvre le procede
US7706528B2 (en) 2003-12-26 2010-04-27 Panasonic Corporation Prime calculating apparatus, key issuing system, and prime calculation method
JP2006023957A (ja) * 2004-07-07 2006-01-26 Sony Corp 半導体集積回路及び情報処理装置
JP2006155393A (ja) * 2004-11-30 2006-06-15 Toshiba Corp サーバ融通装置、サーバ融通方法およびサーバ融通プログラム
FR2879866B1 (fr) * 2004-12-22 2007-07-20 Sagem Procede et dispositif d'execution d'un calcul cryptographique
US7945784B1 (en) * 2005-08-19 2011-05-17 Adobe Systems Incorporated Method and system to perform secret sharing
WO2008104482A2 (en) * 2007-02-27 2008-09-04 Thomson Licensing A method and a device for generating compressed rsa moduli
US8472620B2 (en) * 2007-06-15 2013-06-25 Sony Corporation Generation of device dependent RSA key
US8433064B2 (en) * 2009-12-15 2013-04-30 Microsoft Corporation Secret encryption with public or delegated comparison
JP5848106B2 (ja) * 2011-11-28 2016-01-27 ルネサスエレクトロニクス株式会社 半導体装置及びicカード
EP2791784A1 (fr) * 2011-12-15 2014-10-22 Inside Secure Procede de generation de nombres premiers prouves adapte aux cartes a puce
CN102591618B (zh) * 2011-12-23 2014-12-10 飞天诚信科技股份有限公司 一种在嵌入式系统中生成大素数的方法
US9800407B2 (en) * 2013-08-30 2017-10-24 Qualcomm Incorporated Methods and apparatuses for prime number generation and storage
CN106023040B (zh) * 2016-06-03 2021-09-14 奥奈斯特(宁波)软件技术有限公司 一种积分管理系统
CN108055128B (zh) * 2017-12-18 2021-11-19 数安时代科技股份有限公司 Rsa密钥的生成方法、装置、存储介质及计算机设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3626340B2 (ja) 1996-12-26 2005-03-09 株式会社東芝 暗号装置及び暗号鍵生成方法、並びに素数生成装置及び素数生成方法
JP3835896B2 (ja) * 1997-07-30 2006-10-18 富士通株式会社 素数生成装置,B−smooth性判定装置及び記録媒体
US20020099746A1 (en) * 1999-07-26 2002-07-25 Tie Teck Sing T-sequence apparatus and method for general deterministic polynomial-time primality testing and composite factoring
US7120248B2 (en) * 2001-03-26 2006-10-10 Hewlett-Packard Development Company, L.P. Multiple prime number generation using a parallel prime number search algorithm

Also Published As

Publication number Publication date
EP1251654A2 (en) 2002-10-23
EP1465366A1 (en) 2004-10-06
DE60212248T2 (de) 2006-10-05
US20020176573A1 (en) 2002-11-28
DE60220717T2 (de) 2007-10-04
CN1267816C (zh) 2006-08-02
DE60220717D1 (de) 2007-07-26
EP1251654B1 (en) 2006-06-14
CN1381782A (zh) 2002-11-27
EP1465366B1 (en) 2007-06-13
DE60212248D1 (de) 2006-07-27
US7130422B2 (en) 2006-10-31
EP1251654A3 (en) 2003-07-16
TWI244610B (en) 2005-12-01

Similar Documents

Publication Publication Date Title
US7372961B2 (en) Method of public key generation
Kapoor et al. Elliptic curve cryptography
US8184803B2 (en) Hash functions using elliptic curve cryptography
JP4842276B2 (ja) 楕円曲線上の新しいトラップドア1方向性関数と、その、より短い署名及び非対称暗号化への応用
JP5544355B2 (ja) 共有の秘密の確認の方法およびシステム
US7634084B2 (en) Prime calculation device, method, and key issuing system
JP4137385B2 (ja) 公開鍵および秘密鍵による暗号化方法
AU1132199A (en) A non-deterministic public key encryption system
US8462939B2 (en) RNS-based cryptographic system and method
US6898284B2 (en) Cryptographic identification and digital signature method using efficient elliptic curve
KR20050034238A (ko) Rsa 알고리즘을 이용한 보안유지시스템 및 그 방법
KR20020081120A (ko) 정보보안장치, 소수생성장치 및 소수생성방법
US8705740B2 (en) Elliptic curve-based message authentication code system and method
JP2006506668A (ja) 複数鍵を用いたストリーム暗号の生成方法
Agrawal et al. Elliptic curve cryptography with hill cipher generation for secure text cryptosystem
EP1330702B1 (en) Method and system of using an insecure crypto-accelerator
Jeng et al. An ECC-based blind signature scheme
EP2395698B1 (en) Implicit certificate generation in the case of weak pseudo-random number generators
CN109361506B (zh) 信息处理方法
JPH0946332A (ja) Rsa型手順により暗号化された通信文用通信システム
CN114257402B (zh) 加密算法确定方法、装置、计算机设备和存储介质
JP4102090B2 (ja) 情報セキュリティ装置、素数生成装置及び素数生成方法
Dhamodharan et al. Multifarious mapping schemes on Elliptic curve cryptography for IoT security
CN115001741B (zh) 一种数据加密方法及相关组件
JP4676071B2 (ja) べき乗剰余演算方法、逆数演算方法およびそれらの装置

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
E801 Decision on dismissal of amendment
B601 Maintenance of original decision after re-examination before a trial
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20080910

Effective date: 20100202

S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
NORF Unpaid initial registration fee