KR100342526B1 - Apparatus for encrypting and decrypting data - Google Patents
Apparatus for encrypting and decrypting data Download PDFInfo
- Publication number
- KR100342526B1 KR100342526B1 KR1019990040731A KR19990040731A KR100342526B1 KR 100342526 B1 KR100342526 B1 KR 100342526B1 KR 1019990040731 A KR1019990040731 A KR 1019990040731A KR 19990040731 A KR19990040731 A KR 19990040731A KR 100342526 B1 KR100342526 B1 KR 100342526B1
- Authority
- KR
- South Korea
- Prior art keywords
- decryption
- data
- encryption
- input
- output
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
가. 청구범위에 기재된 발명이 속한 기술분야end. The technical field to which the invention described in the claims belongs
암호화 및 복호화를 수행하는 장치에 관한 기술이다.The present invention relates to an apparatus for performing encryption and decryption.
나. 발명이 해결하고자 하는 기술적 과제I. The technical problem to be solved by the invention
DES 규격에 따라 암호화 및 복호화를 실시간으로 처리할 수 있는 하드웨어 장치를 제공한다.According to the DES standard, a hardware device capable of processing encryption and decryption in real time is provided.
다. 발명의 해결방법의 요지All. Summary of Solution of the Invention
본 발명의 장치는 암호화 및 복호화를 수행하는 장치로, 중앙처리장치와 접속하는 씨피유(CPU) 인터페이스부와, 상기 씨피유 인터페이스부를 통해 수신되는 키 값을 디코딩하여 출력하는 디코더와, 상기 디코더의 출력에 의해 사용자를 확인하며 설정된 코드의 데이터를 출력하는 메모리부와, 상기 씨피유 인터페이스부와 암호화 및 복호화 과정을 수행하는 엔진부간 데이터를 송수신하는 입출력 버퍼와, 상기 입출력 버퍼로부터 수신되는 데이터와 상기 메모리부의 코드값에 따라 암호화 및 복호화를 수행하는 엔진부와, 상기 엔진부의 상태를 검출하여 출력하는 인터럽트 제어기와, 상기 인터럽트 제어기의 출력에 따라 상기 씨피유 인터페이스부를 통해 중앙처리 장치로 상태를 출력하는 상태 래지스터로 구성됨을 특징으로 한다.An apparatus of the present invention is an apparatus for performing encryption and decryption, comprising: a CPU interface unit connected to a central processing unit, a decoder for decoding and outputting a key value received through the CPU interface unit, and an output of the decoder. A memory unit for outputting data of a set code by checking a user, an input / output buffer for transmitting / receiving data between the CPU interface unit, and an engine unit performing an encryption and decryption process, data received from the input / output buffer, and a code of the memory unit An engine controller that performs encryption and decryption according to a value, an interrupt controller that detects and outputs a state of the engine unit, and a state register that outputs a state to a central processing unit through the CPU interface unit according to the output of the interrupt controller. Characterized in that configured.
라. 발명의 중요한 용도la. Important uses of the invention
암화화 및 복호화를 수행하는 모든 시스템에 사용된다.Used for all systems that perform encryption and decryption.
Description
본 발명은 암호화 및 복호화 장치에 관한 것으로, 특히 암호화 및 복호화하는 표준 알고리즘인 디이에스(DES:Data Encryption Standard)의 복호화 장치에 관한 것이다.The present invention relates to an encryption and decryption apparatus, and more particularly, to a decryption apparatus of DES (Data Encryption Standard) which is a standard algorithm for encrypting and decrypting.
통상적으로 암호화 및 복호화는 정보통신이 발전하면서 개인의 정보를 안전하게 전송하기 위해 사용하는 하나의 기술적인 방법이다. 이러한 암호화 및 복호화하는 방법은 전자상거래 등에서 사용자의 신분 사용자 정보를 보호하기 위해 많이 사용되고 있으며, 정보통신의 수요자가 많아지면서 통신망을 이용하여 데이터 통신에 더 많은 사용자 정보들이 이동하게 되고 있다. 만일 이러한 암호화 및 복호화를 거치지 않고 직접 평문으로 회사의 기밀정보나 개인의 정보를 전송하는 경우 이러한 데이터는 외부에 노출됨으로써 개인의 정보를 보호할 수 없는 무방비 상태에 처하게 된다. 따라서 대부분의 데이터 통신을 수행하는 기업 또는 여러 가입자들을 두는 통신 서버를 가진 회사에서는 데이터 통신시 암호화 및 복호화 작업을 수행하도록 하고 있다.In general, encryption and decryption are one technical method used to securely transmit personal information as information communication advances. Such encryption and decryption methods are widely used to protect user's identity user information in electronic commerce and the like, and as user demand for information communication increases, more user information is moved to data communication using a communication network. If you send your company's confidential information or personal information directly in plain text without going through such encryption and decryption, these data will be exposed to the outside, and your personal information will be protected. Therefore, companies that perform most data communications or companies with communication servers with multiple subscribers are required to perform encryption and decryption operations during data communications.
이러한 암호화 및 복호화는 대체로 미국에서 표준화되어 사용되고 있는 디이에스(이하 DES라 함)의 규격에 따라 암호화 및 복호화를 수행하게 된다. 상기 DES의 규격에 따라 암호화 및 복호화는 통신 시스템의 중앙처리장치(CPU)에서 이루어지며, 이러한 규격을 만족하는 프로그램을 수행하여 이루어지게 된다. 또한 DES 규격에서는 동일한 알고리즘을 16회 반복하여 암호화 및 복호화하도록 구성되어 있으므로 프로그램으로 이러한 작업을 수행할 경우 매우 많은 시간이 소요되는 문제가 있었다.Such encryption and decryption is generally performed in accordance with the standard of the standard (hereinafter referred to as DES) standardized and used in the United States to perform encryption and decryption. According to the DES standard, encryption and decryption are performed in a central processing unit (CPU) of a communication system and are performed by executing a program that satisfies this standard. In addition, since the DES standard is configured to encrypt and decrypt the same algorithm 16 times, there is a problem that it takes a lot of time to perform such a task with a program.
하나의 암호문을 생성 및 복호화하기 위해서는 많은 시간이 소요된다. 즉, 실시간으로 데이터를 전송하거나 수신하더라도 암호화 및 복호화 과정이 프로그램으로 수행되므로 처리 시에 많은 시간이 많이 소요되는 문제가 있다. 또한 데이터의 송신 및 수신은 실시간으로 이루어지더라도 암호화 및 복호화하는 시간 지연으로 인하여 사용자는 실제적으로 실시간으로 데이터가 송수신되는 것으로 인지하지 못하는 문제가 있다. 또한 일반적인 경우에 개인용 컴퓨터에서 암호화를 수행하는 것이 어려운 문제가 있으므로 종종 암호문을 생성 및 처리하는 서버를 두는 경우가 있다. 이러한 경우 상기 서버는 암호화 및 복호화를 프로그램으로 처리하게 되므로 암호화 및 복호화 하는데 많은 시간이 소요되므로 다른 작업의 처리 속도가 매우 저하되는 문제가 발생하였다.It takes a long time to generate and decrypt a single ciphertext. That is, even if the data is transmitted or received in real time, since the encryption and decryption process is performed by the program, a lot of time is required during processing. In addition, even if the transmission and reception of the data is made in real time, there is a problem that the user does not recognize that the data is actually transmitted and received in real time due to the time delay of encryption and decryption. Also, in general, it is difficult to perform encryption on a personal computer, so there are often servers that generate and process cipher text. In this case, since the server processes encryption and decryption by a program, it takes a long time to encrypt and decrypt, which causes a problem that the processing speed of other tasks is very low.
따라서 본 발명의 목적은 빠른 속도로 암호화 및 복호화를 수행하는 장치를 제공함에 있다.Accordingly, an object of the present invention is to provide an apparatus for performing encryption and decryption at a high speed.
본 발명의 다른 목적은 DES 알고리즘을 만족하며 암호화 및 복호화를 수행하는 장치를 제공함에 있다.Another object of the present invention is to provide an apparatus that satisfies the DES algorithm and performs encryption and decryption.
상기한 목적들을 달성하기 위한 본 발명의 장치는 암호화 및 복호화를 수행하는 장치로, 중앙처리장치와 접속하는 씨피유(CPU) 인터페이스부와, 상기 씨피유 인터페이스부를 통해 수신되는 키 값과 데이터(Data)를 디코딩하여 출력하는 디코더와, 상기 디코더의 출력에 의해 사용자를 확인하며 설정된 코드의 데이터를 출력하는 메모리부와, 상기 씨피유 인터페이스부와 암호화 및 복호화 과정을 수행하는 엔진부간 데이터를 송수신하는 입출력 버퍼와, 상기 입출력 버퍼로부터 수신되는 데이터와 상기 메모리부의 코드값에 따라 암호화 및 복호화를 수행하는 엔진부와, 상기 엔진부의 상태를 검출하여 출력하는 인터럽트 제어기와, 상기 인터럽트 제어기의 출력에 따라 상기 씨피유 인터페이스부를 통해 중앙처리 장치로 상태를 출력하는 상태 래지스터로 구성됨을 특징으로 한다.The apparatus of the present invention for achieving the above objects is a device for performing encryption and decryption, the CPU interface unit and the key value and data received through the CPU interface unit A decoder which decodes and outputs a memory, a memory unit which outputs data of a set code by identifying a user by an output of the decoder, an input / output buffer which transmits and receives data between the CPI interface unit and an engine unit which performs an encryption and decryption process; An engine unit that performs encryption and decryption according to data received from the input / output buffer and a code value of the memory unit, an interrupt controller that detects and outputs a state of the engine unit, and the CPI interface unit according to an output of the interrupt controller. Status registers that output status to the central processing unit Characterized by configured.
도 1은 본 발명의 바람직한 실시에에 따라 암호화 및 복호화를 수행하기 위한 장치의 블록 구성도,1 is a block diagram of an apparatus for performing encryption and decryption according to a preferred embodiment of the present invention;
도 2는 상기 도 1에 도시된 디코더(12)를 실시예로 도시한 상세 블록 구성도,FIG. 2 is a detailed block diagram showing an example of the decoder 12 shown in FIG.
도 3은 상기 도 1의 입출력 버퍼의 구조 중 입력 버퍼의 상세 블록 구성도,3 is a detailed block diagram of an input buffer in the structure of the input / output buffer of FIG. 1;
도 4는 상기 도 1의 입출력 버퍼의 구조 중 출력 버퍼의 상세 블록 구성도,4 is a detailed block diagram of an output buffer in the structure of the input / output buffer of FIG. 1;
도 5는 상기 도 1의 DES 엔진의 초기 치환 과정을 설명하기 위한 블록 구성도,FIG. 5 is a block diagram illustrating an initial replacement process of the DES engine of FIG. 1. FIG.
도 6은 DES 엔진의 상세한 블록 구성도,6 is a detailed block diagram of a DES engine;
이하 첨부된 도면을 참조하여 본 발명을 상세히 설명한다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 바람직한 실시에에 따라 암호화 및 복호화를 수행하기 위한 장치의 블록 구성도이다. 이하 도 1을 참조하여 각 암호화 및 복호화를 수행하는 장치의 구성 및 동작을 상세히 설명한다.1 is a block diagram of an apparatus for performing encryption and decryption according to a preferred embodiment of the present invention. Hereinafter, a configuration and an operation of an apparatus for performing each encryption and decryption will be described in detail with reference to FIG. 1.
프로세서 접속부(10)는 CPU 인터페이스부(11)와 디코더(12)와 입출력 버퍼(13)와 상태 래지스터(14)로 구성된다. 먼저 CPU 인터페이스부(11)는 CPU(중앙처리장치)와 연결되며, 제어신호와, 암호화할 데이터를 수신하고, 복호화할 데이터를 CPU로 전달하는 인터페이스를 수행한다. 또한 상기 CPU 인터페이스부(11)는 내부에 신호 래치와 드라이버를 구비한다. 상기 신호 래치는 입력되는 신호를 래치하여 입출력 버퍼(13)로 전달하며, 드라이버는 CUP와 입출력 버퍼(13)간 송수신되는 데이터를 드라이브한다. 디코더(12)는 CPU 인터페이스부(11)로부터 수신되는 키신호에 따라 입력되는 데이터를 디코딩한 후 메모리부(30)로 출력한다. 이때 키신호는 사용자가 입력한 키신호가 된다. 상기 사용자가 입력한 키신호는 자신의 패스워드와 암호화 및 복호화시 코드를 선택할 코드값이 된다. 상기 디코더(12)에는 소정 크기를 가지는 메모리와 레지스터를 구비한다. 또한 입출력 버퍼(13)는 선입선출(FIFO:First In First Out)의 메모리로 구성되어 있다. 상기 입출력 버퍼(13)는 CPU 인터페이스부(11)로부터 수신된 암호화 할 데이터 또는 복호화 할 데이터를 수신하여 저장하고 이를 입력된 순서에 따라 출력한다. 또한 상기 입출력 버퍼(13)는 64비트로 수신되는 데이터를 병렬로 수신하여 병렬로 출력하는 구조를 가진다. 따라서 상기 입출력 버퍼(13)는 CPU 인터페이스부(11)와 DES 엔진부(40)간 암호화 및 복호화할 데이터의 인터페이스를 수행한다. 상태 래지스터(14)는 제어신호와 상태신호를 수신하여 CPU 인터페이스부(11)와 DES 엔진부(40)간 상태를 알린다. 인터럽트 제어기(20)는 DES 엔진부(40)의 상태신호를 수신하여 암호화 중 또는 암호화 종료 및 복호화 중 또는 복호화 종료에 따른 신호를 발생하여 상태 래지스터(14)로 출력한다.The processor connection unit 10 includes a CPU interface unit 11, a decoder 12, an input / output buffer 13, and a state register 14. First, the CPU interface unit 11 is connected to a CPU (central processing unit) and performs an interface for receiving a control signal, data to be encrypted, and transferring data to be decrypted to the CPU. In addition, the CPU interface unit 11 includes a signal latch and a driver therein. The signal latch latches an input signal and transfers the signal to the input / output buffer 13, and the driver drives data transmitted and received between the CUP and the input / output buffer 13. The decoder 12 decodes the input data according to the key signal received from the CPU interface unit 11 and outputs the decoded data to the memory unit 30. At this time, the key signal is a key signal input by the user. The key signal input by the user is a code value for selecting a password and a code for encryption and decryption. The decoder 12 includes a memory having a predetermined size and a register. In addition, the input / output buffer 13 is composed of a memory of First In First Out (FIFO). The input / output buffer 13 receives and stores the data to be encrypted or the data to be decrypted received from the CPU interface unit 11 and outputs the data according to the input order. In addition, the input / output buffer 13 has a structure for receiving data received in 64-bit in parallel and outputting in parallel. Therefore, the input / output buffer 13 performs an interface of data to be encrypted and decrypted between the CPU interface unit 11 and the DES engine unit 40. The state register 14 receives a control signal and a state signal to inform the state between the CPU interface unit 11 and the DES engine unit 40. The interrupt controller 20 receives a status signal of the DES engine unit 40, generates a signal corresponding to encryption, encryption termination, decryption, or decryption termination, and outputs the signal to the state register 14.
메모리부(30)는 키 메모리(31)와 코드 메모리(32)로 구성된다. 상기 키 메모리(31)는 사용자별로 키 값을 가지는 즉, 패스워드(Pass Word)를 저장하고 있다. 또한 코드 메모리(32)는 다수의 코드값을 가지고 있으며, 상기 디코더(12)로부터 수신되는 키 값에 따라 암호화 또는 복호화할 코드를 선택하고 선택된 코드를 인에이블 시킨다. 이와 같이 코드 메모리(32)에서 인에이블된 코드는 DES 엔진부(40)로 입력된다. DES 엔진부(40)는 상태 출력부(41)와 DES 엔진(42)과 키 이동 메모리(43)로 구성된다. 먼저 상기 상태 출력부(41)는 엔진의 상태를 검사하여 검사된 결과에 따른 상태를 출력한다. 즉, 상태 출력부(41)는 DES 엔진(42)이 암호화 중, 복호화 중, 암호화 종료, 복호화 종료의 상태를 검사하고 이에 따른 상태를 인터럽트 제어기(20)로 출력한다. DES 엔진(42)은 입출력 버퍼(13)으로부터 수신된 데이터를 상기 코드 메모리(42)로부터 수신된 코드값에 따라 암호화 및 복호화하여 출력한다. 즉, 암호화와 복호화 방법은 코드 메모리(32)로부터 수신된 코드에 따라 서로 다른 방법으로 암호화 또는 복호화가 이루어진다. 키 이동 메모리(43)는 수신된 데이터를 오른쪽 또는 왼쪽으로 이동시키기 위한 쉬프트 테이블(Shift Table)을 구비하고 있으며, 이를 DES 규격에 따른 테이블로 도시하면 하기 <표 1>과 같다.The memory unit 30 is composed of a key memory 31 and a code memory 32. The key memory 31 has a key value for each user, that is, stores a password. In addition, the code memory 32 has a plurality of code values, selects a code to encrypt or decrypt according to the key value received from the decoder 12, and enables the selected code. The code enabled in the code memory 32 is input to the DES engine unit 40. The DES engine unit 40 is composed of a state output unit 41, a DES engine 42, and a key moving memory 43. First, the state output unit 41 inspects the state of the engine and outputs a state according to the result of the inspection. That is, the state output unit 41 checks the states of the DES engine 42 during encryption, decryption, encryption termination, and decryption termination, and outputs the corresponding state to the interrupt controller 20. The DES engine 42 encrypts and decrypts the data received from the input / output buffer 13 according to the code value received from the code memory 42. That is, the encryption and decryption methods are encrypted or decrypted in different ways according to the code received from the code memory 32. The key shift memory 43 has a shift table for shifting the received data to the right or the left, and is shown as a table according to the DES standard.
상기 <표 1>에 도시된 바와 같이 키 이동 메모리(43)의 값을 읽어와 수신된 데이터를 좌측 또는 우측으로 이동하여 암호화 및 복호화시에 사용한다. 이상에서 상술한 도 1의 블록 구성들은 종래기술에서 언급한 바와 같은 문제점인 프로그램으로 처리되어 시스템의 부하가 증가하여 처리 속도가 저하되는 문제를 해결하기 위해 프로그램이 가능한 게이트 어래이(FPGA) 장치로 구성할 수 있다.As shown in Table 1, the value of the key shift memory 43 is read and the received data is shifted left or right and used for encryption and decryption. The block configuration of FIG. 1 described above is configured as a gate array (FPGA) device that is programmable to solve the problem that the processing speed is reduced due to an increase in the load of the system because the program is processed as a problem mentioned in the related art. can do.
도 2는 상기 도 1에 도시된 디코더(12)를 실시 예로 도시한 상세 블록 구성도이다. 이하 도 2를 참조하여 디코더(12)의 구성 및 동작을 상세히 설명한다.2 is a detailed block diagram illustrating an example of the decoder 12 illustrated in FIG. 1. Hereinafter, the configuration and operation of the decoder 12 will be described in detail with reference to FIG. 2.
디코더(101)는 A0 내지 A2의 3비트의 데이터와 CS신호 및 리셋신호(RESET)를 수신한다. 따라서 디코더(101)는 수신된 데이터와 CS신호 및 리셋신호에 따라 출력되는 신호를 제어 래지스터(102)와 상태 래지스터(103)에 저장하며, 입력 버퍼 카운터(104)는 00 ∼ 11의 4비트를 수용할 수 있도록 구성되어 있다. 또한 출력 버퍼 카운터(105)도 상기 입력 버퍼 카운터(104)와 동일한 구성을 가진다. 그리고 디코더 (101)에서 디코딩된 값은 데이터 포트(106)를 통해 메모리부(30)으로 출력된다. 즉, 상기 디코더(101)로 데이터가 입력되면, 제어 레지스터(102)에는 입력된 명령 값이 저장되며, 상태 래지스터(103)에는 디코더의 상태 값을 저장한다. 그리고, 입력 버퍼 카운터(104)는 입력된 데이터를 카운터하며, 출력 버퍼 카운터(105)는 디코더(101)로 입력된 데이터가 처리되어 출력된 데이터를 카운터한다. 즉, 입력된 데이터와 출력된 데이터가 동일해야 하므로 이에 따른 버퍼 값으로 입력 데이터와 출력 데이터의 상태를 검사할 수 있다.The decoder 101 receives three bits of data A0 to A2, a CS signal, and a reset signal RESET. Therefore, the decoder 101 stores the received data, the signal output according to the CS signal, and the reset signal, in the control register 102 and the state register 103, and the input buffer counter 104 is 4 to 00-11. It is configured to accept bits. The output buffer counter 105 also has the same configuration as the input buffer counter 104. The value decoded by the decoder 101 is output to the memory unit 30 through the data port 106. That is, when data is input to the decoder 101, the input command value is stored in the control register 102, and the state value of the decoder is stored in the state register 103. The input buffer counter 104 counters the input data, and the output buffer counter 105 counters the data that has been processed and outputted by the decoder 101. That is, since the input data and the output data must be the same, the state of the input data and the output data can be checked with the buffer value accordingly.
도 3은 상기 도 1의 입출력 버퍼의 구조 중 입력 버퍼의 상세 블록 구성도이다. 이하 도 3을 참조하여 입력 버퍼의 구성 및 동작을 상세히 설명한다.3 is a detailed block diagram illustrating an input buffer in the structure of the input / output buffer of FIG. 1. Hereinafter, the configuration and operation of the input buffer will be described in detail with reference to FIG. 3.
CPU 인터페이스부(11)로부터 64비트씩 수신되는 데이터는 기록 포인터(111)가 지시하는 어드레스에 따라 FIFO(110)에 순차적으로 저장된다. 그리고 읽기 포인터(113)이 지시하는 어드레스에 따라 상기 FIFO(110)로부터 데이터를 읽어와 익스클로시브 오아하는 4개의 연산기(115a, 115b, 115c, 115d)로 입력된다. 즉, 입력되는 데이터는 각 16비트씩 각각 익스클로시브 오아 연산기들(115a, 115b, 115c, 115d)로 입력된다. 한편 코드 버퍼(114)는 코드 메모리(32)로부터 데이터를 수신하여 각 연산기(115a, 115b, 115c, 115d)로 입력한다. 상기 각 연산기들(115a, 115b, 115c, 115d)은 코드버퍼(114)로부터 수신된 데이터와 상기 FIFO(110)로부터 수신된 데이터를 상기 익스클로시브 오아하여 입력 레지스터(116)로 출력한다. 상기 입력 레지스터(116)에는 좌측 레지스터(116a)와 우측 레지스터(116b)로 구성되며, 좌측 레지스터(116a)는 두 개의 연산기(115a, 115b)로부터 익스클로시브 오아되어 입력된 데이터를 수신하여 저장하며, 우측 레지스터(116b)는 다른 두 개의 연산기(115c, 115d)로부터 입력된 데이터를 수신하여 저장한다. 이러한 과정을 통해 CPU 인터페이스부(11)로부터 입출력 버퍼로 입력된 데이터들이 암호화 하기 위한 처리가 이루어진다. 이와 같이 각 버퍼들(124a, 124b)에 저장된 데이터는 DES 엔진부(40)로 입력된다. 또한 읽기/기록 제어기(112)는 FIFO(110)의 상태를 검사하여 풀(Full)과 엠티(Empty)신호를 출력하며, 읽기 및 기록신호(R/W)를 수신하여 이에 따른 어드레스를 기록 포인터(111)로 출력하거나 읽기 포인터(113)로 출력한다.The data received from the CPU interface unit 11 by 64 bits is sequentially stored in the FIFO 110 in accordance with the address indicated by the write pointer 111. The data is read from the FIFO 110 according to the address indicated by the read pointer 113 and input to the four operators 115a, 115b, 115c, and 115d which are exclusively divided. That is, the input data is input to the exclusive OR operators 115a, 115b, 115c, and 115d by 16 bits, respectively. On the other hand, the code buffer 114 receives data from the code memory 32 and inputs it to each of the calculators 115a, 115b, 115c, and 115d. Each of the operators 115a, 115b, 115c, and 115d outputs the data received from the code buffer 114 and the data received from the FIFO 110 to the input register 116. The input register 116 is composed of a left register 116a and a right register 116b, and the left register 116a receives and stores the data input by the exclusive truncation from two operators 115a and 115b. The right register 116b receives and stores data input from the other two calculators 115c and 115d. Through this process, a process for encrypting data input from the CPU interface unit 11 into the input / output buffer is performed. As such, the data stored in each of the buffers 124a and 124b is input to the DES engine unit 40. In addition, the read / write controller 112 examines the state of the FIFO 110 to output a full and empty signals, receives a read and write signal R / W, and writes an address accordingly. Output to 111 or output to read pointer 113.
도 4는 상기 도 1의 입출력 버퍼의 구조 중 출력 버퍼의 상세 블록 구성도이다. 이하 도 4를 참조하여 출력 버퍼의 구성 및 동작을 상세히 설명한다.4 is a detailed block diagram illustrating an output buffer in the structure of the input / output buffer of FIG. 1. Hereinafter, the configuration and operation of the output buffer will be described in detail with reference to FIG. 4.
엔진부(30)에서 16회의 반복 동작을 종료한 후 복호된 데이터는 두 부분으로 구성된 레지스터(124a, 124b)에 저장된다. 상기 복호되어 상기 레지스터(124)의 각 부분에 저장된 데이터는 출력을 위한 FIFO(120)에 저장된다. 상기 FIFO(120)는 64비트씩의 열을 가지는 다수 열의 데이터를 저장할 수 있는 구조를 가진다. 그리고 상기 읽기/기록 제어기(122)가 기록 포인터(121)로 지시하는 어드레스에 데이터를 기록한다. 이때 우측 레지스터(124a)는 상기 FIFO(120)의 상기 64비트 중 0부터 31비트까지 데이터를 저장하며, 좌측 레지스터(124b)는 상기 FIFO(120)의 32부터 63비트까지 데이터를 저장한다. 또한 상기 읽기/기록 포인터(122)의 제어에 의해 읽기 포인터(123)는 출력할 데이터의 어드레스를 지시하며, 상기 지시된 어드레스의 데이터는 CPU 인터페이스부(11)로 출력된다. 또한 상기 읽기/기록 제어기(112)는 FIFO(110)의 상태를 검사하여 풀(Full)과 엠티(Empty)신호를 출력하며, 읽기 및 기록신호(R/W)를 수신하여 이에 따른 어드레스를 기록 포인터(121)로 출력하거나 읽기 포인터(123)로 출력한다.After the engine unit 30 ends 16 repetitive operations, the decoded data is stored in registers 124a and 124b composed of two parts. The decoded data stored in each part of the register 124 is stored in the FIFO 120 for output. The FIFO 120 has a structure capable of storing a plurality of columns of data having rows of 64 bits each. The read / write controller 122 writes data at an address indicated by the write pointer 121. At this time, the right register 124a stores data from 0 to 31 bits of the 64 bits of the FIFO 120, and the left register 124b stores data from 32 to 63 bits of the FIFO 120. In addition, under the control of the read / write pointer 122, the read pointer 123 indicates an address of data to be output, and the data of the indicated address is output to the CPU interface unit 11. In addition, the read / write controller 112 examines the state of the FIFO 110 and outputs a full and empty signals, receives the read and write signals R / W, and records the address accordingly. The output is performed by the pointer 121 or the read pointer 123.
도 5는 상기 DES 엔진의 초기 치환 과정을 설명하기 위한 DES 엔진의 일부 블록 구성도이다. 이하 도 5를 참조하여 DES 엔진의 초기 치환과정을 상세히 설명한다.5 is a block diagram of a part of a DES engine for explaining an initial replacement process of the DES engine. Hereinafter, an initial substitution process of the DES engine will be described in detail with reference to FIG. 5.
64비트의 데이터를 저장하는 FIFO(130)는 익스클로시브 오아 연산기들(133a, 133b, 133c, 133d)로 16비트씩 데이터를 출력한다. 또한 모드신호(EBC/CBC)는 앤드 게이트(131)로 입력되며, 상기 앤드 게이트(131)의 다른 입력단은 코드 버퍼(132)의 출력단에 연결된다. 코드버퍼(132)는 스텝에 따른 데이터를 앤드 게이트(131)로 출력한다. 그리고 앤드 게이트(131)는 두 신호를 논리합하여 각 익스클로시브 오아 연산기(133a, 133b, 133c, 133d)로 입력한다. 즉, 코드버퍼(132)에서 현재 스텝에 맞는 코드 값을 출력한다. 이러한 코드 값은 사용자가 선택한 코드 값이 된다. 상기 코드 값은 모드 신호와 논리합된다. 상기 모드 신호란 암호화 또는 복호화에 따른 신호가 된다. 이와 같이 논리합된 신호는 각 익스클로시브 오아 연산기들(133a, 133b, 133c, 133d)로 전달된다. 따라서 앤드게이트(131)의 출력값이 "0"인 경우 각 익스클로시브 오아 연산기(133a, 133b, 133c, 133d)의 출력에는 아무런 영향을 미치지 않게 된다. 상기 각 익스클로시브 오아 연산기(133a, 133b, 133c, 133d)에 익스클로시브 오아 연산된 출력값은 멀티플렉서(134)로 입력된다. 따라서 상기 멀티플렉서(134)는 이전 스텝의 값과 함께 익스클로시브 오아된 데이터를 수신하여 멀티플렉싱한다. 이에 따라 멀티플렉싱된 데이터는 레지스터(135)에 저장된다. 상기 레지스터(135)는 좌측 레지스터(135a)와 우측 레지스터(135b)로 구성되며, 각각 32비트로 구성된다.The FIFO 130 storing 64-bit data outputs data by 16 bits to the exclusive ora calculators 133a, 133b, 133c, and 133d. In addition, the mode signal EBC / CBC is input to the AND gate 131, and the other input terminal of the AND gate 131 is connected to the output terminal of the code buffer 132. The code buffer 132 outputs data according to the step to the AND gate 131. The AND gate 131 combines the two signals and inputs them to each exclusive OR operator 133a, 133b, 133c, and 133d. That is, the code buffer 132 outputs a code value corresponding to the current step. This code value becomes the code value of your choice. The code value is ORed with the mode signal. The mode signal is a signal according to encryption or decryption. The logical sum is thus delivered to each exclusive OR operator 133a, 133b, 133c, and 133d. Therefore, when the output value of the AND gate 131 is "0", the output of each of the exclusive OR calculators 133a, 133b, 133c, and 133d is not affected. The output of the exclusive ora operation is input to the multiplexer 134 to each of the exclusive ora calculators 133a, 133b, 133c, and 133d. Therefore, the multiplexer 134 receives and multiplexes the exclusive data together with the value of the previous step. Accordingly, the multiplexed data is stored in the register 135. The register 135 is composed of a left register 135a and a right register 135b, each composed of 32 bits.
도 6은 DES 엔진의 상세한 블록 구성도이다. 이하 도 6을 참조하여 DES 엔진의 블록 구성 및 동작을 상세히 설명한다.6 is a detailed block diagram of a DES engine. Hereinafter, the block configuration and operation of the DES engine will be described in detail with reference to FIG. 6.
입출력 버퍼(13)의 출력 메모리 부분(200)에서 출력된 데이터는 4개로 이루어진 익스클로시브 오아 연산기들(215a, 215b, 215c, 215d)의 한 입력단에 연결되고, 모드신호(201)와 코드버퍼(204)의 데이터를 논리합하여 출력하는 앤드 게이트(203)의 출력단이 상기 각 익스클로시브 오아 연산기들(215a, 215b, 215c, 215d)의 다른 입력단에 연결된다. 따라서 상기 각 익스클로시브 오아 연산기(215a, 215b, 215c, 215d)는 입력된 신호를 익스클로시브 오아한 후 이를 다시 다중화기(216)에서 다중화 한 후 좌측 레지스터(217)과 우측 레지스터(218)로 각각 입력한다. 그리고 상기 우측 레지스터(218)와 좌측 레지스터(217)는 입력된 데이터를 저장된 데이터와 합하여 제2연산기(224)로 출력한다. 또한 상기 우측 레지스터(218)는 확장 치환기(219)에서 확장 치환되어 제1연산기(220)로 입력된다.Data output from the output memory portion 200 of the input / output buffer 13 is connected to one input terminal of four exclusive OR calculators 215a, 215b, 215c, and 215d, and the mode signal 201 and the code buffer An output terminal of the AND gate 203 for ORing and outputting the data of 204 is connected to the other input terminal of each of the exclusive OR operators 215a, 215b, 215c, and 215d. Accordingly, each of the exclusive ora calculators 215a, 215b, 215c, and 215d performs an exclusive oar on the input signal, and then multiplexes it again in the multiplexer 216, and then the left register 217 and the right register 218 Enter each as The right register 218 and the left register 217 combine the input data with the stored data and output the same to the second operator 224. In addition, the right register 218 is extended by the expansion substituent 219 and is input to the first operator 220.
한편 키 메모리(206)로부터 출력된 56비트의 데이터는 28비트씩 분리되어 좌측 버퍼(207)과 우측 버퍼(208)로 입력된다. 상기 각 버퍼들(207, 208)의 출력 데이터는 이동기들(210, 211)로 각각 입력된다. 상기 각 이동기들(210, 211)은 키이동 메모리(Shift Table)로부터 입력되는 이동값에 따라 키 메모리(205)의 출력 신호를 각각 이동하여 각 버퍼들(212, 213)로 출력하여 저장한다. 상기 각 버퍼(212)에 저장된 데이터는 치환 선택기(214)에서 48비트만 선택적으로 치환되어 제1연산기로 출력한다. 그러면 상기 제1연산기(220)는 확장 치환기(219)에서 입력된 48비트의 데이터와 치환 선택기(214)로부터 입력된 47비트의 데이터를 익스클로시브 오아하여 출력한다. 이렇게 출력된 데이터는 비교버퍼(221)에 6비트씩 저장되며, 사용자가 입력한 키 값에 의해 선택되어 입력된 코드 메모리(222)를 이용하여 복화화를 수행한다. 그리고 복호화가 수행된 데이터는 버퍼(223)에 1차 저장되며, 상기 버퍼(223)에 저장된 데이터는 다시 제2연산기(224)로 입력된다. 따라서 상기 제2연산기(224)는 32비트씩 입력되는 데이터를 익스클로시브 오아하여 스텝 버퍼(step(i-1))(202)로 입력한다.Meanwhile, 56 bits of data output from the key memory 206 are separated into 28 bits and input to the left buffer 207 and the right buffer 208. Output data of the respective buffers 207 and 208 is input to the movers 210 and 211, respectively. Each of the mobile devices 210 and 211 moves and outputs the output signal of the key memory 205 to each of the buffers 212 and 213 according to a shift value input from the key shift memory. The data stored in each of the buffers 212 is selectively substituted by only 48 bits in the substitution selector 214 and output to the first operator. The first operator 220 then outputs the 48-bit data input from the expansion substituent 219 and the 47-bit data input from the substitution selector 214 by using an exclusive or output. The data thus output is stored in the comparison buffer 221 by 6 bits, and is demodulated using the code memory 222 input and selected by the key value input by the user. The decoded data is primarily stored in the buffer 223, and the data stored in the buffer 223 is input to the second operator 224. Accordingly, the second operator 224 inputs exclusively 32 bits of data into the step buffer (step (i-1)) 202.
상기한 구성에 따른 암호화 및 복호화 동작을 좀 더 상세히 살펴본다.The encryption and decryption operations according to the above configuration will be described in more detail.
최초 암호화 및 복호화를 수행하는 장치는 대기상태를 유지한다. 이때 CPU 인터페이스부(11)을 통해 암화화 및 복호화를 수행할 데이터가 수신되면, 엔진부(40)는 디코더(12)를 통해 메모리부(30)으로부터 키 값을 읽어들인다. 상기 키 값은 미리 CPU 인터레이스부(11)을 통해 입력되어 상기 키 메모리(31)와 상기 코드 메모리(32)에 의해 대기되고 있는 값이 된다. 이후 64비트로 수신된 데이터를 32비트의 고정된 비트로 추출한다. 그리고 익스클로시브 오아 연산을 수행한 후 상기 메모리부(30)의 코드 메모리(32)로부터 코드를 읽어온다. 상기 읽어온 코드로부터 메모리 주소를 추출하고, 상기 입출력 버퍼(13)에 저장된 데이터를 리드(Read)한한다. 그리고 리드한 데이터를 상기 키 이동 메모리(43)에 설정된 값만큼 우측 또는 좌측으로 데이터를 쉬프트(Shift)시킨다. 이후 Ri의 값을 Li에 저장하며, (318)단계로 진행하여 카운터 값(CT)을 1 증가하여 저장한다. 그리고 상기 증가된 카운터 값이 15인가를 검사한다. 여기서 15는 DES의 암호화 및 복호화를 수행할 경우 16회의 과정을 반복함으로써 0부터 15까지 16회의 암호화 또는 복호화 과정을 모두 수행했는가를 검사하는 것이다. 상기 카운터 값이 15이면 상기 입출력 버퍼(13)에 저장한다. 그러면 상기 입출력 버퍼(13)에 저장된 데이터는 CPU 인터페이스부(11)을 통해 CPU로 출력된다. 그러나 상기 카운터 값이 15 미만인 경우 고정 추출의 과정부터 다시 시작하여 16회의 연산을 수행하도록 한다.이상에서 설명한 블록 구성도의 장치들은 모두 회로적으로 구성할 수도 있으며, 이와 달리 프로그램을 통해 처리가 가능한 장치인 FPGA를 통해 구현할 수 있다.The device performing initial encryption and decryption remains in a standby state. At this time, when data to be encrypted and decrypted is received through the CPU interface unit 11, the engine unit 40 reads a key value from the memory unit 30 through the decoder 12. The key value is input in advance through the CPU interlace section 11 to become a value held by the key memory 31 and the code memory 32. After that, the data received in 64 bits is extracted as fixed bits of 32 bits. After performing the exclusive OR operation, the code is read from the code memory 32 of the memory unit 30. The memory address is extracted from the read code, and data stored in the input / output buffer 13 is read. Then, the read data is shifted to the right or left by the value set in the key shift memory 43. Thereafter, the value of Ri is stored in Li, and the procedure proceeds to step 318 where the counter value CT is incremented by one and stored. Then check whether the incremented counter value is 15. In this case, 15 is a case in which 16 times of encryption or decryption are performed from 0 to 15 by repeating 16 times when performing DES encryption and decryption. If the counter value is 15, it is stored in the input / output buffer 13. Then, the data stored in the input / output buffer 13 is output to the CPU through the CPU interface unit 11. However, if the counter value is less than 15, 16 operations are performed starting again from the fixed extraction process. The devices of the block diagram described above may be configured in a circuit or otherwise processed through a program. This can be achieved with the FPGA.
상술한 바와 같이 암호화 및 복호화를 수행하는 장치를 프로그램이 가능한 게이트 어레이를 이용함으로써 암호화 및 복호화를 수행하는 CPU의 부하가 적어지며, 또한 암호화 및 부호화를 실시간에 가깝게 수행할 수 있는 잇점이 있다.As described above, by using a gate array in which an apparatus for performing encryption and decryption is programmable, a load on the CPU for performing encryption and decryption is reduced, and there is an advantage that encryption and encryption can be performed in near real time.
Claims (3)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1019990040731A KR100342526B1 (en) | 1999-09-21 | 1999-09-21 | Apparatus for encrypting and decrypting data |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1019990040731A KR100342526B1 (en) | 1999-09-21 | 1999-09-21 | Apparatus for encrypting and decrypting data |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20010028468A KR20010028468A (en) | 2001-04-06 |
| KR100342526B1 true KR100342526B1 (en) | 2002-06-28 |
Family
ID=19612486
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1019990040731A Expired - Fee Related KR100342526B1 (en) | 1999-09-21 | 1999-09-21 | Apparatus for encrypting and decrypting data |
Country Status (1)
| Country | Link |
|---|---|
| KR (1) | KR100342526B1 (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100406139B1 (en) * | 2001-11-28 | 2003-11-14 | 한국전자통신연구원 | system and method for Symmetric and Asymmetric Key Crypto Processing |
| KR100418965B1 (en) * | 2001-10-29 | 2004-02-14 | 엘지전자 주식회사 | Message Transfering Method For Multi-channel Realtime Speech Coder/Decoder |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100356013B1 (en) * | 2000-08-10 | 2002-10-12 | 한국전자통신연구원 | Interface Device Of A General Processor And Encryption Coprocessor For Encryption |
-
1999
- 1999-09-21 KR KR1019990040731A patent/KR100342526B1/en not_active Expired - Fee Related
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100418965B1 (en) * | 2001-10-29 | 2004-02-14 | 엘지전자 주식회사 | Message Transfering Method For Multi-channel Realtime Speech Coder/Decoder |
| KR100406139B1 (en) * | 2001-11-28 | 2003-11-14 | 한국전자통신연구원 | system and method for Symmetric and Asymmetric Key Crypto Processing |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20010028468A (en) | 2001-04-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR100583635B1 (en) | Encryption device supporting multiple modes of operation | |
| US7092400B2 (en) | Method of transmitting data through a data bus | |
| US6831979B2 (en) | Cryptographic accelerator | |
| EP0471839B1 (en) | Encryption apparatus | |
| EP1055306B1 (en) | Cryptographic device with encryption blocks connected in parallel | |
| CN100521599C (en) | Encrypting/decrypting device, encrypting device and decrypting device | |
| US5199072A (en) | Method and apparatus for restricting access within a wireless local area network | |
| WO2008031109A2 (en) | System and method for encrypting data | |
| EP2015505A2 (en) | Encoding/decoding apparatus | |
| US7801299B2 (en) | Techniques for merging tables | |
| JP6162556B2 (en) | Storage device and information processing system | |
| KR100342526B1 (en) | Apparatus for encrypting and decrypting data | |
| US20040015707A1 (en) | Control system for protecting external program codes | |
| EP0105553B1 (en) | Device for enciphering digital signals comprising one or more des circuits | |
| US7783894B2 (en) | Monolithic semiconductor integrated circuit and method for selective memory encryption and decryption | |
| Fairfield et al. | An LSI digital encryption processor (DEP) | |
| US4488001A (en) | Intellectual properties protection device | |
| KR100494560B1 (en) | Real time block data encryption/decryption processor using Rijndael block cipher and method therefor | |
| KR101375670B1 (en) | Method of encrypting and decrypting data, and Bus System using the same | |
| Tawfik et al. | A new security mechanism for MIL-STD-1553 using authenticated encryption algorithms | |
| KR920001575B1 (en) | Ciphering and deciphering device | |
| KR100546777B1 (en) | SED encryption / decoding device, encryption / decoding method, round processing method, F function processor suitable for this | |
| CN117278234A (en) | Network communication system, short-length symmetric encryption and decryption method and device | |
| KR100438180B1 (en) | Apparatus and method for high speed encryption/decryption using TCP/IP base network having selective encryption function | |
| JPH07177139A (en) | Data disturbance circuit |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A201 | Request for examination | ||
| PA0109 | Patent application |
St.27 status event code: A-0-1-A10-A12-nap-PA0109 |
|
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-3-3-R10-R18-oth-X000 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| D13-X000 | Search requested |
St.27 status event code: A-1-2-D10-D13-srh-X000 |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| T11-X000 | Administrative time limit extension requested |
St.27 status event code: U-3-3-T10-T11-oth-X000 |
|
| E13-X000 | Pre-grant limitation requested |
St.27 status event code: A-2-3-E10-E13-lim-X000 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-3-3-R10-R13-asn-PN2301 St.27 status event code: A-3-3-R10-R11-asn-PN2301 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U11-oth-PR1002 Fee payment year number: 1 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 4 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R13-asn-PN2301 St.27 status event code: A-5-5-R10-R11-asn-PN2301 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R13-asn-PN2301 St.27 status event code: A-5-5-R10-R11-asn-PN2301 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 5 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 6 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 7 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 8 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 9 |
|
| FPAY | Annual fee payment |
Payment date: 20110530 Year of fee payment: 10 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 10 |
|
| LAPS | Lapse due to unpaid annual fee | ||
| PC1903 | Unpaid annual fee |
St.27 status event code: A-4-4-U10-U13-oth-PC1903 Not in force date: 20120619 Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| PC1903 | Unpaid annual fee |
St.27 status event code: N-4-6-H10-H13-oth-PC1903 Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date: 20120619 |
|
| P22-X000 | Classification modified |
St.27 status event code: A-4-4-P10-P22-nap-X000 |