KR100511684B1 - The pseudo random number generator - Google Patents

The pseudo random number generator Download PDF

Info

Publication number
KR100511684B1
KR100511684B1 KR10-2003-0053371A KR20030053371A KR100511684B1 KR 100511684 B1 KR100511684 B1 KR 100511684B1 KR 20030053371 A KR20030053371 A KR 20030053371A KR 100511684 B1 KR100511684 B1 KR 100511684B1
Authority
KR
South Korea
Prior art keywords
box
key
pseudo
address
random number
Prior art date
Application number
KR10-2003-0053371A
Other languages
Korean (ko)
Other versions
KR20050014948A (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 (주)씨앤에스 테크놀로지
Priority to KR10-2003-0053371A priority Critical patent/KR100511684B1/en
Publication of KR20050014948A publication Critical patent/KR20050014948A/en
Application granted granted Critical
Publication of KR100511684B1 publication Critical patent/KR100511684B1/en

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
    • 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
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher

Abstract

본 발명은 가변적인 크기의 키(Key)를 입력으로 받으며, 그 입력된 키의 크기에 따라 서로 다른 유사 난수를 발생시키도록 설계된 유사 난수 발생기에 관한 것이다.The present invention relates to a pseudo-random number generator, which receives a variable-sized key as an input and is designed to generate different pseudo-random numbers according to the size of the input key.

본 발명에 의하면, 외부에서 입력된 키(Key)를 저장하고 처리하는 키 관리수단과; RC4에서 사용하는 S박스를 저장하고 처리하는 S박스 관리수단과; 상기 S박스의 데이터를 읽고, S박스에 데이터를 쓰기 위한 주소를 생성하는 S박스 접근 주소 생성수단과; 상기 S박스에서 읽어온 데이터를 저장하고, 유사 난수 주소를 생성하는 유사 난수 주소 생성수단과; 상기 구성 수단들을 제어하기 위한 신호를 생성하는 제어수단을 구비함으로서 가변적인 키(Key)를 입력받아 RC4 유사 난수 발생을 수행함을 특징으로 하는 유사 난수 발생기를 제시한다.According to the present invention, a key management means for storing and processing a key (Key) input from the outside; S box management means for storing and processing the S box used in RC4; S box access address generating means for reading data of the S box and generating an address for writing data to the S box; Pseudo random number address generating means for storing data read from the S box and generating pseudo random number addresses; By presenting a control means for generating a signal for controlling the configuration means to present a pseudo-random number generator characterized in that to perform a RC4 pseudo-random number generation by receiving a variable key.

따라서, 본 발명은 여러 개의 서로 다른 키의 크기를 가지면서 서로 다른 유사 난수를 발생시키는 분야인 무선랜(IEEE 802.11)의 암호 보안시스템인 WEP의 유사 난수 발생기에 적용 가능하다.Therefore, the present invention can be applied to a pseudo random number generator of WEP, which is a cryptographic security system of WLAN (IEEE 802.11), which has different sizes of keys and generates different pseudo random numbers.

Description

유사 난수 발생기{The pseudo random number generator}Pseudo random number generator

본 발명은 가변적인 크기의 키(Key)를 입력으로 받으며, 그 입력된 키의 크기에 따라 서로 다른 유사 난수를 발생시키도록 설계된 유사 난수 발생기에 관한 것이다.The present invention relates to a pseudo-random number generator, which receives a variable-sized key as an input and is designed to generate different pseudo-random numbers according to the size of the input key.

무선 랜(LAN)(IEEE 802.11)의 보안 시스템인 웹(Wired Equivalent Privacy: WEP)에 사용하는 유사 난수 발생기는 기존의 스트림 암호 알고리즘인 RC4를 사용한다. 상기 RC4는 크게 1) 내부 배열 초기화, 2) S박스 배열 상태 변경, 3) 유사 난수 발생의 3단계를 거쳐 난수가 발생되는 구조를 가진다.The pseudo-random number generator for the Web (Wired Equivalent Privacy (WEP)), which is a wireless LAN (IEEE 802.11) security system, uses the existing stream cipher algorithm RC4. The RC4 has a structure in which random numbers are generated through three stages: 1) initializing an internal array, 2) changing an S box array state, and 3) generating a pseudo random number.

새로운 키가 입력될 때마다 1),2) 단계의 작업을 거쳐야 하며, 1),2) 단계를 한번만 거치면 입력된 키에 대한 유사 난수를 3)단계를 계속 반복하여 얻어낼 수 있다. 각 단계의 유사 코드는 아래와 같다.Each time a new key is entered, steps 1) and 2) must be performed. Similarly, random numbers for the input key can be obtained by repeating steps 3) only once through steps 1) and 2). The pseudo code for each step is shown below.

1) 내부 배열 초기화1) internal array initialization

for i = 0 to 255 for i = 0 to 255

Si = iSi = i

Ki = KEY(i mod key_length)Ki = KEY (i mod key_length)

end forend for

2) S박스 배열 상태 변경2) S box array status change

j = 0j = 0

for i = 0 to 255for i = 0 to 255

j = (j+Si+Ki) mod 256j = (j + Si + Ki) mod 256

swap Si and Sjswap Si and Sj

end forend for

3) 유사 난수 발생3) pseudo random number generation

i = j = 0i = j = 0

while (원하는 유사 난수 개수 만큼)while (as many pseudorandom numbers as desired)

i = (i +1) mod 256i = (i +1) mod 256

j = (j + Si) mod 256j = (j + Si) mod 256

swap Si and Sjswap Si and Sj

t = (Si + Sj) mod 256t = (Si + Sj) mod 256

PRN = StPRN = St

end whileend while

도 1은 [“A CPLD-based RC-4 Cracking System ”, Paul D. Kundarewich, Steven J.E. Wilton, Alan J. Ju, 1999]에 의해 제안된 32비트의 키를 가지는 RC4를 하드웨어로 구현한 구조이다.Figure 1 shows "A CPLD-based RC-4 Cracking System", Paul D. Kundarewich, Steven J.E. Wilton, Alan J. Ju, 1999] is a hardware implementation of RC4 with a 32-bit key.

도 1에 도시된 바와 같이, 키 메모리(110)와 S박스 메모리(120)에 사용한 메모리는 데이터 버스가 각각 8비트(4*8 bit, 256*8 bit)인 메모리이며, 입력신호는 키를 입력하는 KEY, 키 메모리를 읽고 쓰기 위한 주소를 나타내는 KEY_ADDR, S박스 메모리(120)에 저장할 데이터와 읽기 요청시 주소로 사용하는 값인 i이며, 출력신호는 8비트 유사 난수인 PRN이다.As shown in FIG. 1, the memory used for the key memory 110 and the S box memory 120 is a memory in which the data bus is 8 bits (4 * 8 bit, 256 * 8 bit), respectively, and the input signal is a key. KEY_ADDR indicating an input KEY, an address for reading and writing a key memory, i, a data to be stored in the S box memory 120 and a value used as an address in a read request, and an output signal is an 8-bit pseudorandom PRN.

그 외에 덧셈기 1,2(130)(140)와, 멀티플렉서, j레지스터, Si레지스터, Sj레지스터 등이 구비되어 있다. 이러한 구조의 RC4 처리는 아래와 같이 수행된다.In addition, adders 1, 2 (130, 140), a multiplexer, a j register, a Si register, an Sj register, and the like are provided. RC4 processing of this structure is performed as follows.

1) 내부 배열 초기화1) internal array initialization

(1) 키 메모리(110)에 사용하고자 하는 키를 저장한다.(1) The key to be used is stored in the key memory 110.

(2) S박스 메모리(120)에 0번지부터 255번지까지 각 주소에 해당하는 값을 저장한다. 즉, 0번지에는 0, 1번지에는 1, 이렇게 차례대로 255번지에는 255를 저장한다.(2) The value corresponding to each address is stored in the S box memory 120 from address 0 to address 255. That is, 0 is stored at 0, 1 is stored at 1, and 255 is stored at 255 in this order.

2) S박스 배열 상태 변경2) S box array status change

(1) j 레지스터는 0으로 초기화 한다.(1) The j register is initialized to zero.

(2) 외부에서 입력된 KEY_ADDR을 주소로 하여 키 메모리(110)에 읽기 요청을 하여 키의 일부분을 얻어내어 그 값을 Ki라 하고, 외부에서 입력된 i를 주소로 하여 S박스 메모리(120)에 읽기 요청해 얻어낸 데이터를 Si라 한다. 상기 Si를 Si 레지스터에 저장한다.(2) A read request is made to the key memory 110 using the externally input KEY_ADDR as an address to obtain a part of the key, and its value is referred to as Ki, and the S box memory 120 using the externally input i as the address. The data obtained by reading from is called Si. The Si is stored in a Si register.

(3) j 레지스터에 저장된 값과 (2)과정에서 얻어진 Si, Ki값을 덧셈기 1(130)을 이용해 모두 더한 값을 j라 하고 j 레지스터에 저장함과 동시에 j를 주소로 하여 S박스 메모리(120)에서 읽기 요청하여 얻어낸 값을 Sj라 하고, Sj 레지스터에 저장한다.(3) The value stored in the j register and the Si and Ki values obtained in the step (2) are added together using the adder 1 (130), and the value is stored in the j register and j is used as the address of the S box memory (120). In S), the value obtained by reading request is called Sj and stored in Sj register.

(4) Si 레지스터에 저장된 값은 j를 주소로 하여 S박스 메모리(120)에 쓰기를 하고, Sj 레지스터에 저장된 값은 i를 주소로 하여 S박스 메모리(120)에 쓰기를 하여 서로 값이 교환되도록 한다.(4) The values stored in the Si register are written to the S box memory 120 using j as the address, and the values stored in the Sj register are written to the S box memory 120 using i as the address and exchanged with each other. Be sure to

(5) 상기의 (2) ~ (4) 과정을 외부에서 입력된 i가 0에서 하나씩 증가하여 255가 될 때 까지 반복한다.(5) Repeat the above steps (2) to (4) until i input from the outside increases from 0 to 255.

3) 유사 난수 발생3) pseudo random number generation

(1) j 레지스터는 0으로 초기화 한다.(1) The j register is initialized to zero.

(2) 외부에서 입력된 i를 주소로 하여 S박스 메모리(120)에 읽기 요청해 얻어낸 데이터를 Si라 하고, 이 값을 Si 레지스터에 저장한다.(2) The data obtained by reading request from the S box memory 120 using i input from the outside as an address is called Si, and this value is stored in the Si register.

(3)j 레지스터에 저장된 값과 Si를 덧셈기 1(130)을 이용해 더한 값을 j라 하고, 이 값을 j 레지스터에 저장함과 동시에 j를 주소로 하여 S박스 메모리(120)에 읽기 요청해 얻어진 데이터를 Sj라 하고, Sj 레지스터에 저장한다.(3) The value stored in the j register and Si added using the adder 1 (130) is called j, and the value is stored in the j register and obtained by reading a request to the S box memory 120 using j as an address. The data is called Sj and stored in the Sj register.

(4) Si 레지스터에 저장된 값은 j를 주소로 하여 S박스 메모리(120)에 쓰기를 하고, Sj 레지스터에 저장된 값은 i를 주소로 하여 S박스 메모리(120)에 쓰기를 하여 서로 값이 교환되도록 한다.(4) The values stored in the Si register are written to the S box memory 120 using j as the address, and the values stored in the Sj register are written to the S box memory 120 using i as the address and exchanged with each other. Be sure to

(5) Si 레지스터와 Sj 레지스터에 저장된 값을 덧셈기 2(140)를 이용해 더한 값을 주소로 하여 S박스 메모리(120)에 읽기 요청하여 얻어낸 값이 유사 난수이다.(5) The value obtained by reading the S-box memory 120 from the value stored in the Si register and the Sj register by using the adder 2 (140) as an address is a pseudo-random number.

(6) 발생시키고 싶은 유사 난수의 개수만큼 (2) ~ (5)의 과정을 반복한다.(6) Repeat the process of (2) ~ (5) as many as the similar random number that you want to generate.

상술한 바와 같이, 도 1의 구조에서는 고정된 크기의 키만을 입력으로 받을 수 있으며, 그 키에 대한 유사 난수만을 발생시킬 수 있다. 가변적인 키의 크기를 필요로 하는 RC4를 사용하는 보안시스템인 무선랜(IEEE 802.11)의 WEP의 유사 난수 발생기 등에 사용할 수 없다는 문제점이 있다.As described above, in the structure of FIG. 1, only a fixed size key may be received as an input, and only pseudo random numbers for the key may be generated. There is a problem in that it cannot be used for a pseudo random number generator of WEP of a wireless LAN (IEEE 802.11), which is a security system using RC4 that requires a variable key size.

또한, 도 1의 RC4 구조에서는 키 메모리와 S박스 메모리를 저장하기 위해서 메모리를 사용하였다. 메모리를 사용하면 초기화하는데 많은 양의 클록이 소모된다. 1) 단계의 내부 배열 초기화를 위해서는 256 클록이 소모되므로 S박스 초기화에 많은 지연 시간이 발생한다는 문제점이 있다. 또, 2) 3)단계에서 Si와 Sj 값을 서로 교환할 경우에 메모리 쓰기를 동시에 할 수 없어 2클록의 지연시간이 생긴다는 문제점이 있다.In addition, the RC4 structure of FIG. 1 uses a memory to store a key memory and an S box memory. Using memory consumes a large amount of clock to initialize. Since 256 clocks are consumed to initialize the internal array of step 1, there is a problem that a large delay time occurs in initializing the S box. In addition, when the Si and Sj values are exchanged in step 2) and 3), memory writing cannot be performed simultaneously, resulting in a delay of 2 clocks.

또한, 도 1의 구조에서는 S박스 메모리 접근을 위한 주소를 외부에서 입력해 주므로 외부에서 제어하기가 복잡해 지며, 키 메모리 접근의 경우에도 외부에서 키와 키 메모리 주소를 입력해 주어야 하기 때문에 외부의 제어 로직이 복잡해 진다는 단점이 있다.In addition, in the structure of FIG. 1, since the address for accessing the S-box memory is input from the outside, it is complicated to control from the outside, and in the case of key memory access, since the key and the key memory address must be input from the outside, The disadvantage is that the logic is complicated.

따라서 본 발명은 상기한 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 가변적인 크기의 키를 입력으로 받으며 그 입력된 키의 크기에 따라 서로 다른 유사 난수를 발생시키토록 하는 유사 난수 발생기를 제공하는데 있다.Accordingly, the present invention is to solve the above problems, an object of the present invention is to provide a pseudo-random number generator that receives a variable size of the key as input and generates different pseudo-random numbers according to the size of the input key. have.

또한, 본 발명의 다른 목적은 내부 배열 초기화 시간과 유사 난수 발생 시간 줄이기 위해서 메모리 대신 레지스터를 사용하여 내부 배열 초기화 시간과 유사 난수 발생 시간을 줄여 고속으로 처리할 수 있도록 하는 유사 난수 발생기를 제공하는데 있다. In addition, another object of the present invention is to provide a pseudo random number generator that can be processed at a high speed by reducing the internal array initialization time and pseudo random number generation time by using a register instead of a memory to reduce the internal array initialization time and pseudo random number generation time .

상기한 본 발명의 목적을 달성하기 위한 기술적 사상으로써 본 발명은256 비트의 신호로 RC4에서 사용하고자 하는 데이터의 크기가 서로 다른 가변적인 키(Key)를 외부로부터 입력받아 키 레지스터에 저장하고 관리하기 위한 키 관리수단과;상기 RC4에서 사용하는 S박스의 데이터를 저장하고 관리하기 위한 S박스 관리수단과;상기 S박스의 데이터를 읽고, S박스에 데이터를 쓰기 위한 S박스 접근 주소를 생성하는 S박스 접근 주소 생성수단과;상기 S박스에서 읽어온 데이터를 저장하고, 유사 난수 주소를 생성하기 위한 유사 난수 주소 생성수단; 및As a technical idea for achieving the above object of the present invention, the present invention is a 256-bit signal to receive a variable key having a different size of data to be used in RC4 from the outside to store and manage in a key register Key management means for; S box management means for storing and managing the data of the S box to be used in the RC4; S box for reading the data of the S box, and generates an S box access address for writing data to the S box Box access address generating means; pseudo random number address generating means for storing data read from the S box and generating a pseudo random number address; And

상기 각 구성수단의 키 레지스터 및 데이터의 입출력을 제어하기 위한 신호를 생성하는 제어수단을 포함하는 유사 난수 발생기를 제공한다.It provides a pseudo-random number generator including a control unit for generating a signal for controlling the input and output of the key register and the data of the respective configuration means.

삭제delete

삭제delete

삭제delete

삭제delete

이하, 본 발명의 실시 예에 대한 구성 및 그 작용을 첨부한 도면을 참조하면서 상세히 설명하기로 한다.Hereinafter, with reference to the accompanying drawings, the configuration and operation of the embodiment of the present invention will be described in detail.

본 발명에 의하면, 64, 128, 152, 256 비트의 키를 입력 받을 수 있으며, 각 키에 따른 유사 난수를 발생시킬 수 있다.According to the present invention, keys of 64, 128, 152, and 256 bits can be input, and pseudo-random numbers corresponding to the keys can be generated.

도 2는 본 발명에 따른 유사 난수 발생기의 블록 구성도이다. 도 2는 크게 키 관리부(210), 제어부(220), S박스 관리부(230), S박스 접근 주소생성부(240), 유사 난수 주소생성부(250)로 나뉘어진다.2 is a block diagram of a pseudo-random number generator according to the present invention. 2 is largely divided into a key manager 210, a controller 220, an S box manager 230, an S box access address generator 240, and a pseudo-random address generator 250.

상기 키 관리부(210)는 외부에서 입력된 키를 저장 및 관리하여 필요한 처리를 하는 역할을 하고, S박스 관리부(230)는 RC4에서 사용하는 S박스를 저장하고 처리하는 역할을 한다.The key management unit 210 serves to store and manage externally input keys and perform necessary processing, and the S box management unit 230 stores and processes S boxes used in RC4.

상기 S박스 접근 주소생성부(240)는 S박스의 데이터를 읽고, S박스에 데이터를 쓰기 위한 주소를 생성하는 역할을 하고, 유사 난수 주소생성부(250)는 S박스에서 읽어온 데이터를 저장하고, 유사 난수 주소를 생성하는 역할을 하며, 제어부(220)는 다른 구성 요소들을 제어하기 위한 신호를 발생하는 역할을 한다.The S box access address generation unit 240 reads data of the S box and generates an address for writing data to the S box, and the pseudo-random address generation unit 250 stores data read from the S box. The controller 220 may generate a pseudo random number address and generate a signal for controlling other components.

먼저, 입력 신호인 KEY는 256비트의 신호로 RC4에서 사용하고자 하는 키이고, KEY_SEL은 2비트의 신호로 몇 비트의 키가 입력으로 들어가는지 선택하는 신호이다. 00은 64비트, 01은 128비트, 10은 152비트, 11은 256비트이다. 그리고 출력 신호인 PRN은 8비트로 발생된 유사 난수이다.First, KEY, which is an input signal, is a 256-bit signal and a key to be used in RC4. KEY_SEL is a 2-bit signal that selects how many bits of a key enter an input. 00 is 64 bits, 01 is 128 bits, 10 is 152 bits, 11 is 256 bits. The PRN, which is an output signal, is a pseudo random number generated with 8 bits.

이 때, RC4 처리는 도 3과 같은 플로우차트에 의해 수행된다.At this time, RC4 processing is performed by the flowchart as shown in FIG.

외부에서 키가 입력되면 키 관리부(210)의 키 레지스터에 저장되고(S301),When the key is input from the outside is stored in the key register of the key management unit 210 (S301),

S박스 관리부(230)의 S박스 레지스터 파일에서는 내부의 멀티플렉서에 의해 초기화 값이 선택되어 내부의 각 레지스터에 초기화 값이 저장되고(S302),In the S box register file of the S box management unit 230, an initialization value is selected by an internal multiplexer, and the initialization value is stored in each internal register (S302).

S박스 접근 주소생성부(240)의 j 레지스터를 0으로 초기화 하고(S303),Initialize the j register of the S box access address generator 240 to 0 (S303),

제어부(220)에서 키의 일부분을 선택하기 위한 제어 신호와 S박스 관리부(230)에서 데이터를 읽어오기 위한 주소(key_mux_sel, i)를 발생시키고(S304), … (1)The control unit 220 generates a control signal for selecting a part of the key and an address (key_mux_sel, i) for reading data from the S box management unit 230 (S304). (One)

i 를 주소로 하여 S박스 관리부(230)에 읽기를 요청해 데이터를 얻어내어(Si), 유사 난수 주소생성부(250)의 Si 레지스터에 저장하고(S305),Request the read from the S box management unit 230 with i as an address to obtain data (Si), store it in the Si register of the pseudo-random address generation unit 250 (S305),

S박스 접근 주소생성부(240)의 j 레지스터에 저장된 값(j_out), Si 그리고 키 관리부(210)의 출력인 key_out을 S박스 접근 주소생성부(240)의 덧셈기를 이용해 모두 더하고(j)(S306),The value j_out stored in the j register of the S box access address generator 240, Si, and key_out, which are outputs of the key manager 210, are all added using the adder of the S box access address generator 240 (j) ( S306),

j를 j 레지스터에 저장함과 동시에 j를 주소로 하여 S박스 관리부(230)에 읽기 요청을 하여 값을 얻어내어(Sj) Sj 레지스터에 저장하고(S307),While storing j in the j register and making a read request to the S box management unit 230 with j as an address, the value is obtained (Sj) and stored in the Sj register (S307),

Si, Sj를 각각 j, i 를 주소로 하여 S박스 관리부(230)에 저장하고(S308), … (2)Si and Sj are stored in the S box management unit 230 with j and i as addresses (S308),. (2)

상기 (1) ~ (2)의 과정을 제어부(220)가 발생시킨 i가 0에서 하나씩 증가하여 255가 될때까지 반복하고(S309),The process of steps (1) to (2) is repeated until the i generated by the controller 220 increases from 0 to 255 until it becomes 255 (S309),

S박스 접근 주소생성부(240)의 j 레지스터는 0으로 초기화하고(S310),The j register of the S box access address generator 240 is initialized to 0 (S310),

제어부(220)은 S박스 관리부(230)에서 데이터를 읽어오기 위한 주소를 발생시키고(i)(S311), … (3)The control unit 220 generates an address for reading data from the S box management unit 230 (i) (S311),. (3)

i 를 주소로 하여 S박스 관리부(230)에 읽기를 요청해 데이터를 얻어내어(Si) 유사 난수 주소생성부(250)의 Si 레지스터에 저장하고(S312),Request the read to the S box management unit 230 with i as an address to obtain data (Si) and store it in the Si register of the pseudo-random address generation unit 250 (S312),

S박스 접근 주소생성부(240)의 j 레지스터에 저장된 값(j_out), Si 를 S박스 접근 주소생성부(240)의 덧셈기를 이용해 더하고(j) (S313),The value (j_out) stored in the j register of the S box access address generator 240 is added to Si using the adder of the S box access address generator 240 (j) (S313),

j 를 j 레지스터에 저장함과 동시에 j 를 주소로 하여 S박스 관리부(230)에 읽기 요청을 하여 값을 얻어내어(Sj) Sj 레지스터에 저장하고(S314),In addition to storing j in the j register and making a read request to the S box management unit 230 using j as an address to obtain a value (Sj) and storing it in the Sj register (S314),

Si, Sj를 각각 j, i 를 주소로 하여 S박스 관리부(230)에 저장하고(S315),Si, Sj are stored in the S box management unit 230 with j and i as addresses (S315),

Si, Sj 를 유사 난수 주소생성부(250)의 덧셈기를 이용해 더하고(t)(S316),Si and Sj are added using the adder of the pseudorandom address generator 250 (t) (S316),

t 를 주소로 하여 S박스 관리부(230)에 읽기를 요청해 얻어내고(PRN)(S317), … (4) 여기서, 얻어진 값이 유사 난수이다.A request is made to the S box management unit 230 for reading, with t as the address (PRN) (S317),... (4) Here, the obtained value is a pseudorandom number.

발생시키고 싶은 유사 난수의 개수만큼 (3) ~ (4)의 과정을 반복한다(S318).The process of (3) to (4) is repeated as many as the number of similar random numbers to be generated (S318).

도 2에 도시된 키 관리부(210)는 도 4와 같이 구성된다.The key manager 210 illustrated in FIG. 2 is configured as shown in FIG. 4.

도 4에 도시된 키 레지스터(211)는 256 비트의 레지스터로 최대 256비트의 키를 입력 받을 수 있다. 레지스터의 크기가 256 비트이기 때문에 64 비트의 키, 128 비트의 키, 152 비트의 키, 256 비트의 키를 저장할 수 있다. 예컨대, 64 비트의 키기 입력되면 키 레지스터 중 64 비트만 사용하게 저장하게 된다. 메모리를 사용하게 되면 외부에서 키를 입력할 때 8비트씩 여러 번 데이터를 입력해야 하지만 레지스터를 사용하는 경우에는 한번에 원하는 키의 크기 만큼을 입력하면 된다.The key register 211 shown in FIG. 4 may receive a maximum of 256 bits as a 256 bit register. Because the register is 256 bits in size, it can store 64-bit keys, 128-bit keys, 152-bit keys, and 256-bit keys. For example, if a 64-bit key is input, only 64 bits of the key register are stored. When using a memory, data must be input several times by 8 bits when inputting a key from an external source. However, when using a register, input the desired size of a key at a time.

키 멀티플렉서(212)는 RC4 수행 과정에서 전체 키에서 필요한 부분을 출력으로 해주는 부분이다. 키 레지스터(211)에 저장된 키가 8 비트신호 32개(k0 ~ k31)로 나뉘어 키에서 필요한 부분을 각각 선택해 주게 된다. 가변적인 키의 크기에 따라 사용되는 신호가 다르게 되는데, 그 이유는 실제적인 키 데이터가 있는 부분이 가변적인 키에 따라 서로 다르기 때문이다.예컨대, 64 비트 키의 경우 k0 ~ k7까지의 신호에만 실제 키 데이터가 있게 되고, k8 ~ k31에는 키 데이터가 없다. 마찬가지로 128 비트 키의 경우 k0 ~ k15까지의 신호에만 실제 키 데이터가 있고 k16 ~ k31에는 키 데이터가 없으며, 152 비트의 경우 k0 ~ k18까지의 신호에 실제 키 데이터가 있고, k19 ~ k31에는 키 데이터가 없다. 256 비트의 경우 k0 ~ k31 가지의 모든 신호에 키 데이터가 있게 된다. 따라서 입력된 가변 키의 크기에 따라 키 멀티플렉서(212)가 제어되는 실제적인 키 데이터가 있는 신호 중에서 필요한 신호를 선택하여 출력하게 된다. 이 때, 키 데이터가 없는 신호(상기 설명한대로 가변적인 키에 따라 다름)는 전혀 선택하지 않게 된다. 키 선택을 위한 제어신호인 key_mux_sel은 외부의 제어부(220)에서 발생되어 입력된다.상기 키 레지스터(211)와 키 멀티플렉서(212)가 64, 128, 152, 256 비트를 처리할 수 있게 되어 있으므로 가변적인 키에 대해서 서로 다른 RC4 유사난수 발생을 할 수 있도록 하여 하나의 회로에 통합 구현이 가능하게 된다.The key multiplexer 212 is a part that outputs a necessary part of the entire key in the RC4 execution process. The key stored in the key register 211 is divided into 32 8-bit signals (k0 to k31) to select the required portion of the key, respectively. Depending on the size of the variable key, the signal used is different because the part of the actual key data is different depending on the variable key. For example, for 64-bit keys, only the signals from k0 to k7 There is key data, and there is no key data in k8 to k31. Similarly, for 128-bit keys, only the signals k0 through k15 contain the actual key data, and k16 through k31 have no key data; for 152 bits, the signals from k0 through k18 have the actual key data, and k19 through k31 have the key data. There is no. For 256 bits, all signals from k0 to k31 have key data. Therefore, the key multiplexer 212 selects and outputs a required signal from among signals having actual key data controlled according to the input variable key size. At this time, a signal without key data (depending on the variable key as described above) is not selected at all. The key_mux_sel, which is a control signal for selecting a key, is generated and input by an external controller 220. Since the key register 211 and the key multiplexer 212 can process 64, 128, 152, and 256 bits, they are variable. It is possible to generate different RC4 pseudorandom numbers for the in-key so that it can be integrated in one circuit.

멀티플렉서(213)는 키의 일정 부분과 0을 선택하여 출력해 주는 부분이다. RC4 수행 과정에서 부분 키가 필요없는 과정에서는 0을 선택하여 출력해 주고, 부분 키가 필요한 과정에서는 키의 일정 부분을 출력해 준다.The multiplexer 213 is a portion for selecting and outputting a predetermined portion of the key and 0. In the process that does not require the partial key in the RC4 execution process, it selects and prints 0, and in the process requiring the partial key, it outputs a certain portion of the key.

출력된 key_out은 S박스 주소생성부(240)로 입력된다.The output key_out is input to the S box address generator 240.

도 2에 도시된 S박스 관리부(230)는 도 5와 같이 구성된다.S box management unit 230 shown in Figure 2 is configured as shown in FIG.

두 개의 쓰기 포트와 한 개의 읽기 포트를 가지는 구조이다. S박스 데이터를 저장하기 위한 8비트 레지스터(231-0 …231-255)가 256개 있으며, 각 레지스터의 입력 단에는 세 개의 입력을 가지는 멀티플렉서(232-0 …232-255)를 배치하여 외부에서 입력된 데이터와 초기화 데이터를 선택할 수 있게 하였고, 외부에서 들어온 신호를 제어해서 내부에서 원하는 신호로 출력을 해주는 조합회로(233)와 256개의 레지스터로부터 하나의 출력을 해 주는 출력 멀티플렉서(234), 외부에서 입력된 여러 개의 S박스 읽기 주소 중에서 선택하기 위한 주소선택 멀티플렉서(235), 읽기 주소를 잠시 저장하기 위한 주소 레지스터(236)로 구성되어 있다.This structure has two write ports and one read port. There are 256 8-bit registers (231-0… 231-255) for storing S-box data, and a multiplexer (232-0… 232-255) with three inputs is arranged at the input of each register to Input data and initialization data can be selected, the combination circuit 233 for controlling the signal from the outside to output the desired signal from the inside and the output multiplexer 234 for outputting one from 256 registers, the external The address selection multiplexer 235 for selecting from among multiple S-box read addresses input from and an address register 236 for temporarily storing the read address.

256개의 레지스터(231-0 …231-255)는 각 3개의 데이터를 멀티플렉서(232-0 …232-255)를 통해서 선택적으로 입력 받게 된다. 이 때, 조합회로(233)에서 멀티플렉서의 선택 신호인 mux_sel0, mux1_sel, …, mux255_sel을 발생시켜 원하는 데이터를 각각 출력해 준다. 내부 메모리 초기화 시에 각 레지스터는 레지스터 번호에 따른 상수 값을 입력 받기 위해서 멀티플렉서(232-0 …232-255)의 입력으로 0부터 255까지의 상수값을 가진다.The 256 registers 231-0 ... 231-255 are selectively input to each of the three data through the multiplexer 232-0 ... 232-255. At this time, the combination circuit 233 mux_sel0, mux1_sel,... Which are the selection signals of the multiplexer. It generates mux255_sel and prints out the desired data. In the internal memory initialization, each register has a constant value from 0 to 255 as an input of the multiplexer (232-0… 232-255) to receive a constant value according to the register number.

즉, 내부 배열 초기화 시에 멀티플렉서0(232-0)는 0을 출력으로 내보내어 레지스터0(231-0)에는 0가 저장되고, 멀티플렉서1(232-1)은 1을 출력으로 내보내어 레지스터1(231-1)에는 1이 저장되며, 이런 방식으로 저장되어 멀티플렉서255(232-255)는 255를 출력으로 내보내어 레지스터255(231-255)에는 255가 저장되게 된다. 따라서 S박스를 메모리를 사용하여 구현한 경우에는 내부 배열 초기화 시에 256클록이 소모되지만 도 5의 경우에는 1클록으로 내부 배열 초기화가 모두 이루어지게 된다.That is, when the internal array is initialized, multiplexer 0 (232-0) outputs 0 as an output, 0 is stored in register 0 (231-0), and multiplexer 1 (232-1) outputs 1 as an output and register 1 1 is stored in (231-1), and is stored in this manner so that multiplexer 255 (232-255) outputs 255 as an output so that 255 is stored in register 255 (231-255). Therefore, when the S box is implemented using memory, 256 clocks are consumed when initializing the internal array. However, in the case of FIG. 5, the internal array initialization is performed with one clock.

유사 난수 주소생성부(250)에서 출력된 Si, Sj를 S박스에 저장하기 위해서 각 데이터가 저장될 레지스터만 인에이블(enable)되어 있어야 하므로, 제어부(220)에서 출력된 i와 S박스 접근 주소생성부(240)에서 출력된 j를 조합회로(233)에서 제어하여 출력된 reg1_en, reg2_en, …, reg_255_en 신호가 각 레지스터에 입력되어 각 레지스터를 인에이블(enable)을 시키거나 디스에이블(disable) 시키게 된다.In order to store Si and Sj output from the pseudo-random address generation unit 250 in the S box, only registers in which data is to be stored must be enabled, so the i and S box access addresses output from the controller 220 are stored. Reg j_en, reg2_en,... Output by controlling the j output from the generation unit 240 by the combination circuit 233. The reg_255_en signal is input to each register to enable or disable each register.

외부에서 읽기 요청시에는 제어부(220)에서 출력된 i, S박스 접근 주소생성부(240)에서 출력된 j, j_out, 유사 난수 주소생성부(250)에서 출력된 t를 중 하나를 주소선택 멀티플렉서(235)에서 선택하여 출력된 값을 잠시 주소레지스터(236)에 저장하고, 주소레지스터(236)에서 출력된 값을 출력 멀티플렉서(234)의 선택 값으로 입력하여 출력된 값을 외부로 출력(s_out)하게 된다.When an external read request is made, one of the i output from the controller 220, the j output from the S box access address generator 240, the j_out output from the pseudorandom address generator 250, and the t is selected from the address selection multiplexer. In step 235, the output value is temporarily stored in the address register 236, and the value output from the address register 236 is input as the selected value of the output multiplexer 234 to output the output value to the outside (s_out). )

출력된 s_out은 유사 난수 주소생성부(250)와 S박스 접근 주소생성부(240)로 각각 입력된다The output s_out is input to the pseudo random number generator 250 and the S box access address generator 240, respectively.

도 2에 도시된 S박스 접근 주소생성부(240)는 도 6과 같이 구성된다.S box access address generator 240 shown in Figure 2 is configured as shown in FIG.

덧셈기(241)와 레지스터(242)로 이루어져 있다. 덧셈기(241)는 외부에서 입력된 3개의 데이터(j레지스터에서 출력된 j_out, 키 관리부(210)에서 출력된 key_out, S박스 관리부(230)에서 출력된 s_out)를 모두 더하여 외부로 출력(j)함과 동시에 j 레지스터에 저장하고, 저장된 j 레지스터의 값을 외부로 출력하는 구조로 되어 있다.It consists of an adder 241 and a register 242. The adder 241 adds all three data input (j_out output from the j register, key_out output from the key management unit 210, and s_out output from the S box management unit 230) to be output to the outside (j). At the same time, it is stored in the j register and outputs the value of the stored j register to the outside.

출력신호인 j는 S박스 관리부(230), j_out은 또 다시 S박스 접근 주소생성부(240)으로 각각 입력된다.The output signal j is input to the S box management unit 230 and j_out is input to the S box access address generator 240 again.

도 2에 도시된 유사 난수 주소생성부(250)는 도 7과 같이 구성된다.The pseudo-random address generator 250 shown in FIG. 2 is configured as shown in FIG. 7.

두 개의 Si와 Sj 레지스터(251)(252)와 덧셈기(253)로 이루어져 있으며, S박스 관리부(230)에서 출력된 s_out을 Si 혹은 Sj 레지스터(251)(252)에 저장하는 구조로 되어 있으며, 외부에서 입력된 데이터가 동시에 Si, Sj에 저장되는 것이 아니라 두 개의 레지스터 중에서 필요한 레지스터에 저장을 하고, Si, Sj 레지스터(251)(252)에 저장된 값을 외부로 출력해 주게 된다.It consists of two Si and Sj registers 251 and 252 and an adder 253, and stores the s_out output from the S box management unit 230 in the Si or Sj registers 251 and 252. The data input from the outside is not stored in Si and Sj at the same time, but is stored in the necessary register among two registers, and the values stored in the Si and Sj registers 251 and 252 are output to the outside.

덧셈기(253)가 Si, Sj 레지스터(251)(252)의 값을 더하여 외부로 출력(t)한다. Si, Sj 레지스터(251)(252)의 값을 더한 값이 S박스 관리부(230)의 유사 난수가 저장된 주소가 된다.The adder 253 adds the values of the Si and Sj registers 251 and 252 to output to the outside t. The value obtained by adding the values of the Si and Sj registers 251 and 252 is an address in which the pseudo-random number of the S box management unit 230 is stored.

출력된 Si, Sj, t는 모두 S박스 관리부(230)로 입력된다.The output Si, Sj, t are all input to the S box management unit 230.

이상에서와 같이 본 발명에 의한 유사 난수 발생기에 따르면 다음과 같은 효과가 있다.According to the pseudo-random number generator according to the present invention as described above has the following effects.

첫째, 하나의 고정된 키를 입력 받아서 유사 난수를 발생시키는 종래의 방식에 비해서, 제안된 본 발명의 경우 64, 128, 152, 256비트의 가변적인 키를 입력으로 받아 유사 난수를 발생시키므로 각 키에 따른 RC4 회로를 별도로 구현할 필요가 없이 회로를 공유하므로 하드웨어 면적이 1/4으로 줄어들게 되며, 여러 개의 서로 다른 키의 크기를 가지면서 서로 다른 유사 난수를 발생시키는 분야인 무선랜(IEEE 802.11)의 암호 보안시스템인 WEP의 유사 난수 발생기에 사용하기 적합하다.First, compared to the conventional method of generating a pseudo random number by inputting a fixed key, the proposed method generates pseudo random numbers by receiving a variable key of 64, 128, 152, and 256 bits as input. The hardware area is reduced to 1/4 because the circuit is shared without the need to implement separate RC4 circuits, and according to the WLAN (IEEE 802.11), an area that generates different pseudo-random numbers with different sizes of keys. It is suitable for use in the pseudo random number generator of WEP.

둘째, S박스에서 레지스터를 사용하여 내부 배열 초기화에 들어가는 시간을 1클록 만을 소모해 메모리를 사용할 경우에 비해서 1/256으로 줄였고, 두 개의 쓰기 포트를 제공하여 하나의 쓰기 포트만을 제공하는 메모리를 사용한 종래의 방식에 비해서 동시에 두 개의 데이터를 쓸 수 있도록 하여 고속의 RC4 유사 난수 발생을 하기에 적합하다.Second, the time required to initialize the internal array using registers in the S box was reduced to 1/256 compared to the case of using memory by using only one clock, and using memory that provided only one write port by providing two write ports. Compared to the conventional method, two data can be written at the same time, which is suitable for high-speed RC4 pseudo random number generation.

셋째, 종래의 방식에서는 S박스 접근을 위한 주소를 외부에서 값을 입력해 주어야 했으나, 본 발명에서는 S박스 접근을 위한 주소를 내부에서 발생하도록 하여 외부 로직을 간단하게 할 수 있다.Third, in the conventional method, an address for S box access has to be input from the outside, but in the present invention, an external logic can be simplified by generating an address for S box access from the inside.

도 1은 종래 기술에 따른 32비트의 키를 가지는 RC4의 블록 구성도이다.1 is a block diagram of a RC4 having a 32-bit key according to the prior art.

도 2는 본 발명에 따른 유사 난수 발생기의 전체 블록 구성도이다. 2 is an overall block diagram of a pseudo-random number generator according to the present invention.

도 3은 본 발명에 따른 유사 난수 발생기의 RC4 처리 과정을 상세하게 나타낸 순서도이다.3 is a flowchart showing in detail the RC4 processing of the pseudo-random number generator according to the present invention.

도 4는 도 2에 도시된 키 관리부의 상세 구성도이다.FIG. 4 is a detailed configuration diagram of the key manager shown in FIG. 2.

도 5는 도 2에 도시된 S박스 관리부의 상세 구성도이다.5 is a detailed configuration diagram of the S box management unit shown in FIG. 2.

도 6은 도 2에 도시된 S박스 접근 주소생성부의 상세 구성도이다.6 is a detailed block diagram of the S box access address generator shown in FIG. 2.

도 7은 도 2에 도시된 유사 난수 주소생성부의 상세 구성도이다.FIG. 7 is a detailed configuration diagram of the pseudo-random number address generator shown in FIG. 2.

Claims (9)

256 비트의 신호로 RC4에서 사용하고자 하는 데이터의 크기가 서로 다른 가변적인 키(Key)를 외부로부터 입력받아 키 레지스터에 저장하고 관리하기 위한 키 관리수단과;Key management means for receiving a variable key having a different size of data to be used in RC4 from a 256 bit signal from outside and storing and managing the same in a key register; 상기 RC4에서 사용하는 S박스의 데이터를 저장하고 관리하기 위한 S박스 관리수단과;S box management means for storing and managing the data of the S box used in the RC4; 상기 S박스의 데이터를 읽고, S박스에 데이터를 쓰기 위한 S박스 접근 주소를 생성하는 S박스 접근 주소 생성수단과;S box access address generating means for reading data of the S box and generating an S box access address for writing data to the S box; 상기 S박스에서 읽어온 데이터를 저장하고, 유사 난수 주소를 생성하기 위한 유사 난수 주소 생성수단; 및Pseudo-random address generation means for storing data read from the S box and generating pseudo random number addresses; And 상기 각 구성수단의 키 레지스터 및 데이터의 입출력을 제어하기 위한 신호를 생성하는 제어수단을 포함하는 유사 난수 발생기.A pseudo random number generator including control means for generating a signal for controlling input and output of key registers and data of each of the components. 삭제delete 청구항 1에 있어서, 상기 키(Key)의 크기가 8비트 배수의 조합에 대해서도 유사 난수 발생을 확장할 수 있는 것을 특징으로 하는 유사 난수 발생기.The pseudo-random number generator of claim 1, wherein the pseudo-random number generation can be extended even for combinations of multiples of 8 bits. 청구항 1에 있어서, 상기 제어수단에서는 S박스에 접근하기 위한 주소를 발생시키는 것을 특징으로 하는 유사 난수 발생기.The pseudo random number generator of claim 1, wherein the control means generates an address for accessing the S box. 청구항 1에 있어서, 상기 키 관리수단에는The method according to claim 1, wherein the key management means 외부에서 입력된 키(Key)를 관리하고 저장하기 위한 키 레지스터와;A key register for managing and storing an externally input key; 상기 키(Key)의 일부분을 선택하기 위한 키 멀티플렉서; 및A key multiplexer for selecting a portion of the key; And 상기 키(Key)의 일부분과 0을 선택하여 출력하기 위한 멀티플렉서를 더 구비하는 것을 특징으로 하는 유사 난수 발생기.And a multiplexer for selecting and outputting a portion of the key and zero. 청구항 1에 있어서, 상기 S박스 관리수단에는The method of claim 1, wherein the S box management means S박스 데이터를 저장하기 위한 N개의 레지스터와;N registers for storing S box data; 상기 각 레지스터의 입력으로 데이터를 선택하기 위한 N개의 멀티플렉서와;N multiplexers for selecting data as inputs to each register; 외부에서 입력된 S박스 읽기 주소를 선택하기 위한 주소선택 멀티플렉서와;An address selection multiplexer for selecting an externally input S box reading address; 상기 읽기 주소를 잠시 저장하기 위한 주소 레지스터와;An address register for temporarily storing the read address; 상기 각 레지스터의 출력 중 어느 하나를 외부로 출력하기 위한 출력 멀티플렉서와;An output multiplexer for outputting any one of the outputs of each register to the outside; 외부에서 입력된 주소를 제어하여 N개의 레지스터와 N개의 멀티플렉서의 제어 신호를 발생시켜 주는 조합 회로를 더 구비하는 것을 특징으로 하는 유사 난수 발생기.And a combination circuit for controlling an externally input address to generate control signals of N registers and N multiplexers. 청구항 6에 있어서, 상기 N개의 멀티플렉서에서는 3개의 입력단을 구비하여 각 레지스터의 외부에서 입력된 데이터와 초기화 데이터를 선택할 수 있도록 하는 것을 특징으로 하는 유사 난수 발생기.The pseudo-random number generator of claim 6, wherein the N multiplexer includes three input terminals to select data inputted from outside of each register and initialization data. 청구항 1에 있어서, 상기 S박스 접근 주소 생성수단에는 S박스 데이터를 읽고, S박스에 데이터를 쓰기 위한 주소를 생성하기 위해 덧셈기와 레지스터를 더 구하는 것을 특징으로 하는 유사 난수 발생기.The pseudo random number generator of claim 1, wherein the S box access address generating means further obtains an adder and a register to read S box data and generate an address for writing data to the S box. 청구항 1에 있어서, 상기 유사 난수 주소 생성수단에는 S박스에서 읽어온 데이터를 저장하고, 유사 난수 주소를 생성하기 위해 덧셈기와 두 개의 레지스터를 더 구비하는 것을 특징으로 하는 유사 난수 발생기.The pseudo-random number generator according to claim 1, wherein the pseudo-random address generation means further comprises an adder and two registers for storing data read from the S box and generating a pseudo-random address.
KR10-2003-0053371A 2003-08-01 2003-08-01 The pseudo random number generator KR100511684B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2003-0053371A KR100511684B1 (en) 2003-08-01 2003-08-01 The pseudo random number generator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2003-0053371A KR100511684B1 (en) 2003-08-01 2003-08-01 The pseudo random number generator

Publications (2)

Publication Number Publication Date
KR20050014948A KR20050014948A (en) 2005-02-21
KR100511684B1 true KR100511684B1 (en) 2005-08-31

Family

ID=37225801

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-0053371A KR100511684B1 (en) 2003-08-01 2003-08-01 The pseudo random number generator

Country Status (1)

Country Link
KR (1) KR100511684B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100888614B1 (en) * 2005-02-22 2009-03-17 삼성전자주식회사 Security algorithm circuit and data encryption method
US20210209241A1 (en) * 2019-04-26 2021-07-08 Green Zone Security., Ltd. Apparatus and method for data obfuscation of IoT device using pseudorandom number

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200093910A (en) 2019-01-29 2020-08-06 삼성전자주식회사 Method for providing data assocatied with original data, electronic device and storage medium therefor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100888614B1 (en) * 2005-02-22 2009-03-17 삼성전자주식회사 Security algorithm circuit and data encryption method
US20210209241A1 (en) * 2019-04-26 2021-07-08 Green Zone Security., Ltd. Apparatus and method for data obfuscation of IoT device using pseudorandom number

Also Published As

Publication number Publication date
KR20050014948A (en) 2005-02-21

Similar Documents

Publication Publication Date Title
JP7107670B2 (en) System and method for generating cryptographic round keys with a bit mixer
JP4684550B2 (en) Cryptographic device that supports multiple modes of operation
US7770027B2 (en) Semiconductor memory device
US8457306B2 (en) Cryptographic module and IC card
KR100377175B1 (en) Encryption device using data encryption standard algorithm
EP3531613B1 (en) Method and circuit for implementing a substitution table
US20050232416A1 (en) Method and device for determining a result
US7403615B2 (en) Methods and apparatus for accelerating ARC4 processing
KR100390821B1 (en) Encryption device using data encryption standard algorithm
US20120260103A1 (en) Security circuit using at least two finite state machine units and methods using the same
US20100111295A1 (en) Swap circuit for common key block cipher and encryption/decryption circuit including the same
US11824969B2 (en) Method and circuit for performing a substitution operation
KR101126596B1 (en) Dual mode aes implementation to support single and multiple aes operations
US20020186839A1 (en) Apparatus and method for cipher processing system using multiple port memory and parallel read/write operations
KR100511684B1 (en) The pseudo random number generator
EP3531612B1 (en) Method and device for performing substitution table operations
EP3531401A1 (en) Method and circuit for performing a substitution operation
JPH0575596A (en) Signal scrambler and ciphering device
KR100935372B1 (en) Apparatus for encryption/decryption by using ???????? algorithm
US20140161253A1 (en) High performance hardware-based execution unit for performing c2 block cipher encryption/decryption
EP0403456A2 (en) Encryption circuit
JP4743783B2 (en) Memory system
KR100442354B1 (en) Encryption apparatus and method for rc4 type
Yalla Methodology for Developing Lightweight Architectures for FPGAs
KR20010109626A (en) Encryption device realizing triple data encryption standard atchitecture

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: 20110804

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20120806

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee