KR20190021635A - Parallel Processing Method and Parallelization System for High Speed Stream Cipher Implementation - Google Patents

Parallel Processing Method and Parallelization System for High Speed Stream Cipher Implementation Download PDF

Info

Publication number
KR20190021635A
KR20190021635A KR1020170106622A KR20170106622A KR20190021635A KR 20190021635 A KR20190021635 A KR 20190021635A KR 1020170106622 A KR1020170106622 A KR 1020170106622A KR 20170106622 A KR20170106622 A KR 20170106622A KR 20190021635 A KR20190021635 A KR 20190021635A
Authority
KR
South Korea
Prior art keywords
lfsr
function
xor
pingpong
input
Prior art date
Application number
KR1020170106622A
Other languages
Korean (ko)
Other versions
KR101975800B1 (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 KR1020170106622A priority Critical patent/KR101975800B1/en
Publication of KR20190021635A publication Critical patent/KR20190021635A/en
Application granted granted Critical
Publication of KR101975800B1 publication Critical patent/KR101975800B1/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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • 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/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

The present invention relates to a parallel processing method and parallelization system to implement a high speed stream cipher. According to the present invention, a plurality of PingPong 256, which use linear feedback shift register (LFSR) (LFSR 255, 257) with different lengths, and use a clock adjustment sequence generator and a nonlinear combination function scheme, are arranged in parallel wherein an xor_function function handling output uses f_c = ((f_a⊕f_b)f_c⊕f_(c-1)) ¦ (f_af_b) and f_d = ((f_a⊕f_b)f_d⊕f_(d-1)) ¦ f_b. Accordingly, a PingPong 256 processing structure is changed into parallelization, thereby providing an effect of increasing high speed data encryption/decryption efficiency and also reducing an operation delay time. Moreover, by improving that a carry-output correlation probability is concentrated by 1/4 while input/output correlation of existing PingPong 256 is good, each memory correlation problem between input and output is represented as 1/2, thereby providing good correlation characteristic.

Description

고속 스트림 암호 구현을 위한 병렬화 처리 방법 및 병렬화 시스템{Parallel Processing Method and Parallelization System for High Speed Stream Cipher Implementation}Technical Field [0001] The present invention relates to a parallel processing method and a parallelization system for implementing a high-speed stream cipher,

본 발명은 고속 스트림 암호 구현을 위한 병렬화 처리 방법 및 고속 스트림 암호 구현을 위한 병렬화 시스템에 관한 것으로, 보다 구체적으로는, 고속의 데이터 암호 통신을 위하여 소프트웨어 및 하드웨어 설계가 가능하도록 고려한 암호화 방식을 제공하도록 하기 위한 고속 스트림 암호 구현을 위한 병렬화 처리 방법 및 고속 스트림 암호 구현을 위한 병렬화 시스템에 관한 것이다. The present invention relates to a parallel processing method for implementing a high-speed stream cipher and a parallelization system for implementing high-speed stream cipher. More specifically, the present invention provides an encryption method considering software and hardware design for high- And to a parallelization system for implementing high-speed stream encryption.

도 1은 종래의 기술에 따른 PingPong 256 LFSR(linear feedback shift register) 함수 및 가변 클럭 함수 구조를 나타내는 도면이다. 도 2는 종래의 기술에 따른 PingPong 256 출력 함수 구조(도 2a는 소프트웨어 구조, 도 2b는 하드웨어 구조)를 나타내는 도면이다. 1 is a diagram illustrating a PingPong 256 LFSR (linear feedback shift register) function and a variable clock function structure according to the related art. FIG. 2 is a diagram showing a PingPong 256 output function structure (FIG. 2A is a software structure and FIG. 2B is a hardware structure) according to the related art.

도 1 및 도 2를 참조하면, 종래의 기술에 따른 PingPong 256은 서로 다른 길이의 LFSR(LFSR 255, LFSR 257)을 사용하고, "클럭 조절 수열 발생기"와 "비선형 조합 함수 방식"을 사용한다. 따라서 레지스터인 LFSR의 길이에 따라 주기가 증가하고, "클럭 조절 수열 발생기"와 "비선형 조합 함수"의 영향으로 랜덤 특성이 좋아지고 선형 복잡도가 증가하게 된다. Referring to FIGS. 1 and 2, the conventional PingPong 256 uses LFSRs (LFSR 255 and LFSR 257) having different lengths and uses a "clock controlled sequence generator" and a "nonlinear combination function method". Therefore, the period increases according to the length of the LFSR, which is a register, and the random characteristic is improved and the linear complexity is increased due to the influence of the "clock adjusting sequence generator" and the "nonlinear combination function".

또한, "클럭 조절 수열 발생기"가 서로 다른 레지스터 정보를 참조하므로 상관 면역도가 높아지고 키 수열 사이클이 비선형적인 출력을 통해 안전성을 가지게 된다.In addition, since the "clock adjustment sequence generator" refers to different register information, the correlation immunity is increased and the key sequence cycle has safety through nonlinear output.

이런 종래의 PingPong 256 LFSR의 합산 수열 발생기에서 입-출력 상관성은 양호한데 반해 캐리-출력간 상관 확률이 1/4로 편중되는 한계점이 있다. In this conventional PingPong 256 LFSR summation sequence generator, the input-output correlation is good, while the correlation probability between carry-output is 1/4.

다음으로, 도 2를 참조하면, PingPong 256은 LFSR과 가변 클럭으로 비선형성을 가진 결과를 이용하여 도 2와 같이 PingPong 256의 출력 함수를 통해 비선형성 결과를 출력하게 된다. 이때, 사용되는 두 개의 함수는 상관 면역도와 키 수열 사이클 수를 보장받기 위하여 사용한다.Referring to FIG. 2, PingPong 256 outputs a non-linearity result through an output function of PingPong 256 as shown in FIG. 2, using a result having a nonlinearity with an LFSR and a variable clock. At this time, the two functions used are used to guarantee the correlation immunity and the number of key sequence cycles.

그러나 이러한 PingPong 256 출력 함수 구조를 구동시키기 위해서는 레지스터를 매번 갱신해야 하고 갱신된 정보를 호출하여 연산해야만 하는 한계점이 있다.However, there is a limitation in that it is necessary to update registers every time to operate the PingPong 256 output function structure.

이에 따라 해당 기술분야에 있어서는 PingPong 256에 대해서 병렬화하는 구조로 변경함으로써, 고속 데이터 암·복호화 효율을 높이고 연산지연 시간을 줄일 수 있도록 하기 위한 기술개발이 요구되고 있다.Accordingly, in the related art, it is required to develop a technique for increasing the high-speed data encryption / decryption efficiency and reducing the computation delay time by changing to a structure for parallelizing PingPong 256.

국내 특허출원 출원번호 제10-1999-0013532호Korean Patent Application No. 10-1999-0013532

본 발명은 상기의 문제점을 해결하기 위한 것으로, 난수에 해당하는 비트 스트림을 출력하여 데이터를 암·복호화하거나 사용자 또는 장비 인증에 사용할 수 있도록 하기 위한 고속 스트림 암호 구현을 위한 병렬화 처리 방법 및 고속 스트림 암호 구현을 위한 병렬화 시스템을 제공하기 위한 것이다.SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and it is an object of the present invention to provide a parallel processing method and a high-speed stream encryption method for realizing a high-speed stream encryption for outputting a bit stream corresponding to a random number to encrypt / decrypt data, And to provide a parallelization system for implementation.

또한, 본 발명은 병렬화 처리로 암·복호화에 따른 지연시간을 감소시킬 수 있도록 하기 위한 고속 스트림 암호 구현을 위한 병렬화 처리 방법 및 고속 스트림 암호 구현을 위한 병렬화 시스템을 제공하기 위한 것이다.The present invention also provides a parallel processing method for realizing high-speed stream encryption and a parallelization system for realizing high-speed stream encryption in order to reduce a delay time due to encryption / decryption in parallel processing.

또한, 본 발명은 하드웨어로 구현이 가능하여 기존의 시스템에 연동하는 것으로 추가적인 암호화 장비의 적용에 대한 부하를 줄일 수 있도록 하기 위한 고속 스트림 암호 구현을 위한 병렬화 처리 방법 및 고속 스트림 암호 구현을 위한 병렬화 시스템을 제공하기 위한 것이다.In addition, the present invention can be implemented in hardware so that it can be implemented in a conventional system, and a parallel processing method for implementation of a high-speed stream encryption method and a parallelization processing method for high- .

그러나 본 발명의 목적들은 상기에 언급된 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.However, the objects of the present invention are not limited to the above-mentioned objects, and other objects not mentioned can be clearly understood by those skilled in the art from the following description.

상기의 목적을 달성하기 위해 본 발명의 실시예에 따른 고속 스트림 암호 구현을 위한 병렬화 처리 방법은, 서로 다른 길이의 LFSR(linear feedback shift register)(LFSR 255, LFSR 257)을 사용하고, "클럭 조절 수열 발생기"와 "비선형 조합 함수 방식"을 사용하는 PingPong 256을 병렬로 나열하되, 출력을 담당하는 xor_function 함수는,

Figure pat00001
Figure pat00002
을 사용하는 것을 특징으로 한다.In order to achieve the above object, a parallel processing method for realizing high-speed stream encryption according to an embodiment of the present invention uses a linear feedback shift register (LFSR 255, LFSR 257) having different lengths, PingPong 256, which uses a "sequence generator" and a "nonlinear combination function method", is listed in parallel, and the xor_function function, which is responsible for output,
Figure pat00001
And
Figure pat00002
Is used.

이때, 본 발명의 다른 실시예에 따른 고속 스트림 암호 구현을 위한 병렬화 처리 방법은, PingPong 256의 LFSR을 총 4개의 처리구역으로 나누고 초기값을 서로 다르게 설정하는 것을 특징으로 한다.In this case, the parallel processing method for realizing the high-speed stream encryption according to another embodiment of the present invention is characterized in that the LFSR of the PingPong 256 is divided into four processing zones, and initial values are set differently from each other.

또한, 본 발명의 다른 실시예에 따른 고속 스트림 암호 구현을 위한 병렬화 처리 방법은, 레지스터인 LFSR의 길이에 따라 주기가 증가하고, "클럭 조절 수열 발생기"와 "비선형 조합 함수"의 영향으로 랜덤 특성이 좋아지고 선형 복잡도가 증가하는 것을 특징으로 한다. In addition, according to another embodiment of the present invention, a parallel processing method for realizing a high-speed stream encryption increases the period according to the length of the LFSR, which is a register, and the random characteristic And the linearity complexity is increased.

상기의 목적을 달성하기 위해 본 발명의 실시예에 따른 고속 스트림 암호 구현을 위한 병렬화 시스템은, 4개의 고속 스트림 암호 구현을 위한 병렬화 시스템에 있어서, 4개의 PingPong 256을 병렬구조로 나열하고 각각의 lfsr과 xor_function을 서로 다른 함수들의 결과값과 연산하도록 구성하여 출력결과를 변경하는 것을 특징으로 한다. In order to achieve the above object, a parallelization system for implementing high-speed stream encryption according to an embodiment of the present invention is a parallelization system for implementing four high-speed stream ciphers, in which four PingPong 256s are arranged in a parallel structure, And xor_function are computed with the result values of different functions to change the output result.

또한, 본 발명의 다른 실시예에 따른 고속 스트림 암호 구현을 위한 병렬화 시스템에 있어서, 제 0 lfsr 255의 캐리값(c_out255)은 제 0 xor_function의 fa로 입력되며, 제 0 lfsr 255의 캐리값(c_out257)은 제 0 xor_function의 fb로 입력되는 것을 특징으로 한다.Also, in the parallelization system for realizing high-speed stream encryption according to another embodiment of the present invention, the carry value (c_out 255) of the 0th lfsr 255 is input as fa of the 0th xor_function, and the carry value (c_out 255 ) Is input as the fb of the 0th xor_function.

또한, 본 발명의 또 다른 실시예에 따른 고속 스트림 암호 구현을 위한 병렬화 시스템에 있어서, 제 1 lfsr 255의 캐리값(c_out255)은 제 1 xor_function의 fa로 입력되며, 제1 lfsr 255의 캐리값(c_out257)은 제 1 xor_function의 fb로 입력되는 것을 특징으로 한다.In the parallelization system for implementing high-speed stream encryption according to another embodiment of the present invention, the carry value (c_out 255) of the first lfsr 255 is input as fa of the first xor_function, and the carry value and c_out257 are input as fb of the first xor_function.

또한, 본 발명의 또 다른 실시예에 따른 고속 스트림 암호 구현을 위한 병렬화 시스템에 있어서, 제 2 lfsr 255의 캐리값(c_out255)은 제 2 xor_function의 fa로 입력되며, 제 2 lfsr 255의 캐리값(c_out257)은 제 2 xor_function의 fb로 입력되는 것을 특징으로 한다.Also, in the parallelization system for realizing high-speed stream encryption according to another embodiment of the present invention, the carry value (c_out 255) of the second lfsr 255 is input as fa of the second xor_function, and the carry value and c_out257 are input as fb of the second xor_function.

또한, 본 발명의 또 다른 실시예에 따른 고속 스트림 암호 구현을 위한 병렬화 시스템에 있어서, 제 3 lfsr 255의 캐리값(c_out255)은 제 3 xor_function의 fa로 입력되며, 제 3 lfsr 255의 캐리값(c_out257)은 제 3 xor_function의 fb로 입력되는 것을 특징으로 한다. Also, in the parallelization system for implementing high-speed stream encryption according to another embodiment of the present invention, the carry value (c_out 255) of the third lfsr 255 is input as fa of the third xor_function, and the carry value and c_out257 are input as fb of the third xor_function.

본 발명의 실시예에 따른 고속 스트림 암호 구현을 위한 병렬화 처리 방법 및 고속 스트림 암호 구현을 위한 병렬화 시스템은, PingPong 256 처리 구조를 병렬화로 변경함으로써, 고속 데이터 암·복호화 효율을 높일 수 있는 효과를 제공한다. The parallelization processing method for high-speed stream cipher implementation and the parallelization system for high-speed stream cipher implementation according to the embodiment of the present invention provide an effect of increasing the high-speed data encryption / decryption efficiency by changing the processing structure of PingPong 256 to parallelization do.

또한, 본 발명의 다른 실시예에 따른 고속 스트림 암호 구현을 위한 병렬화 처리 방법 및 고속 스트림 암호 구현을 위한 병렬화 시스템은, PingPong 256 처리 구조를 병렬화로 변경함으로써, 연산지연 시간을 줄일 수 있는 효과를 제공한다. In addition, the parallelization processing method for high-speed stream cipher implementation and the parallelization system for high-speed stream cipher implementation according to another embodiment of the present invention can reduce the operation delay time by changing the processing structure of PingPong 256 to parallelization do.

뿐만 아니라, 본 발명의 다른 실시예에 따른 고속 스트림 암호 구현을 위한 병렬화 처리 방법 및 고속 스트림 암호 구현을 위한 병렬화 시스템은, 종래의 PingPong 256의 입-출력 상관성은 양호한데 반해 캐리-출력간 상관 확률이 1/4로 편중되는 것을 개선함으로써, 입력과 출력간 각 메모리 상관 확률이 1/2로 나타나 상관 관계 특성을 양호하도록 할 수 있는 효과를 제공한다.In addition, the parallel processing method for high-speed stream cipher implementation and the parallelization system for high-speed stream cipher implementation according to another embodiment of the present invention have a good input-output correlation of the conventional PingPong 256, Is reduced to 1/2, thereby providing an effect that the correlation of each memory between the input and the output becomes 1/2, and the correlation characteristic is improved.

도 1은 종래의 기술에 따른 PingPong 256 LFSR(linear feedback shift registers) 함수 및 가변 클럭 함수 구조를 나타내는 도면이다.
도 2는 종래의 기술에 따른 PingPong 256 출력 함수 구조를 나타내는 도면이다.
도 3은 본 발명의 실시예에 따른 고속 스트림 암호 구현을 위한 병렬화 처리 방법을 제공하기 위한 가변 클럭 구조에 따른 LFSR 지연 문제를 나타내는 도면이다.
도 4는 본 발명의 실시예에 따른 고속 스트림 암호 구현을 위한 병렬화 처리 방법을 설명하기 위한 각각의 LFSR을 병렬로 피드백 받는 구조를 나타내는 도면이다.
도 5는 본 발명의 실시예에 따른 고속 스트림 암호 구현을 위한 병렬화 처리 방법을 설명하기 위한 변경된 xor_function 구조를 나타내는 도면이다.
도 6은 본 발명의 실시예에 따른 고속 스트림 암호 구현을 위한 병렬화 시스템의 PingPong 256 병렬화 구조를 나타내는 도면이다.
도 7은 본 발명의 실시예에 따른 고속 스트림 암호 구현을 위한 병렬화 시스템의 LFSR을 4개로 분할하여 처리할 경우를 나타내는 도면이다.
도 8은 본 발명의 실시예에 따른 고속 스트림 암호 구현을 위한 병렬화 처리 방법을 위한 4개의 병렬형 PingPong 256 하드웨어 구조를 나타내는 도면이다.
도 9는 도 8의 4개의 병렬형 PingPong 256 하드웨어 구조에 대한 시뮬레이션 결과(clk=10ns, 연산시간=1us)를 나타내는 도면이다.
도 10은 도 8의 4개의 병렬형 PingPong 256 하드웨어 구조에 대한 병렬 PingPong 256과 xor_function을 피드백 받지 않는 구조의 타이밍 시뮬레이션 결과(clk=10ns, 연산시간=10us)를 나타내는 도면이다.
도 11은 도 8의 4개의 병렬형 PingPong 256 하드웨어 구조에 대한 병렬 PingPong 256과 xor_function을 피드백 받는 구조의 타이밍 시뮬레이션 결과(clk=10ns, 연산시간=10us)를 나타내는 도면이다.
도 12는 도 8의 4개의 병렬형 PingPong 256 하드웨어 구조에 대한 병렬 PingPong 256의 xor_function 피드백에 따른 결과비교를 나타내는 도면이다.
1 is a diagram illustrating a PingPong 256 LFSR (linear feedback shift registers) function and a variable clock function structure according to the related art.
2 is a diagram illustrating a structure of a PingPong 256 output function according to the related art.
3 is a diagram illustrating a LFSR delay problem according to a variable clock structure for providing a parallel processing method for realizing high-speed stream encryption according to an embodiment of the present invention.
FIG. 4 is a diagram illustrating a structure for receiving parallel LFSRs in parallel to explain a parallel processing method for realizing high-speed stream encryption according to an embodiment of the present invention. Referring to FIG.
5 is a diagram illustrating a modified xor_function structure for explaining a parallelization processing method for realizing a high-speed stream encryption according to an embodiment of the present invention.
6 is a diagram illustrating a PingPong 256 parallelization structure of a parallelization system for implementing high-speed stream encryption according to an embodiment of the present invention.
7 is a diagram illustrating a case where an LFSR of a parallelization system for implementing high-speed stream encryption according to an embodiment of the present invention is divided into four and processed.
8 is a diagram illustrating four parallel PingPong 256 hardware structures for a parallel processing method for realizing high-speed stream encryption according to an embodiment of the present invention.
FIG. 9 is a diagram showing a simulation result (clk = 10 ns, calculation time = 1 us) for the four parallel PingPong 256 hardware structures of FIG.
FIG. 10 is a diagram showing timing simulation results (clk = 10 ns, operation time = 10 us) of a structure in which parallel PingPong 256 and the xor_function of the four parallel PingPong 256 hardware structures of FIG. 8 are not fed back.
11 is a timing simulation result (clk = 10 ns, operation time = 10 us) of a structure receiving parallel pingPong 256 and xor_function for the four parallel PingPong 256 hardware structures of FIG. 8.
FIG. 12 is a diagram showing a comparison result according to xor_function feedback of parallel PingPong 256 for the four parallel PingPong 256 hardware structures of FIG.

이하, 본 발명의 바람직한 실시예의 상세한 설명은 첨부된 도면들을 참조하여 설명할 것이다. 하기에서 본 발명을 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, a detailed description of preferred embodiments of the present invention will be given with reference to the accompanying drawings. In the following description of the present invention, detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear.

본 명세서에 있어서는 어느 하나의 구성요소가 다른 구성요소로 데이터 또는 신호를 '전송'하는 경우에는 구성요소는 다른 구성요소로 직접 상기 데이터 또는 신호를 전송할 수 있고, 적어도 하나의 또 다른 구성요소를 통하여 데이터 또는 신호를 다른 구성요소로 전송할 수 있음을 의미한다.In the present specification, when any one element 'transmits' data or signals to another element, the element can transmit the data or signal directly to the other element, and through at least one other element Data or signal can be transmitted to another component.

PingPong 256은 기본적으로 단일 비트 스트림으로 출력하는 구조이므로, 본 발명의 실시예에 따른 고속 스트림 암호 구현을 위한 병렬화 처리 방법 및 고속 스트림 암호 구현을 위한 병렬화 시스템에 대해서 단일 구조를 병렬구조로 변경하기 위하여 메모리를 사용하거나 구조를 변경하여 암호 강도를 재조정하고자 한다. Since PingPong 256 basically outputs a single bit stream, a parallel processing method for realizing high-speed stream encryption and a parallel system for implementing high-speed stream encryption according to an embodiment of the present invention are used to change a single structure into a parallel structure You want to recalibrate the encryption strength by using memory or changing the structure.

도 3은 본 발명의 실시예에 따른 고속 스트림 암호 구현을 위한 병렬화 처리 방법을 제공하기 위한 가변 클럭 구조에 따른 LFSR 지연 문제를 나타내는 도면이다. 도 3을 참조하면, PingPong 256은 가변 클럭 구조로 되어 있기 때문에 소프트웨어 환경에서 구동하는 것은 큰 어려움이 없다. 하지만, 하드웨어의 경우 도 3과 같이 클럭 지연이 최대 3번까지 발생하고 이로 인하여 강제적으로 지연되도록 구성해야만 한다. 3 is a diagram illustrating a LFSR delay problem according to a variable clock structure for providing a parallel processing method for realizing high-speed stream encryption according to an embodiment of the present invention. Referring to FIG. 3, since PingPong 256 has a variable clock structure, it is not difficult to operate in a software environment. However, in the case of hardware, as shown in FIG. 3, it is necessary to configure the clock to be delayed up to 3 times and forcibly delayed.

본 발명에서는 이를 정상적으로 동기화하기 위해서 하드웨어의 클럭 발생기를 2개 만들거나 연산 구조를 개선하는 것으로 지연시간을 줄이도록 한다.In the present invention, in order to normally synchronize the clocks, two clock generators of the hardware are formed or the calculation structure is improved to reduce the delay time.

도 4는 본 발명의 실시예에 따른 고속 스트림 암호 구현을 위한 병렬화 처리 방법을 설명하기 위한 각각의 LFSR을 병렬로 피드백 받는 구조를 나타내는 도면이다. 도 4와 같은 피드백 구조를 제공시 PingPong 256은 1 클럭에 1 비트 출력으로 최대 250Mbps까지 가능하다. PingPong 256은 비선형주기를 출력하는 함수이므로 유사한 초기값에도 서로 다른 출력을 보이게 된다. 이를 활용하여 도 4와 같이 다수의 PingPong 256을 병렬로 나열하고 서로 다른 PingPong 256의 결과를 피드백 받는 것으로 다수의 PingPong 256 출력을 예측할 수 없게 만들 수 있다. 즉, 도 4와 같이, N-7, N-6, N-5, N-4, N-3, N-2, N-1, N으로 이루어지는 경우, N-7은 N-2, N-6은 N-1, N-5는 N, N-4는 N-3으로 피드백되며, N-7, N-6, N-5, N-4이 하나의 열, N-3, N-2, N-1, N도 다른 하나의 열을 구성할 수 있다. FIG. 4 is a diagram illustrating a structure for receiving parallel LFSRs in parallel to explain a parallel processing method for realizing high-speed stream encryption according to an embodiment of the present invention. Referring to FIG. When providing the feedback structure as shown in FIG. 4, the PingPong 256 can output up to 250 Mbps with 1 bit output per clock. Since PingPong 256 is a function that outputs a nonlinear period, it will show different outputs at similar initial values. As shown in FIG. 4, a plurality of PingPong 256s are arranged in parallel, and the results of different PingPong 256s are fed back so that a plurality of PingPong 256 outputs can be made unpredictable. Namely, when N-7 is composed of N-7, N-6, N-5, N-4, N-3, N- 6, N-5, and N-4 are fed back to one row, N-3, N-2, , N-1, and N can form another row.

도 5는 본 발명의 실시예에 따른 고속 스트림 암호 구현을 위한 병렬화 처리 방법을 설명하기 위한 변경된 xor_function 구조를 나타내는 도면이다. 도 5를 참조하면, 기존의 PingPong 256에서 사용된 함수는 도 4와 같은 구조를 적용하는 것이 어렵다. 따라서, 도 5와 같이 출력을 담당하는 xor_function 함수의 구조를 하기의 [수학식 1], [수학식 2]와 같이 변경하였다.5 is a diagram illustrating a modified xor_function structure for explaining a parallelization processing method for realizing a high-speed stream encryption according to an embodiment of the present invention. Referring to FIG. 5, it is difficult to apply the structure shown in FIG. 4 to the function used in the existing PingPong 256. Therefore, the structure of the xor_function function responsible for output is changed as shown in [Equation 1] and [Equation 2] as shown in FIG.

Figure pat00003
Figure pat00003

Figure pat00004
Figure pat00004

또한, 스트림 암호의 주기를 보장받기 위하여 구조 변경을 최소화하기 위해 도 4와 같이 PingPong 256의 LFSR을 총 4개의 처리구역으로 나누고 초기값을 서로 다르게 설정하는 것으로 구성해 보았다. 연산 결과, 모든 LFSR의 출력 결과가 난수에 가까운 것을 확인할 수 있다.Also, in order to minimize the structure change in order to ensure the stream cipher period, the LFSR of the PingPong 256 is divided into four processing zones as shown in FIG. 4 and the initial values are set to be different from each other. As a result of the calculation, it is confirmed that the output result of all LFSRs is close to the random number.

도 6은 본 발명의 실시예에 따른 고속 스트림 암호 구현을 위한 병렬화 시스템의 PingPong 256 병렬화 구조를 나타내는 도면이다. 도 7은 본 발명의 실시예에 따른 고속 스트림 암호 구현을 위한 병렬화 시스템의 LFSR을 4개로 분할하여 처리할 경우를 나타내는 도면이다. 도 6을 참조하면, 상술한 도 5와 같은 배타적 논리합(xor_function)을 총 4개의 구간으로 나누어 연결한다. 단 이전의 PingPong 256과는 달리 각 처리구역별 캐리값을 피드백 받는 것으로 기존의 구조와의 차이를 줄이는 방식으로 하였다. 그 결과가 도 6의 구조에 해당한다.6 is a diagram illustrating a PingPong 256 parallelization structure of a parallelization system for implementing high-speed stream encryption according to an embodiment of the present invention. 7 is a diagram illustrating a case where an LFSR of a parallelization system for implementing high-speed stream encryption according to an embodiment of the present invention is divided into four and processed. Referring to FIG. 6, the exclusive OR (xor_function) shown in FIG. 5 is divided into a total of four intervals. Unlike the previous PingPong 256, however, the difference from the existing structure is reduced by receiving the carry value for each processing area. The result corresponds to the structure of Fig.

한편, 도 8은 본 발명의 실시예에 따른 고속 스트림 암호 구현을 위한 병렬화 처리 방법을 위한 4개의 병렬형 PingPong 256 하드웨어 구조를 나타내는 도면이다. 도 8을 참조하면, 4개의 PingPong 256을 병렬구조로 나열하고 각각의 lfsr과 xor_function을 서로 다른 함수들의 결과값과 연산하도록 구성하여 출력결과를 바꾸었다. 도 8을 참조하면, 제 0 lfsr 255의 캐리값(c_out255)은 제 0 xor_function의 fa로 입력되며, 제 0 lfsr 255의 캐리값(c_out257)은 제 0 xor_function의 fb로 입력된다. 또한, 제 1 lfsr 255의 캐리값(c_out255)은 제 1 xor_function의 fa로 입력되며, 제 1 lfsr 255의 캐리값(c_out257)은 제 1 xor_function의 fb로 입력된다. 또한, 제 2 lfsr 255의 캐리값(c_out255)은 제 2 xor_function의 fa로 입력되며, 제 2 lfsr 255의 캐리값(c_out257)은 제 2 xor_function의 fb로 입력된다. 또한, 제 3 lfsr 255의 캐리값(c_out255)은 제 3 xor_function의 fa로 입력되며, 제 3 lfsr 255의 캐리값(c_out257)은 제 3 xor_function의 fb로 입력된다. Meanwhile, FIG. 8 is a diagram illustrating four parallel PingPong 256 hardware structures for a parallel processing method for realizing high-speed stream encryption according to an embodiment of the present invention. Referring to FIG. 8, four PingPong 256s are arranged in a parallel structure, and each of the lfsr and xor_function is configured to operate with the results of different functions, thereby changing the output results. Referring to FIG. 8, the carry value (c_out 255) of the 0th lfsr 255 is input as fa of the 0th xor_function, and the carry value (c_out 257) of the 0th lfsr 255 is input as the fb of the 0th xor_function. Also, the carry value (c_out 255) of the first lfsr 255 is input as fa of the first xor_function, and the carry value (c_out 257) of the first lfsr 255 is input as the fb of the first xor_function. Also, the carry value (c_out 255) of the second lfsr 255 is input as fa of the second xor_function, and the carry value (c_out 257) of the second lfsr 255 is input as the fb of the second xor_function. Also, the carry value (c_out 255) of the third lfsr 255 is input as fa of the third xor_function, and the carry value (c_out 257) of the third lfsr 255 is input as the fb of the third xor_function.

도 4는 본 발명의 실시예에 따른 고속 스트림 암호 구현을 위한 병렬화 처리 방법을 설명하기 위한 각각의 LFSR을 병렬로 피드백 받는 구조를 나타내는 도면이다4 is a diagram illustrating a structure for receiving parallel LFSRs in parallel to explain a parallel processing method for realizing high-speed stream encryption according to an embodiment of the present invention

그리고, 도 4의 LFSR 병력의 피드백 구조를 살펴보면, 또한, 제 0 lfsr 255의 fb_0, fb_1은 제 1 lfsr 257로 피드백되며, 제 1 lfsr 255의 fb_0, fb_1은 제 2 lfsr 257로 피드백되며, 제 2 lfsr 255의 fb_0, fb_1은 제 3 lfsr 257로 피드백되며, 제 3 lfsr 255의 fb_0, fb_1은 제 0 lfsr 257로 피드백된다.4, fb_0 and fb_1 of the 0th lfsr 255 are fed back to the first lfsr 257, fb_0 and fb_1 of the first lfsr 255 are fed back to the second lfsr 257, 2 fb_0 and fb_1 of lfsr 255 are fed back to the third lfsr 257, and fb_0 and fb_1 of the third lfsr 255 are fed back to the first lfsr 257.

그리고, 제 0 lfsr 257의 fa_0, fa_1은 제 1 lfsr 255로 피드백되며, 제 1 lfsr 257의 fa_0, fa_1은 제 2 lfsr 255로 피드백되며, 제 2 lfsr 257의 fa_0, fa_1은 제 3 lfsr 255로 피드백되며, 제 3 lfsr 257의 fa_0, fa_1은 제 0 lfsr 255로 피드백된다. The fa_0 and fa_1 of the 0th lfsr 257 are fed back to the first lfsr 255. The fa_0 and fa_1 of the first lfsr 257 are fed back to the second lfsr 255 and the fa_0 and fa_1 of the second lfsr 257 are fed back to the third lfsr 255 And fa_0 and fa_1 of the third lfsr 257 are fed back to the 0th lfsr 255.

도 9는 도 8의 4개의 병렬형 PingPong 256 하드웨어 구조에 대한 시뮬레이션 결과(clk=10ns, 연산시간=1us)를 나타내는 도면이다. 도 10은 도 8의 4개의 병렬형 PingPong 256 하드웨어 구조에 대한 병렬 PingPong 256과 xor_function을 피드백 받지 않는 구조의 타이밍 시뮬레이션 결과(clk=10ns, 연산시간=10us)를 나타내는 도면이다. FIG. 9 is a diagram showing a simulation result (clk = 10 ns, calculation time = 1 us) for the four parallel PingPong 256 hardware structures of FIG. FIG. 10 is a diagram showing timing simulation results (clk = 10 ns, operation time = 10 us) of a structure in which parallel PingPong 256 and the xor_function of the four parallel PingPong 256 hardware structures of FIG. 8 are not fed back.

도 9 및 도 10을 참조하면, 시뮬레이션 환경을 통해 기본 클럭을 10ns로 설정하고 연산시간을 1us까지로 설정하고 타이밍 시뮬레이션으로 xor_function을 피드백 받지 않는 구조를 통해 측정한 결과가 도 9와 같았다. 추가적으로 기본 클럭을 10ns로 설정하고 연산시간을 10us까지 증가시켜 타이밍 시뮬레이션으로 측정한 결과 도 10과 같이 각각의 서로 다른 출력을 확인할 수 있었다.9 and 10, the basic clock is set to 10 ns through the simulation environment, the computation time is set to 1 us, and the measurement results are shown in Fig. 9 through a structure in which the xor_function is not fed back by timing simulation. In addition, the basic clock was set to 10 ns and the computation time was increased to 10 μs. As a result of the timing simulation, each of the different outputs could be confirmed as shown in FIG.

한편, 도 11은 도 8의 4개의 병렬형 PingPong 256 하드웨어 구조에 대한 병렬 PingPong 256과 xor_function을 피드백 받는 구조의 타이밍 시뮬레이션 결과(clk=10ns, 연산시간=10us)를 나타내는 도면이다. 11 is a timing simulation result (clk = 10 ns, calculation time = 10 us) of a structure receiving parallel pingPong 256 and xor_function for the four parallel PingPong 256 hardware structures of FIG. 8.

도 11을 참조하면, xor_function을 피드백 받는 구조로 변경하고 기본 클럭을 10ns로 연산시간을 10us로 설정하여 실험한 결과가 도 11과 같다. Referring to FIG. 11, the result of experiment is shown in FIG. 11, in which the xor_function is changed to a structure for feedback and the basic clock is set to 10 ns and the operation time is set to 10 us.

도 12는 도 8의 4개의 병렬형 PingPong 256 하드웨어 구조에 대한 병렬 PingPong 256의 xor_function 피드백에 따른 결과비교를 나타내는 도면으로, 도 12(a)는 xor_function 피드백 미적용, 도 12(b)는 xor_function 피드백 적용을 나타낸다. 즉, 도 10과 도 11의 앞 부분 일부를 확대한 도 12를 참조하면, 연산의 시작이 얼마 진행되지 않은 지점부터 결과가 다른 것을 확인할 수 있다.FIG. 12 is a diagram showing a comparison result according to the xor_function feedback of the parallel PingPong 256 for the four parallel PingPong 256 hardware structures of FIG. 8. FIG. 12 (a) . That is, referring to FIG. 12, which is an enlarged part of the front part of FIG. 10 and FIG. 11, it can be seen that the result is different from the point where the start of calculation has not progressed.

위의 결과를 통해 기본 클럭이 10ns인 하드웨어에서 4개의 PingPong 256이 동시에 병렬로 연산되면 100Mbps를 4개로 동시에 연산한 것과 같은 효과를 보이게 된다. 따라서 연산속도는 400Mbps로 향상될 수 있다. The above results show that when four PingPong 256s are simultaneously operated in parallel in hardware with a basic clock of 10 ns, the same effect is obtained by simultaneously calculating four 100 Mbps. Therefore, the operation speed can be improved to 400 Mbps.

이상과 같이, 본 명세서와 도면에는 본 발명의 바람직한 실시예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.As described above, preferred embodiments of the present invention have been disclosed in the present specification and drawings, and although specific terms have been used, they have been used only in a general sense to easily describe the technical contents of the present invention and to facilitate understanding of the invention , And are not intended to limit the scope of the present invention. It is to be understood by those skilled in the art that other modifications based on the technical idea of the present invention are possible in addition to the embodiments disclosed herein.

Claims (8)

서로 다른 길이의 LFSR(linear feedback shift register)(LFSR 255, LFSR 257)을 사용하고, "클럭 조절 수열 발생기"와 "비선형 조합 함수 방식"을 사용하는 PingPong 256을 병렬로 나열하되, 출력을 담당하는 xor_function 함수는,
Figure pat00005
Figure pat00006
을 사용하는 것을 특징으로 하는 고속 스트림 암호 구현을 위한 병렬화 처리 방법.
We use a linear feedback shift register (LFSR 255, LFSR 257) with different lengths and a PingPong 256 with a "clock regulated sequence generator" and a "nonlinear combination function" The xor_function function,
Figure pat00005
And
Figure pat00006
Is used for the parallel processing.
청구항 1에 있어서,
PingPong 256의 LFSR을 총 4개의 처리구역으로 나누고 초기값을 서로 다르게 설정하는 것을 특징으로 하는 고속 스트림 암호 구현을 위한 병렬화 처리 방법.
The method according to claim 1,
Wherein the LFSR of the PingPong 256 is divided into four processing zones and the initial values are set differently from each other.
청구항 2에 있어서,
레지스터인 LFSR의 길이에 따라 주기가 증가하고, "클럭 조절 수열 발생기"와 "비선형 조합 함수"의 영향으로 랜덤 특성이 좋아지고 선형 복잡도가 증가하는 것을 특징으로 하는 고속 스트림 암호 구현을 위한 병렬화 시스템.
The method of claim 2,
Wherein the period is increased according to the length of the LFSR, which is a register, and random characteristics are improved and linear complexity is increased due to the influence of the "clock adjustment sequence generator" and "nonlinear combination function ".
4개의 고속 스트림 암호 구현을 위한 병렬화 시스템에 있어서,
4개의 PingPong 256을 병렬구조로 나열하고 각각의 lfsr과 xor_function을 서로 다른 함수들의 결과값과 연산하도록 구성하여 출력결과를 변경하는 것을 특징으로 하는 고속 스트림 암호 구현을 위한 병렬화 시스템.
In a parallelization system for implementing four high-speed stream ciphers,
And the output result is changed by arranging the four PingPong 256 in a parallel structure and configuring each lfsr and xor_function to operate with the result values of different functions.
청구항 4에 있어서,
제 0 lfsr 255의 캐리값(c_out255)은 제 0 xor_function의 fa로 입력되며, 제 0 lfsr 255의 캐리값(c_out257)은 제 0 xor_function의 fb로 입력되는 것을 특징으로 하는 고속 스트림 암호 구현을 위한 병렬화 시스템.
The method of claim 4,
(C_out 255) of the 0th lfsr 255 is input as fa of the 0th xor_function, and the carry value (c_out 257) of the 0th lfsr 255 is input as the fb of the 0th xor_function. system.
청구항 5에 있어서,
제 1 lfsr 255의 캐리값(c_out255)은 제 1 xor_function의 fa로 입력되며, 제1 lfsr 255의 캐리값(c_out257)은 제 1 xor_function의 fb로 입력되는 것을 특징으로 하는 고속 스트림 암호 구현을 위한 병렬화 시스템.
The method of claim 5,
Wherein the carry value (c_out 255) of the first lfsr 255 is input as fa of the first xor_function, and the carry value (c_out 257) of the first lfsr 255 is input as the fb of the first xor_function. system.
청구항 6에 있어서,
제 2 lfsr 255의 캐리값(c_out255)은 제 2 xor_function의 fa로 입력되며, 제 2 lfsr 255의 캐리값(c_out257)은 제 2 xor_function의 fb로 입력되는 것을 특징으로 하는 고속 스트림 암호 구현을 위한 병렬화 시스템.
The method of claim 6,
Wherein the carry value (c_out 255) of the second lfsr 255 is input as fa of the second xor_function, and the carry value (c_out 257) of the second lfsr 255 is input as the fb of the second xor_function. system.
청구항 7에 있어서,
제 3 lfsr 255의 캐리값(c_out255)은 제 3 xor_function의 fa로 입력되며, 제 3 lfsr 255의 캐리값(c_out257)은 제 3 xor_function의 fb로 입력되는 것을 특징으로 하는 고속 스트림 암호 구현을 위한 병렬화 시스템.
The method of claim 7,
The carry value c_out 255 of the third lfsr 255 is input as fa of the third xor_function and the carry value c_out 257 of the third lfsr 255 is input as the fb of the third xor_function. system.
KR1020170106622A 2017-08-23 2017-08-23 Parallel Processing Method and Parallelization System for High Speed Stream Cipher Implementation KR101975800B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170106622A KR101975800B1 (en) 2017-08-23 2017-08-23 Parallel Processing Method and Parallelization System for High Speed Stream Cipher Implementation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170106622A KR101975800B1 (en) 2017-08-23 2017-08-23 Parallel Processing Method and Parallelization System for High Speed Stream Cipher Implementation

Publications (2)

Publication Number Publication Date
KR20190021635A true KR20190021635A (en) 2019-03-06
KR101975800B1 KR101975800B1 (en) 2019-05-08

Family

ID=65761445

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170106622A KR101975800B1 (en) 2017-08-23 2017-08-23 Parallel Processing Method and Parallelization System for High Speed Stream Cipher Implementation

Country Status (1)

Country Link
KR (1) KR101975800B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111901115A (en) * 2020-07-27 2020-11-06 合肥工业大学 SIMON algorithm encryption circuit in multi-configuration mode

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230086825A (en) 2021-12-08 2023-06-16 현대오토에버 주식회사 Apparatus and method for encryption of data storage based on adaptive autosar

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990013532A (en) 1997-07-02 1999-02-25 쯔지하루오 Recording condition control method in optical storage device, recording condition control device and optical recording medium
KR20080042663A (en) * 2006-11-09 2008-05-15 한국전자통신연구원 Non-linear filtered t-function based stream cipher apparatus and method
KR20090059390A (en) * 2007-12-06 2009-06-11 한국전자통신연구원 Tsc-4 stream cipher apparatus
KR20100115769A (en) * 2008-02-20 2010-10-28 연세대학교 산학협력단 Method and apparatus for generating key stream for stream cipher, s-box for block cipher and method for substituting input vector using the s-box
KR20110026939A (en) * 2009-09-09 2011-03-16 부경대학교 산학협력단 Design for fast stream cipher asc16
JP2016103799A (en) * 2014-11-28 2016-06-02 ソニー株式会社 Encryption processing device, encryption processing method, and program

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990013532A (en) 1997-07-02 1999-02-25 쯔지하루오 Recording condition control method in optical storage device, recording condition control device and optical recording medium
KR20080042663A (en) * 2006-11-09 2008-05-15 한국전자통신연구원 Non-linear filtered t-function based stream cipher apparatus and method
KR20090059390A (en) * 2007-12-06 2009-06-11 한국전자통신연구원 Tsc-4 stream cipher apparatus
KR20100115769A (en) * 2008-02-20 2010-10-28 연세대학교 산학협력단 Method and apparatus for generating key stream for stream cipher, s-box for block cipher and method for substituting input vector using the s-box
KR20110026939A (en) * 2009-09-09 2011-03-16 부경대학교 산학협력단 Design for fast stream cipher asc16
JP2016103799A (en) * 2014-11-28 2016-06-02 ソニー株式会社 Encryption processing device, encryption processing method, and program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111901115A (en) * 2020-07-27 2020-11-06 合肥工业大学 SIMON algorithm encryption circuit in multi-configuration mode

Also Published As

Publication number Publication date
KR101975800B1 (en) 2019-05-08

Similar Documents

Publication Publication Date Title
JP2937919B2 (en) Pseudo random number generator
US7979482B2 (en) Random number generator configured to combine states of memory cells
US3911330A (en) Nonlinear nonsingular feedback shift registers
US7142675B2 (en) Sequence generator and method of generating a pseudo random sequence
KR101987141B1 (en) Random number generator
RU2008125109A (en) MULTI-CHANNEL HIGH-SPEED ENCRYPTION AND DECryption
EP2100219A1 (en) Bit generator
KR101975800B1 (en) Parallel Processing Method and Parallelization System for High Speed Stream Cipher Implementation
Mansouri et al. An improved hardware implementation of the grain stream cipher
Dubrova An equivalence-preserving transformation of shift registers
JP5171420B2 (en) Pseudo random number generator
US11561769B2 (en) Random number generator including a plurality of ring oscillators
US20100287224A1 (en) Pseudo-random bit sequence generator
GB2510448A (en) Random number generator circuit with bit-level seed input
WO2016128463A1 (en) Method to generate high quality random mask from small entropy source
JP4148807B2 (en) Random number generator and information processing apparatus
US10355691B2 (en) Minimizing information leakage from combinatorial logic
Shaker et al. New design of efficient non-linear stream key generator
Chugunkov et al. New class of pseudorandom number generators for logic encryption realization
Chetry et al. When lagged fibonacci generators jump
GB1591805A (en) Electric signal generators
Sekhar et al. An Efficient Pseudo Random Number Generator for Cryptographic Applications
Lee et al. Uniform random number generator using leap-ahead LFSR architecture
US8184034B2 (en) Code sequence generator
Roy et al. New constructions of T-function

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