KR100737651B1 - 난수 생성 회로 - Google Patents

난수 생성 회로 Download PDF

Info

Publication number
KR100737651B1
KR100737651B1 KR1020060010022A KR20060010022A KR100737651B1 KR 100737651 B1 KR100737651 B1 KR 100737651B1 KR 1020060010022 A KR1020060010022 A KR 1020060010022A KR 20060010022 A KR20060010022 A KR 20060010022A KR 100737651 B1 KR100737651 B1 KR 100737651B1
Authority
KR
South Korea
Prior art keywords
random number
circuit
generation circuit
physical random
generating
Prior art date
Application number
KR1020060010022A
Other languages
English (en)
Other versions
KR20060089149A (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
Priority claimed from JP2005028113A external-priority patent/JP2006215824A/ja
Priority claimed from JP2005028114A external-priority patent/JP2006215825A/ja
Application filed by 산요덴키가부시키가이샤 filed Critical 산요덴키가부시키가이샤
Publication of KR20060089149A publication Critical patent/KR20060089149A/ko
Application granted granted Critical
Publication of KR100737651B1 publication Critical patent/KR100737651B1/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
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B5/00Measuring arrangements characterised by the use of mechanical techniques
    • G01B5/08Measuring arrangements characterised by the use of mechanical techniques for measuring diameters
    • G01B5/12Measuring arrangements characterised by the use of mechanical techniques for measuring diameters internal diameters
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16CSHAFTS; FLEXIBLE SHAFTS; ELEMENTS OR CRANKSHAFT MECHANISMS; ROTARY BODIES OTHER THAN GEARING ELEMENTS; BEARINGS
    • F16C17/00Sliding-contact bearings for exclusively rotary movement
    • F16C17/12Sliding-contact bearings for exclusively rotary movement characterised by features not related to the direction of the load
    • F16C17/24Sliding-contact bearings for exclusively rotary movement characterised by features not related to the direction of the load with devices affected by abnormal or undesired positions, e.g. for preventing overheating, for safety
    • F16C17/246Sliding-contact bearings for exclusively rotary movement characterised by features not related to the direction of the load with devices affected by abnormal or undesired positions, e.g. for preventing overheating, for safety related to wear, e.g. sensors for measuring wear
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B5/00Measuring arrangements characterised by the use of mechanical techniques
    • G01B5/0002Arrangements for supporting, fixing or guiding the measuring instrument or the object to be measured
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mechanical Engineering (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Manipulation Of Pulses (AREA)

Abstract

안전하고 예측 곤란한 난수를 생성하기 위해, M계열의 의사 난수를 생성하는 의사 난수 생성 회로와, 물리 난수를 생성하는 물리 난수 생성 회로와, 상기 물리 난수 생성 회로에 의해 생성된 물리 난수를 상기 의사 난수 생성 회로에 의해 생성된 의사 난수를 이용하여 변조하는 변조 회로를 구비한다. 또한, 상기 의사 난수 생성 회로는, 복수의 M계열의 의사 난수를 생성하는 것이 가능하고, 상기 물리 난수 생성 회로에 의해 생성된 물리 난수에 기초하여 상기 의사 난수 생성 회로가 생성하는 M계열을 절환한다.
의사 난수, 변조 회로, 물리 난수, 의사 난수 생성 회로

Description

난수 생성 회로{RANDOM NUMBERS PRODUCTING CIRCUIT}
도 1은 본 발명의 난수 생성 회로를 이용하는 일 실시예인 자동차의 자물쇠의 시정·해정을 행하는 키리스 엔트리 시스템의 전체 구성을 도시하는 도면.
도 2는 데이터 처리 회로의 구성을 도시하는 도면.
도 3은 키리스 엔트리 시스템의 자기(子機)와 친기(親機) 사이에서의 통신 수순을 나타내는 플로우차트.
도 4는 난수 생성 회로의 구성을 도시하는 도면.
도 5는 물리 난수 생성 회로(70)의 구성을 도시하는 도면.
도 6은 난수 생성 회로에서의 타이밍차트.
도 7은 물리 난수 및 의사 난수의 발생 확률을 도시하는 도면.
<도면의 주요 부분에 대한 부호의 설명>
1 : 키리스 엔트리 시스템
2 : 자기
3 : 친기
11 : 전지
12 : 조작 스위치
13, 21 : 데이터 처리 회로
14, 22 : 송수신 회로
23 : 구동 회로
24 : 액튜에이터
25 : 배터리
51A, 51B : CPU
52A, 52B : RAM
53A, 53B : EEPROM
54A, 54B : 난수 생성 회로
55A, 55B : 암호 처리 회로
56A, 56B : 입출력 포트
61 : 분주 회로
62 : 보우레이트 제너레이터
63 : 카운터
64 : 시프트 레지스터
65 : 마스크 A 레지스터
66 : 마스크 B 레지스터
67 : 멀티플렉서
68 : AND 회로
69 : 홀수 패리티 제너레이터
70 : 물리 난수 생성 회로
71 : OR 회로
72 : D형 플립플롭
73 : AND 회로
74 : OR 회로
75 : EXOR 회로
76 : 멀티플렉서
77 : 시프트 레지스터
[특허 문헌 1] 일본 공개특허 2000-66592호 공보
[특허 문헌 2] 일본 공개특허 2004-157168호 공보
본 발명은, 데이터의 암호화 등에 이용되는 난수를 생성하는 난수 생성 회로에 관한 것이다.
최근, 여러 가지 정보 처리 시스템에서, 데이터의 암호화가 행해지고 있다. 암호화에서는, 안전성을 향상시키기 위해서 난수가 이용되는 경우가 많다. 이러한 난수로서는, 예를 들면 선형 귀환 시프트 레지스터를 이용하여 생성 가능한 M계열(Maximum length code) 등의 의사 난수가 있다. 또한, M계열 등의 의사 난수 이외의 난수로서는, 원자핵의 붕괴 현상이 랜덤하게 되는 것이나 전기 잡음 등의 자연 현상을 이용한 물리 난수가 알려져 있고, 암호화에서도 물리 난수를 이용할 수 있다(예를 들면, 특허 문헌 1). 또한, 선형 귀환 시프트 레지스터에 의해 생성되는 M계열 등의 의사 난수와 물리 난수를 조합함으로써, 난수의 예측 곤란성을 높일 수 있다(예를 들면, 특허 문헌 2).
그러나, M계열 등의 의사 난수는, 일정한 산술 프로세스 혹은 함수의 조합으로부터 생성되기 때문에, 동일한 초기 조건을 부여하면 동일한 값으로 되어, 난수를 예측하는 것이 가능하다. 그 때문에, 암호화에 M계열 등의 의사 난수를 이용하는 경우, 안전성이 충분하다고는 할 수 없다.
또한, "O" 및 "1"을 생성하는 물리 난수로서 트랜지스터 노이즈를 이용하는 경우, 일반적으로 "0"의 발생 확률이 45∼55%의 범위로 되고, "0"과 "1"의 발생 빈도의 차가 커서, 난수로서 이용할 수 없다. 또한, 일반적으로 물리 난수는 미약한 신호이기 때문에, 암호화에 이용될 때에는, 암호화에 이용 가능한 레벨까지 증폭기를 이용하여 증폭되는 경우가 많다. 이와 같이 증폭기를 이용하여 증폭되는 물리 난수는, 전계나 자계의 영향을 받는 경우가 있다. 그 때문에, 외부로부터의 영향에 의해 전계나 자계가 변화함으로써, 난수가 조작되어, 안전성이 저하되는 경우가 있었다.
또한, 특허 문헌 2에 개시되어 있는 난수 생성 장치에서는, M계열에서의 탭 위치가 미리 정해지고, 선형 귀환 시프트 레지스터의 탭 위치에 대응하는 비트의 배타적 논리합을 행하는 회로가 구성되어 있다. 그 때문에, 난수 생성 장치를 구 성한 후에, 그 탭 위치를 변경할 수 없어, 안전성이 충분하다고는 할 수 없다.
본 발명은 상기 과제를 감안하여 이루어진 것으로, 안전하고 예측 곤란한 난수를 생성하는 것이 가능한 난수 생성 회로를 제공하는 것을 목적으로 한다.
상기 목적을 달성하기 위해서, 본 발명의 난수 생성 회로는, 의사 난수 계열의 의사 난수를 생성하는 의사 난수 생성 회로와, 물리 난수를 생성하는 물리 난수 생성 회로와, 상기 물리 난수 생성 회로에 의해 생성된 물리 난수를 상기 의사 난수 생성 회로에 의해 생성된 의사 난수에 따라서 변화시켜 출력하는 변조 회로를 구비하는 것으로 할 수 있다.
또한, 본 발명의 난수 생성 회로는, 복수의 의사 난수 계열의 의사 난수를 생성하는 의사 난수 생성 회로와, 물리 난수를 생성하는 물리 난수 생성 회로를 구비하고, 상기 의사 난수 생성 회로는, 상기 물리 난수 생성 회로에 의해 생성된 물리 난수에 기초하여 상기 의사 난수 생성 회로가 생성하는 의사 난수 계열을 절환하는 것으로 할 수 있다.
또한, 본 발명의 난수 생성 회로는, 의사 난수 계열의 의사 난수를 생성하는 선형 귀환 시프트 레지스터와, 의사 난수 계열에서의 탭 위치를 기억하는 레지스터와, 상기 선형 귀환 시프트 레지스터에 기억되어 있는 데이터와, 상기 레지스터에 기억되어 있는 탭 위치에 기초하여, 상기 선형 귀환 시프트 레지스터에의 귀환 신호를 생성하는 귀환 신호 생성 회로를 구비하는 것으로 할 수 있다.
또한, 본 발명의 난수 생성 회로는, 의사 난수 계열의 의사 난수를 생성하는 선형 귀환 시프트 레지스터와, 복수의 의사 난수 계열에서의 각각의 탭 위치를 기억하는 복수의 레지스터와, 상기 복수의 의사 난수 계열 중 어떠한 의사 난수 계열을 이용할지를 나타내는 선택 신호를 수신하고, 상기 선택 신호에 기초하여 상기 복수의 레지스터 중 어느 하나를 선택하는 선택 회로와, 상기 선형 귀환 시프트 레지스터에 기억되어 있는 데이터와, 상기 선택 회로에 의해 선택된 레지스터에 기억되어 있는 탭 위치에 기초하여, 상기 선형 귀환 시프트 레지스터에의 귀환 신호를 생성하는 귀환 신호 생성 회로를 구비하는 것으로 할 수 있다.
<발명을 실시하기 위한 최량의 형태>
== 전체 구성==
도 1은, 본 발명의 난수 생성 회로를 이용하는 일 실시예인 자동차의 자물쇠의 시정(施錠)·해정(解錠)을 행하는 키리스 엔트리 시스템(1)의 전체 구성을 도시하는 도면이다. 키리스 엔트리 시스템(1)은, 휴대형의 자기(2)와 자동차 등에 탑재되는 친기(3)를 포함하여 구성되어 있다. 자기(2)는, 예를 들면 자동차의 도어 록이나 스티어링 록의 열쇠 구멍에 삽입하는 키의 핸들부 등에 설치되어 있다. 또한, 친기(3)는 자동차측에 설치되어 있다.
자기(2)는, 전지(11), 조작 스위치(12), 데이터 처리 회로(13), 및 송수신 회로(14)를 구비하고 있다. 전지(11)는, 자기(2)의 각 부의 동작에 필요한 전력을 공급하기 위한 것이다. 조작 스위치(12)는, 이용자로부터의 시정·해정의 지시를 받아들이는 스위치이다. 데이터 처리 회로(13)는, 시정·해정 시에 필요하게 되는 인증용의 데이터의 생성 등을 행한다. 송수신 회로(14)는, 데이터 처리 회로(13) 로부터 출력되는 디지털 데이터를 아날로그 데이터로 변환하고, 이것을 증폭하여 전자파로서 송출하는 회로이다. 또한, 송수신 회로(14)는, 친기(3)로부터 송출된 전자파를 수신하고, 이것을 디지털 데이터로 변환하여 데이터 처리 회로(13)에 입력할 수도 있다. 또한, 전자파로서는, 전파나 적외선이 이용된다.
친기(3)는, 데이터 처리 회로(21), 송수신 회로(22) 및 구동 회로(23)를 구비하고 있다. 데이터 처리 회로(21)는, 자기(2)로부터 수신하는 인증용의 데이터에 기초한 인증 처리 등을 행한다. 송수신 회로(22)는, 자기(2)로부터 송출된 전자파를 수신하고, 이것을 디지털 데이터로 변환하여 데이터 처리 회로(22)에 입력하는 회로이다. 또한, 송수신 회로(22)는, 데이터 처리 회로(21)로부터 출력되는 디지털 데이터를 아날로그 데이터로 변환하고, 이것을 증폭하여 전자파로서 송출할 수도 있다. 구동 회로(23)는, 자동차의 자물쇠를 시정·해정하는 록 기구를 작동시키는 액튜에이터(24)에 구동 신호를 송신하는 회로이다. 또한, 친기(3)의 각 부(21∼23)에는, 자동차의 배터리(25)로부터 전력이 공급되고 있다.
== 데이터 처리 회로의 구성==
도 2는, 데이터 처리 회로(13)의 구성을 도시하는 도면이다. 데이터 처리 회로(13)는, CPU(51A), RAM(Random Access Memory)(52A), EEPROM(Electrically Erasable Programmable Read-Only Memory)(53A), 난수 생성 회로(54A), 암호 처리 회로(55A) 및 입출력 포트(56A)를 구비하고 있다. 그리고, 각 부(51A∼56A)는 버스(57A)에 의해 서로 통신 가능하게 접속되어 있다.
CPU(51A)는, 데이터 처리 회로(13)의 전체를 제어하는 것이다. RAM(52A)에 는, CPU(51A)가 사용하는 작업용 데이터 등이 기억된다. EEPROM(53A)은 재기입 가능한 불휘발성 메모리로서, 프로그램이나 보존용의 데이터 등이 기억되어 있다. 난수 생성 회로(54A)는, 암호화의 처리에서 이용되는 난수를 생성하는 회로이다. 암호 처리 회로(55A)는, 공통 키 블록 암호 방식에서의 전치(轉置) 또는 환자(換字) 등의 처리를 행하는 회로이다. 입출력 포트(56A)는, 데이터 처리 회로(13)의 외부에 있는 조작 스위치(12)나 송수신 회로(14) 등과 데이터의 송수신을 행하기 위한 인터페이스이다.
또한, 본 실시예에서는, 공통 키 블록 암호 방식으로서 DES(Data Encryption Standard)를 이용하는 것으로 한다. 이러한 데이터 처리 회로(13)에서는, 프로그램의 실행이나 암호 처리 회로(55A)의 제어 등에 의해, DES의 암호화 또는 복호의 처리가 행해진다. 또한, 데이터 처리 회로(21)도 마찬가지의 구성이며, CPU(51B), RAM(52B), EEPROM(53B), 난수 생성 회로(54B), 암호 처리 회로(55B), 입출력 포트(56B), 및 각 부(51B∼56B)를 서로 통신 가능하게 접속하는 버스(57B)를 구비하고 있다.
== 통신 수순==
도 3은 키리스 엔트리 시스템(1)의 자기(2)와 친기(3) 사이에서의 통신 수순을 도시하는 플로우차트이다. 우선, 자기(2)의 조작 스위치(12)의 조작 등에 의해 송신 처리가 기동된다(S301). 자기(2)의 데이터 처리 회로(13)는, EEPROM(53A)에 기억되어 있는 차번(차체 번호)을 친기(3)에 송신한다(S302). 친기(3)의 데이터 처리 회로(21)는, 자기(2)로부터 차번이 송신되어 오는 것을 대기하고 있고(S303), 자기(2)로부터 송신되어 오는 차번을 수신하면, 상기 차번을 EEPROM(53B)에 기억되어 있는 차번과 비교한다(S304).
차번이 일치하지 않은 경우(S304:NG), 친기(3)의 데이터 처리 회로(21)는, 다른 자동차의 차번이 송신되어 왔다고 판단하여, 수신 대기 처리로 되돌아간다(S303). 차번이 일치하면(S304:OK), 데이터 처리 회로(21)는, 난수 생성 회로(54B)를 이용하여 64비트의 난수인 일시 키 R0을 생성한다(S305). 그리고, 데이터 처리 회로(21)는, 이 일시 키 R0을, EEPROM(53B)에 기억되어 있는 공통 키 K를 이용하여 DES로 암호화하여 자기(2)에 송신한다(S306).
자기(2)의 데이터 처리 회로(13)는, 친기(3)로부터 송신되어 오는 암호화된 일시 키 R0을 수신하면, EEPROM(53A)에 기억되어 있는 공통 키 K를 이용하여 일시 키 R0을 복호한다(S307). 계속해서, 데이터 처리 회로(13)는, 난수 생성 회로(54A)를 이용하여 64비트의 난수인 일시 키 R1을 생성한다(S308). 그리고, 데이터 처리 회로(13)는, 이 일시 키 R1을 친기(3)으로부터 수신한 일시 키 R0을 이용하여 DES로 암호화하여 친기(3)에 송신한다(S309). 친기(3)의 데이터 처리 회로(21)는, 자기(2)로부터 송신되어 오는 암호화된 일시 키 R1을 수신하면, 일시 키 R0을 이용하여 일시 키 R1을 복호한다(S310).
그 후, 자기(2)의 데이터 처리 회로(13)는, 시정·해정 지시 등의 정보 데이터를, 일시 키 R1을 이용하여 DES로 암호화하여 친기(3)에 송신한다(S311). 친기(3)의 데이터 처리 회로(21)는, 자기(2)로부터 송신되어 오는 암호화된 정보 데이터를 수신하면, 일시 키 R1을 이용하여 정보 데이터를 복호한다(S312). 그리고, 데이터 처리 회로(21)는, 정보 데이터에 기초하여, 예를 들면 구동 회로(23)를 통하여 액튜에이터(24)에 시정·해정 지시 신호를 송신한다.
이와 같이, 키리스 엔트리 시스템(1)에서는, 자기(2) 및 친기(3)에서 난수 생성 회로(54A, 54B)를 이용하여 일시 키를 생성하고, DES에 의한 암호화 및 복호의 처리를 반복하여 행함으로써, 시큐러티 강도를 높이고 있다.
== 난수 생성 회로의 구성==
본 실시예에서는, 도 3에서 설명한 암호화 및 복호의 처리에서의 난수 생성 처리에서, 난수 생성 회로(54A, 54B)가 이용되고 있다. 난수 생성 회로(54A) 및 난수 생성 회로(54B)는 마찬가지의 구성이기 때문에, 이후 난수 생성 회로(54A)에 대하여 설명한다.
도 4는, 난수 생성 회로(54A)의 구성을 도시하는 도면이다. 난수 생성 회로(54A)는, 분주 회로(61), 보우레이트(Baud rate) 제너레이터(62), 카운터(63), 시프트 레지스터(64), 마스크 A 레지스터(65), 마스크 B 레지스터(66), 멀티플렉서(67), AND 회로(68), 홀수 패리티 제너레이터(69), 물리 난수 생성 회로(70), OR 회로(71), D형 플립플롭(이후, 「D-FF」라고 칭함)(72), AND 회로(73), OR 회로(74), EXOR 회로(75), 멀티플렉서(76), 및 시프트 레지스터(77)를 구비하고 있다. 또한, 시프트 레지스터(64), 마스크 A 레지스터(65), 마스크 B 레지스터(66) 및 시프트 레지스터(77)는 버스(57A)에 접속되어 있다.
분주 회로(61)는, 데이터 처리 회로(13)에서의 예를 들면 6㎒의 시스템 록(Sys_clk)을 4분의 1로 분주하는 회로이다. 또한, 보우레이트 제너레이터(62)는, 예를 들면 8비트의 레지스터에 분주값을 설정하는 것이 가능한 회로이다. 그리고, 카운터(63)는, 분주 회로(61)로부터 출력되는 클럭을 보우레이트 제너레이터(62)에 설정된 분주값에 기초하여 카운트함으로써, 난수 생성 회로(54A)의 동작 클럭(RCLK)을 출력한다.
시프트 레지스터(64)는, 예를 들면 32비트(Q0∼Q31)의 선형 귀환 시프트 레지스터로서, 클럭 입력(C)에는 동작 클럭(RCLK)이 입력되고, 1비트째(Q0)의 데이터 입력 단자(D)에 귀환 신호(F)가 입력된다. 또한, 시프트 레지스터(64)의 초기값은, CPU(51A)에 의해 버스(57A)를 통하여 설정된다.
마스크 A 레지스터(65)는, 예를 들면 32비트(AQ0∼AQ31)의 레지스터로서, 시프트 레지스터(64)에서 M계열의 의사 난수를 생성할 때의 탭 위치를 기억하는 것이다. 예를 들면, 시프트 레지스터(64)를 이용하여 4비트의 M계열을 생성하는 경우, 귀환 신호(F)를, 예를 들면 원시다항식 X4+X+1에 기초하여 다음의 수학식 1에 의해 구할 수 있다.
Figure 112006007898451-pat00001
즉, 이 경우, 탭 위치는 3비트째와 4비트째이며, 마스크 A 레지스터(65)의 3비트째(AQ2)와 4 비트째(AQ3)에, 예를 들면 "1"이 설정되고, 마스크 A 레지스터(65)의 그 밖의 비트에는, 예를 들면 "0"이 설정된다.
마찬가지로, 마스크 B 레지스터(66)는, 예를 들면 32비트(BQ0∼BQ31)의 레지스터로서, 마스크 A 레지스터(66)와는 상이한 탭 위치를 기억하는 것이다. 예를 들면, 시프트 레지스터(64)를 이용하여 전술한 것과는 상이한 4비트의 M계열을 생성하는 경우, 귀환 신호(F)를, 예를 들면 원시다항식 X4+X3+1에 기초하여 다음의 수학식 2에 의해 구할 수 있다.
Figure 112006007898451-pat00002
즉, 이 경우, 탭 위치는 1비트째와 4비트째이며, 마스크 B 레지스터(66)의 1비트째(BQ0)와 4비트째(BQ3)에, 예를 들면 "1"이 설정되고, 마스크 B 레지스터(66)의 그 밖의 비트에는, 예를 들면 "0"이 설정된다. 또한, 마스크 A 레지스터(65) 및 마스크 B 레지스터(66)의 값은, CPU(51A)에 의해 버스(57A)를 통하여 설정된다.
멀티플렉서(67)에는, 마스크 A 레지스터(65)의 값(AQ0∼AQ31)과 마스크 B 레지스터(66)의 값(BQ0∼BQ31)이 입력되어 있고, 선택 신호(SEL)가 예를 들면 "0"인 경우에는 A측(AQ0∼AQ31)을 출력하고, 선택 신호(SEL)가 예를 들면 "1"인 경우에는 B측(BQ0∼BQ31)을 출력한다.
AND 회로(68)(68-0∼68-31)는, 시프트 레지스터(64)의 값(Q0∼Q31)과, 멀티플렉서(67)로부터 출력되는 마스크 A 레지스터(65)의 값(AQ0∼AQ31) 또는 마스크 B 레 지스터(66)의 값(BQ0∼BQ31)의, 비트마다의 논리합을 행하는 회로이다. 즉, AND 회로(68)로부터는, 시프트 레지스터(64)의 값(Q0∼Q31) 중, 탭 위치에 대응하는 비트에 대해서는, 그 비트에 기억되어 있는 값이 출력되고, 그 이외의 비트에 대해서는 "O"이 출력된다.
홀수 패리티 제너레이터(69)는, AND 회로(68)로부터 출력되는 값의 배타적 논리합을 행하는 회로이다. 즉, 멀티플렉서(67)로부터, 마스크 A 레지스터(65)의 값(AQ0∼AQ31)이 출력되는 경우, 다음의 수학식 3에 표현된 바와 같이, 홀수 패리티 제너레이터(69)로부터 출력되는 값은, 마스크 A 레지스터(65)에 설정한 탭 위치에 기초한 M계열을 생성하는 경우에서의, 시프트 레지스터(64)에의 귀환 신호(F)로 된다.
Figure 112006007898451-pat00003
마찬가지로, 멀티플렉서(67)로부터, 마스크 B 레지스터(66)의 값(BQ0∼BQ31)이 출력되는 경우, 다음의 수학식 4에 나타내는 바와 같이, 홀수 패리티 제너레이터(69)로부터 출력되는 값은, 마스크 B 레지스터(66)에 설정한 탭 위치에 기초한 M계열을 생성하는 경우에서의, 시프트 레지스터(64)에의 귀환 신호(F)로 된다.
Figure 112006007898451-pat00004
또한, 본 실시예에서는, 홀수 패리티 제너레이터(69)로부터 출력되는 귀환 신호(F)를, M계열의 의사 난수(PSR:pseudo random numbers)로서 이용하는 것으로 한다.
물리 난수 생성 회로(70)는, 물리 난수(PHR:physical random numbers)를 생성하는 회로이다. 도 5에 물리 난수 생성 회로(70)의 구성을 도시한다. 물리 난수 생성 회로(70)는, 물리 난수 발생원(81), 증폭 회로(82) 및 2치화 회로(83)를 구비한다. 물리 난수 발생원(81)은, 자연 현상에 기초하여 랜덤하게 변화하는 신호를 발생할 수 있는 것으로, 예를 들면 특허 문헌 1에 개시된 바와 같은, 접합을 포함하는 전류 경로에 발생하는 잡음 신호를 발생하는 반도체 소자를 포함하는 것으로 할 수 있다. 또한, 이것에 한정되지 않고, 방사성 물질의 붕괴를 이용한 것 등도 이 물리 난수 발생원(81)으로서 이용할 수 있다.
물리 난수 발생원(81)에서 생성된 신호는, 증폭 회로(82)에서 증폭되고, 또한 2치화 회로(83)에서 2치화 처리된다. 2치화 회로(83)는, 증폭 회로로부터 출력되는 증폭된 신호의 진폭과 소정의 임계값을 비교하여, 예를 들면 증폭된 신호의 진폭이 소정의 임계값보다 높을 때에는 "1"을, 낮을 때에는 "0"을 물리 난수(PHR:physical random numbers)로서 출력한다. 또한, 2치화 회로(83)에서의 임계값의 레벨은, "1" 및 "0"의 발생 확률이 대략 45∼55%로 되도록 설정되어 있다.
OR 회로(71)는, 물리 난수 생성 회로(70)로부터 출력되는 물리 난수(PHR)와, 난수 생성 회로(54A)에서 물리 난수를 이용할지의 여부를 나타내는 선택 신호(MODEl)의 논리합을 행하는 회로이다. 본 실시예에서, 선택 신호(MODEl)가 "0"일 때를 카운터 모드, "1"일 때를 CPU 모드라고 칭하는 것으로 한다. 카운터 모드의 경우, OR 회로(71)로부터 출력되는 신호는, 물리 난수 생성 회로(70)로부터 출력되는 물리 난수(PHR)로 되어, 다른 회로에서 물리 난수(PHR)가 이용된다. 한편, CPU 모드의 경우, OR 회로(71)로부터 출력되는 신호는 항상 "1"로 되기 때문에, 다른 회로에서 물리 난수(PHR)가 이용되지 않게 된다.
D-FF(72)의 데이터 입력 단자(D)에는, OR 회로(71)로부터 출력되는 신호가 입력된다. 즉, 카운터 모드의 경우, D-FF(72)의 데이터 입력 단자(D)에는 물리 난수(PHR)가 입력된다. 또한, D-FF(72)의 클럭 입력 단자(C)에는, 동작 클럭(RCLK)이 입력된다. 그리고, D-FF(72)의 데이터 입력 단자(D)에 입력되어 있는 물리 난수(PHR)가, 동작 클럭(RCLK)의 상승 시에 데이터 출력 단자(Q)로부터 물리 난수(PHRQ)로서 출력된다.
AND 회로(73)는, D-FF(72)로부터 출력되는 물리 난수(PHRQ)와, 난수 생성 회로(54A)에서의 동작 모드를 선택하는 선택 신호(MODE0)의 논리곱을 행하여, 멀티플렉서(67)에의 선택 신호(SEL)를 출력하는 회로이다. 본 실시예에서, 선택 신호(MODE0)가 "0"일 때를 승산 모드, "1"일 때를 호핑 모드라고 칭하는 것으로 한다. 승산 모드란, 물리 난수를 M계열의 의사 난수에 따라서 변화시켜 출력하는 모드이고, 호핑 모드란, 물리 난수에 기초하여 M계열을 절환하여 출력하는 모드이다.
승산 모드의 경우, AND 회로(73)로부터 출력되는 선택 신호(SEL)는 항상 "0"으로 된다. 즉, 승산 모드의 경우, 멀티플렉서(67)는 마스크 A 레지스터(65)의 값 (AQ0∼AQ31)을 출력한다. 호핑 모드의 경우, AND 회로(73)로부터 출력되는 선택 신호(SEL)는, D-FF(72)로부터 출력되는 물리 난수(PHRQ)로 된다. 즉, 호핑 모드의 경우, 멀티플렉서(67)는 물리 난수(PHRQ)에 따라서 마스크 A 레지스터(65)의 값(AQ0∼AQ31) 또는 마스크 B 레지스터(66)의 값(BQ0∼BQ31)을 출력한다.
OR 회로(74)는, D-FF(72)로부터 출력되는 물리 난수(PHRQ)와, 동작 모드의 선택 신호(MODE0)의 논리합을 행하는 회로이다. 즉, 승산 모드의 경우, OR 회로(74)로부터 출력되는 신호는 물리 난수(PHRQ)로 되고, 호핑 모드의 경우, 물리 난수(PHRQ)에 상관없이 항상 "1"로 된다.
EXOR 회로(75)는, 홀수 패리티 제너레이터(69)로부터 출력되는 의사 난수(PSR)와, OR 회로(74)로부터 출력되는 신호의 배타적 논리합을 행하여, 난수(R)를 출력하는 회로이다.
멀티플렉서(76)에는, 동작 클럭(RCLK)을 반전한 클럭(/RCLK)과, CPU(51A)로부터의 판독 신호(CPU_RD)가 입력된다. 그리고, 멀티플렉서(76)는, 선택 신호(MODE1)가 카운터 모드인 경우에는 클럭(/RCLK)을 출력하고, CPU 모드의 경우에는 판독 신호(CPU_RD)를 출력한다.
시프트 레지스터(77)는, 예를 들면 8비트의 선형 시프트 레지스터로서, 데이터 입력 단자(D)에 EXOR 회로(75)로부터 출력되는 난수(R)가 입력되고, 클럭 입력 단자(C)에 멀티플렉서(76)로부터 출력되는 클럭 신호(/RCLK) 또는 판독 신호(CPU_RD)가 입력된다.
또한, 본 실시예에서는, 시프트 레지스터(64), 마스크 A 레지스터(65), 마스크 B 레지스터(66), 멀티플렉서(67), AND 회로(68) 및 홀수 패리티 제너레이터(69)에 의해 본 발명의 의사 난수 생성 회로가 구성되고, EXOR 회로(75)에 의해 변조 회로가 구성되어 있다. 또한, 본 실시예에서, 멀티플렉서(67)에 의해 본 발명의 선택 회로가 구성되고, AND 회로(68) 및 홀수 패리티 제너레이터(69)에 의해 본 발명의 귀환 신호 생성 회로가 구성되어 있다.
== 난수 생성 회로의 동작 설명==
다음으로, 난수 생성 회로(54A)의 동작에 대하여 설명한다.
(1) 승산 모드
우선, 카운터 모드에서, 동작 모드가 승산 모드인 경우의 동작을 설명한다. 승산 모드의 경우, AND 회로(73)로부터 출력되는 선택 신호(SEL)는 항상 "0"으로 되고, 마스크 A 레지스터(65)의 값(AQ0∼AQ31)이 멀티플렉서(67)로부터 출력된다. 그리고, 시프트 레지스터(64)의 값(Q0∼Q31)과, 마스크 A 레지스터(65)의 값(AQ0∼AQ31)의 논리곱을 행한 결과가 AND 회로(68)로부터 출력되고, 홀수 패리티 제너레이터(69)에 의해서 그 배타적 논리합이 행해져, 시프트 레지스터(64)에의 귀환 신호(F)가 생성된다. 또한, 홀수 패리티 제너레이터(69)로부터 출력되는 신호는, 의사 난수(PSR)로서 EXOR 회로(75)에 입력된다. 이 의사 난수(PSR)는, 마스크 A 레지스터(65)에 설정된 탭 위치에 따른 M계열의 의사 난수로 된다.
EXOR 회로(75)는, 의사 난수(PSR)와, OR 회로(74)로부터 출력되는 물리 난수 (PHRQ)의 배타적 논리합을 행하여, 난수(R)를 시프트 레지스터(77)로 출력한다. 그리고, 시프트 레지스터(77)의 클럭 입력 단자(C)에는, 멀티플렉서(76)를 통하여 클럭(/RCLK)이 입력된다.
도 6은 각 신호의 출력 타이밍을 도시하는 타이밍차트이다. 도 6에 도시하는 바와 같이, 동작 클럭(RCLK)의 상승 시(예를 들면 시각 t1)에, 물리 난수(PHRQ), 의사 난수(PSR)가 생성되고, 또한 이들의 배타적 논리합인 난수(R)가 생성된다. 그리고, 동작 클럭(RCLK)의 하강 시, 즉 클럭(/RCLK)의 상승 시(예를 들면 시각 t2)에, 난수(R)가 시프트 레지스터(77)에 세트된다.
또한, 시프트 레지스터(77)는, EXOR 회로(75)로부터 출력되는 난수(R)를 8비트 기억하면, CPU(51A)에 인터럽트 신호를 송신한다. CPU(51A)는, 이 인터럽트 신호를 수신하면, 8비트의 난수(R)를 시프트 레지스터(77)로부터 판독한다.
도 7은 EXOR 회로(75)에 입력되는 물리 난수(PHRQ) 및 의사 난수(PSR)의 조합과, 그 발생 확률을 도시하는 도면이다. 물리 난수(PHRQ)가 "0"으로 될 확률을 X(0≤X≤1), 의사 난수(PSR)가 "0"으로 될 확률을 Y(0≤Y≤1)로 하면, 물리 난수(PHRQ) 및 의사 난수(PSR)가 모두 "0"으로 될 확률은 XY, 물리 난수(PHRQ)가 "0", 의사 난수(PSR)가 "1"로 될 확률은 X(1-Y)로 된다. 또한, 물리 난수(PHRQ)가 "1", 의사 난수가 "0"으로 될 확률은 (1-X)Y, 물리 난수(PHRQ) 및 의사 난수(PSR)가 모두 "1"로 될 확률은 (1-X)(1-Y)로 된다.
따라서, 난수(R)가 "0"으로 될 확률 P0, 및 "1"로 될 확률 P1은, 다음의 수 학식 5, 수학식 6에 의해 구해진다.
Figure 112006007898451-pat00005
Figure 112006007898451-pat00006
여기서, 예를 들면 의사 난수(PSR)를 16비트의 M계열로 하면, 의사 난수(PSR)에서는 "0"이 32767회, "1"이 32768회 발생하게 되고, Y≒0.4999(49.99%)로 된다. 그리고, 물리 난수(PHRQ)에서의 "0"의 발생 확률 X를, 예를 들면 0.45(45%)라고 하면, P0 및 P1은, 수학식 5, 수학식 6으로부터, P0≒0.50001(50.001%), P1≒0.49999(49.999%)로 된다. 또한, 예를 들면 물리 난수(PHRQ)에서의 "0"의 발생 확률 X를, 예를 들면 0.55(55%)라고 하면, P0≒0.49999(49.999%), P1≒0.50001(50.001%)로 된다. 따라서, 난수(R)에서의 "0"의 발생 확률의 범위는 49.999∼50.001% 정도로 되어, 난수로서 이용할 수 있다.
(2) 호핑 모드
다음으로, 카운터 모드에서, 동작 모드가 호핑 모드인 동작을 설명한다. 호핑 모드의 경우, AND 회로(73)로부터 출력되는 선택 신호(SEL)는, D-FF(72)로부터 출력되는 물리 난수(PHRQ)로 된다. 따라서, 멀티플렉서(67)는, 물리 난수(PHRQ)가 "0"인 경우에는 마스크 A 레지스터(65)의 값(AQ0∼AQ31)을 출력하고, "1"인 경우에 는 마스크 B 레지스터(66)의 값(BQ0∼BQ31)을 출력한다.
물리 난수(PHRQ)가 "0"인 경우, 시프트 레지스터(64)의 값(Q0∼Q31)과, 마스크 A 레지스터(65)의 값(AQ0∼AQ31)의 논리곱을 행한 결과가 AND 회로(68)로부터 출력되고, 홀수 패리티 제너레이터(69)에 의해서 그 배타적 논리합이 행해져, 시프트 레지스터(64)에의 귀환 신호(F)가 생성된다. 또한, 홀수 패리티 제너레이터(69)로부터 출력되는 신호는, 의사 난수(PSR)로서 EXOR 회로(75)에 입력된다.
그리고, 물리 난수(PHRQ)가 "1"인 경우, 시프트 레지스터(64)의 값(Q0∼Q31)과, 마스크 B 레지스터(66)의 값(BQ0∼BQ31)의 논리곱을 행한 결과가 AND 회로(68)로부터 출력되고, 홀수 패리티 제너레이터(69)에 의해서 그 배타적 논리합이 행해져, 시프트 레지스터(64)에의 귀환 신호(F)가 생성된다. 또한, 홀수 패리티 제너레이터(69)로부터 출력되는 신호는, 의사 난수(PSR)로서 EXOR 회로(75)에 입력된다.
즉, 의사 난수(PSR)는, 물리 난수(PHRQ)가 "0"인 경우에는, 마스크 A 레지스터(65)에 설정된 탭 위치에 따른 M계열의 의사 난수로 되고, 물리 난수(PHRQ)가 "1"인 경우에는, 마스크 B 레지스터(65)에 설정된 탭 위치에 따른 M계열의 의사 난수로 된다.
호핑 모드의 경우, OR 회로(74)의 출력은 항상 "1"로 되기 때문에, EXOR 회로(75)로부터 출력되는 난수(R)는, 의사 난수(PSR)를 반전한 것으로 된다. 시프트 레지스터(77)의 데이터 입력 단자(D)에는 난수(R)가 입력되고, 클럭 입력 단자(C)에는, 멀티플렉서(76)를 통하여 클럭(/RCLK)이 입력된다. 그리고, 승산 모드의 경우와 마찬가지로, 클럭(/RCLK)의 상승 시에, 난수(R)가 시프트 레지스터(77)에 세트된다. 또한, 시프트 레지스터(77)는, EXOR 회로(75)로부터 출력되는 난수(R)를 8비트 기억하면, CPU(51A)에 인터럽트 신호를 송신한다. CPU(51A)는, 이 인터럽트 신호를 수신하면, 8비트의 난수(R)를 시프트 레지스터(77)로부터 판독한다.
(3) CPU 모드
마지막으로, CPU 모드의 동작을 설명한다. CPU 모드의 경우, D-FF(72)로부터 출력되는 신호(PHRQ)가 항상 "1"로 된다. 따라서, AND 회로(73)로부터 출력되는 선택 신호(SEL)는, 승산 모드의 경우에는 "0", 호핑 모드의 경우에는 "1"로 된다. 즉, 멀티플렉서(67)는 승산 모드의 경우에는 마스크 A 레지스터(65)의 값(AQ0∼AQ31)을 출력하고, 호핑 모드의 경우에는 마스크 B 레지스터(66)의 값(BQ0∼BQ31)을 출력한다.
그리고, 시프트 레지스터(64)의 값(Q0∼Q31)과, 마스크 A 레지스터(65)의 값(AQ0∼AQ31) 또는 마스크 B 레지스터(66)의 값(BQ0∼BQ31)의 논리곱을 행한 결과가 AND 회로(68)로부터 출력되고, 홀수 패리티 제너레이터(69)에 의해 그 배타적 논리합이 행해져, 시프트 레지스터(64)에의 귀환 신호(F)가 생성된다. 또한, 홀수 패리티 제너레이터(69)로부터 출력되는 신호는, 의사 난수(PSR)로서 EXOR 회로(75)에 입력된다. 이 의사 난수(PSR)는, 마스크 A 레지스터(65) 또는 마스크 B 레지스터 (66)에 설정된 탭 위치에 따른 M계열의 의사 난수로 된다.
CPU 모드의 경우, OR 회로(74)의 출력은 항상 "1"로 되기 때문에, EXOR 회로(75)로부터 출력되는 난수(R)는, 의사 난수(PSR)를 반전한 것으로 된다. 시프트 레지스터(77)의 데이터 입력 단자(D)에는 난수(R)가 입력되고, 클럭 입력 단자(C)에는, 멀티플렉서(76)를 통하여 CPU(51A)로부터의 판독 신호(CPU_RD)가 입력된다. 그리고, 시프트 레지스터(77)에서는, 판독 신호(CPU_RD)가 입력될 때마다, 난수(R)가 세트된다. 또한, 시프트 레지스터(77)는, EXOR 회로(75)로부터 출력되는 난수(R)를 8비트 기억하면, CPU(51A)에 인터럽트 신호를 송신한다. CPU(51A)는, 이 인터럽트 신호를 수신하면, 8비트의 난수(R)를 시프트 레지스터(77)로부터 판독한다.
이상, 본 발명의 일 실시예인 난수 생성 회로(54A, 54B)를 적용한 키리스 엔트리 시스템(1)에 대하여 설명하였다. M계열의 의사 난수는, 0의 발생 횟수는 1인 발생 횟수보다 1 적을 뿐이며, 1과 0이 대략 동일수 출현하는 난수이다. 따라서, 승산 모드의 경우에서는, 물리 난수를 M계열의 의사 난수에 따라서 변화시켜 출력함으로써, 즉 물리 난수를 M계열의 의사 난수를 이용하여 변조함으로써, 출력되는 1과 0의 발생 빈도가 M계열의 의사 난수와 동등하게 되어, 난수로서의 성능을 충족시킬 수 있다. 그리고, 출력되는 난수는, 물리 난수를 M계열의 의사 난수에 의해 변조한 것이기 때문에, 단순한 M계열의 의사 난수와 상이하게, 그 출력 패턴을 예측하는 것이 곤란하게 된다. 또한, 출력되는 난수는, 물리 난수를 그대로 출력하고 있는 것이 아니기 때문에, 외부로부터의 영향에 의해 물리 난수가 조작되었다고 해도, M계열의 의사 난수에 의해 변조되기 때문에, 물리 난수만을 이용하는 경우와 비교하여 안전성의 저하를 방지하는 것이 가능하게 된다.
또한, 전술한 바와 같이, 물리 난수와 M계열의 의사 난수와의 배타적 논리합을 행함으로써, 물리 난수의 변조를 행할 수 있다. 여기서, 예를 들면 M계열을 16비트로 한 경우에 출력되는 난수에서의 "0"의 발생 확률의 범위는 49.999∼50.001% 정도로 되어, 난수로서의 성능을 충족시킬 수 있다.
또한, 호핑 모드의 경우에서는, 물리 난수를 이용하여 M계열을 절환함으로써, 난수의 출력 패턴을 예측하는 것이 곤란하게 된다. 또한, 출력되는 난수는, 물리 난수를 그대로 출력하고 있는 것이 아니기 때문에, 외부로부터의 영향에 의해 물리 난수가 조작되었다고 해도, M계열의 의사 난수가 출력되기 때문에, 물리 난수만을 이용하는 경우와 비교하여 안전성의 저하를 방지하는 것이 가능하게 된다. 또한, 전술한 바와 같이, 예를 들면 M계열의 탭 위치를 기억하는 레지스터를 복수 설치함으로써, 물리 난수에 기초하여 M계열을 절환할 수 있다.
또한, 난수 생성 회로(54A)에서는, 승산 모드의 경우, 마스크 A 레지스터(65)에 M계열에서의 탭 위치가 기억되어 있고, 선형 귀환 시프트 레지스터(64)에 기억되어 있는 데이터(Q0∼Q31)와, 마스크 A 레지스터(65)에 기억되어 있는 데이터(AQ0∼AQ31)에 기초하여, 선형 귀환 시프트 레지스터(64)에의 귀환 신호(F)가 생성된다. 즉, 마스크 A 레지스터(65)에 원하는 데이터를 설정함으로써, M계열에서의 탭 위치를 자유롭게 변경하는 것이 가능하게 된다. 이러한 난수 생성 회로(54A)에서는, 탭 위치가 가변이기 때문에, 선형 귀환 시프트 레지스터(64)에 의해 생성되 는 의사 난수의 예측 곤란성이 높아진다. 그리고, 복수의 M계열을 생성하는 것이 가능한 난수 생성 회로에서, 각각의 M계열의 탭 위치에 따른 회로를 설치할 필요가 없기 때문에, 회로 규모를 축소할 수 있다.
또한, 이와 같이 생성되는 의사 난수를 이용하여 물리 난수를 변조하여 난수(R)를 생성할 수 있다. 즉, 물리 난수를 M계열의 의사 난수를 이용하여 변조함으로써 난수의 예측 곤란성을 높이는 경우에서도, M계열의 탭 위치를 자유롭게 변경하는 것이 가능하다. 그 때문에, 난수의 예측 곤란성을 높일 수 있음과 함께, 복수의 M계열의 탭 위치를 미리 회로로 구성하는 경우와 비교하여, 회로 규모를 축소할 수 있다.
또한, 난수 생성 회로(54A)에서는, M계열의 탭 위치를 기억하는 2개의 레지스터인 마스크 A 레지스터(65) 및 마스크 B 레지스터(66)가 설치되어 있다. 그리고, 선형 귀환 시프트 레지스터(64)에 기억되어 있는 데이터(Q0∼Q31)와, 멀티플렉서(67)에 의해 선택된 한 쪽의 레지스터에 기억되어 있는 데이터(AQ0∼AQ31 또는 BQ0∼BQ31)에 기초하여, 선형 귀환 시프트 레지스터(64)에의 귀환 신호(F)가 생성된다. 즉, 마스크 A 레지스터(65) 및 마스크 B 레지스터(66)에 원하는 데이터를 설정함으로써, 선택 신호(SEL)에 의해 절환하는 것이 가능한 2개의 M계열의 탭 위치를 자유롭게 변경하는 것이 가능하게 된다. 이러한 난수 생성 회로(54A)에서는, M계열이 선택 신호(SEL)에 기초하여 절환되는 것에 부가하여, 탭 위치가 마스크 A 레지스터(65) 및 마스크 B 레지스터(66)의 설정에 의해 자유롭게 변경되기 때문에, 선형 귀 환 시프트 레지스터(64)에 의해 생성되는 의사 난수의 예측 곤란성이 높아진다. 그리고, 각각의 M계열의 탭 위치에 따른 회로를 설치할 필요가 없기 때문에, 회로 규모를 축소할 수 있다.
또한, 멀티플렉서(67)에 입력되는 선택 신호(SEL)를 물리 난수(PHRQ)로 할 수 있다. 즉, M계열을 물리 난수에 따라서 절환함으로써 난수의 예측 곤란성을 높이는 경우에서도, M계열의 탭 위치를 자유롭게 변경하는 것이 가능하다. 그 때문에, 난수의 예측 곤란성을 높일 수 있음과 함께, 복수의 M계열의 탭 위치를 미리 회로로 구성하는 경우와 비교하여, 회로 규모를 축소할 수 있다.
또한, 상기 실시예는 본 발명의 이해를 용이하게 하기 위한 것으로, 본 발명을 한정하여 해석하기 위한 것이 아니다. 본 발명은, 그 취지를 일탈하지 않고, 변경, 개량될 수 있음과 함께, 본 발명에는 그 등가물도 포함된다.
예를 들면, 본 실시예의 난수 생성 회로(54A)에서는, M계열의 탭 위치를 기억하는 레지스터를 마스크 A 레지스터(65) 및 마스크 B 레지스터(66)의 2개로 하였지만, 탭 위치를 기억하는 레지스터를 3개 이상 설치하는 것으로 해도 된다. 탭 위치를 기억하는 레지스터를 3개 이상 설치하는 경우, 예를 들면 플립플롭 등을 이용하여 물리 난수를 2비트 이상 기억하고, 그 값에 따라서 탭 위치를 출력하는 레지스터를 선택하는 것으로 해도 된다.
또한, 본 실시예에서는, 의사 난수 계열로서 M계열을 이용하고 있지만, 예를 들면 Gold 계열 등의 다른 의사 난수 계열을 이용하는 것으로 해도 된다. 의사 난수 계열로서 Gold 계열을 이용하는 경우에서도, 물리 난수를 Gold 계열의 의사 난 수를 이용하여 변조하여 난수를 생성함으로써, 난수의 예측 곤란성을 높일 수 있다. 또한, Gold 계열을 이용하는 경우에서도, 물리 난수를 그대로 출력하고 있는 것이 아니기 때문에, 외부로부터의 영향에 의해 물리 난수가 조작되었다고 해도, Gold 계열의 의사 난수가 출력되기 때문에, 물리 난수만을 이용하는 경우와 비교하여 안전성의 저하를 방지하는 것이 가능하게 된다.
또한, Gold 계열에서의 탭 위치를 기억하는 레지스터를 복수 설치하고, 물리 난수에 기초하여 탭 위치를 출력하는 레지스터를 선택함으로써, Gold 계열을 절환하는 것도 가능하다. 이에 의해, 난수의 예측 곤란성을 높이고, 또한 외부로부터의 영향에 의해 안전성이 저하되는 것을 방지하는 것이 가능하게 된다.
또한, 본 실시예의 난수 생성 회로(54A)에서는, M계열의 탭 위치를 기억하는 레지스터를 마스크 A 레지스터(65) 및 마스크 B 레지스터(66)의 2개로 하였지만, 탭 위치를 기억하는 레지스터를 3개 이상 설치하는 것으로 해도 된다. 탭 위치를 기억하는 레지스터를 3개 이상 설치하는 경우, 예를 들면 플립플롭 등을 이용하여 물리 난수를 2비트 이상 기억하고, 그 값에 따라서 탭 위치를 출력하는 레지스터를 선택하는 것으로 해도 된다.
또한, 의사 난수 계열로서 Gold 계열을 이용하는 경우에서도, 그 탭 위치를 레지스터에 기억하는 구성으로 함으로써, 탭 위치를 자유롭게 변경하는 것이 가능해지고, 또한 복수의 탭 위치에 따른 회로를 미리 구성하는 경우와 비교하여, 회로 규모를 축소할 수 있다.
또한, 본 실시예에서는, 난수 생성 회로(54A)를 키리스 엔트리 시스템(1)에 서의 암호화에 이용하는 것으로 하였지만, 난수 생성 회로(54A)는, 키리스 엔트리 시스템(1)에 한하지 않고, 안전성을 높이기 위해 난수를 사용하는 여러 가지 정보 처리 시스템에 적용할 수 있다. 이와 같이, 여러 가지 정보 처리 시스템에서, 난수 생성 회로(54A)를 적용함으로써, 예측 곤란하고 또한 외부로부터의 영향에 의한 안전성의 저하를 막는 난수가 얻어지는 것에 의해, 그 정보 처리 시스템의 안전성을 높일 수 있다. 또한, 여러 가지 정보 처리 시스템에서, 난수 생성 회로(54A)를 적용함으로써, 의사 난수 계열의 탭 위치를 자유롭게 변경하는 것이 가능하기 때문에, 난수의 예측 곤란성을 향상시켜, 안전성을 높일 수 있다. 또한, 복수의 의사 난수 계열의 탭 위치에 따른 회로를 미리 구성할 필요가 없기 때문에, 난수 생성 회로의 회로 규모가 축소되어, 난수 생성 회로를 이용하는 장치를 소형화하는 것이 가능하게 된다.
안전하고, 예측 곤란한 난수를 생성할 수 있다.

Claims (12)

  1. 의사 난수 계열의 의사 난수를 생성하는 의사 난수 생성 회로와,
    물리 난수를 생성하는 물리 난수 생성 회로와,
    상기 물리 난수 생성 회로에 의해 생성된 물리 난수를 상기 의사 난수 생성 회로에 의해 생성된 의사 난수에 따라서 변화시켜 출력하는 변조 회로
    를 구비하는 것을 특징으로 하는 난수 생성 회로.
  2. 제1항에 있어서,
    상기 변조 회로는, 상기 물리 난수 생성 회로에 의해 생성된 물리 난수와, 상기 의사 난수 생성 회로에 의해 생성된 의사 난수와의 배타적 논리합을 행하는 회로를 구비하는 것을 특징으로 하는 난수 생성 회로.
  3. 복수의 의사 난수 계열의 의사 난수를 생성하는 의사 난수 생성 회로와,
    물리 난수를 생성하는 물리 난수 생성 회로
    를 구비하고,
    상기 의사 난수 생성 회로는, 상기 물리 난수 생성 회로에 의해 생성된 물리 난수에 기초하여 상기 의사 난수 생성 회로가 생성하는 의사 난수 계열을 절환하는 것을 특징으로 하는 난수 생성 회로.
  4. 제3항에 있어서,
    상기 의사 난수 계열이 M계열이고,
    상기 의사 난수 생성 회로는,
    선형 귀환 시프트 레지스터와,
    복수의 M계열에서의 각각의 탭 위치를 기억하는 복수의 레지스터와,
    상기 물리 난수 생성 회로에 의해 생성된 물리 난수에 기초하여 상기 복수의 레지스터 중 어느 하나를 선택하는 선택 회로와,
    상기 선형 귀환 시프트 레지스터에 기억되어 있는 데이터와, 상기 선택 회로에 의해 선택된 레지스터에 기억되어 있는 탭 위치에 기초하여 상기 선형 귀환 시프트 레지스터에의 귀환 신호를 생성하는 귀환 신호 생성 회로
    를 구비하는 것을 특징으로 하는 난수 생성 회로.
  5. 의사 난수 계열의 의사 난수를 생성하는 선형 귀환 시프트 레지스터와,
    의사 난수 계열에서의 탭 위치를 기억하는 레지스터와,
    상기 선형 귀환 시프트 레지스터에 기억되어 있는 데이터와, 상기 레지스터에 기억되어 있는 탭 위치에 기초하여, 상기 선형 귀환 시프트 레지스터에의 귀환 신호를 생성하는 귀환 신호 생성 회로
    를 구비하는 것을 특징으로 하는 난수 생성 회로.
  6. 제5항에 있어서,
    상기 레지스터는,
    상기 선형 귀환 시프트 레지스터와 동일 비트 수로 구성되고, 의사 난수 계열의 탭 위치에 대응하는 비트에 한 쪽의 논리값이 기억되고, 탭 위치에 대응하는 비트 이외의 비트에 다른 쪽의 논리값이 기억되어 있고,
    상기 귀환 신호 생성 회로는,
    상기 선형 귀환 시프트 레지스터의 각 비트와, 상기 레지스터의 각 비트와의 논리곱을 행하는 회로와, 상기 논리곱에 의해 얻어지는 데이터의 배타적 논리합에 의해 상기 귀환 신호를 생성하는 회로
    를 구비하는 것을 특징으로 하는 난수 생성 회로.
  7. 제5항에 있어서,
    물리 난수를 생성하는 물리 난수 생성 회로와,
    상기 물리 난수 생성 회로에 의해 생성된 물리 난수를 상기 선형 귀환 시프트 레지스터에 의해 생성된 의사 난수에 따라서 변화시켜 출력하는 변조 회로
    를 더 구비하는 것을 특징으로 하는 난수 생성 회로.
  8. 제6항에 있어서,
    물리 난수를 생성하는 물리 난수 생성 회로와,
    상기 물리 난수 생성 회로에 의해 생성된 물리 난수를 상기 선형 귀환 시프트 레지스터에 의해 생성된 의사 난수에 따라서 변화시켜 출력하는 변조 회로
    를 더 구비하는 것을 특징으로 하는 난수 생성 회로.
  9. 의사 난수 계열의 의사 난수를 생성하는 선형 귀환 시프트 레지스터와,
    복수의 의사 난수 계열에서의 각각의 탭 위치를 기억하는 복수의 레지스터와,
    상기 복수의 의사 난수 계열 중 어느 의사 난수 계열을 이용할지를 나타내는 선택 신호를 수신하고, 상기 선택 신호에 기초하여 상기 복수의 레지스터 중 어느 하나를 선택하는 선택 회로와,
    상기 선형 귀환 시프트 레지스터에 기억되어 있는 데이터와, 상기 선택 회로에 의해 선택된 레지스터에 기억되어 있는 탭 위치에 기초하여, 상기 선형 귀환 시프트 레지스터에의 귀환 신호를 생성하는 귀환 신호 생성 회로
    를 구비하는 것을 특징으로 하는 난수 생성 회로.
  10. 제9항에 있어서,
    상기 레지스터는,
    상기 선형 귀환 시프트 레지스터와 동일 비트 수로 구성되고, 의사 난수 계열의 탭 위치에 대응하는 비트에 한 쪽의 논리값이 기억되고, 탭 위치에 대응하는 비트 이외의 비트에 다른 쪽의 논리값이 기억되어 있고,
    상기 귀환 신호 생성 회로는,
    상기 선형 귀환 시프트 레지스터의 각 비트와, 상기 선택 회로에 의해 선택 된 레지스터의 각 비트와의 논리곱을 행하는 회로와, 상기 논리곱에 의해 얻어지는 데이터의 배타적 논리합에 의해 상기 귀환 신호를 생성하는 회로
    를 구비하는 것을 특징으로 하는 난수 생성 회로.
  11. 제9항에 있어서,
    물리 난수를 생성하는 물리 난수 생성 회로를 더 구비하고,
    상기 선택 신호는, 상기 물리 난수 생성 회로에 의해 생성된 물리 난수인 것을 특징으로 하는 난수 생성 회로.
  12. 제10항에 있어서,
    물리 난수를 생성하는 물리 난수 생성 회로를 더 구비하고,
    상기 선택 신호는, 상기 물리 난수 생성 회로에 의해 생성된 물리 난수인 것을 특징으로 하는 난수 생성 회로.
KR1020060010022A 2005-02-03 2006-02-02 난수 생성 회로 KR100737651B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2005028113A JP2006215824A (ja) 2005-02-03 2005-02-03 乱数生成回路
JPJP-P-2005-00028113 2005-02-03
JP2005028114A JP2006215825A (ja) 2005-02-03 2005-02-03 乱数生成回路
JPJP-P-2005-00028114 2005-02-03

Publications (2)

Publication Number Publication Date
KR20060089149A KR20060089149A (ko) 2006-08-08
KR100737651B1 true KR100737651B1 (ko) 2007-07-09

Family

ID=37177326

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060010022A KR100737651B1 (ko) 2005-02-03 2006-02-02 난수 생성 회로

Country Status (3)

Country Link
US (1) US20070067374A1 (ko)
KR (1) KR100737651B1 (ko)
TW (1) TW200629192A (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008003438A (ja) * 2006-06-26 2008-01-10 Sony Corp 乱数生成装置、乱数生成制御方法、メモリアクセス制御装置、および、通信装置
JP2008003976A (ja) * 2006-06-26 2008-01-10 Sony Corp メモリアクセス制御装置および方法、並びに、通信装置
US8036380B2 (en) * 2006-12-14 2011-10-11 Telefonaktiebolaget L M Ericsson (Publ) Efficient data integrity protection
US8195728B2 (en) * 2008-04-09 2012-06-05 International Business Machines Corporation Handling mask and range constraints
US8244784B2 (en) * 2008-04-09 2012-08-14 International Business Machines Corporation Generating a number based on mask and range constraints
JP4345072B1 (ja) * 2008-07-28 2009-10-14 際国 董 乱数生成・管理方法及び装置
US8281111B2 (en) 2008-09-23 2012-10-02 Qualcomm Incorporated System and method to execute a linear feedback-shift instruction
EP2979180B1 (en) 2013-03-27 2019-10-30 Keysight Technologies Singapore (Sales) Pte. Ltd. Methods, systems, and computer readable media for emulating virtualization resources
US9524299B2 (en) 2013-08-12 2016-12-20 Ixia Methods, systems, and computer readable media for modeling a workload
US11303461B2 (en) 2013-09-02 2022-04-12 Samsung Electronics Co., Ltd. Security device having physical unclonable function
US10044513B2 (en) 2013-09-02 2018-08-07 Samsung Electronics Co., Ltd. Security device having physical unclonable function
RO130722A2 (ro) * 2014-04-10 2015-11-27 Ixia, A California Corporation Metodă şi sistem pentru implementare hardware a pachetelor de date uniform amestecate
CN105763327A (zh) * 2014-12-16 2016-07-13 上海华虹集成电路有限责任公司 智能卡中安全的随机数产生方法
US9507616B1 (en) 2015-06-24 2016-11-29 Ixia Methods, systems, and computer readable media for emulating computer processing usage patterns on a virtual machine
US10649849B2 (en) 2017-07-14 2020-05-12 Samsung Electronics Co., Ltd. Memory device including detection clock pattern generator for generating detection clock output signal including random data pattern
CN109669669B (zh) * 2018-12-06 2022-06-24 镕铭微电子(济南)有限公司 误码生成方法及误码生成器
EP3770751B1 (en) * 2019-07-25 2023-10-18 PUFsecurity Corporation High speed encryption key generating engine
JP7389348B2 (ja) 2020-03-12 2023-11-30 富士通株式会社 擬似乱数生成回路装置
US11323354B1 (en) 2020-10-09 2022-05-03 Keysight Technologies, Inc. Methods, systems, and computer readable media for network testing using switch emulation
US11483227B2 (en) 2020-10-13 2022-10-25 Keysight Technologies, Inc. Methods, systems and computer readable media for active queue management
US20220329420A1 (en) * 2021-04-07 2022-10-13 Samsung Electronics Co., Ltd. Electronic device to enhance randomness of security module using multiple hardware random number generator and the method thereof

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000066592A (ja) * 1998-08-19 2000-03-03 Syst Kogaku Kk 乱数生成装置
JP2004157168A (ja) * 2002-11-01 2004-06-03 Sanyo Electric Co Ltd 乱数生成装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6993542B1 (en) * 2001-03-12 2006-01-31 Cisco Technology, Inc. Efficient random number generation for communication systems
US6735606B2 (en) * 2001-05-15 2004-05-11 Qualcomm Incorporated Multi-sequence fast slewing pseudorandom noise generator
US7028059B2 (en) * 2002-06-24 2006-04-11 Sun Microsystems, Inc. Apparatus and method for random number generation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000066592A (ja) * 1998-08-19 2000-03-03 Syst Kogaku Kk 乱数生成装置
JP2004157168A (ja) * 2002-11-01 2004-06-03 Sanyo Electric Co Ltd 乱数生成装置

Also Published As

Publication number Publication date
KR20060089149A (ko) 2006-08-08
TW200629192A (en) 2006-08-16
US20070067374A1 (en) 2007-03-22

Similar Documents

Publication Publication Date Title
KR100737651B1 (ko) 난수 생성 회로
JP2006215824A (ja) 乱数生成回路
US8457306B2 (en) Cryptographic module and IC card
USRE40710E1 (en) Data converter for performing exponentiation in polynomial residue class ring with value in finite field as coefficient
US9512659B2 (en) Code hopping based system with increased security
US10205589B2 (en) Encryption processing device and encryption processing method
US10425226B2 (en) Encryption processing device and encryption processing method
US20080019524A1 (en) Apparatus and method for low power aes cryptographic circuit for embedded system
KR100828272B1 (ko) 암호 처리 회로
CZ153894A3 (en) Method of point-to-point communication in safe communication systems
KR20160111789A (ko) 비밀 정보 기반의 상호 인증 방법 및 장치
EP2856693B1 (en) Method for generating a pseudorandom sequence, and method for coding or decoding a data stream
US20160012255A1 (en) Method for encoding data on a chip card by means of constant-weight codes
CN1332524C (zh) 用于有效密钥长度控制的方法和设备
EP0700185A2 (en) Method and apparatus for data-driven encryption system
KR20150093785A (ko) 통합 시큐리티 장치 및 통합 시큐리티 장치에 이용되는 신호 처리 방법
JPH08170457A (ja) 暗号化装置
JP2006215825A (ja) 乱数生成回路
US20080244273A1 (en) Cryptographic method using redundant bits and adaptive clock frequency
US20020053027A1 (en) Method for preventing theft of vehicles by performing ignition key authorization
JP4787434B2 (ja) 暗号化方法、通信システム、データ入力装置
EP2756486B1 (en) Code hopping based system with increased security
JP2009264010A (ja) 遠隔操作装置
US7860251B1 (en) Encryption-decryption circuit and method of operation
JP4326482B2 (ja) 暗号処理回路

Legal Events

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