KR0154569B1 - 난수 발생 장치 및 방법 - Google Patents

난수 발생 장치 및 방법

Info

Publication number
KR0154569B1
KR0154569B1 KR1019940036115A KR19940036115A KR0154569B1 KR 0154569 B1 KR0154569 B1 KR 0154569B1 KR 1019940036115 A KR1019940036115 A KR 1019940036115A KR 19940036115 A KR19940036115 A KR 19940036115A KR 0154569 B1 KR0154569 B1 KR 0154569B1
Authority
KR
South Korea
Prior art keywords
random number
value
bit
shifting
linear
Prior art date
Application number
KR1019940036115A
Other languages
English (en)
Other versions
KR960024904A (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 정선종
Priority to KR1019940036115A priority Critical patent/KR0154569B1/ko
Publication of KR960024904A publication Critical patent/KR960024904A/ko
Application granted granted Critical
Publication of KR0154569B1 publication Critical patent/KR0154569B1/ko

Links

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/582Pseudo-random number generators
    • G06F7/584Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register
    • 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/58Indexing scheme relating to groups G06F7/58 - G06F7/588
    • G06F2207/581Generating an LFSR sequence, e.g. an m-sequence; sequence may be generated without LFSR, e.g. using Galois Field arithmetic

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 적어도 하나가 0이 아닌 n비트 k개로 n비트를 기억하고 데이터를 1회 쉬프트시키며위의 단순 원시 다항식으로 구성된 n비트는 다수의 저장 수단(402)과; 상기 n비트 상수 데이터와 저장 수단(402)의 저장된 값을 곱하는위의 승산 수단(403); 및 상기위의 승산 수단(403)의 출력과 데이터와 레지스터 수단(402)의 저장된 값을 더하고 출력은 k번째 레지스터 수단(402)로 입력시키는 다수의위의 가산 수단(404)을 포함하여 이루어지는 것을 특징으로 하는 선형 쉬프트 난수 발생기에 관한 것으로, 유한체(Finite field)

Description

난수 발생 장치 및 방법
제1도는 본 발명에 따른 난수 발생 장치의 일실시예 블록도.
제2도는 본 발명에 따른 난수 발생 장치의 동작 과정을 나타내는 일실시예 흐름도.
제3도는 제1도의 상수계산부의 계산 과정을 나타내는 일실시예 흐름도.
제4도는 제1도의 저장부의 구조도.
제5도는 제1도의 저장부의 쉬프팅부의 일실시예 블록도.
제6도는 제5도의 갈로아체상의 승산기의 일실시예 동작 설명도.
제7도는 제5도의 갈로아체상의 제1 및 제2가산기의 일실시예 블록도.
제8도는 제1도의 쉬프팅부, 제어부 및 난수 발생부의 설명 예시도.
* 도면의 주요부분에 대한 부호의 설명
110 : 상수계산부 120 : 저장부
130 : 단순 원시다항식 생성부 141 내지 14n : 쉬프팅부
150 : 난수 발생부 160 : 제어부
본 발명은 난수 발생 장치 및 방법에 관한 것으로서, 특히 갈로아체(GF : Galois Field)(단, n은 자연수)상의 단순 원시다항식(상수항을 제외한 계수가 0 또는 1인 원시다항식)을 생성하여 선형적인 소정 비트의 난수를 발생하는 난수 발생 장치 및 방법에 관한 것이다.
종래의 난수 발생기는 실현상의 어려움 때문에 갈로아체 GF(2)상의 원시다항식으로 구성한 쉬프팅부를 이용하여 설계되어 각종 스트림 암호 시스템 개발에 적용하였다.
그러나, 상기 종래의 난수 발생기에서의 쉬프팅부의 동작은 배타적논리합게이트(Exclusive-OR)와 부울 함수의 결합으로 이루어져 있어 H/W 설계에 적합하나 S/W로 개발할 때에는 1비트 단위의 연산만을 사용하기 때문에 효율성이 떨어지는 단점이 있었으며, 또한 1회 동작시 1비트만이 출력되어 고속의 난수 발생기 설계에는 적합하지 않는 문제점이 존재하였다.
그리고, 개념적으로 갈로아체상의 원시다항식으로 구성한 쉬프팅부를 설계할 수 있으나, n이 커지면 쉬프팅부 동작에 필요한 곱셈 연산을 수행하기 승산기를 구현하기 어려운 문제점이 있었으며, 더욱이, 곱셈 연산표를 사전에 미리 계산하여 내부 메모리에 기억시켜 활용하기 위해서는 2n×2n용량의 메모리를 필요하므로, n이 증가될수록 점유면적이 너무 커져 실질적인 효용성이 떨어지는 문제점이 있었다.
따라서, 본 발명은 상기와 같은 문제점을 해결하기 위해 안출된 것으로서, 유한체(Finite Field) 갈로아체상의 단순 원시다항식을 최소의 곱셈 과정을 통해 쉬프트시켜, 비선형적인 소정 비트의 난수를 발생시킬 수 있고, 또한 최소의 곱셈 과정이 이용되는 쉬프트 기능부의 점유 면적을 최소화 시킬 수 있는 난수 발생 장치 및 방법을 제공하는데 그 목적이 있다.
이와 같은 목적을 달성하기 위한 본 발명의 난수 발생 장치는, 외부로부터 입력된 갈로아체(2)상의 n(단, n은 자연수)차 원시 다항식을 계산하여 다수의 상수값을 출력하는 상수계산수단; 상기 상수계산수단으로부터 출력된 상수값을 저장하기 위한 저장수단; 상기 상수계산수단으로부터 상기 다수의 상수값을 입력받아 갈로아체(2n)상의 k(단, k는 n보다 적은 자연수)차 단순 원시다항식값을 생성하기 위한 단순 원시다항식 생성수단; 상기 저장수단으로부터 읽어온 상수값과 상기 단순 원시다항식 생성수단으로부터 전달된 갈로아체(2n)상의 k차 단순 원시다항식값을 선형적인 소정 비트의 난수열로 출력하는 적어도 하나의 쉬프팅수단; 상기 적어도 하나의 쉬프팅수단으로부터 전달된 선형적인 소정 비트의 난수열을 비선형적인 난수열로 변환하여, 비선형 적인 소정 비트의 난수를 출력하는 난수 발생수단; 및 상기 적어도 하나의 쉬프팅수단의 출력신호를 입력받아 상기 적어도 하나의 쉬프팅수단과 난수 발생수단을 제어하기 위한 제어수단을 포함한다.
또한, 상기 목적을 달성하기 위하여 본 발명은, 비선형적인 소정 비트의 난수를 발생하는 난수 발생 방법에 있어서, 비선형적인 소정 비트의 난수열을 발생하는 쉬프팅수단을 초기화하는 제1단계; 초기화된 상기 쉬프팅수단을 동작시키기 위하여 제어신호를 제공하는 제2단계; 상기 쉬프팅수단은 상기 제어신호에 의해 제어되어 갈로아체(2n)상의 단순 원시다항식값을 쉬프팅하여, 선형적인 소정 비트의 난수열을 발생하는 제3단계; 상기 제어신호에 의해 제어되어, 상기 선형적인 소정 비트의 난수열을 전환하여 비선형적인 소정 비트의 난수를 발생하는 제4단계; 및 상기 비선형적인 소정 비트의 난수를 계속하여 발생할 것인지를 판단하여, 난수 발생을 종료할 때까지 상기 제2단계를 반복수행하는 제5단계를 포함한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다.
먼저, 본 발명에서는 단순 원시다항식으로 n비트 쉬프팅부를 구현함으로써 n비트 쉬프팅부의 동작에 포함되는 곱셈이 1회가 되도록 하였으며, 곱셈을 고속으로 수행하기 위하여 유한체 갈로아체에서의 로그(Log) 및 안티로그 테이블(Antilog Table)을 사전 처리하여 메모리에 저장한 후, 이를 곱셈 연산에 활용하므로, S/W 구현시에는 곱셈에 소요되는 시간을 단축할 수 있고, H/W 구현시에는 칩의 복잡도를 낮추도록 구성하였다.
제1도는 본 발명에 따른 난수 발생 장치의 일실시예 블록도이다.
제1도에 도시된 바와 같이, 본 발명의 난수 발생 장치는, 외부로부터 입력된 갈로아체 GF(2)상의 n(단, n은 자연수)차 원시 다항식을 계산하여 다수의 상수값을 출력하는 상수계산부(110)와, 상수계산부(110)로부터 출력된 다수의 상수값을 저장하기 위한 저장부(120)와, 상수계산부(110)로부터 다수의 상수값을 입력받아 갈로아체 GF(2n)상의 k(단, k는 n보다 적은 자연수)차 단순 원시 다항식값을 생성하기 위한 단순 원시다항식 생성부(130)와, 저장부(120)로부터 읽어온 다수의 상수값과 단순 원시다항식 생성부(130)로부터 전달된 갈로아체 GF(2n)상의 k차 단순 원시 다항식값을 쉬프팅하여 선형적인 n비트의 난수열을 출력하는 다수의 쉬프팅부(141 내지 14n)와, 다수의 쉬프팅부(141 내지 14n)로부터 전달된 선형적인 n비트의 난수열을 비선형적인 난수열로 변환시켜, 비선형적인 n비트의 난수를 출력하는 난수발생부(150)와, 외부로부터 입력되는 시스템 클럭에 따라, 다수의 쉬프팅부(141 내지 14n)의 출력신호를 입력받아 다수의 쉬프팅부(141 내지 14n)와 난수 발생부(150)를 제어하기 위한 제어부(160)를 구비한다.
저장부(120)는 상수계산부(110)로부터 전달된 2n-1 개의 상수값을 저장하기 위한 로그테이블을 갖는 제1저장부(121)와, 상수계산부(110)로부터 전달된 2n-1 개의 상수값을 저장하기 위한 앤티로그테이블을 갖는 제2저장부(122)를 구비한다.
상기한 바와 같은 구조를 갖는 본 발명의 난수 발생 장치의 동작을 상세하게 설명하면 다음과 같다.
상수계산부(110)는 외부로부터 입력된 고속 동작이 가능한 갈로아체상의 n차 단순 원시 다항식을 계산하여, 계산한 2n-1개의 상수값을 단순 원시다항식 생성부(130)로 출력하고, 또한 계산한 2n-1개의 상수값을 제1저장부(121)의 로그테이블과 제2저장부(122)의 앤티로그테이블에 저장시킨다. 이어서, 단순 원시다항식 생성부(130)는 상수계산부(110)로부터 입력된 2n-1개의 상수값을 입력받아 갈로아체상의 k차 단순 원시 다항식값을 생성하여 다수의 쉬프팅부(141 내지 14n)로 출력한다.
다수의 쉬프팅부(141 내지 14n)는 제어부(160)에 의해 동작이 제어되어, 제1 및 제2저장부(121, 122)에서 읽어온 2n-1개의 상수값과 단순 원시다항식 생성부(130)로부터 전달된 갈로아체상의 k차 단순 원시 다항식값을 쉬프팅하여, 선형적인 n비트의 난수열을 난수 발생부(150)로 출력한다. 이어서, 난수 발생부(150)는 제어부(160)에 의해 동작이 제어되어, 다수의 쉬프팅부(141 내지 14n)로부터 전달된 선형적인 n비트의 난수열을 비선형적인 난수로 변환시켜, 비선형적인 n비트의 난수를 출력한다.
한편, 갈로아체상에서 동작하는 k차 단순 원시 다항식에서 상수항을 제외한 계수가 모두 1인 원시 다항식은 다음과 같다.
여기서,이고이다.
그리고, 단순 원시 다항식은 항상 존재한다고 수학적으로 증명되지는 않았지만, 컴퓨터 시뮬레이션으로 찾을 수 있는데, 이러한 일반적인 원시 다항식은 다음과 같다.
여기서,이고이다.
이에 따라, 상기와 같은 일반적인 원시 다항식을 다수의 쉬프팅부(141 내지 14n)로 전달하며, 갈로아체상의 곱셈 연산이 (r+1)번 필요하고, 갈로아체상의 덧셈이 r번 필요하지만, 상기와 같은 단순 원시 다항식을 다수의 쉬프팅부(141 내지 14n)로 전달하면, 곱셈 연산이 1회로 동일한 결과를 얻을 수 있다.
즉, 2nk-1의 주기를 갖는 난수열을 얻을 수 있다.
따라서, 본 발명은 기존에 1비트 쉬프팅부를 결합하여 난수를 발생하는 방법에서 1비트 쉬프팅부 대신에 단순 원시 다항식으로 구성된 n비트 쉬프팅부를 대치하므로써, 일반적인 원시 다항식으로 구성된 n비트 쉬프팅부로 구성했을때의 구현의 어려움, 즉, 많은 횟수의 곱셈 연산을 피할 수 있어 1비트 쉬프팅부로 구성된 난수 발생 장치의 이론을 그대로 적용하여, n비트 난수 발생을 용이하도록 하는 방식이다. 또한, 본 발명은, n비트 쉬프팅부를 1회의 곱셈 연산만으로 구현할 수 있도록 하여 1비트 쉬프팅부로 구성된 다양한 방식의 난수 발생기를 n비트 난수 발생에도 큰 어려움 없이 그대로 수용할 수 있도록 한 것이다.
제2도는 본 발명에 따른 난수 발생 장치의 동작 과정을 나타내는 일실시예 흐름도이다.
제2도를 참조하면, 적어도 하나는 '0'이 되지 않고 임의의 n비트로 초기화도록, 다수의 쉬프팅부(141 내지 14n)를 초기화한(201) 다음, 제어부(160)는 시스템 클럭에 따라 다수의 쉬프팅부(141 내지 14n)를 동작시키기 위한 제어신호를 출력한다(202). 이어서, 다수의 쉬프팅부(141 내지 14n)는 제1 및 제2저장부(121, 122)에서 읽어온 2n-1개의 상수갑과 단순 원시다항식 생성부(130)로부터 전달된 갈로아체상의 k차 단순 원시 다항식값을 쉬프트 레지스트하여, 선형적인 n비트의 난수열을 난수 발생부(150)로 출력한다(203). 이때, 제어부(160)가 제어신호를 출력하여 난수 발생부(150)를 동작시키면(204), 난수 발생부(150)는 제어부(160)에 다수의 쉬프팅부(141 내지 14n)로부터 전달된 선형적인 n비트의 난수열을 비선형적인 난수로 변환시켜, 비선형적인 n비트의 난수를 출력한다(205).
이와 같이, 비선형적인 난수를 발생한 다음, 난수를 계속하여 발생한 것이인지를 판단하여(206), 계속하여 난수를 발생할 것이면 상기 과정(202)으로 넘어가고, 더 이상 난수를 발생하지 않을 것이면 난수 발생을 중지한다.
제3도는 제1도의 상수계산부의 계산 과정으로서, 수학적인 개념은의 0을 제외한 모든 원소는 적당한 원시원 X가 존재하여 Xi꼴로 표시할 수 있는데, 각 원소에 해당하는 i를 제1저장부(121)의 로그 테이블(Log Table)에 저장하고, 그 역에 해당하는 원소를 제2저장부(122)의 앤티로그 테이블(AntiLog Table)에 저장하는 과정을 나타낸 것이다.
제3도에 도시한 바와 같이, 입력으로 GF(2)위의 n차 원시 다항식 f=(fn-1…,f0)을 입력한(301) 다음, 초기값을 i=0, x=(xn-1,…,x1,x0)=(0,…,0,1)으로 설정한다(302, 303). 이어서, x를 n비트 정수 값로 설정하여(304), 제1저장부(121)의 로그 테이블의 v번째에 저장하고, i를 제2저장부(122)의 앤티로그 테이블의 i번째에 v를 저장한(305) 후에, xn-1=1인지를 판단하여(306), xn-1=1이면 x를 원쪽으로 1비트 쉬프트 시킨다(307). 이어서, x의 최하위 비트를 f의 최하위 비트로 설정한다(308). 즉, x0=f0를 시행한다.
만일, 상기 판단 과정(306)에서 xn-1=1이 아니면, x의 최상위 비트로부터 최하위 지적 비트까지,(단, k=n-1,…1)의 연산식을 수행하고(309), x의 최하위 비트를 0으로 설정(x0=0)한다(310). 상기 과정(308) 또는 상기 과정(310)이 수행된 다음에, i를 1 증가시킨다(311). 이어서,인지를 판단하여(312),이면, 상기 과정(304)으로 넘어가고,이 아니면, 계산한 상수값을 상기 제1저장부(121)의 로그 테이블과 제2저장부(122)의 앤티로그 테이블에 저장한다(313).
제5도는 제1도의 쉬프팅부의 일실시예 블록도이다.
제5도에 도시된 바와 같이, 제1도의 다수의 쉬프팅부는 각각, 승산기(510)와, 레지스터(520)와, 제1 및 제2가산기(530, 540)와, 읽기부(550)를 구비한다.
레지스터(520)는 n비트의 데이터를 저장하는 다수의 셀(A0, ···, Ak-1)들로 구성된다.
상기한 바와 같은 구조를 갖는 제1도의 다수의 쉬프팅부의 동작을 상세하게 설명하면 다음과 같다.
승산기(510)는 제1 및 제2저장부(121, 122)로부터 읽어온 상수값, 단순 원시다항식 생성부(130)로부터 전달된 갈로아체상의 k차 단순 원시 다항식값 및 레지스터(520)의 한 셀로부터 전달된 n비트의 데이터를 승산하여, 승산값을 제1가산기(530)로 전달한다. 이때, 읽기부(550)는 제어부(160)로부터 전달된 제어신호에 따라 제1 및 제2저장부(121, 122)에 저장된 상수값을 읽어온 다음, 이 상수값을 승산기(510)로 전달한다.
제1가산기(530)는 승산기(530)로부터 전달된 승산값과 레지스터(520)의 한 셀로부터 전달된 n비트의 데이터를 가산하여, 가산값을 제2가산기(540)로 전달하고, 이어 제2가산기(540)는 제1가산기(530)로부터 전달된 가산값과 레지스터(520)의 한 셀로부터 전달된 n비트의 데이터를 가산하여, 가산값을 난수 발생부(150)로 출력한다. 또한, 제2가산기(540)의 가산값은 레지스터(520)로 궤환된다.
그러면, 다음에는 상기 레지스터가 각 셀에 저장된 n비트의 데이터를 상기 승산기와 제1 및 제2가산기에 전달하는 동작에 대하여 보다 구체적으로 설명한다.
사용자가 레지스터(520)의 셀(A0내지 Ak-1)에 초기값을 설정하는데, 이때 적어도 하나의 셀은 '0'이 아닌 n비트의 데이터를 설정한다. 이렇게, 초기화된 레지스터(520)는 설정된 초기화값들을 승산기(510), 제1가산기(530) 및 제2가산기(540)로 전달한다.
이때, 일차적으로 레지스터(520)는 셀(A0)의 초기화값을 승산기(510)로 전달하고, 셀(Ai)의 초기화값을 제1가산기(530)로 전달하며, 셀(Aj)의 초기화값을 제2가산기(540)로 전달한다.
이와 같이, 셀(A0, Ai, Aj)들의 초기화값이 승산기(510), 제1가산기(530) 및 제2가산기(540)로 전달된 다음, 이차적으로 레지스터(520)는 셀(A1)의 초기화값을 승산기(510)로 전달하고, 셀(Ai+1)의 초기화값을 제1가산기(530)로 전달하며, 셀(Aj+1)의 초기화값을 제2가산기(540)로 전달한다. 이때, 레지스터(520)의 셀(Ak-1)의 초기화값은 셀(Ak-2)의 위치로 이동되고, 초기화값이 셀(Ak-2)로 이동된 셀(Ak-1)에는 제2가산기(540)의 출력값이 궤환되어 저장된다.
이와 같은 과정이 순차적으로 진행되어, 레지스터(520)의 셀(A0내지 Ak-1)의 초기화값들은 승산기(510), 제1가산기(530) 및 제2가산기(540)로 전달되며, 또한, 상기와 같은 과정을 통해 초기화값이 전달된 셀에는 제2가산기(540)의 출력값이 궤환되어 셀(Ak-1)로부터 셀(A0)까지 순차적으로 저장된다.
제6도는 제5도의 갈로아체상의 승산기의 일실시예 동작 설명도이다.
제6도에 도시된 바와 같이, 제5도의위의 승산기는 n비트 데이터 A, B(501)가 입력되면 C = A × B(504)가 출력된다.
먼저, 두 개의 n비트 데이터 A, B(501)는 로그 테이블(502)에 입력되어 내부계산을 통해 계산된 값을 앤티로그 테이블(503)에 입력시켜 출력을 얻는다. 이때, A = 0이면 C = 0을 출력하고, 그렇치 않으면 A, B를 주소로 하는 로그 테이블의 값 i, j를 로그 테이블에 로드한다(502). 내부계산 값 k = i+j(mod 2n-1)이고, k를 주소로 하는 앤티로그 테이블의 값 C가 출력된다. 여기서, Ai, B, C는 n비트 데이터이다.
제7도는 제5도의 갈로아체상의 제1 및 제2가산기의 일실시예 블록도이다.
제7도에 도시된 바와 같이, 제5도의 제1 및 제2가산기는 각각, 제1 및 제2 배타적논리합게이트(710, 720)를 구비한다.
우선, 제5도의 제1가산기에 대한 동작을 설명한다.
제1가산기(530)의 제1배타적논리합게이트(710)는 승산기(510)로부터 전달된 n비트의 데이터와 레지스터(520)로부터 전달된 n비트의 데이터를 배타적논리합하여 제2가산기(540)로 출력한다. 이때, 제1가산기(530)의 제1배타적논리합게이트(710)는 승산기(510) 및 레지스터(520)로부터 전달된 n비트의 데이터중에 최상위 비트에서 최하위 비트순서로 대응되는 데이터를 배타적논리합하고, 또한 제1가산기(530)의 제2배타적논리합게이트(720)는 승산기(510)의 레지스터(520)로부터 전달된 n비트의 데이터중에 최하위 비트에서 최상위 비트순서로 대응되는 데이터를 배타적논리합한다.
다음, 제5도의 제2가산기에 대한 동작을 설명한다.
제2가산기(540)의 제1배타적논리합게이트(710)는 제1가산기(530)로부터 전달된 n비트의 데이터와 레지스터(520)로부터 전달된 n비트의 데이터를 배타적논리합하여, 배타적논리합한 값을 레지스터(520)와 난수 발생부(150)로 전달한다. 이때, 제2가산기(540)의 제1배타적논리합게이트(710)는 제1가산기(530) 및 레지스터(520)로부터 전달된 n비트의 데이터중에 최상위 비트에서 최하위 비트순서로 대응되는 데이터를 배타적논리합하고, 또한 제2가산기(540)의 제2배타적논리합게이트(720)는 승산기(510) 및 레지스터(520)로부터 전달된 n비트의 데이터중에 최하위 비트에서 최상위 비트순서로 대응되는 데이터를 배타적논리합한다.
제8도는 제1도의 쉬프팅부, 난수 발생부 및 제어부의 설명 예시도이다.
제8도를 참조하여 제1도의 선형 쉬프트, 난수 발생부 및 제어부에 대한 동작을 설명하면 다음과 같다.
제어부(810)는 사용자로부터 입력된 시스템 클럭 따라, 쉬프팅부(820)로부터 전달된 선형적인 n비트의 난수열을 입력받아 쉬프팅부(820, 830)들과 난수 발생부(840)를 제어한다. 이와 같이 쉬프팅부(830)는 제어부(810)에 의해 제어되어 쉬프트시킨 선형적인 n비트의 난수열은 난수 발생부(840)로 출력하고, 이어 난수 발생부(840)는 제어부(810)에 의해 제어되어 쉬프팅부(830)로부터 전달된 선형적인 n비트의 데이터를 비선형적인 데이터로 전환하여, 비선형적인 n비트의 난수를 출력한다. 이때, 제어부(810)는 쉬프팅부(820)로부터 전달된 값이 '0'이 아니면, 쉬프팅부(830)를 1회 쉬프트시켜, 그 출력 값을 난수 발생부(840)로 전달시킨다. 이러한 동작은 필요한 만큼의 난수가 발생하였을 때까지 계속한다.
이상에서 설명한 바와 같이 본 발명은, 통상적인 유한체 상의 원시 다항식을 쉬프트시키는 종래의 쉬프팅부가 상당히 많은 곱셈 과정을 수행하는데 반하여, 유한체 갈로아체상의 단순 원시 다항식을 이용하므로써, 쉬프팅부(141 내지 14n)들이 한 번의 곱셈으로 단순 원시 다항식을 쉬프트시킬 수 있도록 하고, 쉬프팅부(141 내지 14n)들에 구비되는 승산기의 면적을 감소시킬 수 있다. 또한, 기존의 쉬프팅부로 구현할 수 있는 모든 난수 발생 장치를 유한체 갈로아체상에서 동작하는 본 발명의 쉬프팅부로 구현할 수 있어 안전하면서도 고속으로 동작하는 난수 발생 장치를 필요로 하는 모든 시스템에 적용할 수 있으며, 특히 스트림 암호 시스템에 효율적으로 활용할 수 있는 효과가 있다.
본 발명의 기술 사상은 상기 바람직한 실시예에 따라 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술 분야의 통상의 전문가라면 본 발명의 기술 사상의 범위내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다.

Claims (5)

  1. 외부로부터 입력된 갈로아체(2)상의 n(단, n은 자연수)차 원시 다항식을 계산하여 다수의 상수값을 출력하는 상수계산수단; 상기 상수계산수단으로부터 출력된 상수값을 저장하기 위한 저장수단; 상기 상수계산수단으로부터 상기 다수의 상수값을 입력받아 갈로아체(2n)상의 k(단, k는 n보다 적은 자연수)차 단순 원시다항식값을 생성하기 위한 단순 원시다항식 생성수단; 상기 저장수단으로부터 읽어온 상수값과 상기 단순 원시다항식 생성수단으로부터 전달된 갈로아체(2n)상의 k차 단순 원시다항식값을 선형적인 소정 비트의 난수열로 출력하는 적어도 하나의 쉬프팅수단; 상기 적어도 하나의 쉬프팅수단으로부터 전달된 선형적인 소정 비트의 난수열을 비선형적인 난수열로 변환하여, 비선형적인 소정 비트의 난수를 출력하는 난수 발생수단; 및 상기 적어도 하나의 쉬프팅수단의 출력신호를 입력받아 상기 적어도 하나의 쉬프팅수단과 난수 발생수단을 제어하기 위한 제어수단을 포함하는 난수 발생 장치.
  2. 제1항에 있어서, 상기 적어도 하나의 쉬프팅수단은 각각, 상기 제어수단으로부터 전달된 제어신호에 따라 상기 저장수단에 저장된 상수값을 읽어오기 위한 읽기수단; 상기 읽기수단을 통해 전달된 상수값, 상기 단순 원시 다항식 생성수단으로부터 전달된 갈로아체(2n)상의 k차 단순 원시 다항식값 및 저장부로부터 전달된 데이터를 승산하기 위한 승산수단; 상기 승산수단으로부터 전달된 승산값과 상기 저장부로부터 전달된 데이터를 가산하기 위한 제1가산수단; 상기 제1가산수단으로부터 전달된 가산값과 상기 저장부로부터 전달된 데이터를 가산하여, 가산한 선형적인 소정 비트의 난수열을 상기 난수 발생수단과 저장부로 출력하는 제2가산수단; 및 외부로부터 입력된 초기화값들을 각 셀에 저장하고, 상기 제2가산수단으로부터 궤환된 선형적인 소정 비트의 난수열을 각 셀에 저장하기 위한 상기 저장부를 포함하는 난수 발생 장치.
  3. 제2항에 있어서, 상기 제1가산수단은, 상기 저장부에 저장된 소정 비트의 데이터와 상기 승산수단의 승산값을 입력받아, 대응되는 비트별로 각각 배타적논리합하여 상기 제2가산수단으로 출력하는 제1 및 제2 배타적논리합 연산수단을 포함하는 난수 발생 장치.
  4. 제2항 또는 제3항에 있어서, 상기 제2가산수단은, 상기 저장부에 저장된 소정 비트의 데이터와 상기 제1가산수단의 승산값을 입력받아, 대응되는 비트별로 각각 배타적논리합하여 상기 난수 발생수단과 상기 저장부로 출력하는 제3 및 제4 배타적논리합 연산수단을 포함하는 난수 발생 장치.
  5. 비선형적인 소정 비트의 난수를 발생하는 난수 발생 방법에 있어서, 비선형적인 소정 비트의 난수열을 발생하는 쉬프팅수단을 초기화하는 제1단계; 초기화된 상기 쉬프팅수단을 동작시키기 위하여 제어신호를 제공하는 제2단계; 상기 쉬프팅수단은 상기 제어신호에 의해 제어되어 갈로아체(2n)상의 단순 원시다항식값을 쉬프팅하여, 선형적인 소정 비트의 난수열을 발생하는 제3단계; 상기 제어신호에 의해 제어되어, 상기 선형적인 소정 비트의 난수열을 전환하여 비선형적인 소정 비트의 난수를 발생하는 제4단계; 및 상기 비선형적인 소정 비트의 난수를 계속하여 발생할 것인지를 판단하여, 난수 발생을 종료할 때까지 상기 제2단계부터 반복수행하는 제5단계를 포함하는 난수 발생 장치.
KR1019940036115A 1994-12-22 1994-12-22 난수 발생 장치 및 방법 KR0154569B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019940036115A KR0154569B1 (ko) 1994-12-22 1994-12-22 난수 발생 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019940036115A KR0154569B1 (ko) 1994-12-22 1994-12-22 난수 발생 장치 및 방법

Publications (2)

Publication Number Publication Date
KR960024904A KR960024904A (ko) 1996-07-20
KR0154569B1 true KR0154569B1 (ko) 1998-11-16

Family

ID=19403006

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019940036115A KR0154569B1 (ko) 1994-12-22 1994-12-22 난수 발생 장치 및 방법

Country Status (1)

Country Link
KR (1) KR0154569B1 (ko)

Also Published As

Publication number Publication date
KR960024904A (ko) 1996-07-20

Similar Documents

Publication Publication Date Title
US4281391A (en) Number theoretic processor
US6049815A (en) Method and apparatus for finite field multiplication
US4745568A (en) Computational method and apparatus for finite field multiplication
KR900006666B1 (ko) 유한체상의 승산기
JP3970337B2 (ja) 大規模データ・ブロックのためのハードウェア最適化リード・ソロモン・デコーダ
EP0080528A1 (en) Computational method and apparatus for finite field arithmetic
US4797848A (en) Pipelined bit-serial Galois Field multiplier
US5442578A (en) Calculating circuit for error correction
KR100756137B1 (ko) 제산 및 제곱근 연산 유닛
EP0963047B1 (en) Reed Solomon coding apparatus and Reed Solomon coding method
US4994995A (en) Bit-serial division method and apparatus
US7089276B2 (en) Modular Galois-field subfield-power integrated inverter-multiplier circuit for Galois-field division over GF(256)
US5761265A (en) Parallel architecture for generating pseudo-random sequences
KR100322739B1 (ko) 유한체연산방법및그장치
US6957243B2 (en) Block-serial finite field multipliers
JP2803601B2 (ja) 有限体元の反転回路
US6609142B1 (en) Method of performing multiplication with accumulation in a Galois body
KR100478974B1 (ko) 직렬 유한체 승산기
KR0154569B1 (ko) 난수 발생 장치 및 방법
JP3823107B2 (ja) 有限体での基底変換方法及び基底変換装置
WO2003096180A2 (en) Fast multiplication circuits
US20030169939A1 (en) Apparatus and method for Fast Hadamard Transforms
JP3660075B2 (ja) 除算装置
CN112527241B (zh) 并行有限域乘法装置
US5448510A (en) Method and apparatus for producing the reciprocal of an arbitrary element in a finite field

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20090701

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee