KR20100053507A - 유한체 연산을 이용한 암호화된 무작위 숫자 생성기 - Google Patents

유한체 연산을 이용한 암호화된 무작위 숫자 생성기 Download PDF

Info

Publication number
KR20100053507A
KR20100053507A KR1020107001488A KR20107001488A KR20100053507A KR 20100053507 A KR20100053507 A KR 20100053507A KR 1020107001488 A KR1020107001488 A KR 1020107001488A KR 20107001488 A KR20107001488 A KR 20107001488A KR 20100053507 A KR20100053507 A KR 20100053507A
Authority
KR
South Korea
Prior art keywords
finite
output
finite field
input
post
Prior art date
Application number
KR1020107001488A
Other languages
English (en)
Other versions
KR101332232B1 (ko
Inventor
세르게이 그리복
알렉산더 안드레브
세르게이 가스코브
Original Assignee
엘에스아이 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘에스아이 코포레이션 filed Critical 엘에스아이 코포레이션
Publication of KR20100053507A publication Critical patent/KR20100053507A/ko
Application granted granted Critical
Publication of KR101332232B1 publication Critical patent/KR101332232B1/ko

Links

Images

Classifications

    • 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/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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
    • G06F7/724Finite field arithmetic

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Logic Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Complex Calculations (AREA)

Abstract

빠르고 정확하고 암호법적으로 강한 무작위 숫자 생성기를 제공하는 집적 회로 칩에 대한 다양한 설명적인 실시예들에서 장치(100)와 방법(200)이 제공된다. 설명적인 일 실시예에서, 상기 장치는 초기 무작위 소스(10, 310)와, 상기 초기 무작위 소스(10, 310)와 통신 연결된 후-처리 블록(20)을 포함한다. 이러한 설명적인 실시예에서 상기 후-처리 블록(20)은, 상기 초기 무작위 소스(10, 310)로부터 신호들을 수신하고, 상기 신호들에 하나 이상의 유한체 연산을 적용하여 출력을 생성하고, 그리고 출력 채널(22)을 통해 상기 출력에 기초하는 출력 신호를 제공하도록 구성된다.

Description

유한체 연산을 이용한 암호화된 무작위 숫자 생성기{CRYPTOGRAPHIC RANDOM NUMBER GENERATOR USING FINITE FIELD OPERATIONS}
본 명세서는 반도체 집적 회로들와 같은 전기 회로들에 관한 것이다. 보다 상세하게는 본 명세서는 트루(true) 무작위 숫자 생성기들로서의 역할을 하는 전기 회로들에 관한 것이다.
반도체 집적 회로들은 종종 하나의 칩 상에 수천수만의 반도체 요소들을 포함한다. 이들 요소들은 원하는 기능을 수행하도록 상호연결된다.
집적 회로 칩에 의해서 수행될 수 있는 이러한 일 기능은 무작위 숫자 생성이다. 무작위 숫자 생성기(RNG; random number generation)는 무작위 하나로서 시퀸스가 사용될 수 있도록, 요소들의 시퀸스를 생성하도록 구성된 장치이다. 무작위 숫자 생성기에 의해 제공된 무작위 시퀀스의 암호화 강도를 측정하는 다양한 무작위성 시험 기구들(suites)에 의해서 이러한 무작위성이 전형적으로 평가될 수 있다. 무작위 숫자 생성기들과 같은 사용된 많은 구성요소들은 사실상(actually) 의사 무작위 추출(pseudorandom)이거나 그렇지 않으면 암호법적으로(cryptographically) 약하다; 그들은 일부 무작위성 양상(appearance)을 포함할 수 있지만, 실제로는 분석시 얼마간의 예측가능성을 가지도록 노출될 수 있다. 다른 한편으로, 암호법적으로 강한 무작위 숫자 생성기는 상당한(significant) 분석에도 불구하고 여전히 예측불가한 무작위 숫자 시퀀스를 생성하여 그 결과, 무작위 숫자 생성기의 완전한 사양이 주어졌음에도 불구하고 무작위 출력의 후속 비트가 무엇이 될지를 예측하는 것이 연산적으로(computationally) 불가능하게 된다.
키 생성, 스트림 암호 설계(stream ciphers' design) 등과 같은 암호화(cryptographic) 작업에 대하여 암호화 집적 회로들에서 암호법적으로 강한 RNG들이 사용된다.
빠르고 정확하고 암호법적으로 강한 유닛을 구비하는 트루 무작위 숫자들을 생성하기 위한 개선된 방법 및 장치가 요구된다.
전술한 내용은 단지 일반적인 배경 정보를 제공하기 위한 것이며 청구된 특허 대상(subject matter)의 범주(scope)를 결정하는 것에 있어서 보조(aid)로서 사용되도록 의도되지 아니한다.
본 명세서의 일 양태(aspect)는 장치에 관한 것이다. 설명적인 일 실시예에 따르면, 상기 장치는 초기 무작위 소스와, 상기 초기 무작위 소스와 통신 연결된 후-처리 블록을 포함한다. 이러한 설명적인 실시예에서 상기 후-처리 블록은, 상기 초기 무작위 소스로부터 신호들을 수신하고, 상기 신호들에 하나 이상의 유한체 연산을 적용하여 출력을 생성하고, 그리고 출력 채널을 통해 상기 출력에 기초하는 출력 신호를 제공한다.
본 명세서의 다른 양태는 방법에 관한 것이다. 설명적인 일 실시예에 따르면, 상기 방법은 링 오실레이터에 의해서 초기 무작위 신호를 생성하는 것을 포함한다. 복수의 선택적인 입력 신호 중에서 선택하기 위해서 제어 신호로서 상기 초기 무작위 신호를 사용한다. 상기 입력 신호들에 대하여 하나 이상의 유한체 연산을 수행한다. 이러한 설명적인 실시예에서 하나 이상의 유한체 연산들의 결과가 출력 신호로서 제공된다.
본 명세서의 다른 양태는 집적 회로 장치에 관한 것이다. 설명적인 일 실시예에 따르면, 상기 집적 회로 장치는 링 오실레이터와, 멀티플렉서와, 유한체 곱셈 구성요소와, 유한체 제곱 구성요소와, 그리고 누적기를 포함한다. 멀티플렉서는 두 데이터 신호 입력들, 제어 신호 입력, 출력을 포함한다. 상기 제어 신호 입력은 상기 링 오실레이터의 출력에 통신 연결된다. 유한체 곱셈 구성요소는 제1 입력, 제2 입력, 및 출력을 포함한다. 상기 유한체 곱셈 구성요소의 제1 입력이 상기 멀티플렉서의 출력에 통신 연결된다. 유한체 제곱 구성요소는 입력과 출력을 포함한다. 상기 유한체 제곱 구성요소의 출력이 상기 유한체 곱셈 구성요소의 제2 입력에 통신 연결된다. 누적기는 입력과 출력을 포함한다. 이러한 설명적인 실시예에서, 상기 누적기의 입력이 상기 유한체 곱셈 구성요소의 출력에 통신 연결되고 상기 누적기의 출력이 상기 유한체 제곱 구성요소의 입력과 출력 채널에 통신 연결된다.
이러한 요약은 이하 상세한 설명에서 더 기술된, 개념(concept)들의 일 선택을 단순화된 형태로 도입하기 위해 제공된다. 이러한 요약은 청구된 특허 대상의 핵심 특징들 또는 필수적인 특징들을 나타내도록 의도되지 아니하며, 청구된 특허 대상의 범주를 결정하는 것에 있어서 보조로서 사용되도록 의도되지 아니한다. 청구된 특허 대상은 배경 기술에 명시된 어떤 또는 모든 불이익들을 해결하는 시행(implementation)들로 제한되지 아니한다.
도 1은 본 발명의 설명적인 일 실시예에 따른, 무작위 숫자 생성기 코어 모듈 구조를 나타내는 블록 다이어그램을 제공한다.
도 2는 본 발명의 설명적인 일 실시예에 따른, 무작위 숫자를 생성하는 방법을 나타내는 순서도를 제공한다.
도 3은 본 발명의 설명적인 일 실시예에 따른, 무작위 숫자 생성기를 위한 초기 무작위 소스를 나타내는 블록 다이어그램을 제공한다.
도 1은 본 명세서에서의 설명적인 실시예에 따라서, 유한체 연산을 사용하여 무작위 숫자들(random numbers)을 생성하도록 구성된 장치(100)를 나타내는 블록 다이어그램을 제공한다. 상기 장치(100)는 예를 들어 하나 이상의 집적 회로 칩들 상에 묘사된(depict) 서로 다른 요소들을 구현하는 집적 회로 장치로서 구현될 수 있다. 개개의 입력들 및 출력들을 거치는 것과 같이, 하나의 구성요소로부터 다른 하나에 신호를 전송할 수 있는 통신 연결(communicative connection)에 의해서 이러한 요소들이 서로 연결될 수 있다. 상기 장치(100)는 이 설명적인 실시예에서 초기 무작위 소스(10)와 상기 초기 무작위 소스(10)의 출력(B)에 의해서 초기 무작위 소스(10)와 통신 연결된 후-처리 블록(20)을 포함한다. 초기 무작위 소스(10)는 예를 들어 하나 이상의 링 오실레이터로서 구현될 수 있다. 이하 도 2를 참조하여 초기 무작위 소스의 설명적인 일 실시예를 설명한다.
후-처리 블록(20)은 설명적인 실시예에서 멀티플렉서(12), 유한체 곱셈 구성요소(14), 유한체 제곱 구성요소(16), 누적기(accumulator)(18), 및 출력 채널(22)을 포함하는 수 개의(several) 구성요소들을 포함한다. 유한체 곱셈 구성요소(14)와 유한체 제곱 구성요소(16)는 예를 들어 갈루아체(Galois field) 연산으로서도 알려진 유한체 연산을 실행하도록 구성된 후-처리 블록(20) 내 요소들의 설명적인 예들이다.
멀티플렉서(12)는 두 개의 데이터 신호 입력들(C1 및 C2)과 초기 무작위 소스(10)의 출력(B)에 연결된 제어 신호 입력과 유한체 곱셈 구성요소(14)의 제1 입력(13)에 연결된 출력을 포함한다. 이렇게 후-처리 블록(20)은 멀티플렉서(12)로부터 유한체 곱셈 구성요소(14)에 출력 신호(BM)을 통신하도록 구성된다. 멀티플렉서(12)의 출력에 통신 연결된 제1 입력(13) 외에도 유한체 곱셈 구성요소(14)는 또한 제2 입력(15)과 누적기(18)에 통신 연결된 출력을 구비한다. 유한체 곱셈 구성요소(14)는 본 설명적인 실시예에서, 두 입력들(13 및 15)을 통해 수신된 두 신호들에 대한 유한체 곱셈 연산을 수행하여 결과적인 출력 신호를 생성하고, 결과적인 출력 신호(Z)를 누적기(18)에 통신하도록 구성된다.
누적기(18)는 입력과 출력을 포함하는데, 입력은 유한체 곱셈 구성요소(14)의 출력에 연결된다. 누적기(18)의 출력에 연결된 노드는 그 출력이 유한체 제곱 구성요소(16) 및 출력 채널(22) 양자에 연결되도록 허용한다. 유한체 제곱 구성요소(16)는 입력의 유한체 제곱과 같은 유한체 제곱 연산을 수행하도록 구성된다. 유한체 제곱 구성요소(16)는 누적기(18)의 출력에 연결된 입력과 유한체 곱셈 구성요소의 제2 입력(15)에 연결된 출력을 포함한다. 이로써 유한체 곱셈 구성요소(14), 유한체 제곱 구성요소(16), 및 누적기(18)는 순환 루프(cyclic loop)를 형성하고 한편, 누적기(18)는 그 출력 신호를 출력 채널(22)에 제공하고, 이것은 장치(10)로부터 최종 무작위 출력의 반복(iteration)을 전달할 수 있다. 또한 출력 채널(20)은 누적기(18)로부터의 출력 신호를 그대로 제공할 수 있거나, 또는 설명적인 일 실시예에서 그 중간으로부터와 같이 출력 신호로부터 비트들의 부분집합(subset)을 선택하는 것과 같은 부가적인 종단-처리 단계들(end-processing steps)을 수행하고 최종 무작위 출력 신호로서 상기 비트들의 부분집합을 제공할 수 있다. 따라서 장치(10)의 본 설명적인 실시예에 따르면 최종 무작위 출력 신호는 암호법적으로(cryptographically) 강하고 그 반복이 신속하게 그리고 컴팩트 패키지(compact package)로부터 제공될 수 있다.
이 설명적인 실시예에서 초기 무작위 소스(10)에 의해서 제어되는 선택에 의해서 멀티플렉서(12)에의 입력들 중 선택된다는 점에서, 유한체 곱셈 구성요소(14)의 제1 입력에 제공된 신호가 초기 무작위 소스에 기초한다. 다른 실시예들에서, 초기 무작위 소스(10)의 출력을 직접 또는 하나 이상의 이전 변환(prior transformation)을 거친 후에 수신하거나 초기 무작위 소스의 출력에 의해서 몇몇 다른 방식으로 제어되는 신호를 수신하는 것과 같이, 유한체 곱셈 구성요소(14)의 입력에 제공된 신호는 개개의 실시예들에서 다양한 다른 방식들로 초기 무작위 소스(10)의 출력에 기초할 수 있다.
이에 의해서 유한체 곱셈 구성요소(14)와 유한체 제곱 구성요소(16)와 같은 구성요소들을 사용하여, 초기 무작위 소스(10)에 기초하는 입력 신호(BM)을 수신하고 입력 신호(BM)에 유한체 연산들을 적용하고 무작위화된 출력(Z)을 생성하고 출력 채널(22)을 통해 출력 신호(A)-여기서 출력 신호(A)는 무작위화된 출력(Z)에 적어도 부분적으로 기초한다-를 제공하도록 후-처리 블록(20)이 구성된다. 출력 신호(A)는 또한 유한체 제곱 구성요소(16)에 통신되는데, 유한체 제곱 구성요소(16)는 유한체 제곱을 수행하여서 출력으로서 A2 = A*A를 제공하고 A2은 유한체 곱셈 구성요소(14)의 제2 입력(15)에 제공된다. 이로써 다음의 수학식에 따라서 생성된 무작위화된 출력(Z)의, 무작위화된 신호의 각각의 반복 n에 대하여, 후-처리 블록(20)에 대한 결합된 유한체 연산이 주어진다:
Z(n+1) = BM * [A(n)]2
장치(100)의 구성요소들에 대한 보다 상세한 설명에 앞서서, 도 2의 순서도를 참조하여 장치(100)의 기능을 보다 상세하게 기술할 것이다. 도 2는 설명적으로 도 1의 장치(100)에 의해서 수행될 수 있는 것과 같은, 유한체 연산들을 사용하여, 무작위 숫자를 생성하는 방법(200)을 나타내는 순서도를 제공한다. 방법(200)은, 예를 들어 장치(100)의 초기 무작위 소스(10)에 의해서 설명적으로 행해질 수 있는 것과 같은, 초기 무작위 신호를 생성하는 단계 201을 포함한다. 방법(200)은, 예를 들어 장치(100)의 멀티플렉서(12)에 의해서 설명적으로 행해질 수 있는 것과 같은, 복수의 선택적인 입력 신호들로부터 선택하기 위해 제어 신호로서 초기 무작위 신호를 사용하는 단계 203을 더 포함한다. 복수의 선택적인 입력 신호들은 도 1의 멀티플렉서(12)로의 두 입력들로 도시된 바와 같은, 두 선택적인 입력 신호들일 수 있거나, 다른 실시예들에서 셋 또는 그 이상의 선택될 선택적인 입력들을 포함할 수 있다. 방법(200)은, 예를 들어 장치(100)의 예시에서 유한체 곱셈 구성요소(14) 및 유한체 제곱 구성요소(16) 중 어느 하나 또는 양자에 의해서 설명적으로 행해질 수 있는 것과 같은, 입력 신호들에 대한 하나 이상의 유한체 연산을 수행하는 단계 205를 더 포함한다. 방법(200)은, 예를 들어 장치(100)에서 누적기(18) 및/또는 출력 채널(22)에 의해서 설명적으로 행해질 수 있는 것과 같은, 하나 이상의 유한체 연산의 결과에 적어도 부분적으로 기초하여 출력 신호를 제공하는 단계(207)를 더 포함한다. 장치(100)가 비록 방법(200)의 단계들을 수행하도록 구성된 하드웨어 요소들의 특정하게 설명된 예시들을 제공하고 있지만, 방법(200)의 다른 실시예들을 수행하기 위해서 다양한 다른 시행들이 또한 사용될 수 있다.
후-처리 블록(20) 내 유한체 연산 요소들의 설명적인 예시들로서 도 1에서 유한체 곱셈 구성요소(14)와 유한체 제곱 구성요소(16)를 도시하였지만, 후-처리 블록들의 다른 실시예들은 단지 하나의 유한체 연산 요소를 포함할 수 있거나, 도 1에 도시된 것처럼 두 개의 유한체 연산 요소를 포함할 수 있거나 또는 더 많은 수의 유한체 연산 요소를 포함할 수 있다. 이러한 유한체 연산 요소는 유한체 덧셈, 유한체 곱셈, 유한체 제곱, 또는 임의의 다른 유한체 연산을 수행하도록 구성될 수 있다. 또한 유한체 연산 요소에 의해 생성 및 수신되는 신호들은 다른 실시예들에서 다양한 구성들로 배열될 수 있다. 도 1의 설명적인 실시예가 유한체 제곱 요소에 입력을 제공하는 유한체 곱셈 요소와 차례로 유한체 곱셈 요소에의 입력들의 하나로서 그 출력을 제공하는 유한체 제곱 요소를 특징으로 하고 있지만, 이것은 단지 예시적인 구성일 뿐이다.
다른 구성들은 예를 들어 유한체 덧셈 구성요소에의 또는 유한체 곱셈 요소에의 또는 유한체 제곱 구성요소에의 또는 다른 유형의 유한체 연산 구성요소에의 입력들로서 하나 이상의 유한체 연산 요소의 출력들을 사용할 수 있다. 또한 제2 유한체 연산 요소로부터의 출력이 제3 유한체 연산 요소에 대한 입력으로서 사용되고, 제3 유한체 연산 요소로부터의 출력이 제1 유한체 연산 요소 또는 제4 유한체 연산 요소의 입력으로서 사용되고, 제4 유한체 연산 요소의 출력이 제1 유한체 연산 요소 또는 제5 유한체 연산 요소의 입력으로 사용되는 식으로, 제3 유한체 연산 요소, 제4 유한체 연산 요소, 또는 다른 수의 유한체 연산 요소가 도 1에 도시된 처음의 두 유한체 연산 구성요소들과 연결될 수 있다. 이들 유한체 연산 요소 중 어느 것은 유한체 덧셈 요소, 유한체 곱셈 요소, 유한체 제곱 요소, 또는 어떤 다른 유형의 유한체 연산 요소일 수 있다. 따라서 이러한 요소들은 초기 무작위 소스에 기초한 신호에 임의의 다양한 유한체 연산들을 적용하는 후-처리 블록(20)을 구성하는 데에 기여한다. 따라서 임의의 상호 연결되는 유한체 연산 요소의 다양한 구성이 다양한 다른 실시예에 따라서 암호법적으로 강한 무작위 출력들을 생성하는 데에 사용될 수 있다.
유한체 연산들은 암호법적으로 강한 무작위 출력을 생성하는데에 적절하다. 유한체는 단지 유한히 많은 요소들을 포함하는 필드(field)이다. 모든 유한체는 몇몇 소수 p와 몇몇 정수 n>0에 대하여 pn 요소들을 가져서, 유한체는 GF(pn)로 표기된다(여기서 "GF"는 유한체에 대한 약어로서 갈루아체를 가키킨다). 몇몇 실시예들에서, 유한체를 GF(2n)로 표현할 때 p=2를 사용하는 것이 실제적이라고 알려졌다. 이러한 경우에, GF(2n)의 요소들은 n-비트 2원 벡터들(n-bit binary vectors)로서 간주될 수 있다.
유한체 연산들은 유한체 곱셈 구성요소(14), 유한체 제곱 구성요소(16), 유한체 덧셈 구성요소(도 1의 설명적인 실시예에서는 미포함) 또는 다른 유형의 유한체 연산 요소와 같은 하드웨어 요소들에 의해서 효율적으로 구현될 수 있다. 설명적인 예시로서, 상응하는 2원 벡터들의 비트 단위 추가(bitwise addition)를 사용하여 유한체 덧셈 구성요소가 구현될 수 있다. 다른 설명적인 예시로서, 대략 7n2 논리 NAND 게이트들을 포함하고 대략 4log(n)의 논리 레벨들의 최대 수를 가지는 회로에 의해서 유한체 곱셈 요소가 구현될 수 있다. 또 다른 설명적인 예시로서, 유한체 제곱을 수행하는 유한체 제곱 요소는, 입력 2원 벡터의 순환 이동(cyclic shift)을 사용하여 구현될 수 있다. 또한 다른 연산들이 다른 유한체 연산 요소로서 구현될 수 있다.
예를 들어, 설명적인 일 실시예에서, 유한체 연산 요소는, n이 16과 32 사이의 소수인 정수인, 유한체들 GF(2n)에 걸쳐서(over) 유한체 연산들을 수행하도록 구성될 수 있다. 상기 간격 내에는 다섯 개의 소수인 정수들이 존재한다: 17, 19, 23, 29, 및 31. 그러므로 유한체들은 각각 217, 219, 223, 229, 또는 231 요소들 중 하나를 가질 것이다. 이러한 유한체들에 의한 연산에 대하여 유한체 연산 구성요소들은, 설명적으로 대략 7n2 논리 NAND 게이트들에 의해서 구현될 것이다. 설명적으로 7n2에 근사하는 복수의 논리 NAND 게이트들에 의해서 구현될 수 있는 한편, n이 17, 19, 23, 29, 또는 31 중의 어느 하나인 경우의 변화에 유사한, 또는 몇몇 경우들에서 훨씬 더 큰, 상기 값으로부터의 상당한 변화 범위가 허용되는 다른 유한체 연산 구성요소들이 사용될 수도 있다. 또 다른 예시들에서, 유한체 연산 요소는 다른 유형의 논리 게이트들에 의해서, NAND 게이트들과 다른 유형의 논리 게이트들의 혼합에 의해서, 또는 논리 게이트들 이외의 다른 수단에 의해서 구현될 수도 있다.
도 3은 도 1에서의 장치(100)의 초기 무작위 소스(10)로서 사용될 수 있는 초기 무작위 소스(310)의 설명적인 일 실시예에 대한 부가적인 상세를 제공한다. 초기 무작위 소스(310)은 이러한 설명적인 실시예에서 링 오실레이터(301)와 오실레이터 제어기(303)를 포함한다. 링 오실레이터(301)는 이러한 예시에서 일련의 수개의 직렬 연결된 인버터들(305)을 포함한다. 세 개의 인버터들(305)가 도시되어 있지만, 이것은 단지 제안적인 것이며, 링 오실레이터(301)는 임의의 수의 인버터들을 포함할 수 있다. 링 오실레이터(301)는 또한 일련의 수개의 직렬 연결된 요소들인 예를 들어 버퍼들, 논리-OR 게이트들, 또는 논리-AND 게이트들과 같은, 다른 유형의 다양한 요소들을 포함할 수 있다.
일련의 인버터들(305)은 멀티플렉서(307)의 하나의 출력에 연결된다. 오실레이터 제어기는 멀티플렉서(307)의 다른 입력으로의 데이터 신호 출력(313)과 멀티플렉서(307)의 제어 셋팅으로의 제어 신호 출력(311)을 가진다. 따라서 멀티플렉서(307)의 출력(309)은, 이러한 설명적인 실시예에서, 초기 무작위 소스(310)으로부터의 초기 무작위 신호를 구성한다. 오실레이터 제어기(303)은 링 오실레이터(301)의 상태를 점검하고, 초기 무작위 신호가 예를 들어 10 내지 20과 같은 복수의 사이클들에 걸쳐서 토글링하고 있지 않다면, 오실레이터 제어기(303)은 출력(311)을 통한 제어 신호와 출력(313)을 통한 데이터 신호를 사용하여 링 오실레이터(301)를 새로운 값으로 설정할 수 있다. 이러한 구조로 인하여 링 오실레이터(310)가 알려진 상태로 리셋될 수 있거나 또는 금지된 중간 상태로의 오실레이터 천이를 막을 수 있다.
도 1의 장치(100)와 동등한 다른 실시예들에 대하여 사용된 초기 무작위 소스는, 링 오실레이터(310)과 같은 링 오실레이터를 포함할 수 있거나 또는 예를 들어 둘 이상의 링 오실레이터들을 포함할 수 있는데, 여기서 다른 실시예들에서 순 초기 무작위 신호(net initial random source)는 다수의 링 로실레이터들 및/또는 다른 무작위 소스 생성기들의 결합된 연산으로부터 도출된다. 또한 초기 무작위 소스는, 다른 실시예들에서 홀로 또는 링 오실레이터나 다른 무작위 생성기 요소들과 함께 유사-무작위 소스를 포함할 수 있다. 예를 들어, 유사-무작위 소스는 설명적으로 선형 되먹임 쉬프트 레지스터(linear feedback shift register)를 포함할 수 있다.
또한 초기 무작위 소스와 후-처리 블록의 조합은 예를 들어 더 큰 장치들 내에서 단지 몇몇 요소들을 이룰 수 있다. 장치는 병렬적으로(in parallel) 작동하는 다수의 무작위 숫자 생성기들 또는 몇몇 다른 협동하는 구성을 포함할 수 있는데, 여기서 하나 이상의 개별 무작위 숫자 생성기들은 각각 도 1의 장치(100)에 도시된 것과 같은 구성요소들의 완전한 패키지를 포함하거나 또는 다른 동등한 무작위 숫자 생성기 구성을 포함할 수 있다. 설명적인 일 실시예에서, 둘 이상의 무작위 숫자 생성기 서브시스템들의 각각으로부터 일련의 무작위 출력 비트들을 선택하는 것에 의하는 것과 같이, 전체적인 장치는 둘 이상의 병렬 무작위 숫자 생성기들의 개별 무작위 출력들에 기초하여 최종 무작위 출력을 도출할 수 있다. 또한 후-처리 블록(20)과 통신 연결되고 그리고 후-처리 블록(20)으로부터의 출력 신호를 수신하여 출력 신호의 하나 이상의 부가적인 변환(transformation)을 수행하도록 구성된 부가적인 요소들을 다른 장치가 포함할 수 있다. 다양한 다른 설명적인 실시예들에 따라서, 무작위 숫자 생성 장치들의 최종 출력 신호의 암호법적 강도에 추가적인 강건함(robustness)를 부가하기 위해서 이러한 메카니즘들 및 다른 메카니즘들이 기능할 수 있다.
비록 본 명세서가 하나 이상의 실시예들을 참조하여 기술되었지만, 본 발명이 속한 기술 분야의 통상의 기술자는 본 명세서로부터 또는 첨부된 청구항들로부터 벗어나지 아니하는 형태로 상세로 변경들이 행해질 수 있음을 이해할 수 있을 것이다. 설명적인 하나의 예시로서, 특정한 일 실시예에서 기술될 수 있는 구성요소들이 하나의 집적 회로 칩에서 등가적으로 제공될 수 있거나 또는 둘 이상의 집적 회로 칩들에 걸쳐 분포된 구성요소에 의해서 등가적으로 제공될 수 있거나 또는 다른 유형의 회로들, 연산 장치 요소들 및 다른 하드웨어들 그리고 다른 리소스들에 걸쳐 분포된 구성요소들에 의해서 등가적으로 제공될 수 있음을 이해할 수 있을 것이다. 다른 설명적인 예시로서, 어떤 요소가 "설명적으로(illustratively)"라고 기술되거나 "설명적인 예시"로서와 같이 기술된 경우는, 본 명세서에 명시적으로 기재된 것과는 다르지만 본 발명이 속한 기술 분야의 통상의 기술자에 의해서 첨부된 청구들에 의해서 정의되는 특허 대상의 범주 내에 속하는 것으로 이해될 수 있는, 다양한 다른 실시예들 이외의 가능한 일 실시예를 가리킨다는 것을 부분적으로 의미함을 이해할 수 있을 것이다. 다른 설명적인 예시로서, 전술한 방법 단계들은 하나 이상의 집적 회로 칩들에 의해서 수행될 수 있거나 하나 이상의 또는 모든 방법 단계들이 다른 유형의 하드웨어나 소프트웨어 요소들 상에서 수행될 수 있다. 본 명세서에 의해서 기술되고 이하의 첨부된 청구항들에 의해서 정의된 특허 대상의 경계 및 범위(metes and bounds) 내에서 다른 실시예들 중에 많은 다른 변형들이 행해질 수 있다.

Claims (20)

  1. 초기 무작위 소스; 그리고
    상기 초기 무작위 소스와 통신 연결된 후-처리 블록으로서, 상기 초기 무작위 소스에 기초한 입력 신호를 수신하고, 상기 입력 신호에 하나 이상의 유한체 연산을 적용하여 무작위화된 출력을 생성하고, 출력 채널을 통해 출력 신호를 제공하되 상기 출력 신호는 상기 무작위화된 출력에 적어도 부분적으로 기초하도록 구성된 후-처리 블록:을 포함하는
    장치.
  2. 제1 항에 있어서, 상기 후-처리 블록이 상기 입력 신호에 적용하도록 구성된 상기 하나 이상의 유한체 연산은,
    유한체 덧셈, 유한체 곱셈, 및 유한체 제곱:으로 이루어진 그룹으로부터 선택된 하나 이상의 연산을 포함하는,
    장치.
  3. 제2 항에 있어서, 상기 후-처리 블록이 상기 입력 신호에 적용하도록 구성된 상기 하나 이상의 유한체 연산은,
    유한체 덧셈, 유한체 곱셈, 및 유한체 제곱:으로부터 선택된 하나 이상의 부가적인 연산을 포함하는,
    장치.
  4. 제3 항에 있어서, 상기 후-처리 블록이 상기 입력 신호에 적용하도록 구성된 상기 하나 이상의 유한체 연산은,
    유한체 곱셈 및 유한체 제곱을 포함하는,
    장치.
  5. 제1 항에 있어서, 상기 후-처리 블록이 상기 입력 신호에 적용하도록 구성된 상기 하나 이상의 유한체 연산은,
    소수(prime number)의 n 제곱의 갈루아체(Galois field)에 걸친(over) 유한체 연산-여기서 n은 소수인 정수(prime integer)-을 포함하는,
    장치.
  6. 제5 항에 있어서, 상기 후-처리 블록은,
    17, 19, 23, 29, 및 31:로 이루어진 그룹으로부터 n을 선택하도록 추가적으로 구성된,
    장치
  7. 제5 항에 있어서,
    상기 소수는 2인,
    장치.
  8. 제1 항에 있어서, 상기 후-처리 블록은,
    상기 무작위 출력으로부터 비트들의 부분집합으로서 상기 출력 신호를 제공하도록 추가적으로 구성된,
    장치.
  9. 제1 항에 있어서,
    상기 초기 무작위 소스는 링 오실레이터를 포함하는,
    장치.
  10. 제9 항에 있어서, 상기 링 오실레이터는,
    복수의 직렬 연결된 요소들을 포함하되,
    상기 요소들은 인버터들, 버퍼들, 논리-OR 게이트들, 및 논리-AND 게이트들:로 이루어진 그룹으로부터 선택된 하나 이상의 요소 유형을 포함하는,
    장치.
  11. 제9 항에 있어서,
    상기 초기 무작위 소스는, 복수의 링 오실레이터들을 포함하는,
    장치.
  12. 제1 항에 있어서,
    상기 초기 무작위 소스는 유사-무작위 소스(pseudo-random source)를 포함하는,
    장치.
  13. 제12 항에 있어서,
    상기 유사-무작위 소스는 선형 되먹임 쉬프트 레지스터를 포함하는,
    장치.
  14. 제1 항에 있어서,
    상기 초기 무작위 소스와 상기 후-처리 블록은 제1 무작위 숫자 생성기에 포함되고,
    상기 장치는 상기 제1 무작위 숫자 생성기와 병렬적으로 동작하는 하나 이상의 부가적인 무작위 숫자 생성기들을 포함하고,
    상기 제1 무작위 숫자 생성기와 상기 하나 이상의 부가적인 무작위 숫자 생성기들의 각각으로부터 무작위 비트들을 상기 출력 신호가 포함하도록 상기 장치가 구성된,
    장치.
  15. 제1 항에 있어서,
    상기 후-처리 블록과 통신 연결되고, 상기 후-처리 블록으로부터 상기 출력 신호를 수신하고 상기 출력 신호의 하나 이상의 부가적인 변환(transformation)을 수행하도록 구성된 하나 이상의 부가적인 요소들을 더 포함하는,
    장치.
  16. 초기 무작위 신호를 생성하고;
    복수의 선택적인 입력 신호 중에서 선택하기 위해서 제어 신호로서 상기 초기 무작위 신호를 사용하고;
    상기 입력 신호들에 대하여 하나 이상의 유한체 연산을 수행하고; 그리고
    하나 이상의 유한체 연산들의 결과에 적어도 부분적으로 기초하여 출력 신호를 제공하는 것:을 포함하는,
    방법.
  17. 제16 항에 있어서, 상기 유한체 연산들은,
    유한체 덧셈, 유한체 곱셈, 및 유한체 제곱:으로 이루어진 그룹으로부터 선택된 하나 이상의 연산을 포함하는,
    장치.
  18. 링 오실레이터;
    두 데이터 신호 입력들, 제어 신호 입력, 출력을 포함하되, 상기 제어 신호 입력이 상기 링 오실레이터의 출력에 통신 연결된 멀티플렉서;
    제1 입력, 제2 입력, 및 출력을 포함하는 유한체 곱셈 구성요소로서, 상기 유한체 곱셈 구성요소의 제1 입력이 상기 멀티플렉서의 출력에 통신 연결된 유한체 곱셈 구성요소;
    입력과 출력을 포함하는 유한체 제곱 구성요소로서, 상기 유한체 제곱 구성요소의 출력이 상기 유한체 곱셈 구성요소의 제2 입력에 통신 연결된 유한체 제곱 구성요소; 그리고
    입력과 출력을 포함하는 누적기로서, 상기 누적기의 입력이 상기 유한체 곱셈 구성요소의 출력에 통신 연결되고 상기 누적기의 출력이 상기 유한체 제곱 구성요소의 입력과 출력 채널에 통신 연결된 누적기:를 포함하는,
    집적 회로 장치.
  19. 제18 항에 있어서,
    상기 유한체 곱셈 요소가 2의 n 제곱의 유한체에 걸쳐(over) 곱하도록 구성되되,
    상기 유한체 곱셈 요소는 대략 7n2 논리 NAND 게이트들을 포함하는,
    집적 회로 장치.
  20. 제18 항에 있어서,
    상기 유한체 제곱 구성요소는 입력 2원 벡터의 순환 시프트(cyclic shift)를 수행하도록 구성된,
    집적 회로 장치.
KR1020107001488A 2007-06-22 2008-06-12 유한체 연산을 이용한 암호화된 무작위 숫자 생성기 KR101332232B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/821,212 US8250129B2 (en) 2007-06-22 2007-06-22 Cryptographic random number generator using finite field operations
US11/821,212 2007-06-22
PCT/US2008/007346 WO2009002404A1 (en) 2007-06-22 2008-06-12 Cryptographic random number generator using finite field operations

Publications (2)

Publication Number Publication Date
KR20100053507A true KR20100053507A (ko) 2010-05-20
KR101332232B1 KR101332232B1 (ko) 2013-11-25

Family

ID=40137619

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107001488A KR101332232B1 (ko) 2007-06-22 2008-06-12 유한체 연산을 이용한 암호화된 무작위 숫자 생성기

Country Status (7)

Country Link
US (2) US8250129B2 (ko)
JP (1) JP5165755B2 (ko)
KR (1) KR101332232B1 (ko)
CN (1) CN101772915B (ko)
DE (1) DE112008001707T5 (ko)
GB (1) GB2464037B (ko)
WO (1) WO2009002404A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8390311B2 (en) 2011-02-08 2013-03-05 Iucf-Hyu (Industry-University Cooperation Foundation Hanvang University) Apparatus for clocked power logic against power analysis attack

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101965552B (zh) * 2008-03-04 2013-03-13 桑迪士克以色列公司 基于数控振荡器的数字随机数生成器
CN104636115B (zh) * 2013-11-14 2017-12-15 国家电网公司 一种真随机数后处理装置及方法
CN106096695A (zh) * 2016-06-07 2016-11-09 无锡键桥电子科技有限公司 一种用于无源标签芯片的随机数发生器
KR102652735B1 (ko) 2016-11-24 2024-04-02 삼성전자주식회사 조절 가능한 메타-스테이블 전압을 이용하는 난수 생성기 및 난수 생성 방법
US10776480B2 (en) 2018-04-02 2020-09-15 International Business Machines Corporation Producing volatile password hashing algorithm salts from hardware random number generators
CN111596892B (zh) * 2020-05-11 2023-06-23 南京西觉硕信息科技有限公司 一种软随机数发生方法及发生器
CN113206735A (zh) * 2020-12-23 2021-08-03 杭州起盈科技有限公司 一种采用32位lfsr生成流密码的存储器及读取方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4890252A (en) * 1987-10-29 1989-12-26 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Long period pseudo random number sequence generator
JPH0250512A (ja) * 1988-08-10 1990-02-20 Clarion Co Ltd 疑似ランダム雑音符号発生装置
EP0529512A3 (en) * 1991-08-23 1993-06-16 Fujitsu Limited Method and system for generating random number sequences
US5706218A (en) 1996-05-15 1998-01-06 Intel Corporation Random number generator
US5910907A (en) 1997-02-20 1999-06-08 C.K. Chen Shift register based pseudorandom number generator
US6285761B1 (en) * 1998-03-04 2001-09-04 Lucent Technologies, Inc. Method for generating pseudo-random numbers
US6452959B1 (en) * 1999-05-28 2002-09-17 Dot Wireless, Inc. Method of and apparatus for generating data sequences for use in communications
US6480072B1 (en) * 2000-04-18 2002-11-12 Advanced Micro Devices, Inc. Method and apparatus for generating random numbers
US7072927B1 (en) 2001-08-08 2006-07-04 Stephen Clark Purcell Method and apparatus for generating random numbers for use in a field programmable gate array
JP3525146B2 (ja) * 2001-11-05 2004-05-10 独立行政法人 科学技術振興機構 乱数列出力装置、乱数列出力方法、プログラムならびに、情報記録媒体
US7512645B2 (en) * 2004-03-19 2009-03-31 Texas Instruments Incorporated System and method for generating pseudorandom numbers
WO2006015625A1 (en) 2004-08-09 2006-02-16 Telecom Italia S.P.A. Method and apparatus for generating random data
JP4668931B2 (ja) 2005-01-24 2011-04-13 富士通株式会社 電力解析攻撃に対する耐タンパ性を持った暗号化処理装置
US20060224647A1 (en) * 2005-03-30 2006-10-05 Impinj, Inc. RFID tag using updatable seed values for generating a random number
US7233212B2 (en) 2005-03-31 2007-06-19 International Business Machines Corporation Oscillator array with row and column control
US8073631B2 (en) * 2005-07-22 2011-12-06 Psigenics Corporation Device and method for responding to influences of mind
CN1920841A (zh) * 2006-08-21 2007-02-28 北京工业大学 基于有限域GF(2m)的圆锥曲线公钥加密方法和装置
US20080263117A1 (en) * 2007-04-23 2008-10-23 Gregory Gordon Rose Initial seed management for pseudorandom number generator
US7995757B2 (en) 2007-05-31 2011-08-09 Harris Corporation Closed galois field combination

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8390311B2 (en) 2011-02-08 2013-03-05 Iucf-Hyu (Industry-University Cooperation Foundation Hanvang University) Apparatus for clocked power logic against power analysis attack

Also Published As

Publication number Publication date
KR101332232B1 (ko) 2013-11-25
US20080320066A1 (en) 2008-12-25
JP2010531018A (ja) 2010-09-16
WO2009002404A1 (en) 2008-12-31
GB2464037A (en) 2010-04-07
CN101772915B (zh) 2013-05-08
US20120278372A1 (en) 2012-11-01
CN101772915A (zh) 2010-07-07
GB2464037B (en) 2012-12-05
US8250129B2 (en) 2012-08-21
GB201001005D0 (en) 2010-03-10
DE112008001707T5 (de) 2010-09-16
JP5165755B2 (ja) 2013-03-21

Similar Documents

Publication Publication Date Title
KR101332232B1 (ko) 유한체 연산을 이용한 암호화된 무작위 숫자 생성기
KR20100127789A (ko) 디지털 제어 오실레이터를 기반으로한 디지털 난수 생성기
US9575726B2 (en) Bit sequence generator and apparatus for calculating a sub-rate transition matrix and a sub-rate initial state for a state machine of a plurality of state machines
Thomas et al. The LUT-SR family of uniform random number generators for FPGA architectures
US8880574B2 (en) State machine and generator for generating a description of a state machine feedback function
US20050097153A1 (en) Pseudorandom number generator
Sewak et al. FPGA implementation of 16 bit BBS and LFSR PN sequence generator: A comparative study
WO2002071204A1 (en) Random number generator based on permutation, substitution, compression and a plurality of variable frequency clocks
US7480687B2 (en) Pseudorandom number generator for a stream cipher
US20090204656A1 (en) Pseudo random number generator and method for generating a pseudo random number bit sequence
JP2010531018A5 (ko)
Gupta et al. Efficient hardware implementation of pseudo-random bit generator using dual-CLCG method
Schubert et al. On random pattern testability of cryptographic VLSI cores
TWI269222B (en) Random number generating method and its equipment with a multiple polynomial
US7502814B2 (en) Device and method for generating a pseudorandom sequence of numbers
Pandian et al. Five decade evolution of feedback shift register: algorithms, architectures and applications
Sekhar et al. An Efficient Pseudo Random Number Generator for Cryptographic Applications
Yu et al. On designing PUF-based TRNGs with known answer tests
Gupta et al. Hardware Efficient Hybrid Pseudo-Random Bit Generator Using Coupled-LCG and Multistage LFSR with Clock Gating Network
Chandravanshi et al. LFSR based RNG on low cost FPGA for QKD applications
Nivita et al. A BIST Circuit for Fault Detection Using Recursive Pseudo-Exhaustive Two Pattern Generator
Akhila et al. Implementation of Modified Dual-Coupled Linear Congruential Generator in Data Encryption Standard Algorithm
US20140286487A1 (en) Method for generating a one-way function
MADHUPAVANI et al. Design of Random Number Generation Using 256 Bit LFSR in FPGA
Bakunina et al. The Pseudorandom Key Sequences Generator Based on IV-Sets of Quaternary Bent-Sequences.

Legal Events

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