KR101655862B1 - Lightweight cryptographic apparatus using PRINTcipher - Google Patents

Lightweight cryptographic apparatus using PRINTcipher Download PDF

Info

Publication number
KR101655862B1
KR101655862B1 KR1020150028245A KR20150028245A KR101655862B1 KR 101655862 B1 KR101655862 B1 KR 101655862B1 KR 1020150028245 A KR1020150028245 A KR 1020150028245A KR 20150028245 A KR20150028245 A KR 20150028245A KR 101655862 B1 KR101655862 B1 KR 101655862B1
Authority
KR
South Korea
Prior art keywords
printcipher
hardware
round
box
gezel
Prior art date
Application number
KR1020150028245A
Other languages
Korean (ko)
Other versions
KR20160105618A (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 KR1020150028245A priority Critical patent/KR101655862B1/en
Publication of KR20160105618A publication Critical patent/KR20160105618A/en
Application granted granted Critical
Publication of KR101655862B1 publication Critical patent/KR101655862B1/en

Links

Images

Classifications

    • 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Facsimile Transmission Control (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 PRINTcipher를 이용한 경량암호 장치에 관한 것으로, 블록 암호 운용 방식에 따르는 하드웨어 처리기 및 하드웨어 처리기와 연결되어 통신하는 GEZEL 코-프로세서(co-processor)를 포함하며, GEZEL 코-프로세서는, GEZEL IP(intellectual property) 블록 및 경량암호 PRINTcipher 기법을 데이터패스를 이용한 유한상태기계(Finite state machine with datapath, FSMD) 방식으로 동작시키는 하드웨어 IP를 포함한다.The present invention relates to a lightweight encryption apparatus using a PRINT cipher, and includes a GEZEL co-processor communicating with a hardware processor and a hardware processor according to a block cipher operating method, and the GEZEL co- (intellectual property) block and a hardware IP that operates a lightweight cryptographic PRINT cipher scheme in a finite state machine with datapath (FSMD) scheme.

Description

PRINTcipher를 이용한 경량암호 장치{Lightweight cryptographic apparatus using PRINTcipher}[0001] Lightweight cryptographic apparatus using PRINTcipher [

본 발명은 경량암호 PRINTcipher의 하드웨어 설계 방법에 관한 것으로, 보다 상세하게는 PRINTcipher를 이용한 경량암호의 암호화를 효율적으로 동작하게 하기 위하여 하드웨어로 성능을 최적화시키기 위한 경량암호 장치에 관한 것이다.The present invention relates to a hardware design method for a lightweight cryptographic PRINT cipher, and more particularly, to a lightweight cryptographic apparatus for optimizing performance with hardware in order to efficiently perform encryption of lightweight cryptography using a PRINT cipher.

암호 시스템은 크게 공개키 암호 시스템과 암/복호화에 동일한 키를 사용하는 대칭키 암호 시스템으로 분류된다. RFID나 USN 같은 저전력/경량화 환경에서는 안전성을 보장하면서도 효율적인 암호 알고리즘을 필요로 한다. 이러한 환경에서 평문을 블록단위로 암호화를 수행하는 대칭키 경량 암호가 많이 사용된다. 그리고, 경량 암호는 단독으로 사용되기보다는 다양한 길이를 가진 메시지를 암호화하기 위해 다양한 운영 모드와 함께 운용된다. The cryptosystem is largely classified into a public key cryptosystem and a symmetric key cryptosystem using the same key for encryption / decryption. In low-power / light-weight environments such as RFID and USN, efficient encryption algorithms are required while ensuring safety. In this environment, a symmetric key lightweight cipher that performs encryption on a plaintext block basis is often used. And, lightweight cryptography operates with various operating modes to encrypt messages of various lengths rather than being used alone.

PRINTcipher-48/96은 SPN 구조의 48/96비트 블록암호로서 48/96라운드로 이루어졌으며, 80/160 비트의 비밀키를 사용한다. 현재까지 하드웨어로 PRINTcipher를 구현한 사례는 없다. PRINTcipher-48/96 is a 48/96-bit block cipher with SPN structure and consists of 48/96 rounds and uses 80/160 bit secret key. So far, no PRINTcipher has been implemented in hardware.

기존의 경량암호의 최적 설계는 주로 소프트웨어적으로 이루어졌고, 관련 연구가 대부분 소프트웨어 기반으로 이루어졌다. 적은 수의 하드웨어 설계 최적화에 대한 연구가 진행이 되었지만, 그러한 하드웨어 최적 설계는 우선적으로 경량암호에 대한 하드웨어 단독 설계에 대한 최적화에 그 초점이 맞춰져 있었다. 이하에서 제시되는 선행기술문헌은 하드웨어와 소프트웨어를 함께 활용한 설계 방법론을 제안하였다.The optimal design of the existing lightweight cryptosystem is mostly done by software, and most of the related researches are based on software. Although research on a small number of hardware design optimizations has been carried out, such a hardware optimal design has been primarily focused on optimization of hardware independent design of lightweight cryptosystems. The following prior art documents suggest a design methodology using hardware and software together.

Patrick R. Schaumont, "A Practical Introduction to Hardware/Software Codesign," Springer, Dec. 2012.Patrick R. Schaumont, "A Practical Introduction to Hardware / Software Codesign," Springer, Dec. 2012.

본 발명이 해결하고자 하는 기술적 과제는 종래의 대칭키 암호화 알고리즘인 PRINTcipher에서 하드웨어 및 소프트웨어를 통합적으로 설계한 최적화 기법이 존재하지 않았으며, 그로 인해 통합 설계 과정에서 나타날 수 있는 데드락(deadlock), 레이턴시(latency) 및 경쟁 효과(race condition) 발생의 문제를 해결하고자 한다.SUMMARY OF THE INVENTION The present invention has been made in view of the above problems, and it is an object of the present invention to solve the above problems in that there is no optimization technique that integrally design hardware and software in a conventional symmetric key encryption algorithm, PRINTcipher, latency, and race condition.

상기 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 경량암호 장치는, 블록 암호 운용 방식에 따르는 하드웨어 처리기; 및 상기 하드웨어 처리기와 연결되어 통신하는 GEZEL 코-프로세서(co-processor);를 포함하며, 상기 GEZEL 코-프로세서는, GEZEL IP(intellectual property) 블록; 및 경량암호 PRINTcipher 기법을 데이터패스를 이용한 유한상태기계(Finite state machine with datapath, FSMD) 방식으로 동작시키는 하드웨어 IP;를 포함한다.According to an aspect of the present invention, there is provided a lightweight encryption apparatus including: a hardware processor according to a block cipher; And a GEZEL co-processor communicatively coupled to the hardware processor, the GEZEL co-processor comprising: a GEZEL IP (intellectual property) block; And a hardware IP that operates a lightweight cryptographic PRINT cipher scheme in a finite state machine (FSMD) scheme using a data path.

일 실시예에 따른 상기 경량암호 장치에서, 상기 하드웨어 IP는, 상기 경량암호 PRINTcipher 기법의 각 데이터패스를 유한상태기계로 정의하여 제어하는 제어기; 상기 경량암호 PRINTcipher 기법의 암호 알고리즘을 수행하는 'PRINTcipher_round_dp' 데이터패스; 및 Permutation과 S-box Substitution을 수행하는 복수 개의 SP-box 데이터패스;를 포함한다.In the lightweight encryption apparatus according to an exemplary embodiment, the hardware IP includes: a controller for defining and controlling each data path of the lightweight encryption PRINT cipher technique as a finite state machine; 'PRINTcipher_round_dp' data path that performs the encryption algorithm of the lightweight cryptographic PRINT cipher technique; And a plurality of SP-box data paths for performing permutation and S-box substitution.

일 실시예에 따른 상기 경량암호 장치에서, 상기 제어기는, PRINTcipher 기법에 따른 Permutation과 S-box Substitution의 전처리 부분을 미리 하나의 테이블로 설정하여 연산량을 감소시키며, 반복 수행되는 라운드 연산의 루프(loop) 로직을 재구성하여 하나의 루프마다 데이터의 읽기 및 쓰기 횟수를 증가시켜 수행 사이클(cycle)을 감소시키는 언폴딩(unfolding)을 적용할 수 있다.In the lightweight encryption apparatus according to an exemplary embodiment, the controller sets the preprocessing portion of the permutation and the S-box substitution according to the PRINT cipher technique in advance as one table to reduce the amount of computation, ) Logic may be reconfigured to apply unfolding to reduce the number of cycles by increasing the number of times data is read and written per loop.

일 실시예에 따른 상기 경량암호 장치에서, 상기 유한상태기계는, 통신 모듈과 소프트웨어의 통신이 연결되었는지를 확인하고, 통신 모듈로부터 평문과 키값을 입력받는 'Check_start' 상태; 상기 입력된 평문과 키값을 PRINTcipher_round_dp 내부 레지스터에 저장하되, 초기 레지스터에 저장하는 경우 미리 Key XOR을 수행하여 저장하는 'Init' 상태; PRINTcipher의 2라운드 함수를 수행하고, Permutation 및 Sbox Substitution 과정을 미리 테이블로 설정한 3비트 SP-box 데이터패스를 설정하여 SP-box 데이터패스 내부에서 Key XOR을 수행하며, PRINTcipher_round_dp에서 SP-box 데이터패스의 출력값을 입력받되 한 사이클에 두 개의 라운드를 수행하는 '2R-Round' 상태; 및 최종 라운드까지 수행된 경우 암호문을 외부 통신 모듈로 전송하며, PRINTcipher의 시작 상태를 알려주는 레지스터를 초기화시키는 'Finish' 상태;를 포함한다.In the lightweight encryption apparatus according to an embodiment, the finite state machine may include a 'Check_start' state for confirming whether communication between the communication module and the software is connected, receiving a plain text and a key value from the communication module, An 'Init' state in which the input plain text and the key value are stored in the PRINTcipher_round_dp internal register, and when the initialized register is stored in the initial register, Key XOR is performed and stored; PRINTcipher performs a 2-round function, performs 3-bit SP-box datapath in which permutation and Sbox substitution process are set in advance as a table, performs Key XOR in the SP-box datapath, and executes SP-box datapath in PRINTcipher_round_dp A '2R-Round' state in which two rounds are performed in one cycle while receiving the output value of the '2R-Round' state; And a 'Finish' state in which a ciphertext is transmitted to the external communication module when the final round is performed, and a register indicating the start state of the PRINT cipher is initialized.

일 실시예에 따른 상기 경량암호 장치에서, 상기 GEZEL 코-프로세서는, 하드웨어 및 소프트웨어 간의 메시지 송수신시, PRINTcipher 하드웨어 코어의 암호화 과정과 데이터 송수신 과정을 각각 분리하여 처리하고, 서로 통신이 확립되면 처리 완료를 알리는 완료 시그널(done signal)이 도착 시 대기시간 없이 즉시 데이터를 송수신할 수 있다.In the lightweight encryption apparatus according to an embodiment, the GEZEL co-processor separates and processes the encryption process and the data transmission / reception process of the PRINTcipher hardware core when messages are exchanged between the hardware and the software, A done signal that informs the user can immediately send and receive data without waiting time on arrival.

본 발명의 실시예들은, 경량암호 PRINTcipher를 하드웨어로 구현하고, 이를 8051 프로세서나 다른 소프트웨어 운용 플랫폼상에서 C 언어 등의 소프트웨어 개발언어로 개발된 운용모드들과 호환이 되도록 최적화하여 설계함으로써, 기존의 하드웨어만을 고려한 설계 기법에 비해 추가적인 통합 설계시의 동작 검증 없이 바로 적용이 가능한 PRINTcipher 하드웨어 IP를 효율적으로 구현할 수 있으며, 소프트웨어와 하드웨어 간의 데이터 송수신시 발생할 수 있는 지연시간을 최소화하기 위하여 하드웨어 상에서 개선된 운용방식을 적용함으로써 전체적인 하드웨어 성능을 향상시킬 수 있다.Embodiments of the present invention can be implemented by optimizing the lightweight cryptographic PRINT cipher to be compatible with the operation modes developed in a software development language such as C language or the like on an 8051 processor or another software operation platform, It is possible to efficiently implement PRINTcipher hardware IP that can be applied immediately without additional operation verification in integrated design. In addition, in order to minimize the delay time when data is transferred between software and hardware, The overall hardware performance can be improved.

도 1은 PRINTcipher 알고리즘의 전체 암호화 과정을 설명하기 위한 도면이다.
도 2 및 도 3은 적응적 언폴딩 기법을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 PRINTcipher 유한상태기계(FSM)의 전체 흐름을 도시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 PRINTcipher의 HW/SW 통합 설계 기법을 적용한 통합 디자인의 전체 구조도를 도시한 도면이다.
1 is a diagram for explaining a total encryption process of the PRINT cipher algorithm.
FIGS. 2 and 3 are views for explaining an adaptive unfolding technique.
FIG. 4 is a diagram illustrating the entire flow of a PRINTcipher finite state machine (FSM) according to one embodiment of the present invention.
FIG. 5 is a diagram illustrating an overall structure of an integrated design using a HW / SW integrated design technique of a PRINT cipher according to an exemplary embodiment of the present invention. Referring to FIG.

이하에서는 도면을 참조하여 본 발명의 실시예들을 구체적으로 설명하도록 한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. In the following description and the accompanying drawings, detailed description of well-known functions or constructions that may obscure the subject matter of the present invention will be omitted.

본 발명의 실시예들에 따라 최적화된 PRINTcipher의 하드웨어 설계는 하드웨어 단독 사용 및 설계 시 최적화뿐만 아니라, PRINTcipher를 소프트웨어와 연동하여 사용시 데드락(deadlock)이 발생하여 레이턴시(latency) 측면에서 손해가 발생할 수 있는 부분까지 고려하여 하드웨어 최적 설계를 진행하였다. 또한, 본 발명의 실시예들은 GEZEL 하드웨어 설계 언어를 이용하여 설계하여 본 발명을 통해 제시되는 하드웨어 IP를 소프트웨어와 같이 연동하여 운용시 발생할 수 있는 경쟁 효과(race condition)를 최소화하였다.The hardware design of the PRINTcipher optimized according to the embodiments of the present invention is not only optimized for hardware use and design but also can be used in a case where the PRINTcipher is interlocked with the software and deadlock occurs and damages may occur in terms of latency The hardware optimal design was performed. In addition, the embodiments of the present invention are designed using the GEZEL hardware design language, and minimize the race condition that may occur when the hardware IP presented through the present invention is interlocked with software.

이를 위해, 사이클(cycle) 기반의 설계기법을 적용한 GEZEL을 이용하여 설계하여 운용환경에 따라 발생할 수 있는 상기와 같은 문제를 구현 단계에서 해결하였다. 또한, 경량암호의 특성상 최소한의 면적으로 구현될 수 있도록 설계하였으며, 경량암호가 저전력 장비에서 동작함을 고려하였다.To solve this problem, we designed GEZEL using cycle - based design method and solved the above problems that may occur depending on the operating environment at the implementation stage. Also, it is designed to be implemented with minimum area due to the characteristics of lightweight cryptosystem, and lightweight cryptosystem is considered to operate in low power equipment.

일반적으로 블록 암호가 운용 환경에 따라 운영 모드를 다르게 설정함에도 불구하고, 종래에는 이러한 면을 고려하지 않고 하드웨어 최적화에만 초점이 맞춰져 있는 문제점에 주목하였다. 따라서, 본 발명의 실시예들은 개발된 최적화된 하드웨어 IP 코어가 다양한 운용 모드와 연동시 성능의 저하 없이 운용될 수 있도록 이러한 운용 모드가 탑재된 경량암호를 포함한 블록암호들이 동작하는 하드웨어/소프트웨어 통합 운용에 적합하도록 최적화하였다.In general, although the block cipher sets different operating modes according to the operating environment, it has focused on the problem that the optimization is focused on the hardware optimization without considering this aspect. Therefore, embodiments of the present invention can be applied to hardware / software integrated operation in which block ciphers including lightweight cryptosystems equipped with such an operation mode are operated so that the developed optimized hardware IP core can be operated without degradation in performance in connection with various operation modes Respectively.

PRINTcipher-48/96은 SPN 구조의 48/96비트 블록암호로서 48/96라운드로 이루어졌으며, 80/160 비트의 비밀키를 사용한다. 현재까지 하드웨어로 PRINTcipher를 구현한 사례는 없으며, 본 발명의 실시예들에서 처음으로 PRINTcipher-48을 하드웨어로 설계하였다.PRINTcipher-48/96 is a 48/96-bit block cipher with SPN structure and consists of 48/96 rounds and uses 80/160 bit secret key. No PRINTcipher is implemented in hardware so far, and PRINTcipher-48 is designed as hardware in the embodiments of the present invention for the first time.

도 1은 PRINTcipher-48 암호 알고리즘의 전체 구조이며, 라운드 Key XOR, Linear diffusion layer, RC XOR 과정으로 구성되며 각 과정은 다음과 같다.
FIG. 1 shows an overall structure of a PRINTcipher-48 encryption algorithm, which includes a round-key XOR, a linear diffusion layer, and an RC XOR process.

1) Key 1) Key XORXOR

PRINTcipher-48은 모든 라운드에 대해서 동일한 Key가 사용되며, Key의 상위 48비트(

Figure 112015019871961-pat00001
)와 XOR를 수행한다.
PRINTcipher-48 uses the same key for all rounds, and the upper 48 bits of the key (
Figure 112015019871961-pat00001
And XOR.

2) Linear diffusion layer2) Linear diffusion layer

다음과 같은 diffusion 함수에 의해서 각 비트를 섞어준다.We mix each bit by the following diffusion function.

Figure 112015019871961-pat00002
Figure 112015019871961-pat00002

Figure 112015019871961-pat00003
Figure 112015019871961-pat00003

3) 3) RCRC (round constant) (round constant) XORXOR

라운드 상수는 현재 상태의 가장 오른쪽 비트들의 XOR 값으로 만들어진다. 레지스터의 상태를

Figure 112015019871961-pat00004
라고 할 때, n-bit shift register는 다음과 같은 방식으로 갱신된다. The round constant is made to the XOR value of the rightmost bits of the current state. The state of the register
Figure 112015019871961-pat00004
, The n-bit shift register is updated in the following manner.

Figure 112015019871961-pat00005
Figure 112015019871961-pat00005

Figure 112015019871961-pat00006
Figure 112015019871961-pat00006

Figure 112015019871961-pat00007
Figure 112015019871961-pat00007

위와 같이 생성된

Figure 112015019871961-pat00008
는 도 3과 같이 Linear diffusion layer 상태의 마지막 6비트와 XOR과정을 수행한다.
The generated
Figure 112015019871961-pat00008
As shown in FIG. 3, performs the XOR process with the last 6 bits of the linear diffusion layer state.

4) Three bit permutation & S-box substitution4) Three bit permutation & S-box substitution

PRINTcipher-48의 Permutation과 substitution 과정은 비밀키의 하위 32비트 (

Figure 112015019871961-pat00009
)에 의해 결정된다. 3비트 단위의 입력을 16개 받아서 출력되는 값은 permutation과 substitution 과정을 거쳐서 출력되는 값은 다음과 같다. The permutation and substitution process of PRINTcipher-48 uses the lower 32 bits of the secret key (
Figure 112015019871961-pat00009
). The values that are output after receiving 16 input of 3 bit unit are outputted through permutation and substitution process.

Figure 112015019871961-pat00010
Figure 112015019871961-pat00010

예를 들어

Figure 112015019871961-pat00011
의 2비트가 11이고 permutation & S-box layer의 입력값이 4라면 그 출력값은 1이 된다. 위와 같은 방식으로 나머지 permutation & S-box를 처리한다.
E.g
Figure 112015019871961-pat00011
2 is 11 and the input value of the permutation & S-box layer is 4, the output value is 1. The remaining permutation & S-box is processed in the same manner as above.

이하에서 제시되는 본 발명의 실시예들에서는 효율적인 경량암호 PRINTcipher를 CPU 플랫폼에서 C언어 등의 소프트웨어로 개발된 모듈과 효과적으로 같이 운용할 수 있도록 하드웨어/소프트웨어 통합설계 및 운용에 적합하도록 설계되었고, PRINTcipher의 하드웨어 최적화에는 데이터패스를 유한상태기계로 정의하여 컨트롤하는 유한상태기계(FSM)를 언폴딩(unfolding)과 리타이밍(retiming) 등의 최적화 이론을 적용하여 최적화하였다. 또한, 소프트웨어와 하드웨어 간의 통신 시 발생하는 지연시간을 최소화하기 위하여 소프트웨어와 하드웨어 간의 통신 프로토콜을 PRINTcipher 하드웨어 단에서 최적화하여 설계하였다. 특히, PRINTcipher에 대한 하드웨어 설계 결과가 기존에 존재하지 않기 때문에, 본 발명이 향후 PRINTcipher에 대한 하드웨어 설계에 있어서 가이드라인을 제공할 수 있을 것이다. In the embodiments of the present invention described below, an efficient lightweight encryption PRINTcipher is designed to be suitable for hardware / software integrated design and operation so that the PRINT cipher can effectively operate with a module developed by a software such as C language in a CPU platform, and PRINTcipher In hardware optimization, finite state machine (FSM), which defines and controls datapaths as finite state machines, is optimized by applying optimization theory such as unfolding and retiming. In order to minimize the delay time in communication between software and hardware, communication protocol between software and hardware is optimized by PRINTcipher hardware. In particular, since there is no existing hardware design result for PRINTcipher, the present invention can provide a guideline for future hardware design of PRINTcipher.

본 발명의 실시예들에서 제안한 PRINTcipher의 하드웨어 구현에 관한 구체적인 내용은 다음과 같다.
The details of the hardware implementation of the PRINT cipher proposed in the embodiments of the present invention are as follows.

(1) (One) PRINTcipherPRINTcipher 하드웨어 구현 최적화 Hardware Implementation Optimization

PRINTcipher는 암호 알고리즘 전체를 수행하는 PRINT cipher_round_dp 데이터 패스를 최상위 모듈로 설정하고 3비트 단위로 Permutation과 S-box Substitution을 수행하는 SP-box 데이터패스 4개를 look-up table 형태로 구현하여 총 5개의 데이터패스로 나누어 설계하였다. 또한. PRINT_round_dp 데이터패스를 FSM으로 컨트롤하는 FSM 컨트롤러를 설계하여 암호화를 수행하였다.PRINTcipher implements the PR-cipher_round_dp data path, which performs the entire encryption algorithm, and the SP-box data path, which performs permutation and S-box substitution in 3-bit units, in a look-up table form. The data path was designed by dividing. Also. PRINT_round_dp We designed the FSM controller to control the data path with the FSM to perform encryption.

PRINTcipher의 암호 설계는 구조 자체가 단순하기 때문에 수행 사이클의 감소에 목적을 두었다. 그래서 라운드 함수는 한 사이클 당 2라운드를 수행하게 언폴딩(unfolding) 기법을 적용하여 총 사이클을 감소시켰다. 또한 PRINTcipher-48의 암호화 과정 중 Permutation과 S-box Substitution을 따로 처리하지 않고 하나의 테이블로 미리 설정하여 연산량을 감소시켰다. 따라서 PRINTcipher의 기존 구조인 Key XOR - Permutation - S-box Substitution를 Key XOR - SP-box 구조로 설계를 하였고 라운드 연산을 수행할 때 SP-box 이전에 레지스터를 두어 현재 라운드의 SP-box, 다음 라운드의 Key XOR을 하나의 프로세스로 묶어서 구현하였다. 그리고 위 프로세스를 한 사이클 당 두 번 수행하게 구성하였다.PRINTcipher's cryptographic design aims to reduce the execution cycle because the structure itself is simple. Therefore, the round function reduced the total cycle by applying an unfolding technique to perform 2 rounds per cycle. In addition, during encryption of PRINTcipher-48, permutation and S-box substitution are not processed separately, and the amount of computation is reduced by setting in advance as one table. Therefore, we designed Key XOR - Permutation - S - box Substitution, which is an existing structure of PRINTcipher, in Key XOR - SP - box structure. When rounding operation is performed, register is placed before SP - box, The key XOR of the process is assembled into one process. And the above process is configured to perform twice per cycle.

언폴딩(unfolding)은 프로그램의 루프 로직을 풀어서 한 번에 여러 연산을 수행하는 방법이다. 이때 공간의 소비가 있으므로, 속도적 측면과 공간의 효율을 고려해야한다.Unfolding is a way of loosening the program's loop logic and performing multiple operations at once. Because there is space consumption at this time, speed aspect and space efficiency should be considered.

도 2를 참조하면, 레지스터 a[i]를 읽는데 3cycle, 계산된 값을 레지스터 b[i]에 할당하는데 1cycle, 할당된 값을 레지스터 b[i]에 쓰는데 2cycle이 소요되고 이를 N번 반복 수행하므로 총 수행 사이클은 6N이 필요하다. 이를 도 3 구조로 변경하면 총 8cycle만에 계산이 완료되고 이를 N/3번 반복하므로 총 수행 사이클은 6N에서 8×N/3로 감소되는 효과를 얻을 수 있다.Referring to FIG. 2, it takes 3 cycles to read the register a [i], 1 cycle to assign the calculated value to the register b [i], 2 cycles to write the assigned value to the register b [i] The total execution cycle is 6N. If this is changed to the structure of FIG. 3, the calculation is completed in a total of 8 cycles. Since the calculation is repeated N / 3 times, the total execution cycle can be reduced from 6N to 8 × N / 3.

나아가, SP-box 데이터패스 입력값을 3비트 레지스터 16개로 선언하고, Key XOR 과정을 SP-box 데이터패스 내부에서 수행하도록 설계하였다. 그에 따라 48비트의 Key XOR 과정보다 3비트 단위로 나누어져 Key XOR 과정을 수행하여 속도 측면에서의 효율성이 있었다.
Furthermore, SP-box data path input values are declared as 16-bit 3-bit registers and the Key XOR process is designed to be performed within the SP-box data path. Accordingly, the key XOR process is divided into three bits rather than the 48-bit Key XOR process, thereby achieving efficiency in terms of speed.

(2) (2) PRINTcipherPRINTcipher 의 각 유한상태기계(Of each finite state machine ( FSMFSM )에서의 구체적인 최적화 방법).

도 4는 PRINTcipher의 전체유한상태기계(FSM)의 FLOW를 나타낸다.
Figure 4 shows the FLOW of the entire finite state machine (FSM) of PRINTcipher.

2-1) Check_start 상태 (410)2-1) Check_start state 410

다른 암호와 동일하게 통신 모듈과 소프트웨어의 통신이 연결되었는지 확인하여, 연결이 되지 않았다면 암호화를 시작하지 않는다. 정상적으로 연결이 되고 통신 모듈로부터 평문과 키값을 입력 받았다면 다음 단계인 Init 상태로 넘어간다.
Make sure that the communications module and software are connected in the same way as other ciphers. If not, the encryption will not start. If the connection is normally established and the plaintext and the key value are input from the communication module, the process proceeds to the next step, Init.

2-2) 2-2) InitInit 상태 (420) In state 420,

외부 통신 모듈로부터 평문과 키값을 입력 받은 후 PRINTcipher_round_dp 내부 레지스터에 저장한다. 그리고 본 구현물에서는 PRINTcipher의 라운드 수행 알고리즘이 첫 라운드 Key XOR 과정을 수행하지 않도록 구성되어 있기 때문에 초기 레지스터에 저장할 때 미리 Key XOR을 수행하여 저장한다.
After receiving the plaintext and key value from the external communication module, it stores it in PRINTcipher_round_dp internal register. In this implementation, since the round execution algorithm of PRINTcipher is configured not to perform the first round key XOR process, it carries out Key XOR beforehand when it is stored in the initial register.

2-3) 2R-Round 상태 (430)2-3) 2R-Round state 430

PRINTcipher의 2라운드 함수를 수행한다. Permutation - Sbox Substitution 과정을 미리 테이블로 설정한 3비트 SP-box 데이터패스를 설계하고 SP-box 데이터패스 내부에서 Key XOR을 수행한다.Performs a two round function of PRINTcipher. Permutation - Designs a 3-bit SP-box datapath with the Sbox Substitution process set as a table in advance and performs Key XOR within the SP-box datapath.

PRINTcipher_round_dp에서는 SP-box 데이터패스의 출력값을 입력받고 위 과정을 한 사이클 당 두 번 수행하도록 구현하여 한 사이클에 두 개의 라운드가 수행된다.
In PRINTcipher_round_dp, the output value of the SP-box data path is input and the above process is executed twice per cycle, so that two rounds are performed in one cycle.

2-4) Finish 상태 (450)2-4) Finish state (450)

최종 라운드까지 수행하였다면, 암호문을 외부 통신 모듈로 전송한다. 그리고 PRINTcipher의 시작 상태를 알려주는 레지스터를 초기화시킨다.
If it is performed until the final round, the ciphertext is transmitted to the external communication module. Then initialize the register to indicate the start state of PRINTcipher.

(3) (3) PRINTcipherPRINTcipher 의 HW/SW 통합설계를 고려한 HW / SW integrated design of 모듈간Between modules 통신 최적화  Communication optimization

블록암호의 운용 모드인 ECB(Electronic Code Block), CBC(Cipher Block Chaining), CTR(Counter), CFB(Cipher FeedBack), OFB(Output FeedBack) 등이 본 발명의 실시예들을 통해 개발된 PRINTcipher 하드웨어 IP와 효과적으로 상호 통신하며 통작하게 하기 위하여 하드웨어 IP 상에서의 동작 프로토콜을 개선하여 레이턴시를 향상시켰다.A PRINT cipher hardware IP (cipher block IP) developed through embodiments of the present invention, such as an ECC (Electronic Code Block), a Cipher Block Chaining (CBC), a Counter Counter (CTR), a Cipher FeedBack And improve the latency by improving the operation protocol on the hardware IP in order to communicate effectively with each other.

본 발명에서 사용한 방법은 암호화와 HW/SW 간의 통신 메시지를 주고 받는 부분을 따로 계산하여 완료시그널(done)이 도착하면 추가적인 대기시간 없이 바로 메시지를 송/수신할 수 있게 하였다. The method used in the present invention separately calculates a portion for transmitting and receiving a communication message between the encryption and the HW / SW, and when the completion signal (done) arrives, the message can be transmitted / received immediately without additional waiting time.

도 5는 PRINTcipher 알고리즘에 대한 HW/SW 통합 설계 시 PRINTcipher 하드웨어 IP의 적용에 대한 전체 구조도이다. FIG. 5 is an overall structure diagram of the application of the PRINTcipher hardware IP in the HW / SW integrated design for the PRINTcipher algorithm.

하드웨어 처리기(10)는 블록 암호 운용 방식에 따르며, 8051 마이크로프로세서(microprocessor)로 구현될 수 있다. 블록 단위로 암호화 되는 대칭키 암호는 다양한 길이의 입력과 출력을 보장하기 위해 운영 모드를 이용할 수 있으며, 도 5에서 대칭키 암호의 운용모드는 8051 마이크로프로세서를 사용하여 C언어로 구현할 수 있다.The hardware processor 10 is in accordance with a block cipher operating system and can be implemented as an 8051 microprocessor. A symmetric key cipher that is encrypted in units of blocks can use an operating mode to secure input and output of various lengths. In FIG. 5, the operation mode of symmetric key cipher can be implemented in C language using an 8051 microprocessor.

GEZEL 코-프로세서(co-processor)(20)는 상기 하드웨어 처리기(10)와 포트-맵(port-mapped) 또는 메모리-맵(memory-mapped) 방식으로 연결되어 통신하며, GEZEL IP(intellectual property) 블록(21) 및 경량암호 PRINTcipher 기법을 데이터패스를 이용한 유한상태기계(Finite state machine with datapath, FSMD) 방식으로 동작시키는 하드웨어 IP(23, 24)를 포함한다.The GEZEL co-processor 20 is connected to the hardware processor 10 in a port-mapped or memory-mapped manner and communicates with GEZEL IP (intellectual property) Block 21 and hardware IPs 23 and 24 that operate the lightweight cryptographic PRINTcipher scheme in a finite state machine with datapath (FSMD) scheme.

GEZEL은 ARM, 8051 마이크로프로세서와의 통합 설계를 지원하기 때문에 다른 추가적인 구현 및 컴파일 없이 GEZEL에서 제공하는 IP block만 코드에 삽입 후 합성하면 8051 마이크로프로세서와의 통신을 통해 평문과 암호문을 전송할 수 있다.Since GEZEL supports the integrated design with ARM and 8051 microprocessors, it can transmit plain text and ciphertext by communicating with 8051 microprocessor by inserting only the IP blocks provided by GEZEL in code without any additional implementation and compilation.

본 발명의 실시예들에서는 GEZEL로 구현된 암호 알고리즘의 코어와 8051 프로세서에서 구현된 ECB(Electronic Code Block), CBC(Cipher Block Chaining), CTR(Counter), CFB(Cipher FeedBack), OFB(Output FeedBack)의 5개의 운영모드를 통해 하드웨어/소프트웨어의 통합설계를 구축하였다.In embodiments of the present invention, a core of a cryptographic algorithm implemented by GEZEL and an ECB (Electronic Code Block), CBC (Cipher Block Chaining), CTR (Counter), CFB (Cipher FeedBack), and OFB ) To build an integrated design of hardware / software.

8051 프로세서에서는 사용자의 입력을 받아서 ECB, CBC, CTR, CFB, OFB의 5가지 운영모드 중 하나를 선택할 수 있다. 즉, 사용 플랫폼과 상황에 맞추어 운영모드와 암호를 선택할 수 있는 유연성을 제공한다. 또한 마스터키가 하드웨어에 저장된 것이 아닌 소프트웨어로부터 입력받는 것이기 때문에 추후 키가 유출되었을 경우 쉽게 수정 및 업데이트가 가능하다는 안전성 측면에서의 유연성을 갖는다.The 8051 processor accepts user input and can select one of five operating modes: ECB, CBC, CTR, CFB, and OFB. It provides the flexibility to choose the operating mode and password for your platform and situation. In addition, since the master key is input from software rather than being stored in hardware, it has flexibility in terms of safety that it can be easily corrected and updated when a key is leaked later.

설계 측면에서도 하드웨어와 소프트웨어의 통합설계 시 각 대칭키 암호의 알고리즘 중 키 스케줄 부분을 소프트웨어에서 구현하여 미리 각 라운드키 값을 사전 계산하여 라운드키를 하드웨어로 보내는 방식으로도 구현할 수 있다. 그에 따라 하드웨어에서는 키 스케줄 연산을 처리하지 않아도 되기 때문에 면적 감소와 속도 증대 효과를 기대할 수 있다.In terms of design, it is also possible to implement the key schedule part of each symmetric key cryptographic algorithm in the hardware and software integrated design, and to pre-calculate each round key value in advance and send the round key to hardware. Therefore, since the hardware does not need to process the key schedule calculation, the area reduction and the speed increase effect can be expected.

GEZEL을 이용한 통합설계에서 8051 마이크로프로세서가 하드웨어 입출력 장치와 통신을 할 때, 사용하는 방식은 메모리 맵 입출력(memory mapped I/O)방식과 포트 맵 입출력 (port mapped I/O)방식이 있다. 메모리 맵 입출력 방식은 통신을 할 때 입출력과 메모리의 주소 공간을 분리하지 않는 방식이고, 포트 맵 입출력 방식은 입출력 회로와 메모리 주소 공간을 분리하는 방식이다. 입출력 회로가 메모리에 비해 속도가 느린 경우 이 두 공간을 분리하면 속도와 공간의 효율성이 있다. 본 발명의 실시예들에서는 IP block을 연결할 때 포트 맵 입출력 방식을 사용하여 속도와 공간의 효율성을 향상시켰다.In the integrated design using GEZEL, the 8051 microprocessor communicates with the hardware I / O devices using memory mapped I / O and port mapped I / O. The memory map I / O method does not separate input / output and memory address space when communicating, and the port map input / output method separates input / output circuit and memory address space. If the I / O circuitry is slower than the memory, there is speed and space efficiency when these two spaces are separated. In the embodiments of the present invention, the efficiency of speed and space is improved by using a port map input / output method when connecting IP blocks.

하드웨어와 소프트웨어간의 통신 시 신뢰성을 높이기 위해 8051 마이크로프로세서와 하드웨어 코-프로세서 간에 개선된 핸드쉐이크(handshake) 프로토콜(22)을 사용하였다. 서로 통신이 확립되면 완료가 되었다는 완료 시그널(done signal)을 보내어 데이터를 주고 받을 수 있는 상태가 되었는지 확인한다. 도 5의 실시예에서는 암호화와 메시지를 주고 받는 부분이 다른 모듈로 설계되어 있기 때문에 동시에 병렬적으로 수행하도록 핸드쉐이크 프로토콜(22)을 개선하였다. 따라서 하드웨어 코-프로세서(20)에서 암호화 수행 중에도 8051 마이크로프로세서(10)와 메시지를 주고 받을 수 있게 하였다.To improve reliability when communicating between hardware and software, an improved handshake protocol (22) was used between the 8051 microprocessor and the hardware co-processor. Once the communication is established, a done signal indicating that the communication has been completed is sent to check whether data can be exchanged. In the embodiment of FIG. 5, the handshake protocol 22 is improved so that the encryption and message transmission / reception portions are designed in different modules. Hence, the hardware co-processor 20 is able to send and receive messages to and from the 8051 microprocessor 10 during encryption.

상기된 본 발명의 실시예들에 따르면, 본 발명은 경량암호가 사용될 수 있는 IoT 제품이나 RFID/USN 및 스마트카드 등에 탑재되어 효율적인 암호화 연산에 사용될 수 있으며, 또한, 기존에 탑재되어 있는 PRINTcipher 경량암호 기반의 전자 제품에 대체하여 탑재할 수 있으며, 다양한 운용모드에 바로 적용할 수 있어 제품 및 플랫폼에 상관없이 적용할 수 있다는 장점을 갖는다.According to the embodiments of the present invention described above, the present invention can be applied to an efficient encryption operation by being mounted on an IoT product, a RFID / USN, a smart card, etc. in which a lightweight password can be used, Based electronic products, and it can be directly applied to various operation modes, so that it can be applied regardless of products and platforms.

이상에서 본 발명에 대하여 그 다양한 실시예들을 중심으로 살펴보았다. 본 발명에 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.The present invention has been described above with reference to various embodiments. It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. Therefore, the disclosed embodiments should be considered in an illustrative rather than a restrictive sense. The scope of the present invention is defined by the appended claims rather than by the foregoing description, and all differences within the scope of equivalents thereof should be construed as being included in the present invention.

10 : 하드웨어 처리기
20 : GEZEL 코-프로세서
21 : GEZEL IP 블록
22 : 핸드쉐이크 프로토콜
23 : PRINTcipher 유한상태기계 제어기
24 : PRINTcipher 데이터패스
10: Hardware Handler
20: GEZEL co-processor
21: GEZEL IP block
22: Handshake Protocol
23: PRINTcipher finite state machine controller
24: PRINTcipher data pass

Claims (5)

블록 암호 운용 방식에 따르는 하드웨어 처리기; 및
상기 하드웨어 처리기와 연결되어 통신하는 GEZEL 코-프로세서(co-processor);를 포함하며,
상기 GEZEL 코-프로세서는,
GEZEL IP(intellectual property) 블록; 및
경량암호 PRINTcipher 기법을 데이터패스를 이용한 유한상태기계(Finite state machine with datapath, FSMD) 방식으로 동작시키는 하드웨어 IP;를 포함하되,
상기 GEZEL 코-프로세서는,
하드웨어 및 소프트웨어 간의 메시지 송수신시, PRINTcipher 하드웨어 코어의 암호화 과정과 데이터 송수신 과정을 각각 분리하여 처리하고, 서로 통신이 확립되면 처리 완료를 알리는 완료 시그널(done signal)이 도착 시 대기시간 없이 즉시 데이터를 송수신하는 것을 특징으로 하는 경량암호 장치.
A hardware processor according to a block cipher operation; And
And a GEZEL co-processor communicatively coupled to the hardware processor,
The GEZEL co-
GEZEL intellectual property (IP) block; And
A hardware IP for operating a lightweight cryptographic PRINT cipher scheme in a finite state machine with datapath (FSMD) scheme,
The GEZEL co-
When a message is transmitted between hardware and software, the encryption process and data transmission / reception process of the PRINTcipher hardware core are separated and processed. When a communication is established with each other, a completion signal (done signal) Wherein the light cryptographic apparatus further comprises:
제 1 항에 있어서,
상기 하드웨어 IP는,
상기 경량암호 PRINTcipher 기법의 각 데이터패스를 유한상태기계로 정의하여 제어하는 제어기;
상기 경량암호 PRINTcipher 기법의 암호 알고리즘을 수행하는 'PRINTcipher_round_dp' 데이터패스; 및
Permutation과 S-box Substitution을 수행하는 복수 개의 SP-box 데이터패스;를 포함하는 것을 특징으로 하는 경량암호 장치.
The method according to claim 1,
The hardware IP includes:
A controller for defining and controlling each data path of the lightweight cryptographic PRINT cipher technique as a finite state machine;
'PRINTcipher_round_dp' data path that performs the encryption algorithm of the lightweight cryptographic PRINT cipher technique; And
And a plurality of SP-box data paths for performing permutation and S-box substitution.
제 2 항에 있어서,
상기 제어기는,
PRINTcipher 기법에 따른 Permutation과 S-box Substitution의 전처리 부분을 미리 하나의 테이블로 설정하여 연산량을 감소시키며,
반복 수행되는 라운드 연산의 루프(loop) 로직을 재구성하여 하나의 루프마다 데이터의 읽기 및 쓰기 횟수를 증가시켜 수행 사이클(cycle)을 감소시키는 언폴딩(unfolding)을 적용하는 것을 특징으로 하는 경량암호 장치.
3. The method of claim 2,
The controller comprising:
The pre-processing part of permutation and S-box substitution according to PRINTcipher method is set in advance as one table,
Wherein a loop logic of a round operation to be repeatedly performed is reconfigured to increase the number of times of reading and writing data for each loop to apply unfolding to reduce a cycle. .
제 1 항에 있어서,
상기 유한상태기계는,
통신 모듈과 소프트웨어의 통신이 연결되었는지를 확인하고, 통신 모듈로부터 평문과 키값을 입력받는 'Check_start' 상태;
상기 입력된 평문과 키값을 PRINTcipher_round_dp 내부 레지스터에 저장하되, 초기 레지스터에 저장하는 경우 미리 Key XOR을 수행하여 저장하는 'Init' 상태;
PRINTcipher의 2라운드 함수를 수행하고, Permutation 및 Sbox Substitution 과정을 미리 테이블로 설정한 3비트 SP-box 데이터패스를 설정하여 SP-box 데이터패스 내부에서 Key XOR을 수행하며, PRINTcipher_round_dp에서 SP-box 데이터패스의 출력값을 입력받되 한 사이클에 두 개의 라운드를 수행하는 '2R-Round' 상태; 및
최종 라운드까지 수행된 경우 암호문을 외부 통신 모듈로 전송하며, PRINTcipher의 시작 상태를 알려주는 레지스터를 초기화시키는 'Finish' 상태;를 포함하는 것을 특징으로 하는 경량암호 장치.
The method according to claim 1,
The finite state machine includes:
'Check_start' status that confirms whether communication between communication module and software is connected, receives plain text and key value from communication module;
An 'Init' state in which the input plain text and the key value are stored in the PRINTcipher_round_dp internal register, and when the initialized register is stored in the initial register, Key XOR is performed and stored;
PRINTcipher performs a 2-round function, performs 3-bit SP-box datapath in which permutation and Sbox substitution process are set in advance as a table, performs Key XOR in the SP-box datapath, and executes SP-box datapath in PRINTcipher_round_dp A '2R-Round' state in which two rounds are performed in one cycle while receiving the output value of the '2R-Round'state; And
And a 'Finish' state in which a cipher text is transmitted to an external communication module when a final round is performed, and a register indicating a start state of the PRINT cipher is initialized.
삭제delete
KR1020150028245A 2015-02-27 2015-02-27 Lightweight cryptographic apparatus using PRINTcipher KR101655862B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150028245A KR101655862B1 (en) 2015-02-27 2015-02-27 Lightweight cryptographic apparatus using PRINTcipher

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150028245A KR101655862B1 (en) 2015-02-27 2015-02-27 Lightweight cryptographic apparatus using PRINTcipher

Publications (2)

Publication Number Publication Date
KR20160105618A KR20160105618A (en) 2016-09-07
KR101655862B1 true KR101655862B1 (en) 2016-09-09

Family

ID=56939285

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150028245A KR101655862B1 (en) 2015-02-27 2015-02-27 Lightweight cryptographic apparatus using PRINTcipher

Country Status (1)

Country Link
KR (1) KR101655862B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100400947B1 (en) 2002-11-26 2003-10-08 Coretrust Inc System and method for protecting information of multimedia streaming contents, and recording medium recording the same

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100400947B1 (en) 2002-11-26 2003-10-08 Coretrust Inc System and method for protecting information of multimedia streaming contents, and recording medium recording the same

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Lars Knudsen 외 3인, Cryptographic Hardware and Embedded Systems, CHES 2010, "PRINTcipher: A Block Cipher for IC-Printing" (2010.08.20. 공개)

Also Published As

Publication number Publication date
KR20160105618A (en) 2016-09-07

Similar Documents

Publication Publication Date Title
EP3758283A1 (en) Efficient post-quantum anonymous attestation with signature-based join protocol and unlimited signatures
US7978851B2 (en) Keystream encryption device, method, and program
Arbit et al. Implementing public-key cryptography on passive RFID tags is practical
Macé et al. FPGA implementation (s) of a scalable encryption algorithm
KR20090005673A (en) Apparatus for low power sha-1 hash operation and apparatus for low power hmac cryptographic using this
EP2715544B1 (en) Method and system for embedded high performance reconfigurable firmware cipher
WO2011123575A1 (en) Cryptographic processor with dynamic update of encryption state
Schaumont et al. Unlocking the design secrets of a 2.29 Gb/s Rijndael processor
CN107426193A (en) For hardware-accelerated novel I/O paths design in a kind of https applications
Braeken et al. Secure remote reconfiguration of an FPGA-based embedded system
Güneysu et al. High-performance cryptanalysis on RIVYERA and COPACOBANA computing systems
KR101658397B1 (en) Lightweight cryptographic apparatus using PRESENT
CN106165340B (en) Encryption method, program, and system
CN101515853B (en) Information terminal and information safety device thereof
JP2004054128A (en) Encrypting system
CN105721139B (en) A kind of the AES encipher-decipher method and circuit of the FPGA suitable for limited I/O resource
KR101655862B1 (en) Lightweight cryptographic apparatus using PRINTcipher
KR101693591B1 (en) Lightweight cryptographic apparatus using hardware and software co-design
Rashidi et al. FPGA based a new low power and self-timed AES 128-bit encryption algorithm for encryption audio signal
KR101881117B1 (en) Security gateway that implements multiple communication cryptographic operation parallelism
KR101664799B1 (en) Lightweight cryptographic apparatus using HIGHT
Paul et al. Design and implementation of real time AES-128 on real time operating system for multiple FPGA communication
Panato et al. An IP of an Advanced Encryption Standard for Altera/spl trade/devices
KR20210072711A (en) Method and apparatus for mutual authentication between internet of things device and trusted server
KR101380895B1 (en) Apparatus for providing security service and method of security service using the same

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190808

Year of fee payment: 4