KR20220131002A - Arithmethic system based on field programmable gate array, memory apparatus, and arithmethic apparatus based on field programmable gate array - Google Patents

Arithmethic system based on field programmable gate array, memory apparatus, and arithmethic apparatus based on field programmable gate array Download PDF

Info

Publication number
KR20220131002A
KR20220131002A KR1020210035970A KR20210035970A KR20220131002A KR 20220131002 A KR20220131002 A KR 20220131002A KR 1020210035970 A KR1020210035970 A KR 1020210035970A KR 20210035970 A KR20210035970 A KR 20210035970A KR 20220131002 A KR20220131002 A KR 20220131002A
Authority
KR
South Korea
Prior art keywords
bit
value
data
memory
input data
Prior art date
Application number
KR1020210035970A
Other languages
Korean (ko)
Inventor
황철환
송영진
Original Assignee
에스케이텔레콤 주식회사
주식회사 우리넷
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이텔레콤 주식회사, 주식회사 우리넷 filed Critical 에스케이텔레콤 주식회사
Priority to KR1020210035970A priority Critical patent/KR20220131002A/en
Publication of KR20220131002A publication Critical patent/KR20220131002A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • 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
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Power Engineering (AREA)
  • Logic Circuits (AREA)
  • Image Processing (AREA)

Abstract

The present invention relates to an FPGA operation system that effectively reduces a processing delay caused by a Galois field multiplication operation, a memory device, and an FPGA operation device. The FPGA operation system comprises: a memory device; and an FPGA operation device.

Description

FPGA 연산 시스템, 메모리 장치 및 FPGA 연산 장치{ARITHMETHIC SYSTEM BASED ON FIELD PROGRAMMABLE GATE ARRAY, MEMORY APPARATUS, AND ARITHMETHIC APPARATUS BASED ON FIELD PROGRAMMABLE GATE ARRAY}FPGA arithmetic system, memory device, and FPGA arithmetic unit

본 발명은, GCM(Galois/Counter mode)에 관한 것으로서, 유한체(Galois Field) 곱셈 연산으로 인해 발생되는 처리 지연을 감소시키기 위한 방안에 관한 것이다.The present invention relates to Galois/Counter mode (GCM), and to a method for reducing processing delay caused by a finite field (Galois Field) multiplication operation.

인증 암호화(Authenticated encryption) 운영 모드는 데이터에 대한 기밀성과 인증을 동시에 제공하기 위해 기밀성 운영 모드와 인증 운영 모드에 독립된 암호 키를 적용하여 사용하는 대신, 하나의 암호 키로 동일한 안전성을 보장할 수 있도록 하는 방식이다.Authenticated encryption operation mode is designed to ensure the same security with one encryption key instead of applying an independent encryption key to the confidentiality operation mode and authentication operation mode to provide confidentiality and authentication for data at the same time. method.

인증 암호화 운영 모드가 가지는 편의성과 안전성 측면의 장점으로 인해, SSL(Secure Sockets Layer)/TLS(Transport Layer Security), IPsec(Internet Protocol security), SRTP(Secure RTP) 등 주요 암호 프로토콜은 규격을 정비하여 인증 암호화 운영 모드의 적용을 지원하고 있다.Due to the convenience and safety advantages of the authentication encryption operation mode, major encryption protocols such as SSL (Secure Sockets Layer)/TLS (Transport Layer Security), IPsec (Internet Protocol security), and SRTP (Secure RTP) The application of authentication encryption operation mode is supported.

이러한 인증 암호화 운영 모드 중 GCM(Galois/Counter mode)은 기밀성 운영 모드인 CTR(CounTeR)과 인증 운영 모드를 조합하여 하나의 암호 키를 사용할 수 있도록 설계된 인증 암호화 운영 모드이다.Among these authentication encryption operation modes, GCM (Galois/Counter mode) is an authentication encryption operation mode designed to use one encryption key by combining CTR (CounTeR), which is a confidential operation mode, and authentication operation mode.

GCM은 입력 데이터의 정보가 사전에 정해질 필요가 없기 때문에 온라인 처리가 가능하며, 암호화 과정에서는 평문에 CTR 모드를 적용하여 CCTR을 계산한 후, 부가 인증 데이터와 함께 유한체 연산으로 정의된 함수에 입력하여 인증 값을 생성하고 두 값을 연접하는 방식으로 출력 값 CGCM을 생성할 수 있다.Since GCM does not need to determine the information of input data in advance, online processing is possible. In the encryption process, CTR mode is applied to plaintext to calculate C CTR , and then a function defined as a finite-body operation with additional authentication data. You can create an output value C GCM by inputting it in to generate an authentication value and concatenating the two values.

헌데, 이러한 GCM의 성능상의 장점을 극대화하기 위해서는 128 비트 유한체 곱셈 연산이 효율적으로 동작해야만 한다.However, in order to maximize the performance advantage of GCM, the 128-bit finite field multiplication operation must operate efficiently.

그러나, 128 비트 유한체 곱셈 연산을 하드웨어로 구현하기 위해서는, 128 cycle이 필요하며, 이는 SDH(Synchronous Digital Hierarchy)나 OTN(Optional Transport Network) 프레임 등의 데이터를 처리하기에는 지연을 많이 발생시켜 네트워크 상의 지연 문제를 야기할 수 있다.However, in order to implement the 128-bit finite field multiplication operation in hardware, 128 cycles are required, which causes a lot of delay to process data such as Synchronous Digital Hierarchy (SDH) or Optional Transport Network (OTN) frames, resulting in network delay. It can cause problems.

이에, 본 발명에서는 유한체 곱셈 연산으로 인해 발생되는 처리 지연을 효과적으로 감소시키기 위한 방안을 제안하고자 한다.Accordingly, the present invention intends to propose a method for effectively reducing the processing delay caused by the finite field multiplication operation.

본 발명은 상기한 사정을 감안하여 창출된 것으로서, 본 발명에서 도달하고자 하는 목적은, GCM(Galois/Counter mode)에 관한 것으로서, 유한체(Galois Field) 곱셈 연산으로 인해 발생되는 처리 지연을 효과적으로 감소시키기 위한 방안에 관한 것이다.The present invention was created in view of the above circumstances, and an object of the present invention relates to a Galois/Counter mode (GCM), and effectively reduces processing delay caused by a finite field (Galois Field) multiplication operation. It's about how to do it.

상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 FPGA 연산 시스템은, 해시 서브키(H)에 관한 유한체(Galois Field) 곱셈 연산 결과를 주소 별 데이터 값으로 메모리에 기록한 메모리 장치; 및 입력 데이터의 비트 값을 상기 메모리에 대한 주소 값으로 입력하며, 상기 입력 데이터의 비트 값 입력에 따라 상기 메모리로부터 출력되는 데이터 값을 상기 입력 데이터와 상기 해시 서브키 간의 유한체 곱셈 연산 결과로 반환하는 FPGA 연산 장치를 포함하는 것을 특징으로 한다.An FPGA operation system according to an embodiment of the present invention for achieving the above object includes a memory device in which a finite field (Galois Field) multiplication operation result related to a hash subkey (H) is recorded in a memory as a data value for each address; and inputting a bit value of the input data as an address value for the memory, and returning a data value output from the memory according to the input of the bit value of the input data as a result of a finite-body multiplication operation between the input data and the hash subkey It is characterized in that it includes an FPGA arithmetic unit.

상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 메모리 장치는, 입력 데이터의 각 비트 자리 별로, 상기 입력 데이터와 매칭된 제1 데이터와, 해시 서브키(H)와 매칭되는 제2 데이터 간의 유한체(Galois Field) 곱셈 연산 결과를 데이터 값으로 기록한 제1 메모리; 상기 입력 데이터의 각 비트 자리 별로 상기 해시 서브키의 비트 값이 1인 비트 자리를 주소 값으로 상기 제1 메모리로부터 출력되는 데이터 값을 상기 입력 데이터의 각 비트 자리 별 데이터 값으로 기록한 제2 메모리; 및 상기 입력 데이터가 가질 수 있는 모든 비트 값에 대해서 상기 입력 데이터에서 비트 값이 1이되는 각 비트 자리를 주소 값으로 상기 제2 메모리로부터 출력되는 데이터 값을 룩업 테이블(LUT, Look Up Table) 내 상기 입력 데이터의 비트 값과 동일한 주소의 데이터 값으로 기록한 제3 메모리를 포함하는 것을 특징으로 한다.In order to achieve the above object, a memory device according to an embodiment of the present invention provides, for each bit digit of input data, between first data matched with the input data and second data matched with a hash subkey (H). a first memory in which a Galois Field multiplication operation result is recorded as a data value; a second memory in which, for each bit digit of the input data, a bit digit of the hash subkey having a bit value of 1 is an address value, and a data value output from the first memory is recorded as a data value for each bit digit of the input data; and a data value output from the second memory as an address value for each bit digit where a bit value becomes 1 in the input data for all bit values that the input data may have in a lookup table (LUT) and a third memory in which a data value of the same address as the bit value of the input data is written.

구체적으로, 상기 제1 메모리는, 상기 입력 데이터의 각 비트 자리 별로, 상기 제1 데이터에서 동일한 비트 자리의 비트 값을 1로 나머지 비트 자리의 비트 값을 0으로 설정한 비트 열에 대해서 상기 제2 데이터에서 각 비트 자리의 비트 값이 1인 경우마다의 비트 열을 유한체 곱셈 연산한 결과가 각 주소의 데이터 값으로 기록될 수 있다.Specifically, the first memory may include, for each bit position of the input data, the second data for a bit string in which a bit value in the same bit position in the first data is set to 1 and a bit value in the remaining bit positions is set to 0. In , the result of finite-body multiplication operation on the bit string for each case where the bit value of each bit digit is 1 may be recorded as the data value of each address.

구체적으로, 상기 제2 메모리는, 상기 입력 데이터의 비트 열이 가지는 각 비트 자리 별로, 상기 제1 메모리로부터 출력되는 데이터 값이 2 이상인 경우, 상기 2 이상의 데이터 값 모두를 배타적 논리합(XOR) 연산한 결과가 데이터 값으로 기록될 수 있다.Specifically, in the second memory, for each bit position of the bit string of the input data, when the data value output from the first memory is 2 or more, an XOR operation is performed on all of the 2 or more data values. Results can be recorded as data values.

구체적으로, 상기 제3 메모리는, 상기 입력 데이터에서 비트 값이 1이되는 각 비트 자리가 2 이상인 경우, 상기 2 이상의 비트 자리 각각의 데이터 값 모두를 배타적 논리합(XOR) 연산한 결과가 데이터 값으로 기록될 수 있다.Specifically, in the third memory, when each bit digit at which the bit value becomes 1 in the input data is 2 or more, the result of XOR operation on all data values of each of the 2 or more bit positions is the data value. can be recorded.

상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 FPGA 연산 장치는, 해시 서브키(H)에 관한 유한체(Galois Field) 곱셈 연산 결과가 주소 별 데이터 값으로 사전 기록된 룩업 테이블(LUT, Look Up Table)에 대해서 입력 데이터의 비트 값을 주소 값으로 입력하는 입력부; 및 상기 입력 데이터의 비트 값 입력에 따라 상기 룩업 테이블로부터 출력되는 데이터 값을 상기 입력 데이터와 상기 해시 서브키 간의 유한체 곱셈 연산 결과로 반환하는 반환부를 포함하는 것을 특징으로 한다.An FPGA computing device according to an embodiment of the present invention for achieving the above object includes a lookup table (LUT) in which a result of a Galois Field multiplication operation related to a hash subkey (H) is pre-recorded as a data value for each address; an input unit for inputting a bit value of input data as an address value for the Look Up Table; and a return unit that returns a data value output from the lookup table as a result of a finite-body multiplication operation between the input data and the hash subkey according to the bit value input of the input data.

구체적으로, 상기 입력부는, 상기 입력 데이터의 전체 비트 열을 동일한 길이의 2 이상의 비트 열로 분할하며, 상기 2 이상의 비트 열 각각의 비트 값을 상기 룩업 테이블의 주소 값으로 입력할 수 있다.Specifically, the input unit may divide the entire bit string of the input data into two or more bit strings of the same length, and input a bit value of each of the two or more bit strings as an address value of the lookup table.

구체적으로, 상기 반환부는, 상기 2 이상의 비트 열 각각의 비트 값 입력에 따라 상기 룩업 테이블로부터 각각 출력되는 데이터 값 모두에 대한 배타적 논리합(XOR) 연산 결과를 상기 입력 데이터와 상기 해시 서브키 간의 유한체 곱셈 연산 결과로 반환할 수 있다.Specifically, the return unit is configured to return an exclusive-OR (XOR) operation result on all data values output from the lookup table according to the bit value input of each of the two or more bit columns, as a finite object between the input data and the hash subkey. It can be returned as a result of a multiplication operation.

이에, 본 발명의 FPGA 연산 시스템, 메모리 장치 및 FPGA 연산 장치에 의하면, 고정된 해시 서브키와 임의의 입력 데이터 간의 유한체 곱셈 연산을 위해 해시 서브키(H)에 관한 선 계산 방식을 적용하여 그 결과 값을 메모리에 기록하고, 입력 데이터의 비트 값을 해당 메모리의 주소 값으로 입력하여 입력 데이터와 해시 서브키 간의 유한체 곱셈 연산 결과를 출력함으로써, 유한체 곱셈 연산으로 인한 처리 지연을 효율적으로 개선할 수 있다.Accordingly, according to the FPGA operation system, the memory device, and the FPGA operation device of the present invention, the pre-calculation method regarding the hash sub-key (H) is applied for the finite-body multiplication operation between the fixed hash sub-key and arbitrary input data. By writing the result value to the memory and outputting the result of the finite-body multiplication operation between the input data and the hash subkey by inputting the bit value of the input data as the address value of the corresponding memory, the processing delay caused by the finite-body multiplication operation is efficiently improved can do.

도 1은 본 발명의 일 실시예에 따른 GCM의 블록도.
도 2는 본 발명의 일 실시예에 따른 유한체 곱셈 연산 시스템의 개략적인 구성도.
도 3은 본 발명의 일 실시예에 따른 메모리 장치를 설명하기 위한 개략적인 구성도.
도 4는 본 발명의 일 실시예에 따른 FPGA 연산 장치를 설명하기 위한 개략적인 구성도.
도 5는 본 발명의 일 실시예에 따른 FPGA 연산 장치의 동작 방법을 설명하기 위한 순서도.
1 is a block diagram of a GCM according to an embodiment of the present invention.
2 is a schematic configuration diagram of a finite field multiplication operation system according to an embodiment of the present invention.
3 is a schematic configuration diagram for explaining a memory device according to an embodiment of the present invention;
Figure 4 is a schematic configuration diagram for explaining the FPGA arithmetic device according to an embodiment of the present invention.
5 is a flowchart for explaining a method of operating an FPGA arithmetic device according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 설명한다.Hereinafter, preferred embodiments of the present invention will be described with reference to the accompanying drawings.

본 발명의 일 실시예에서는, LEA(Light weight Encryption Algorithm), ARIA(Academy, Research Institute, Agency), 및 AES(Advanced Encryption Standard) 등을 포함한 다양한 암호 알고리즘의 운영 모드 표준에서 제시하는 GCM(Galois/Counter mode)에 관한 기술을 다룬다.In one embodiment of the present invention, GCM (Galois / GCM) presented by the operating mode standards of various encryption algorithms, including LEA (Light weight Encryption Algorithm), ARIA (Academy, Research Institute, Agency), and AES (Advanced Encryption Standard), etc. Counter mode) is dealt with.

이와 관련하여, LEA 운영 모드 표준에서 제시하는 CCM(Counter with CBC-MAC) 모드와 GCM은 기밀성 운영 모드인 CTR(CounTeR)과 인증 운영 모드를 조합하여 하나의 암호 키를 사용할 수 있도록 설계된 인증 암호화 운영 모드이다.In this regard, the CCM (Counter with CBC-MAC) mode and GCM suggested by the LEA operation mode standard are designed to use a single encryption key by combining the confidential operation mode CTR (CounTeR) and the authentication operation mode. is the mode

기밀성 운영 모드와 동일하게, 인증 암호화 운영 모드는 암호 키와 함께 초기 값을 사용하며, 초기 값은 Nonce 특성을 가져야 한다.Like the confidentiality operation mode, the authentication encryption operation mode uses an initial value together with an encryption key, and the initial value must have a nonce characteristic.

이때 초기 값은 암호 키와 마찬가지로 암호화에 사용된 것과 동일한 값이 복호화에 사용되어야 하므로, 복호화 이전에 이를 공유할 수 있는 방법이 별도로 정의되어 있어야 한다.At this time, as the initial value, the same value used for encryption should be used for decryption as in the encryption key, so a method for sharing it must be separately defined before decryption.

또한 암호 키, 초기 값, 평문(암호문)과 함께, 암호화(복호화) 시 입력으로 부가 인증 데이터(Associated data)를 받을 수 있고, 부가 인증 데이터는 공개되어도 무방하지만 무결성은 보장되어야 하는 데이터로, 암호문에 포함되지 않으며 암호문으로부터 복구 가능할 필요도 없다.In addition, associated data can be received as input during encryption (decryption) along with the encryption key, initial value, and plain text (cipher text). It is not included in the ciphertext and does not have to be recoverable from the ciphertext.

CCM 모드는 암호화 전에 모든 데이터의 정보가 정해지는 환경에서 사용하는 것을 가정하며, 스트리밍 서비스와 같이 온라인 처리는 지원하지 않는다. 암호화 과정에서는 평문과 부가 인증 데이터, 그리고 초기 값에 CBC-MAC을 적용하여 인증 값을 생성한 후, 평문과 인증 값에 CTR 모드를 적용하여 출력 값 CCCM을 생성한다.CCM mode is assumed to be used in an environment where all data information is determined before encryption, and online processing like streaming services is not supported. In the encryption process, an authentication value is generated by applying CBC-MAC to the plaintext, additional authentication data, and initial value, and then CTR mode is applied to the plaintext and authentication value to generate an output value C CCM .

반면 GCM은 입력 데이터의 정보가 사전에 정해질 필요가 없기 때문에 온라인 처리가 가능하다.On the other hand, in GCM, online processing is possible because the information of the input data does not need to be determined in advance.

암호화 과정에서는 평문에 CTR 모드를 적용하여 CCTR을 계산한 후, 부가 인증 데이터와 함께 유한체 연산으로 정의된 함수에 입력하여 인증 값을 생성하고 두 값을 연접하여 출력 값 CGCM을 생성한다.In the encryption process, C CTR is calculated by applying the CTR mode to the plaintext, and then the authentication value is generated by inputting the additional authentication data to the function defined by the finite field operation, and the output value C GCM is generated by concatenating the two values.

보다 상세하게 GCM의 암호화 과정을 통해 출력된 암호문 CAE는 CTR 모드에 의해 생성되는 값 CCTR과 메시지 인증 코드에 의해 생성되는 인증 값 T를 연접시킨 구성으로 볼 수 있다.In more detail, the cipher text C AE output through the encryption process of GCM can be viewed as a configuration in which the value C CTR generated by the CTR mode and the authentication value T generated by the message authentication code are concatenated.

수신자는 주어진 암호 키 K, 초기 값 N, 부가 인증 데이터 A에 대해 수신된 암호문 CAE로부터 평문 후보 P′을 복구하고 인증 확인 값 T′을 계산할 수 있다.The receiver can recover the plaintext candidate P′ from the received ciphertext C AE for the given encryption key K, initial value N, and additional authentication data A, and calculate the authentication confirmation value T′.

이때, 평문 후보 P′의 복구 과정에서 오류가 발생하지 않았을 경우, 이는 수신된 암호문 CAE가 (K, N, A)로부터 생성되었다는 유력한 증거가 된다.At this time, if no error occurs during the recovery process of the plaintext candidate P′, this is a strong evidence that the received ciphertext C AE is generated from (K, N, A).

이처럼, GCM은 CTR 모드에 유한체 곱셈을 이용한 메시지 인증 코드를 결합한 구조로 이해될 수 있다.As such, the GCM can be understood as a structure in which the message authentication code using finite field multiplication is combined with the CTR mode.

이때, GHASH 함수는 GCM의 메시지 인증 과정을 구성하는 요소로, 다음 의사 코드와 같이 정의된다.At this time, the GHASH function is an element constituting the message authentication process of GCM, and is defined as the following pseudo code.

Figure pat00001
Figure pat00001

여기서, GHASH 함수에서 사용되는 유한체 GF(2128) 상에서의 곱셈 연산 'ㆍ'는 다음의 감산 다항식

Figure pat00002
을 이용하여 다음의 의사 코드로 정의할 수 있다.Here, the multiplication operation '·' on the finite field GF(2 128 ) used in the GHASH function is the following subtraction polynomial
Figure pat00002
can be defined as the following pseudo code using

Figure pat00003
Figure pat00003

즉, 두 128 비트 값 U, V에 대하여, GCM의 메시지 인증 과정에서 사용되는 유한체 곱 W = UㆍV를 위와 같은 의사 코드로 정의하고 있는 것이다.That is, for two 128-bit values U and V, the finite field product W = U·V used in the message authentication process of GCM is defined as the above pseudo code.

그러나, 위 의사 코드에서와 같은 128비트 유한체 곱셈을 하드웨어로 구현하기 위해 128 cycles이 필요하며, 이는 SDH(Synchronous Digital Hierarchy)나 OTN(Optional Transport Network) 프레임 등의 데이터를 처리하기에는 지연이 많이 발생하여 네트워크 상에서의 지연 문제를 야기할 수 있다.However, 128 cycles are required to implement the 128-bit finite field multiplication in hardware as in the pseudo code above, which causes a lot of delay in processing data such as SDH (Synchronous Digital Hierarchy) or OTN (Optional Transport Network) frames. This may cause delay problems on the network.

설명의 이해를 돕기 위해 도 1에는 GCM의 블록도를 예시적으로 보여주고 있다.In order to help the understanding of the description, FIG. 1 shows a block diagram of the GCM by way of example.

이러한 도 1의 블록도에서 '⊙'이 유한체 곱셈 연산을 나타내며, 이러한, 유한체 곱셈 연산은 부가 인증 데이터(A)와 고정된 해시 서브키(H) 간에 이루어짐을 알 수 있다.In the block diagram of FIG. 1, '⊙' indicates a finite-body multiplication operation, and it can be seen that the finite-body multiplication operation is performed between the additional authentication data (A) and the fixed hash subkey (H).

그러나, 이러한 유한체 곱셈 연산은 부가 인증 데이터 A 입력 시마다 128 cycles이 필요한 관계로, SDH(Synchronous Digital Hierarchy)나 OTN(Optional Transport Network)과 같은 연속적인 프레임을 처리해야 하는 네트워크 장비에서는 지연을 발생시켜 서비스 품질에 많은 영향을 줄 수 있는 것이다.However, since this finite-body multiplication operation requires 128 cycles every time additional authentication data A is input, it causes delay in network equipment that has to process continuous frames such as SDH (Synchronous Digital Hierarchy) or OTN (Optional Transport Network). This can have a huge impact on service quality.

이에, 본 발명의 일 실시예에서는, 유한체 곱셈 연산으로 인해 발생되는 처리 지연을 효과적으로 감소시키기 위한 방안을 제안하고자 하는 것이다.Accordingly, an embodiment of the present invention intends to propose a method for effectively reducing the processing delay caused by the finite field multiplication operation.

이와 관련하여, 도 2에는 본 발명의 일 실시예에 따른 유한체 곱셈 연산 시스템을 예시적으로 보여주고 있다.In this regard, FIG. 2 exemplarily shows a finite field multiplication operation system according to an embodiment of the present invention.

도 2에 도시된 바와 같이, 본 발명의 일 실시예에 따른 유한체 곱셈 연산 시스템은, 해시 서브키(H)에 관한 유한체(Galois Field) 곱셈 연산 결과를 기록한 메모리 장치(100), 및 부가 인증 데이터(A; 이하, '입력 데이터'라 칭함)와 고정된 해시 서브키(H) 간에 128 비트 유한체 곱셈 연산을 처리하는 FPGA 연산 장치(200)를 포함할 수 있다.As shown in FIG. 2 , the finite-body multiplication operation system according to an embodiment of the present invention includes a memory device 100 in which a result of a Galois Field multiplication operation related to a hash sub-key H is recorded, and an additional It may include an FPGA arithmetic unit 200 that processes a 128-bit finite field multiplication operation between authentication data (A; hereinafter referred to as 'input data') and a fixed hash subkey (H).

메모리 장치(100)는 해시 서브키(H)에 관한 유한체(Galois Field) 곱셈 연산 결과를 주소 별 데이터 값으로 메모리에 사전 기록하기 위한 장치를 일컫는다.The memory device 100 refers to a device for pre-recording the result of a Galois Field multiplication operation with respect to the hash sub-key H as a data value for each address in the memory.

이와 관련하여, 도 3에는 본 발명의 일 실시예에 따른 메모리 장치(100)의 구조를 예시적으로 보여주고 있다.In this regard, FIG. 3 exemplarily shows the structure of the memory device 100 according to an embodiment of the present invention.

도 3에 도시된 바와 같이, 본 발명의 일 실시예에 따른 메모리 장치(100)는 입력 데이터(A)와 매칭되는 제1 데이터와 해시 서브키(H)와 매칭되는 제2 데이터 간의 유한체 곱셈 연산 결과를 기록한 제1 메모리(110; ROM), 해시 서브키(H)에 따른 제1 메모리(110)의 결과 값을 기록한 제2 메모리(120), 및 해시 서브키(H)에 따른 유한체 곱셈 연산 결과를 룩업 테이블(LUT, Look Up Table) 내 입력 데이터(A)의 비트 값과 매칭되는 주소 별 데이터 값으로 사전 기록한 제3 메모리(130)를 포함할 수 있다.As shown in FIG. 3 , the memory device 100 according to an embodiment of the present invention performs finite-body multiplication between first data matching input data A and second data matching hash subkey H. The first memory 110 (ROM) in which the operation result is recorded, the second memory 120 in which the result value of the first memory 110 according to the hash sub-key H is recorded, and the finite body according to the hash sub-key H The third memory 130 may include a third memory 130 in which the result of the multiplication operation is pre-recorded as a data value for each address matching a bit value of the input data A in a look-up table (LUT).

이러한 메모리 장치(100) 내 각 구성을 좀 더 구체적으로 살펴보면 다음과 같다.Each configuration in the memory device 100 will be described in more detail as follows.

제1 메모리(110)에는 입력 데이터(A)의 비트 열이 가지는 각 비트 자리(BIT0~BIT127)가 각 비트(BIT0~BIT127) 별 주소 값(add= 0 to 127)으로 설정되며, 입력 데이터(A)와 매칭되는 제1 데이터와 해시 서브키(H)와 매칭되는 제2 데이터 간의 유한체 곱셈 연산 결과가 각 주소의 데이터 값으로 기록된다.In the first memory 110, each bit digit (BIT0 to BIT127) of the bit string of the input data (A) is set as an address value (add = 0 to 127) for each bit (BIT0 to BIT127), and the input data ( A finite-body multiplication operation result between the first data matching A) and the second data matching the hash subkey H is recorded as the data value of each address.

다시 말해, 제1 메모리(110)에는 입력 데이터(A)의 각 비트 자리(BIT0~BIT127) 별로, 제1 데이터에서 동일한 비트 자리의 비트 값을 1로 나머지 비트 자리의 비트 값을 0으로 설정한 비트 열에 대해서 제2 데이터의 각 비트 자리의 비트 값이 1인 경우마다의 비트 열을 유한체 곱셈 연산한 결과가 각 주소의 데이터 값으로 기록된다.In other words, in the first memory 110, for each bit digit (BIT0 to BIT127) of the input data A, the bit value of the same bit digit in the first data is set to 1, and the bit value of the remaining bit digit is set to 0. With respect to the bit string, the result of the finite-body multiplication operation of the bit string in each case where the bit value of each bit digit of the second data is 1 is recorded as the data value of each address.

예를 들어, 제1 메모리(110)의 ROM BIT0에는 제1 데이터(A 값에 상응)=”00000000……001" 와 제2 데이터(H 값에 상응)=”00000000……001" 부터 “10000000……000”까지 비트 자리를 쉬프트하면서 수행한 유한체 곱셈 연산 결과를 0번지부터 127번지에 기록할 수 있으며, 이와 같은 방식으로 기록되는 ROM0~ROM127의 데이터 값은 해시 서브키(H) 값과 무관하게 항상 고정된 값을 가진다.For example, in ROM BIT0 of the first memory 110 , first data (corresponding to the value A)=”00000000… … 001" and second data (corresponding to H value)="00000000...001" to "10000000... … The result of the finite field multiplication operation performed while shifting the bit position up to 000” can be recorded from addresses 0 to 127, and the data values of ROM0 to ROM127 recorded in this way are independent of the hash subkey (H) value. It always has a fixed value.

제2 메모리(120)에는, 해시 서브키(H)가 생성될 때마다 입력 데이터(A)의 비트 열이 가지는 각 비트 자리(BIT0~BIT127) 별로, 해당 해시 서브키(H)의 비트 열 중 비트 값이 1인 비트 자리가 제1 메모리(110)의 주소 값으로 입력되는 경우에 제1 메모리(110)로부터 출력되는 데이터 값이 기록된다.In the second memory 120, whenever the hash subkey H is generated, for each bit position (BIT0 to BIT127) of the bit string of the input data A, one of the bit strings of the corresponding hash subkey H When a bit digit having a bit value of 1 is input as an address value of the first memory 110 , a data value output from the first memory 110 is recorded.

이때, 제2 메모리(120)에는 입력 데이터(A)의 비트 열이 가지는 각 비트 자리(BIT0~BIT127) 별로, 제1 메모리(110)로부터 출력되는 데이터 값이 2 이상인 경우, 2 이상의 데이터 값 모두를 배타적 논리합(XOR) 연산한 결과가 데이터 값으로 기록될 수 있다.At this time, in the second memory 120 , when the data value output from the first memory 110 is 2 or more for each bit digit BIT0 to BIT127 of the bit string of the input data A, all of the data values of 2 or more A result of XOR operation may be recorded as a data value.

이에 따라, 제2 메모리(120)의 데이터 값 기록을 위한 의사코드는 예컨대, 다음과 같이 정의될 수 있다.Accordingly, the pseudo code for writing the data value of the second memory 120 may be defined, for example, as follows.

Figure pat00004
Figure pat00004

제3 메모리(130)에는, 제2 메모리(120)에 기록된 데이터 값을 참조로 해시 서브키(H)에 관한 유한체 곱셈 연산 결과가 룩업 테이블 내 주소 별 데이터 값으로 사전 기록된다.In the third memory 130 , the result of the finite-body multiplication operation with respect to the hash sub-key H is pre-recorded as a data value for each address in the lookup table with reference to the data value recorded in the second memory 120 .

다시 말해, 제3 메모리(130)에는 입력 데이터(A)의 비트 값이 1씩 증가되는 모든 경우에 대해서, 입력 데이터(A)에서 비트 값이 1이되는 각 비트 자리(BIT0~BIT127)의 데이터 값이 제2 메모리(120)로부터 획득되어 룩업 테이블 내 입력 데이터(A)의 비트 값과 동일한 주소의 데이터 값으로 기록될 수 있다.In other words, in the third memory 130 , in all cases where the bit value of the input data A is increased by 1, the data of each bit position (BIT0 to BIT127) in which the bit value becomes 1 in the input data A A value may be obtained from the second memory 120 and written as a data value having the same address as the bit value of the input data A in the lookup table.

이때, 룩업 테이블에는, 입력 데이터(A)에서 비트 값이 1이되는 각 비트 자리가 2 이상인 경우, 2 이상의 비트 자리 각각의 데이터 값 모두를 배타적 논리합(XOR) 연산한 결과가 기록된다.At this time, in the lookup table, when each bit digit at which the bit value becomes 1 in the input data A is 2 or more, the result of XOR operation on all data values of each of the 2 or more bit positions is recorded.

한편, 본 발명의 일 실시예에서는, 유한체(Galois Field) 곱셈 연산의 편의를 입력 데이터(A)의 전체 비트 열을 8비트(BIT0~ BIT7, BIT 8~ BIT15,??, BIT 120~ BIT127)씩 분할하여 그에 따른 주소 값을 가지는 제2 메모리(120)와 제3 메모리(130) 내 룩업 테이블을 구성할 수 있다.On the other hand, in one embodiment of the present invention, the entire bit string of the input data (A) is converted to 8 bits (BIT0 to BIT7, BIT 8 to BIT15,??, BIT 120 to BIT127 for convenience of finite field (Galois Field) multiplication operation. ) to configure a lookup table in the second memory 120 and the third memory 130 having corresponding address values.

이에 따라 제2 메모리(120)와 제3 메모리(130) 내 룩업 테이블에는 입력 데이터(A)의 전체 비트 열 128비트를 8비트씩 16개 묶음(#0~#15)으로 나눈 형태로 데이터 값이 기록된다.Accordingly, in the lookup table in the second memory 120 and the third memory 130, the 128 bits of the entire bit string of the input data A are divided into 16 bundles (#0 to #15) of 8 bits each. This is recorded.

이와 관련하여, 제3 메모리(130) 내 룩업 테이블 상에 입력 데이터(A)의 전체 비트 열 중 하위 첫 번째 8비트(BIT0~ BIT7)의 데이터 값 기록을 위한 의사코드는 예컨대, 다음과 같이 정의될 수 있다.In this regard, the pseudo code for writing the data value of the lower first 8 bits (BIT0 to BIT7) among the entire bit string of the input data A on the lookup table in the third memory 130 is defined as follows, for example. can be

Figure pat00005
Figure pat00005

또한, 제3 메모리(130) 내 룩업 테이블 상에 입력 데이터(A)의 전체 비트 열 중 하위 두 번째 8비트(BIT8~ BIT15)의 데이터 값 기록을 위한 의사코드는 예컨대, 다음과 같이 정의될 수 있다.In addition, the pseudo code for writing the data value of the second lower 8 bits (BIT8 to BIT15) among the entire bit string of the input data A on the lookup table in the third memory 130 may be defined, for example, as follows. have.

Figure pat00006
Figure pat00006

그리고, 제3 메모리(130) 내 룩업 테이블 상에 입력 데이터(A)의 전체 비트 열 중 마지막 8비트(BIT120~ BIT127)의 데이터 값 기록을 위한 의사코드는 예컨대, 다음과 같이 정의될 수 있다.In addition, a pseudo code for writing data values of the last 8 bits (BIT120 to BIT127) of the entire bit string of the input data A on the lookup table in the third memory 130 may be defined, for example, as follows.

Figure pat00007
Figure pat00007

정리하자면, 본 발명의 일 실시예에 따라 제1 메모리(110)에는 입력 데이터(A)와 매칭되는 제1 데이터와 해시 서브키(H)와 매칭되는 제2 데이터 간의 비트 간 유한체 곱셈 연산 결과가 고정된 값으로 기록되며, 제2 메모리(120)와 제3 메모리(130)에는 해시 서브키(H)가 생성될 때마다 해당 해시 서브키(H)에 상응하는 데이터 값이 룩업 테이블에 차례로 기록되어, 이를 참조로 입력 데이터(A)와 해시 서브키(H) 간의 유한체 곱셈 연산 결과를 도출하기 위해 요구되는 배타적 논리합(XOR) 연산이 빠르게 수행될 수 있는 연산 환경을 마련되고 있는 것이다.In summary, in the first memory 110 according to an embodiment of the present invention, the bit-to-bit finite field multiplication operation result between the first data matching the input data A and the second data matching the hash subkey H is recorded as a fixed value, and whenever a hash sub-key H is generated in the second memory 120 and the third memory 130, a data value corresponding to the corresponding hash sub-key H is sequentially displayed in a lookup table. It is recorded, and with reference to this, an exclusive-OR (XOR) operation required to derive a finite-body multiplication operation result between the input data A and the hash sub-key H is provided in a fast manner.

한편, 입력 데이터(A)와 유한체 곱셈 연산이 이루어지는 해시 서브키(H)는 암호 키 K가 생성될 때마다 암호화 블록 모두에 0 값을 입력했을 때 값으로서, 0128을 암호 키 K로 암호화한 결과로 이해될 수 있다.On the other hand, the hash subkey (H), where the input data (A) and the finite-body multiplication operation is performed, is a value when 0 values are input to all encryption blocks whenever the encryption key K is generated, and 0 128 is encrypted with the encryption key K can be understood as a result.

이때 암호 키 K는 2개 이상으로 미리 결정되기 때문에, 본 발명의 일 실시예에서 제안하고 있는 유한체 곱셈 연산의 선 계산 방식에 충분한 시간이 확보될 수 있다.At this time, since the encryption key K is predetermined to be two or more, sufficient time can be secured for the pre-calculation method of the finite field multiplication operation proposed in the embodiment of the present invention.

FPGA 연산 장치(200)는 본 발명의 일 실시예에 따른 입력 데이터(A)와 해시 서브키(H) 간의 유한체 곱셈 연산 방식을 FPGA(Field Programmable Gate Array)에 구현하여 적용한 장치를 일컫는다.The FPGA arithmetic device 200 refers to a device to which the finite field multiplication operation method between the input data (A) and the hash subkey (H) according to an embodiment of the present invention is implemented and applied to an FPGA (Field Programmable Gate Array).

이러한, FPGA 연산 장치(200)는 고정된 해시 서브키(H)와 임의의 입력 데이터(A) 간의 유한체 곱셈 연산을 위해 해시 서브키(H)에 관한 선 계산 방식을 적용하여 그 결과 값을 메모리에 기록하고, 입력 데이터(A)의 비트 값을 메모리 장치(100)의 주소 값으로 입력하여 입력 데이터(A)와 해시 서브키(H) 간의 유한체 곱셈 연산 결과를 출력할 수 있다.The FPGA arithmetic device 200 applies a line calculation method regarding the hash sub-key (H) for the finite-body multiplication operation between the fixed hash sub-key (H) and the arbitrary input data (A) and calculates the result value. A finite-body multiplication operation result between the input data A and the hash subkey H may be output by writing to the memory and inputting the bit value of the input data A as the address value of the memory device 100 .

이상 본 발명의 일 실시예에 따른 유한체 곱셈 연산 환경에서는 전술한 구성을 통해 유한체 곱셈 연산으로 인해 발생되는 처리 지연을 효과적으로 감소시킬 수 있는데, 이하에서는 이를 실현하기 위한 FPGA 연산 장치(200)의 구성을 보다 구체적으로 설명하기로 한다.As described above, in the finite-body multiplication operation environment according to an embodiment of the present invention, the processing delay caused by the finite-body multiplication operation can be effectively reduced through the above-described configuration. The configuration will be described in more detail.

도 4에는 본 발명의 일 실시예에 따른 FPGA 연산 장치(200)의 개략적인 구성을 보여주고 있다.4 shows a schematic configuration of an FPGA computing device 200 according to an embodiment of the present invention.

도 4에 도시된 바와 같이, 본 발명의 일 실시예에 따른 FPGA 연산 장치(200)는 입력 데이터(A)의 비트 값을 주소 값으로 입력하는 입력부(210) 및 입력 데이터(A)의 비트 값 입력에 따라 출력되는 데이터 값을 입력 데이터(A)와 해시 서브키(H)와의 유한체 곱셈 연산 결과로 반환하는 반환부(220)를 포함하는 구성을 가질 수 있다.As shown in FIG. 4 , the FPGA arithmetic device 200 according to an embodiment of the present invention includes an input unit 210 that inputs a bit value of the input data A as an address value and a bit value of the input data A It may have a configuration including a return unit 220 that returns a data value output according to an input as a result of a finite field multiplication operation between the input data A and the hash subkey H.

이처럼, 입력부(210), 및 반환부(220)를 포함하는 FPGA 연산 장치(200)의 구성 전체 내지는 적어도 일부는, FPGA(Field Programmable Gate Array) 형태로 구현될 수 있다.As such, all or at least a part of the configuration of the FPGA arithmetic device 200 including the input unit 210 and the return unit 220 may be implemented in the form of a field programmable gate array (FPGA).

이상, 본 발명의 일 실시예에 따른 FPGA 연산 장치(200)는 전술한 구성에 따라 전술한 구성을 통해 유한체 곱셈 연산으로 인해 발생되는 처리 지연을 효과적으로 감소시킬 수 있는데, 이하에서는 이를 실현하기 위한 FPGA 연산 장치(200) 내 각 구성에 대한 보다 구체적인 설명을 이어 가기로 한다.As described above, the FPGA arithmetic device 200 according to an embodiment of the present invention can effectively reduce the processing delay caused by the finite field multiplication operation through the above-described configuration according to the above-described configuration. A more detailed description of each configuration within the FPGA arithmetic unit 200 will be continued.

한편, 설명에 앞서, 제1 메모리(110)에는 입력 데이터(A)와 매칭되는 제1 데이터와 해시 서브키(H)와 매칭되는 제2 데이터 간의 비트 간 유한체 곱셈 연산 결과가 고정된 값으로 기록된 상태이며, 제2 메모리(120)와 그리고 제3 메모리(130) 내 룩업 테이블에는 해시 서브키(H) 생성에 따라 그에 따른 데이터 값이 사전 기록된 상태임을 전제하기로 한다.Meanwhile, prior to the description, in the first memory 110 , the result of the finite-body multiplication operation between bits between the first data matching the input data A and the second data matching the hash subkey H is set as a fixed value. It is assumed that the data value according to the generation of the hash subkey H is pre-recorded in the lookup table in the second memory 120 and the third memory 130 .

또한, 제3 메모리(130) 내 룩업 테이블에는, 입력 데이터(A)의 전체 비트 열 128비트를 8비트씩 16개 묶음(#0~#15)으로 나눈 형태로 데이터 값이 기록된 상태임을 전제한다.In addition, in the lookup table in the third memory 130 , it is premised that data values are recorded in the form of dividing 128 bits of the entire bit string of the input data A into 16 bundles (#0 to #15) of 8 bits each. do.

입력부(210)는 입력 데이터(A)의 비트 값을 주소 값으로 입력하는 기능을 수행한다.The input unit 210 performs a function of inputting a bit value of the input data A as an address value.

보다 구체적으로, 입력부(210)는 입력 데이터(A)가 확인되면, 입력 데이터(A)의 비트 값을 해시 서브키(H)에 관한 유한체(Galois) 곱셈 연산 결과가 주소 별 데이터 값으로 사전 기록된 제3 메모리(130) 내 룩업 테이블에 대한 주소 값으로 입력하게 된다.More specifically, when the input data (A) is confirmed, the input unit 210 converts the bit value of the input data (A) into a finite field (Galois) multiplication operation result regarding the hash subkey (H) as a data value for each address in advance. It is input as an address value for a lookup table in the recorded third memory 130 .

이때, 입력부(210)는 입력 데이터의 전체 비트 열을 동일한 길이의 2 이상의 비트 열로 분할하여, 분할된 각 비트 열의 비트 값을 제3 메모리(130) 내 룩업 테이블의 주소 값으로 입력할 수 있다.In this case, the input unit 210 may divide the entire bit string of the input data into two or more bit strings of the same length, and input the bit value of each divided bit string as the address value of the lookup table in the third memory 130 .

예를 들어, 입력 데이터(A)의 전체 비트 열 128비트를 8비트 씩의 비트 열 16 묶음(A[7:0], A[15:8],??, A[127:120])으로 분할하고, 분할된 각 비트 열의 비트 값(0~255)을 제3 메모리(130) 내 룩업 테이블의 주소 값으로 입력할 수 있는 것이다.For example, 128 bits of the entire bit string of input data (A) is converted into 16 bit strings of 8 bits each (A[7:0], A[15:8],??, A[127:120]). It is possible to divide and input the bit values (0 to 255) of each divided bit string as an address value of a lookup table in the third memory 130 .

이는, 본 발명의 일 실시예에 따라 룩업 테이블(30)에 기록된 데이터 값이 룩업 테이블(30)에 입력 데이터(A)의 전체 비트 열 128비트를 8비트씩 16개 묶음(#0~#15)으로 나뉘어진 기록된 형태를 고려하기 위함이다.In this case, according to an embodiment of the present invention, the data value recorded in the lookup table 30 is 16 bundles of 128 bits of the entire bit string of the input data A in the lookup table 30 (#0~# 15) to consider the recorded form.

반환부(220)는 유한체 곱셈 연산 결과를 반환하는 기능을 수행한다.The return unit 220 performs a function of returning the result of the finite field multiplication operation.

보다 구체적으로, 반환부(220)는 입력 데이터(A)의 비트 값 입력에 따라 룩업 테이블(30)로부터 출력되는 데이터 값을 입력 데이터(A)와 해시 서브키(B) 간의 유한체 곱셈 연산 결과로 반환하게 된다.More specifically, the return unit 220 returns a data value output from the lookup table 30 according to the bit value input of the input data A as a result of a finite-body multiplication operation between the input data A and the hash subkey B. will be returned as

이때, 반환부(220)는 입력 데이터(A)로부터 분할된 2 이상의 비트 열 각각의 비트 값이 입력된 경우라면, 2 이상의 비트 열 각각의 비트 값 입력에 따라 제3 메모리(130) 내 룩업 테이블로부터 각각 출력되는 데이터 값 모두에 대한 배타적 논리합(XOR) 연산 결과를 입력 데이터(A)와 해시 서브키(H) 간의 유한체 곱셈 연산 결과로 반환할 수 있다.At this time, if the bit values of each of the two or more bit columns divided from the input data A are input, the return unit 220 may input the lookup table in the third memory 130 according to the input of the bit values of the two or more bit columns. An exclusive OR (XOR) operation result for all data values output from , may be returned as a result of a finite-body multiplication operation between the input data (A) and the hash subkey (H).

예를 들어, 입력 데이터(A)의 전체 비트 열 128비트를 8비트 씩의 비트 열 16 묶음(A[7:0], A[15:8],??, A[127:120])으로 분할하여 분할된 각 비트 열의 비트 값(0~255)을 제3 메모리(130) 내 룩업 테이블의 주소 값으로 입력한 경우라면, 각 비트 열(A[7:0], A[15:8], …, A[127:120])의 비트 값에 대해 룩업 테이블(30)로부터 출력되는 데이터 값(R0[127:0], R1[127:0], …, R15[127:0]) 모두를 논리합(XOR) 연산한 결과가 입력 데이터(A)와 해시 서브키(H) 간의 유한체 곱셈 연산 결과(W)로서 반환되는 것이다.For example, 128 bits of the entire bit string of input data (A) is converted into 16 bit strings of 8 bits each (A[7:0], A[15:8],??, A[127:120]). If the bit values (0 to 255) of each divided bit string are input as the address value of the lookup table in the third memory 130, each bit string (A[7:0], A[15:8] All of the data values (R0[127:0], R1[127:0], …, R15[127:0]) output from the lookup table 30 for the bit values of , …, A[127:120]) The result of the XOR operation is returned as a result (W) of a finite-body multiplication operation between the input data (A) and the hash subkey (H).

이상에서 살펴본 바와 같이 본 발명의 일 실시예에 따른 FPGA 연산 장치(200)의 구성에 따르면, FPGA 연산 장치(200)는 고정된 해시 서브키(H)와 임의의 입력 데이터(A) 간의 유한체 곱셈 연산을 위해 해시 서브키(H)에 관한 선 계산 방식을 적용하여 그 결과 값을 메모리에 기록하고, 입력 데이터(A)의 비트 값을 해당 메모리의 주소 값으로 입력하여 입력 데이터(A)와 해시 서브키(H) 간의 유한체 곱셈 연산 결과를 출력할 수 있다. 이렇게 되면, 128비트 유한체 곱셈 연산을 하드웨어로 구현 시 필요한 기존 128 cycles 대비 입력 데이터(A)의 비트 값을 메모리의 주소 값을 메모리의 주소 값으로 입력하는 1 cycles과 메모리로부터 주소 값에 따른 데이터 값이 출력되는 1 cycles 그리고 출력된 데이터 값에 대해 배타적 논리합(XOR) 연산을 수행하여 유한체 곱셈 연산 결과로 반환하는 1 cycles을 포함 도합 3 cycles만으로 유한체 곱셈 연산을 수행하는 것이 가능해지므로 초 저지연의 GCM 연산을 수행할 수 있는 것이다. 나아가, 이처럼 128 비트 유한체 곱셈 연산 기반의 초 저지연의 GCM 연산이 가능해지므로, 양자 암호 QKD와 연동하며 LEA 암호 메시지 인증 기능을 구동할 수 있는 암호화 전송 장비에 탑재될 10Gbps데이터의 저지연 LEA GCM 256bit 인증암호화 운영모드를 효율적으로 구현할 수 있음을 알 수 있다.As described above, according to the configuration of the FPGA arithmetic unit 200 according to an embodiment of the present invention, the FPGA arithmetic unit 200 is a finite field between a fixed hash sub-key (H) and arbitrary input data (A). For the multiplication operation, the pre-calculation method for the hash sub-key (H) is applied, the result value is recorded in the memory, and the bit value of the input data (A) is input as the address value of the corresponding memory to obtain the input data (A) and A finite-body multiplication operation result between hash subkeys (H) can be output. In this case, 1 cycle of inputting the bit value of the input data (A) as the address value of the memory as the address value of the memory and data according to the address value from the memory compared to the existing 128 cycles required when implementing the 128-bit finite-body multiplication operation in hardware Since it is possible to perform the finite-body multiplication operation in only 3 cycles, including 1 cycle of outputting a value and 1 cycle of performing an exclusive-OR (XOR) operation on the output data value and returning the result of the finite-body multiplication operation, it is possible to perform the finite-body multiplication operation. It is possible to perform the GCM operation of the delay. Furthermore, as this 128-bit finite-body multiplication operation-based ultra-low-delay GCM operation becomes possible, the low-latency LEA GCM of 10Gbps data to be installed in the encryption transmission equipment that can operate the LEA encryption message authentication function in conjunction with the quantum cryptography QKD It can be seen that the 256-bit authentication encryption operation mode can be efficiently implemented.

이하에서는, 도 5를 참조하여 본 발명의 일 실시예에 따른 FPGA 연산 장치(200)의 동작 방법을 설명하기로 한다.Hereinafter, an operation method of the FPGA computing device 200 according to an embodiment of the present invention will be described with reference to FIG. 5 .

한편, 설명에 앞서, 제1 메모리(110)에는 입력 데이터(A)와 매칭되는 제1 데이터와 해시 서브키(H)와 매칭되는 제2 데이터 간의 비트 간 유한체 곱셈 연산 결과가 고정된 값으로 기록된 상태이며, 제2 메모리(120)와 그리고 제3 메모리(130) 내 룩업 테이블에는 해시 서브키(H) 생성에 따라 그에 따른 데이터 값이 사전 기록된 상태임을 전제하기로 한다.Meanwhile, prior to the description, in the first memory 110 , the result of the finite-body multiplication operation between bits between the first data matching the input data A and the second data matching the hash subkey H is set as a fixed value. It is assumed that the data value according to the generation of the hash subkey H is pre-recorded in the lookup table in the second memory 120 and the third memory 130 .

또한, 제3 메모리(130) 내 룩업 테이블에는, 입력 데이터(A)의 전체 비트 열 128비트를 8비트씩 16개 묶음(#0~#15)으로 나눈 형태로 데이터 값이 기록된 상태임을 전제한다.In addition, in the lookup table in the third memory 130 , it is premised that data values are recorded in the form of dividing 128 bits of the entire bit string of the input data A into 16 bundles (#0 to #15) of 8 bits each. do.

먼저, 입력부(210)는 입력 데이터(A)가 확인되면, 입력 데이터(A)의 비트 값을 해시 서브키(H)에 관한 유한체(Galois) 곱셈 연산 결과가 주소 별 데이터 값으로 사전 기록된 제3 메모리(130) 내 룩업 테이블에 대한 주소 값으로 입력한다(S110-S120).First, when the input data (A) is confirmed, the input unit 210 performs a finite field (Galois) multiplication operation on the hash subkey (H) of the bit value of the input data (A) in advance as a data value for each address. It is input as an address value for a lookup table in the third memory 130 (S110-S120).

이때, 입력부(210)는 입력 데이터의 전체 비트 열을 동일한 길이의 2 이상의 비트 열로 분할하여, 분할된 각 비트 열의 비트 값을 제3 메모리(130) 내 룩업 테이블의 주소 값으로 입력할 수 있다.In this case, the input unit 210 may divide the entire bit string of the input data into two or more bit strings of the same length, and input the bit value of each divided bit string as the address value of the lookup table in the third memory 130 .

예를 들어, 입력 데이터(A)의 전체 비트 열 128비트를 8비트 씩의 비트 열 16 묶음(A[7:0], A[15:8],??, A[127:120])으로 분할하고, 분할된 각 비트 열의 비트 값(0~255)을 제3 메모리(130) 내 룩업 테이블의 주소 값으로 입력할 수 있는 것이다.For example, 128 bits of the entire bit string of input data (A) is converted into 16 bit strings of 8 bits each (A[7:0], A[15:8],??, A[127:120]). It is possible to divide and input the bit values (0 to 255) of each divided bit string as an address value of a lookup table in the third memory 130 .

이는, 본 발명의 일 실시예에 따라 룩업 테이블(30)에 기록된 데이터 값이 룩업 테이블(30)에 입력 데이터(A)의 전체 비트 열 128비트를 8비트씩 16개 묶음(#0~#15)으로 나뉘어진 기록된 형태를 고려하기 위함이다.In this case, according to an embodiment of the present invention, the data value recorded in the lookup table 30 is 16 bundles of 128 bits of the entire bit string of the input data A in the lookup table 30 (#0~# 15) to consider the recorded form.

이후, 반환부(220)는 입력 데이터(A)의 비트 값 입력에 따라 룩업 테이블(30)로부터 출력되는 데이터 값을 입력 데이터(A)와 해시 서브키(B) 간의 유한체 곱셈 연산 결과로 반환한다(S140-S150)Thereafter, the return unit 220 returns the data value output from the lookup table 30 according to the bit value input of the input data A as the result of the finite-body multiplication operation between the input data A and the hash subkey B. Do (S140-S150)

이때, 반환부(220)는 입력 데이터(A)로부터 분할된 2 이상의 비트 열 각각의 비트 값이 입력된 경우라면, 2 이상의 비트 열 각각의 비트 값 입력에 따라 제3 메모리(130) 내 룩업 테이블로부터 각각 출력되는 데이터 값 모두에 대한 배타적 논리합(XOR) 연산 결과를 입력 데이터(A)와 해시 서브키(H) 간의 유한체 곱셈 연산 결과로 반환할 수 있다.At this time, if the bit values of each of the two or more bit columns divided from the input data A are input, the return unit 220 may input the lookup table in the third memory 130 according to the input of the bit values of the two or more bit columns. An exclusive OR (XOR) operation result for all data values output from , may be returned as a result of a finite-body multiplication operation between the input data (A) and the hash subkey (H).

예를 들어, 입력 데이터(A)의 전체 비트 열 128비트를 8비트 씩의 비트 열 16 묶음(A[7:0], A[15:8],??, A[127:120])으로 분할하여 분할된 각 비트 열의 비트 값(0~255)을 제3 메모리(130) 내 룩업 테이블의 주소 값으로 입력한 경우라면, 각 비트 열(A[7:0], A[15:8], …, A[127:120])의 비트 값에 대해 룩업 테이블(30)로부터 출력되는 데이터 값(R0[127:0], R1[127:0], …, R15[127:0]) 모두를 논리합(XOR) 연산한 결과가 입력 데이터(A)와 해시 서브키(H) 간의 유한체 곱셈 연산 결과(W)로서 반환되는 것이다.For example, 128 bits of the entire bit string of input data (A) is converted into 16 bit strings of 8 bits each (A[7:0], A[15:8],??, A[127:120]). If the bit values (0 to 255) of each divided bit string are input as the address value of the lookup table in the third memory 130, each bit string (A[7:0], A[15:8] All of the data values (R0[127:0], R1[127:0], …, R15[127:0]) output from the lookup table 30 for the bit values of , …, A[127:120]) The result of the XOR operation is returned as a result (W) of a finite-body multiplication operation between the input data (A) and the hash subkey (H).

이처럼, 본 발명의 일 실시예에 따른 FPGA 연산 장치(200)의 동작 방법에서는, 입력 데이터(A)의 비트 값을 메모리의 주소 값을 메모리의 주소 값으로 입력하는 1 cycles(S110-S130)과 메모리로부터 주소 값에 따른 데이터 값이 출력되는 1 cycles(S140), 그리고 출력된 데이터 값에 대해 배타적 논리합(XOR) 연산을 수행하여 유한체 곱셈 연산 결과로 반환하는 1 cycles(S140-S150)을 포함 도합 3 cycles만으로 유한체 곱셈 연산을 수행할 수 있는 것이다.As such, in the operating method of the FPGA arithmetic device 200 according to an embodiment of the present invention, 1 cycles (S110-S130) of inputting the bit value of the input data A as the address value of the memory as the address value of the memory and Includes 1 cycles (S140) in which data values according to address values are output from memory, and 1 cycles (S140-S150) in which an exclusive OR (XOR) operation is performed on the output data values to return the result of finite-body multiplication operation. A finite-body multiplication operation can be performed with only 3 cycles in total.

이상에서 살펴본 바와 같이 본 발명의 일 실시예에 따른 FPGA 연산 장치(200)의 동작 방법에 따르면, FPGA 연산 장치(200)는 고정된 해시 서브키(H)와 임의의 입력 데이터(A) 간의 유한체 곱셈 연산을 위해 해시 서브키(H)에 관한 선 계산 방식을 적용하여 그 결과 값을 메모리에 기록하고, 입력 데이터(A)의 비트 값을 해당 메모리의 주소 값으로 입력하여 입력 데이터(A)와 해시 서브키(H) 간의 유한체 곱셈 연산 결과를 출력할 수 있다. 이렇게 되면, 128비트 유한체 곱셈 연산을 하드웨어로 구현 시 필요한 기존 128 cycles 대비 입력 데이터(A)의 비트 값을 메모리의 주소 값을 메모리의 주소 값으로 입력하는 1 cycles과 메모리로부터 주소 값에 따른 데이터 값이 출력되는 1 cycles 그리고 출력된 데이터 값에 대해 배타적 논리합(XOR) 연산을 수행하여 유한체 곱셈 연산 결과로 반환하는 1 cycles을 포함 도합 3 cycles만으로 유한체 곱셈 연산을 수행하는 것이 가능해지므로 초 저지연의 GCM 연산을 수행할 수 있는 것이다. 나아가, 이처럼 128 비트 유한체 곱셈 연산 기반의 초 저지연의 GCM 연산이 가능해지므로, 양자 암호 QKD와 연동하며 LEA 암호 메시지 인증 기능을 구동할 수 있는 암호화 전송 장비에 탑재될 10Gbps데이터의 저지연 LEA GCM 256bit 인증암호화 운영모드를 효율적으로 구현할 수 있음을 알 수 있다.As described above, according to the method of operation of the FPGA arithmetic unit 200 according to an embodiment of the present invention, the FPGA arithmetic unit 200 has a finite relationship between the fixed hash subkey (H) and the arbitrary input data (A). For the sieve multiplication operation, the pre-calculation method for the hash subkey (H) is applied, the result value is recorded in the memory, and the bit value of the input data (A) is input as the address value of the corresponding memory to obtain the input data (A) A finite field multiplication operation result between and the hash subkey (H) can be output. In this case, 1 cycle of inputting the bit value of the input data (A) as the address value of the memory as the address value of the memory and data according to the address value from the memory compared to the existing 128 cycles required when implementing the 128-bit finite-body multiplication operation in hardware Since it is possible to perform the finite-body multiplication operation in only 3 cycles, including 1 cycle of outputting a value and 1 cycle of performing an exclusive-OR (XOR) operation on the output data value and returning the result of the finite-body multiplication operation, it is possible to perform the finite-body multiplication operation. It is possible to perform the GCM operation of the delay. Furthermore, as this 128-bit finite-body multiplication operation-based ultra-low-delay GCM operation becomes possible, the low-latency LEA GCM of 10Gbps data to be installed in the encryption transmission equipment that can operate the LEA encryption message authentication function in conjunction with the quantum cryptography QKD It can be seen that the 256-bit authentication encryption operation mode can be efficiently implemented.

한편, 본 발명의 일 실시예에 따른 FPGA 연산 장치(200)의 동작 방법은, 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Meanwhile, the operating method of the FPGA arithmetic device 200 according to an embodiment of the present invention may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the present invention, or may be known and available to those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

지금까지 본 발명을 바람직한 실시 예를 참조하여 상세히 설명하였지만, 본 발명이 상기한 실시 예에 한정되는 것은 아니며, 이하의 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 또는 수정이 가능한 범위까지 본 발명의 기술적 사상이 미친다 할 것이다.Although the present invention has been described in detail with reference to preferred embodiments so far, the present invention is not limited to the above-described embodiments, and without departing from the gist of the present invention as claimed in the following claims, the technical field to which the present invention pertains It will be said that the technical idea of the present invention extends to a range where various modifications or modifications can be made by anyone having ordinary knowledge in the present invention.

본 발명에 따른 FPGA 연산 시스템, 메모리 장치 및 FPGA 연산 장치 에 따르면, 유한체(Galois Field) 곱셈 연산으로 인해 발생되는 처리 지연을 효과적으로 감소시킬 수 있다는 점에서, 기존 기술의 한계를 뛰어 넘음에 따라 관련 기술에 대한 이용만이 아닌 적용되는 장치의 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있는 발명이다.According to the FPGA arithmetic system, the memory device, and the FPGA arithmetic device according to the present invention, it is possible to effectively reduce the processing delay caused by the finite field (Galois Field) multiplication operation. It is an invention with industrial applicability because the possibility of marketing or business of the applied device, not just the use of the technology, is sufficient and it can be clearly implemented in reality.

100: 메모리 장치
110: 제1 메모리(ROM)
120: 제2 메모리
130: 제3 메모리(룩업 테이블)
200: FPGA 연산 장치
210: 입력부 220: 반환부
100: memory device
110: first memory (ROM)
120: second memory
130: third memory (lookup table)
200: FPGA arithmetic unit
210: input unit 220: return unit

Claims (8)

해시 서브키(H)에 관한 유한체(Galois Field) 곱셈 연산 결과를 주소 별 데이터 값으로 메모리에 기록한 메모리 장치; 및
입력 데이터의 비트 값을 상기 메모리에 대한 주소 값으로 입력하며, 상기 입력 데이터의 비트 값 입력에 따라 상기 메모리로부터 출력되는 데이터 값을 상기 입력 데이터와 상기 해시 서브키 간의 유한체 곱셈 연산 결과로 반환하는 FPGA 연산 장치를 포함하는 것을 특징으로 하는 FPGA 연산 시스템.
a memory device in which a result of a Galois Field multiplication operation for a hash subkey (H) is recorded in a memory as a data value for each address; and
Inputting a bit value of input data as an address value to the memory, and returning a data value output from the memory according to the bit value input of the input data as a result of a finite-body multiplication operation between the input data and the hash subkey An FPGA computing system comprising an FPGA computing device.
입력 데이터의 각 비트 자리 별로, 상기 입력 데이터와 매칭된 제1 데이터와, 해시 서브키(H)와 매칭되는 제2 데이터 간의 유한체(Galois Field) 곱셈 연산 결과를 데이터 값으로 기록한 제1 메모리;
상기 입력 데이터의 각 비트 자리 별로 상기 해시 서브키의 비트 값이 1인 비트 자리를 주소 값으로 상기 제1 메모리로부터 출력되는 데이터 값을 상기 입력 데이터의 각 비트 자리 별 데이터 값으로 기록한 제2 메모리; 및
상기 입력 데이터가 가질 수 있는 모든 비트 값에 대해서 상기 입력 데이터에서 비트 값이 1이되는 각 비트 자리를 주소 값으로 상기 제2 메모리로부터 출력되는 데이터 값을 룩업 테이블(LUT, Look Up Table) 내 상기 입력 데이터의 비트 값과 동일한 주소의 데이터 값으로 기록한 제3 메모리를 포함하는 것을 특징으로 하는 메모리 장치.
a first memory for recording, as a data value, a result of a Galois Field multiplication operation between the first data matched with the input data and the second data matched with the hash subkey (H) for each bit digit of the input data;
a second memory in which, for each bit digit of the input data, a bit digit of the hash subkey having a bit value of 1 is an address value, and a data value output from the first memory is recorded as a data value for each bit digit of the input data; and
With respect to all bit values that the input data may have, each bit digit where the bit value becomes 1 in the input data is an address value, and the data value output from the second memory is stored in a lookup table (LUT). and a third memory in which a data value of an address identical to a bit value of the input data is written.
제 2 항에 있어서,
상기 제1 메모리는,
상기 입력 데이터의 각 비트 자리 별로, 상기 제1 데이터에서 동일한 비트 자리의 비트 값을 1로 나머지 비트 자리의 비트 값을 0으로 설정한 비트 열에 대해서 상기 제2 데이터에서 각 비트 자리의 비트 값이 1인 경우마다의 비트 열을 유한체 곱셈 연산한 결과가 각 주소의 데이터 값으로 기록되는 것을 특징으로 하는 메모리 장치.
3. The method of claim 2,
The first memory is
For each bit position of the input data, the bit value of each bit position in the second data is 1 for a bit string in which the bit value of the same bit position in the first data is set to 1 and the bit value of the remaining bit positions is set to 0 A memory device, characterized in that a result of a finite-body multiplication operation on a bit string in each case is recorded as a data value of each address.
제 2 항에 있어서,
상기 제2 메모리는,
상기 입력 데이터의 비트 열이 가지는 각 비트 자리 별로, 상기 제1 메모리로부터 출력되는 데이터 값이 2 이상인 경우, 상기 2 이상의 데이터 값 모두를 배타적 논리합(XOR) 연산한 결과가 데이터 값으로 기록되는 것을 특징으로 하는 메모리 장치.
3. The method of claim 2,
The second memory,
For each bit position of the bit string of the input data, when the data value output from the first memory is 2 or more, a result of XOR operation on all of the 2 or more data values is recorded as a data value memory device with
제 2 항에 있어서,
상기 제3 메모리는,
상기 입력 데이터에서 비트 값이 1이되는 각 비트 자리가 2 이상인 경우, 상기 2 이상의 비트 자리 각각의 데이터 값 모두를 배타적 논리합(XOR) 연산한 결과가 데이터 값으로 기록되는 것을 특징으로 하는 메모리 장치.
3. The method of claim 2,
The third memory is
In the input data, when each bit digit at which a bit value becomes 1 is 2 or more, a result of XOR operation on all data values of each of the 2 or more bit digit is recorded as a data value.
해시 서브키(H)에 관한 유한체(Galois Field) 곱셈 연산 결과가 주소 별 데이터 값으로 사전 기록된 룩업 테이블(LUT, Look Up Table)에 대해서 입력 데이터의 비트 값을 주소 값으로 입력하는 입력부; 및
상기 입력 데이터의 비트 값 입력에 따라 상기 룩업 테이블로부터 출력되는 데이터 값을 상기 입력 데이터와 상기 해시 서브키 간의 유한체 곱셈 연산 결과로 반환하는 반환부를 포함하는 것을 특징으로 하는 FPGA 연산 장치.
an input unit for inputting a bit value of input data as an address value with respect to a look-up table (LUT) in which a Galois Field multiplication operation result for a hash sub-key (H) is pre-recorded as a data value for each address; and
and a return unit for returning a data value output from the lookup table as a result of a finite-body multiplication operation between the input data and the hash subkey according to the bit value input of the input data.
제 6 항에 있어서,
상기 입력부는,
상기 입력 데이터의 전체 비트 열을 동일한 길이의 2 이상의 비트 열로 분할하며, 상기 2 이상의 비트 열 각각의 비트 값을 상기 룩업 테이블의 주소 값으로 입력하는 것을 특징으로 하는 FPGA 연산 장치.
7. The method of claim 6,
The input unit,
The entire bit string of the input data is divided into two or more bit strings of the same length, and a bit value of each of the two or more bit strings is input as an address value of the lookup table.
제 7 항에 있어서,
상기 반환부는,
상기 2 이상의 비트 열 각각의 비트 값 입력에 따라 상기 룩업 테이블로부터 각각 출력되는 데이터 값 모두에 대한 배타적 논리합(XOR) 연산 결과를 상기 입력 데이터와 상기 해시 서브키 간의 유한체 곱셈 연산 결과로 반환하는 것을 특징으로 하는 FPGA 연산 장치.
8. The method of claim 7,
The return unit,
Returning an exclusive-OR (XOR) operation result on all data values output from the lookup table according to the bit value input of each of the two or more bit columns as a finite-body multiplication operation result between the input data and the hash subkey FPGA computing device characterized by.
KR1020210035970A 2021-03-19 2021-03-19 Arithmethic system based on field programmable gate array, memory apparatus, and arithmethic apparatus based on field programmable gate array KR20220131002A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210035970A KR20220131002A (en) 2021-03-19 2021-03-19 Arithmethic system based on field programmable gate array, memory apparatus, and arithmethic apparatus based on field programmable gate array

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210035970A KR20220131002A (en) 2021-03-19 2021-03-19 Arithmethic system based on field programmable gate array, memory apparatus, and arithmethic apparatus based on field programmable gate array

Publications (1)

Publication Number Publication Date
KR20220131002A true KR20220131002A (en) 2022-09-27

Family

ID=83452010

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210035970A KR20220131002A (en) 2021-03-19 2021-03-19 Arithmethic system based on field programmable gate array, memory apparatus, and arithmethic apparatus based on field programmable gate array

Country Status (1)

Country Link
KR (1) KR20220131002A (en)

Similar Documents

Publication Publication Date Title
US20210273796A1 (en) Method and system for many-to-many symmetric cryptography and a network employing the same
US8356177B2 (en) Key transport in authentication or cryptography
US11546135B2 (en) Key sequence generation for cryptographic operations
US7978851B2 (en) Keystream encryption device, method, and program
US8358781B2 (en) Nonlinear feedback mode for block ciphers
JP6740902B2 (en) Authentication encryption method, authentication decryption method, and information processing apparatus
US11153068B2 (en) Encryption device, encryption method, decryption device and decryption method
US20080232591A1 (en) Simple and efficient one-pass authenticated encryption scheme
US9565018B2 (en) Protecting cryptographic operations using conjugacy class functions
WO2016067524A1 (en) Authenticated encryption apparatus, authenticated decryption apparatus, authenticated cryptography system, authenticated encryption method, and program
Elgeldawi et al. A comparative analysis of symmetric algorithms in cloud computing: a survey
JP7367860B2 (en) Authentication encryption device, authentication decryption device, authentication encryption system, method and program
US20230403134A1 (en) Method for processing encrypted data
Sivakumar et al. An Effective Data Security Mechanism for Secured Data Communications Using Hybrid Cryptographic Technique and Quantum Key Distribution
Singh et al. Study & analysis of cryptography algorithms: RSA, AES, DES, T-DES, blowfish
KR20220131002A (en) Arithmethic system based on field programmable gate array, memory apparatus, and arithmethic apparatus based on field programmable gate array
Mancillas-López et al. An Ultra-Fast Authenticated Encryption Scheme with Associated Data Using AES-OTR
Silva-Garcia et al. The triple-DES-96 cryptographic system
Partheeban et al. Generation of dynamic S-BOX using irreduceable polynomial and the secret key used
KR102626974B1 (en) Method and system for protecting secret key of white box cryptography
Kouchay ENHANCING CLOUD DATA SECURITY USING HYBRID OF UPDATED RSA AND TWOFISH ALGORITHMS.
Haunts et al. Symmetric Encryption
Singh et al. Parallel Chunk Encryption in Public Cloud Storage: Validating Data Privacy
Ertaul et al. Performance comparison of AES-CCM and AES-GCM authenticated encryption modes
Kumar et al. Analysis of Hybrid Cryptography for Secure Exchange of Information