KR100656375B1 - Low power hash function encryption device - Google Patents
Low power hash function encryption device Download PDFInfo
- Publication number
- KR100656375B1 KR100656375B1 KR1020050121244A KR20050121244A KR100656375B1 KR 100656375 B1 KR100656375 B1 KR 100656375B1 KR 1020050121244 A KR1020050121244 A KR 1020050121244A KR 20050121244 A KR20050121244 A KR 20050121244A KR 100656375 B1 KR100656375 B1 KR 100656375B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- storage means
- hash function
- selecting
- register
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/12—Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
Description
도 1은 본 발명에 의한 저전력 해쉬함수 암호화 장치를 도시한 블록도이다.1 is a block diagram illustrating a low power hash function encryption apparatus according to the present invention.
도 2는 본 발명에 적용되는 해쉬함수 라운드연산을 설명하기 위한 다이어그램이다.2 is a diagram for explaining a hash function round operation applied to the present invention.
도 3은 본 발명에 적용되는 레지스터 메모리를 사용한 데이터 확장 블록을 도시한 회로도이다.3 is a circuit diagram showing a data expansion block using a register memory according to the present invention.
도 4는 본 발명에 적용되는 RAM 메모리를 사용한 데이터 확장블록을 도시한 회로도이다.4 is a circuit diagram showing a data expansion block using a RAM memory applied to the present invention.
도 5는 본 발명에 적용되는 로직함수 블록을 도시한 회로도이다.5 is a circuit diagram showing a logic function block applied to the present invention.
도 6은 본 발명에 적용되는 저전력 해쉬함수 암호화 장치의 시스템인터페이스를 도시한 블록도이다.6 is a block diagram illustrating a system interface of a low power hash function encryption apparatus according to the present invention.
<도면의 주요 부분에 대한 부호의 설명>Description of the Related Art
100...시스템인터페이스 200...제어기100
300...확장블록 400-800...레지스터300 ... extension block 400-800 ... register
900, 1400...순환쉬프터 1000...메모리900, 1400 ...
1100...로직연산기 1300...덧셈기1100
1500, 1600, 1700...선택기1500, 1600, 1700 ... selector
본 발명은 센서 네트워크 환경에 적용가능한 저전력 해쉬함수 암호화 장치에 관한 것으로, 보다 상세하게는 최소한의 로직과 메모리로 구현하였으며 각 메모리와 로직간의 데이터변화가 최소가 되도록 구현함으로써 센서 네트워크의 저전력요구사항을 만족시킨 저전력 해쉬함수 암호화 장치에 관한 것이다.The present invention relates to a low-power hash function encryption apparatus applicable to a sensor network environment, and more particularly, to a low-power hash function encryption apparatus that is implemented with a minimum amount of logic and memory and minimizes data change between each memory and logic, Power hash function encryption apparatus.
해시 알고리즘은 일반적으로 긴 메시지에 대한 짧은 지문(fingerprint)을 생성하는 암호 함수로, 인터넷 보안 시스템에 약방의 감초처럼 사용된다. 사람이 지문ㆍ얼굴ㆍ홍채 등 여러 방법으로 자신을 나타내듯 해시 함수는 특정 메시지에 대한 대표 값을 생성하는 함수다. A hash algorithm is generally a cryptographic function that generates a short fingerprint of a long message and is used as a drug liquor to the Internet security system. A hash function is a function that generates a representative value for a specific message, as a person indicates himself in various ways such as fingerprint, face, and iris.
전자서명 인증체계는 대부분의 인터넷 보안 프로토콜이 해시 알고리즘의 안전성에 근간을 두고 있으며, SHA-1과 같은 HAS-160을 암호 기반으로 사용하고 있으며, 160비트의 SHA-1 대신 256비트의 `SHA-256'을 이용해 해시 값을 계산하고, 이 결과를 다시 160비트로 잘라 사용하는 방법, 기존의 SHA-1 해시 알고리즘 입력에 난수를 도입해 랜덤화된 해시 함수를 사용하는 방법 등을 사용하고 있다.In the digital signature authentication scheme, most Internet security protocols are based on the security of the hash algorithm, and HAS-160 such as SHA-1 is used as a password basis. Instead of 160-bit SHA-1, 256- 256 'is used to calculate the hash value, and the result is again truncated to 160 bits, and a randomized hash function is used by introducing a random number into the existing SHA-1 hash algorithm input.
또한, 해쉬함수는 데이터 인증 및 무결성 검증을 위한 수단으로 사용되는 알고리즘으로 FIPS 180-1에서 국제표준으로 정의되어 있으며, 센서 네트워크 환경에서 다루는 데이터들의 중요성들이 점차 커짐에 따라 센서 네트워크 환경에서도 데이터 인증 및 무결성 검증을 위한 해쉬함수 구현을 필요로 하고 있다. 하지만, 32 비트 프로세서의 소프트웨어 구현에 효율적이도록 고안된 해쉬함수는 8 비트 프로세서를 주로 사용하는 센서 네트워크환경에서 구현하기에는 성능과 시스템 제약 등으로 인하여 많은 어려움이 있다.In addition, the hash function is an algorithm that is used as a means of data authentication and integrity verification. It is defined as an international standard in FIPS 180-1. As the importance of the data handled in the sensor network environment grows, It is necessary to implement a hash function for integrity verification. However, the hash function designed to be efficient in the software implementation of the 32-bit processor is difficult to implement in the sensor network environment which mainly uses the 8-bit processor because of the performance and the system constraint.
종래에도 본 출원인에 의한 한국공개특허 10-2005-65976(05. 6. 30)와 타인의 논문 "하드웨어 공유와 캐리 보존 덧셈을 이용한 MD5 해쉬 프로세서 설계"(정보보호학회, 제13권 4호, pp139-149, 2003. 8), 및 "FPGA Implementation of SHA-1 Algorithm" (ASIC 2003, Volume 2, pp1321-1324, 2003. 10)이 개시되어 있으나, 이들 모두 하나의 덧셈기를 반복 사용하여 전력소모가 적은 구조의 메모리를 가르치고 있지 않다.In the past, Korean Patent Laid-open Publication No. 10-2005-65976 (May 30, 2006) by the present applicant and another person's paper "Design of MD5 hash processor using hardware sharing and carry preservation addition" (The Institute of Information Security, (ASIC 2003, Volume 2, pp. 1321-1324, 2003. 10) have been disclosed. However, all of them are repeatedly used to reduce power consumption Is not taught memory with a small structure.
위와 같은 어려움을 해결하기 위하여, 본 발명에서는 센서 네트워크 환경에 적용가능한 저전력 해쉬함수 암호화 장치를 구현하였다. 이를 위하여, 해쉬함수 암호화 장치를 최소한의 로직과 메모리 및 하나의 덧셈기로 구현하였으며 각 메모리와 로직 간의 데이터 변화가 최소가 되도록 구현함으로써 센서 네트워크의 저전력 요구사항을 만족시키는 저전력 해쉬함수 암호화 장치를 제공한다.In order to solve the above difficulties, the present invention implements a low power hash function encryption apparatus applicable to a sensor network environment. To this end, a hash function encryption device is implemented with a minimum amount of logic, a memory, and an adder, and a low power hash function encryption device that satisfies the low power requirement of the sensor network is implemented by implementing the minimum data change between each memory and logic .
상술한 기술적 과제를 달성하기 위하여, 본 발명에 의한 저전력 해쉬함수 암호화 장치는 임의의 데이터를 자르거나 일정한 규칙에 의한 패딩 연산을 거쳐 512 비트 단위로 해쉬함수 연산을 반복 수행하여 160 비트의 해쉬값을 계산하는 알고리즘이다. 한번의 해쉬함수 연산은 총 80 라운드의 반복 연산으로 구현되며 각 라운 드 연산에서는 총 4번의 내부 데이터들과 상수들의 덧셈 연산과 쉬프트 연산 등으로 내부 연산값들이 갱신된다. 입력된 512 비트 데이터는 일정한 규칙에 의하여 확장되어 80번의 라운드 연산 동안 내부 데이터들과 덧셈연산이 수행된다.In order to achieve the above object, the low-power hash function encryption apparatus according to the present invention cuts arbitrary data or performs a hash function operation in units of 512 bits through a padding operation according to a predetermined rule, . A single hash function operation is implemented by a total of 80 round iterations. In each round operation, the internal operation values are updated by adding 4 internal data and adding and shifting of constants. The input 512-bit data is expanded by a certain rule, and the internal data and the addition operation are performed during 80 round operations.
본 발명에서의 저전력 해쉬함수 암호화장치는 면적과 전력 소모를 최소로 하기 위하여 하나의 덧셈 연산기만을 반복 사용하도록 장치를 구성하였으며 많은 전력을 소모하는 데이터 확장 블록을 필요한 데이터들을 사용하고 갱신하여 소비 전력을 최소로 하고자 하였다. 또한, 필요한 로직연산은 최적화하였으며, 전체 해쉬함수 연산이 효율적이 되도록 데이터 패스를 설정하고 저사양의 시스템 마이크로컨트롤러와의 인터페이스를 효율적으로 수행할 수 있도록 구성하였다.In order to minimize the area and power consumption, the apparatus is configured to repeatedly use only one adder, and the data expansion block consuming a large amount of power is updated by using and updating necessary data, I wanted to minimize it. In addition, the required logic operation is optimized, and the data path is set up so that the entire hash function calculation is efficient, and the interface with the system microcontroller is configured to be efficiently performed.
본 발명의 일 태양에 의하면, 본 발명은 저전력 해쉬함수 암호화 장치에 있어서, 마이크로컨트롤러와의 인터페이스를 위한 수단; 해쉬함수 중간 연산값과 결과값 저장을 위한 제1 내지 제5 저장수단; 하나의 덧셈 연산수단; 해쉬함수 연산을 수행할 데이터를 확장하기 위한 연산수단; 제1 및 제2 저장수단의 데이터출력을 각각 순환 쉬프트하기 위한 수단; 해쉬 연산 초기값과 상수값을 저장하기 위한 주 저장수단; 제2 내지 제4 저장수단의 데이터들을 로직 연산하기 위한 연산수단; 연산의 데이터 패스를 선택하기 위한 입력선택수단들; 이들 메모리와 연산 블록들을 제어하기 위한 제어수단을 포함하여 해쉬함수 연산을 수행함을 특징으로 하는 저전력 해쉬함수 암호화 장치를 제공한다.According to an aspect of the present invention, there is provided a low power hash function encryption apparatus comprising: means for interfacing with a microcontroller; First to fifth storing means for storing a hash function intermediate value and a result value; One addition operation means; Computing means for expanding data to perform a hash function operation; Means for cyclically shifting the data outputs of the first and second storage means, respectively; Main storage means for storing an initial value of a hash operation and a constant value; Computing means for logic operation of data of the second to fourth storage means; Input selection means for selecting a data path of an operation; And a control unit for controlling the memory and the operation blocks, and performs a hash function operation.
바람직하기로는 상기 데이터 확장 연산수단은 시스템으로 오는 입력데이터와 내부연산을 통하여 새로 생성되는 데이터를 선택하고 제어하기 위한 입력수단; 데 이터 저장을 위한 비트레지스터로 구성된 레지스터 파일 저장수단; 레지스터 파일출력을 선택하기 위한 출력선택수단; 상기 중간 연산결과를 저장하기 위한 레지스터 저장수단; 상기 레지스터 저장수단의 입력을 선택하기 위한 입력 선택수단; XOR 연산을 위한 XOR 연산수단; 연산된 레지스터 저장수단의 출력값을 한 비트 쉬프트시키기 위한 쉬프트연산수단; 및 데이터 확장 연산수단의 출력을 선택하기 위한 출력선택수단을 포함하여, 데이터의 확장연산을 저전력으로 수행함을 특징으로 한다.Preferably, the data expansion arithmetic means comprises: input means for selecting and controlling input data coming into the system and newly generated data through an internal operation; Register file storage means comprising bit registers for storing data; An output selection means for selecting a register file output; Register storing means for storing the intermediate calculation result; Input selection means for selecting an input of the register storage means; XOR operation means for XOR operation; Shift operation means for shifting the output value of the calculated register storage means by one bit; And an output selection means for selecting an output of the data expansion operation means. The data expansion operation is performed with low power.
바람직하기로는 상기 데이터 확장 연산수단은 데이터저장수단을 RAM 메모리로 이용하여 저면적으로 구현됨을 특징으로 한다.Preferably, the data expansion calculation means is implemented with a low area using the data storage means as a RAM memory.
바람직하기로는 상기 로직연산수단은 제2 저장수단의 데이터를 NOT 연산하기 위한 NOT 연산수단; 제2 저장수단의 데이터와 제3 저장수단의 데이터의 AND 연산을 위한 AND 연산수단; 제3 저장수단의 데이터와 제4 저장수단의 데이터의 AND 연산을 위한 AND 연산수단; 제4 저장수단의 데이터와 AND연산할 제2 저장수단의 데이터를 선택하기 위한 입력선택수단; 상기 선택된 제2 저장수단의 데이터와 제4 저장수단의 데이터의 AND 연산을 위한 AND 연산수단; 제2 저장수단의 데이터와 제3 저장수단의 데이터와 제4 저장수단의 데이터의 XOR 연산을 위한 XOR 연산수단들; 상기 AND 연산된 값들을 더하기 위한 OR 연산수단들; 및 상기 연산결과들의 출력을 선택하기 위한 출력선택수단으로 최적화 구현됨을 특징으로 한다.Preferably, the logic operation means includes NOT operation means for NOT operation of data of the second storage means; AND computing means for ANDing the data of the second storage means and the data of the third storage means; AND computing means for ANDing the data of the third storage means and the data of the fourth storage means; Input selection means for selecting data of the second storage means to be ANDed with data of the fourth storage means; AND computing means for ANDing the data of the selected second storage means and the data of the fourth storage means; XOR operation means for XORing data of the second storage means, data of the third storage means and data of the fourth storage means; OR computing means for adding the AND computed values; And output selection means for selecting an output of the calculation results.
바람직하기로는 상기 인터페이스장치는 상기 마이크로컨트롤터에 8 비트 데이터를 전송받아 32 비트로 확장하는 수신 인터페이스수단과 32 비트 출력데이터를 8 비트씩 나누어 전송하는 송신 인터페이스수단으로 구성되어 효율적인 시스템 인 터페이스를 수행함을 특징으로 한다.Preferably, the interface device comprises a receiving interface means for transmitting 8-bit data to the microcontroller and expanding the data to 32 bits, and a transmission interface means for dividing 32-bit output data for each 8 bits to perform an efficient system interface .
이하, 본 발명의 바람직한 실시예에 의한 저전력 해쉬함수 암호화 장치를 도면을 참조하여 자세히 살펴 보기로 한다.Hereinafter, a low-power hash function encryption apparatus according to a preferred embodiment of the present invention will be described in detail with reference to the drawings.
도 1은 저전력 해쉬함수 암호화 장치의 일실시예 구성도이다. 도 1의 저전력 해쉬함수 암호화 장치는 마이크로컨트롤러(200)와의 인터페이스를 위한 블록(100)과, 해쉬함수 중간 연산값과 결과값 저장을 위한 제1 내지 제5 레지스터들(400, 500, 600, 700, 800)과, 32 비트 덧셈 연산기(1300)와, 해쉬함수 연산을 수행할 데이터를 확장하기 위한 연산블록(300)과, 데이터 출력을 5비트와 30비트 순환 쉬프트하기 위한 블록들(900, 1400)과, 해쉬 연산 초기값과 상수값을 저장하기 위한 메모리(1000)와, 상기 제2 내지 제4 레지스터들(500, 600, 700)의 데이터들을 로직 연산하기 위한 연산 블록(1100)과, 상기 각 연산의 데이터패스를 선택하기 위한 입력선택기들(1500, 1600, 1700)과, 이들 메모리(1000)와 연산블록들(300~1700)을 제어하기 위한 제어기(200)로 구성된다.1 is a configuration diagram of an embodiment of a low power hash function encrypting apparatus. The low power hash function encryption apparatus of FIG. 1 includes a
도 1에 의하면, 본 발명의 저전력 해쉬함수 암호화 장치는 하나의 덧셈기(1300)만을 이용하여 연산을 수행한다. 연산 진행과정을 자세히 살펴 보면, 연산이 확장블록(300)에 입력데이터를 저장하고 해쉬함수 연산을 시작하면, 초기화 과정으로 초기값과 상수값 저장을 위한 메모리(1000)에서 초기값들을 상기 제1 내지 제5 레지스터(400-800)에 저장한다. 초기값 저장은 별도의 데이터패스가 없고 메모리(1000)의 출력과 제5 레지스터(800)의 출력을 덧셈기(1300)에서 덧셈한 결과를 제1 레지스터(400)에 저장하는 데이터패스를 그대로 이용한다.Referring to FIG. 1, the low-power hash function encryption apparatus of the present invention performs an operation using only one
초기화 연산이 수행되는 동안 제3 레지스터(600)의 입력은 제2 레지스터(500)의 출력값이 그대로 저장되도록 입력선택기(1500)가 제어되며 나머지 각 레지스터들의 값은 다음 레지스터로 쉬프트된다. 초기 레지스터들은 0 으로 초기화 되어 있으므로 메모리(1000)의 초기값들이 각 레지스터에 저장된다 이러한 데이터패스는 해쉬함수의 80 라운드결과와 초기값들의 덧셈연산에 그대로 이용된다. 이러한 초기화 과정은 첫번째 데이터 블록 연산에서만 수행되며, 두번째 데이터 블록 연산부터는 이미 제1 내지 제5 레지스터(400-800)에 전단계 해쉬함수 결과가 저장되어 있으므로 초기화 과정을 수행하지 않는다. 초기화 후 80번의 라운드 연산이 수행되며 각 라운드 연산시에는 도 2와 같이 제5 레지스터(800)와 제2 내지 제4 레지스터(500, 600, 700)의 데이터들의 로직함수를 통한 결과와 제1 레지스터(400)의 비트 순환 쉬프트 연산값과 데이터확장값(Wt)와 상수값(Kt)들의 덧셈연산으로 제 1레지스터(400)가 갱신되고 제3 레지스터(600)는 제2 레지스터(500)의 30 비트 순환 쉬프트 연산값으로 갱신되며, 제2, 제4, 제5 레지스터(500, 700, 800)는 각각 전 라운드의 제1, 제3, 제4 레지스터(400, 600, 700)의 값으로 갱신된다. 각 라운드의 4 번의 덧셈 연산을 하나의 덧셈기(1300)로 수행하기 위하여 덧셈기(1300)의 입력선택기(1700)에서 5 비트 쉬프트연산기(900)와 초기값과 상수 저장메모리(1000), 로직함수연산기(1100), 그리고 데이터 확장블록(300) 중에서 하나의 값을 선택하며, 이들 값과 제5 레지스터(800)의 값을 순차적으로 덧셈 연산한다. 라운드 중간의 덧셈 연산값은 다시 제5 레지스터(800)에 저장된다. 이때 확장블록(300)의 출력값 Wt는 4 번째 덧셈 연산에서 더해지며, 3 번의 덧셈연산 동안 라운드에 필요 한 Wt를 계산한다. 각 라운드마다 로직함수 연산방법과 상수 Kt 그리고 확장블록(300)의 출력값은 달리 선택되거나 연산되며, 80 라운드 후의 결과는 다시 초기값과 덧셈 연산하여 해쉬함수 결과를 출력한다. 위에서 언급하였듯이 마지막의 초기값과 덧셈연산은 초기화 과정을 그대로 수행하여 계산된다. 덧셈기에 계산되는 해쉬함수 결과는 제1 내지 제5 레지스터(400-800)에 저장되면서 동시에 초기값 메모리(1000)에 저장되어 다음 데이터 블록의 해쉬함수 연산에 사용된다.While the initialization operation is being performed, the
도 1의 데이터 확장블록(300)은 전력소모를 최소로 하기 위하여 필요한 데이터들만을 가지고 데이터를 생성하고 갱신하도록 하였다. 이때 데이터를 저장하는 메모리는 레지스터나 RAM 메모리로 구성할 수 있다.The
도 3은 레지스터 메모리를 사용한 데이터 확장블록의 일실시예 구성도이다.3 is a block diagram of an embodiment of a data expansion block using a register memory.
도 3의 데이터 확장블록(300)은 시스템으로 오는 입력데이터와 내부연산을 통하여 새로 생성되는 데이터를 선택하고 제어하기 위한 입력제어기(300-a)와, 데이터 저장을 위한 32 비트 레지스터 16 개로 구성된 레지스터 파일(300-b) 블록, 레지스터 파일 출력을 선택하기 위한 출력선택기(300-c)와, 중간 연산결과를 저장하기 위한 w 레지스터 (300-e)와, w 레지스터(300-e)의 입력을 선택하기 위한 입력 선택기(300-d)와, XOR 연산을 위한 XOR 연산기(300-f)와, 연산된 w 레지스터(300-e)값을 한 비트 쉬프트시키기 위한 쉬프트연산기(300-g)와, Wt의 출력을 선택하기 위한 출력선택기(300-h)로 구성된다.The
라운드 연산에 사용되는 Wt 값은 t 가 0 부터 15 에 대해서는 512 비트 입력값을 그대로 이용하며, t 가 16 부터 79 까지는 다음과 같은 연산으로 새로운 값이 연산된다.The Wt value used for the round operation uses the 512-bit input value for t from 0 to 15, and the new value from t to 16 to 79 is calculated by the following operation.
Wt=S1(Wt-3 xor Wt-8 xor Wt-14 xor Wt-16)W t = S 1 (W t-3 xor W t-8 xor W t-14 xor W t-16 )
이때, S1 은 한 비트 쉬프트 연산이다. 이러한 연산은 각 라운드 연산마다 새로이 연산된다. 처음 메모리에서 Wt-3를 읽어들여 w 레지스터(300-e)에 저장하고, 다음 Wt-8, Wt-14를 읽어들여 저장되어 있는 w 레지스터(300-e의 값과 XOR 연산하여 다시 w 레지스터에 저장한다. 마지막 Wt-16 데이터는 읽어들이면서 w 레지스터의 출력과 XOR 연산을 수행한 후 바로 출력되어 Wt 값으로 사용된다. 연산된 Wt 데이터는 바로 Wt-16 에 다시 저장되어 다음 연산에 이용된다. 이와 같은 확장 블록연산은 각 레지스터들의 값 변화를 최소로 하여 소비전력을 줄이는 이점이 있다. 또한, 레지스터 메모리 대신 RAM 메모리를 이용할 수 있는데, RAM 메모리를 이용하면 더욱 최적화된 면적으로 구현할 수 있어 저면적 구현이 가능하다.At this time, S 1 Is a bit shift operation. These operations are newly calculated for each round operation. Wt-3 is read from the first memory and stored in the w register 300-e. Next Wt-8 and Wt-14 are read and XORed with the value of the stored w register 300-e is stored in the w register. Finally w t-16 data is read by while after performing the output and the XOR operation in the w register is directly output is used as w t values calculated w t data again just w t-16 In addition, it is possible to use a RAM memory instead of a register memory, and the RAM memory can be used to further optimize It is possible to realize a low area.
도 4는 메모리를 이용한 확장블록의 일실시예 구성도이다.4 is a block diagram of an embodiment of an expansion block using a memory.
도 4에서 보는 바와 같이, 레지스터 파일이 단일 포트 RAM 메모리(300-i)로 바뀌어 구현되어 있다. 그외 다른 구성요소들은 도 3의 구성과 동작 면에 있어서 위에서 언급한 바와 같이 동일하므로, 그 상세한 설명은 생략한다.As shown in FIG. 4, a register file is implemented by being replaced with a single-port RAM memory 300-i. Other components are the same as those described above in the operation and configuration of FIG. 3, and a detailed description thereof will be omitted.
도 5는 로직함수의 일실시예의 구성도이다.5 is a block diagram of an embodiment of a logic function.
도 5의 로직함수는 제2 레지스터 데이터를 NOT 연산하기 위한 NOT 연산기(1100-a)와, 제 레지스터 데이터와 제3 레지스터 데이터의 AND 연산을 위한 AND 연산기(1100-d)와, 제3 레지스터 데이터와 제4 레지스터 데이터의 AND 연산을 위한 AND 연산기(1100-e)와, 제4 레지스터 데이터와 AND 연산할 제 레지스터 데이터를 선택하기 위한 입력 선택기(1100-b)와, 선택된 제2 레지스터 데이터와 제4 레지스터 데이터의 AND 연산을 위한 AND 연산기(1100-f)와, 제2 레지스터 데이터와 제3 레지스터 데이터와 제4 레지스터 데이터의 XOR 연산을 위한 XOR 연산기들(1100-c, 1100-g)과, AND 연산된 값들을 더하기 위한 OR 연산기들(1100-h, 1100-i)과, 그리고 이들 연산 결과들의 출력을 선택하기 위한 출력선택기(1100-j)로 구성된다. The logic function of FIG. 5 includes a NOT operator 1100-a for NOT operation of the second register data, an AND operator 1100-d for AND operation of the register data and the third register data, An AND operator 1100-e for ANDing the fourth register data, an input selector 1100-b for selecting the register data to be ANDed with the fourth register data, An AND operator 1100-f for ANDing 4-register data, XOR operators 1100-c and 1100-g for performing an XOR operation on the second register data, the third register data, and the fourth register data, OR operators 1100-h and 1100-i for adding the ANDed values, and an output selector 1100-j for selecting the output of these operation results.
로직함수는 제2 내지 제4 레지스터 데이터(B, C, D)를 다음과 같이 라운드에 따라 연산을 달리 수행하며, 도 5는 이들 연산을 최적화하여 구현하였다.The logic function performs the operations of the second through fourth register data B, C, and D differently according to the following rounds, and FIG. 5 illustrates optimization of these operations.
ft(B, C, D)=(B∧C)∨(~B∧D)(0≤t≤19) f t (B, C, D ) = (B∧C) ∨ (~ B∧D) (0≤t≤19)
ft(B, C, D)=B xor C xor D (20≤t≤39)(B, C, D) = B xor C xor D (20? t ? 39)
ft(B, C, D)=(B∧C)∨(B∧D)∨(C∧D)(40≤t≤59) f t (B, C, D ) = (B∧C) ∨ (B∧D) ∨ (C∧D) (40≤t≤59)
ft(B, C, D)=B xor C xor D (60≤t≤79)(B, C, D) = B xor C xor D (60? t ? 79)
이때, ∧는 논리곱을 의미하며, ∨는 논리합을 의미한다. 또한 ~는 NOT연산이다.In this case, ∧ means logical product and ∨ means logical sum. Also, ~ is a NOT operation.
위에 언급하였듯이, 도 1의 저전력 해쉬함수 암호화 장치는 저전력 마이크로프로세서와 통신을 위한 시스템 인터페이스를 가진다.As mentioned above, the low power hash function encryption device of FIG. 1 has a system interface for communication with a low power microprocessor.
도 6은 저전력 해쉬함수 암호화 장치의 시스템 인터페이스의 일실시예의 구성도이다.6 is a block diagram of an embodiment of a system interface of a low power hash function encrypting apparatus.
도 6의 인터페이스장치는 마이크로컨트롤터(1800)에 8 비트 데이터를 전송받아 32 비트로 확장하는 수신 인터페이스 블록인 비트변환기(100-a)와, 32 비트 출력데이터를 8비트씩 나누어 전송하는 송신 인터페이스블록인 비트변환기(100-b)로 구성된다. 데이터 버스를 통하여 어드레스와 데이터가 모두 전송되며 연속적인 다수개의 데이터가 전송될 때에는 버스트 모드로 데이터가 전송된다. 그외 다른 구성요소들은 도 1의 구성과 동작 면에 있어서 위에서 언급한 바와 같이 동일하므로, 그 상세한 설명은 생략한다.6 includes a bit converter 100-a, which is a reception interface block that receives 8-bit data and extends the 32-bit data to the
본 발명은 지금까지 SHA-1 해쉬함수 암호화 장치에 대해서 설명하였으나, 본 발명이 반드시 이에 제한되는 것은 아니고 다른 변형예가 있을 수 있으며, 본 발명의 권리범위는 이하 청구항에 의해서 정의된다.Although the present invention has been described with respect to the SHA-1 hash function encryption apparatus, the present invention is not necessarily limited thereto, and other modifications may be made, and the scope of the present invention is defined by the following claims.
상기와 같은 구조로 개발된 저전력 해쉬함수 암호화 장치는 저전력 저면적의해쉬함수 암호화 장치를 제공함으로써 센서 네트워크 환경과 같이 자원 제약이 많은 환경에서 효율적인 데이터 인증 및 무결성 검증을 수행할 수 있는 수단을 제공한다.The low-power hash function encryption apparatus developed with the above structure provides a means for performing efficient data authentication and integrity verification in an environment with a large resource constraint such as a sensor network environment by providing a hash function encryption apparatus with a low power and a small area .
Claims (5)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050121244A KR100656375B1 (en) | 2005-12-10 | 2005-12-10 | Low power hash function encryption device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050121244A KR100656375B1 (en) | 2005-12-10 | 2005-12-10 | Low power hash function encryption device |
Publications (1)
Publication Number | Publication Date |
---|---|
KR100656375B1 true KR100656375B1 (en) | 2006-12-11 |
Family
ID=37732918
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050121244A KR100656375B1 (en) | 2005-12-10 | 2005-12-10 | Low power hash function encryption device |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100656375B1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100901697B1 (en) * | 2007-07-09 | 2009-06-08 | 한국전자통신연구원 | Apparatus for low power ???-1 hash operation and Apparatus for low power ???? cryptographic using this |
KR101082512B1 (en) | 2010-04-16 | 2011-11-10 | 우원정보기술(주) | Encryption method and apparatus for medical sensor of health care |
CN111488119A (en) * | 2019-01-29 | 2020-08-04 | 三星电子株式会社 | Semiconductor memory device for hash solution and driving method thereof |
CN111767553A (en) * | 2020-05-29 | 2020-10-13 | 上海橙群微电子有限公司 | Data encryption and decryption method, MCU, electronic equipment and readable storage medium |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR970012202A (en) * | 1995-08-30 | 1997-03-29 | 존 엠. 클락 3세 | Method and apparatus for using random access memory for hardware-based hash algorithms that require extension functions |
US6091821A (en) | 1998-02-12 | 2000-07-18 | Vlsi Technology, Inc. | Pipelined hardware implementation of a hashing algorithm |
JP2001282106A (en) | 2000-03-28 | 2001-10-12 | Matsushita Electric Works Ltd | Hash device |
JP2002162904A (en) | 2000-11-27 | 2002-06-07 | Matsushita Electric Works Ltd | Hash function processor |
KR20040017434A (en) * | 2002-08-21 | 2004-02-27 | 이광엽 | Calculating method for message digest 5 hashing function having parallel calculating structure |
-
2005
- 2005-12-10 KR KR1020050121244A patent/KR100656375B1/en active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR970012202A (en) * | 1995-08-30 | 1997-03-29 | 존 엠. 클락 3세 | Method and apparatus for using random access memory for hardware-based hash algorithms that require extension functions |
US6091821A (en) | 1998-02-12 | 2000-07-18 | Vlsi Technology, Inc. | Pipelined hardware implementation of a hashing algorithm |
JP2001282106A (en) | 2000-03-28 | 2001-10-12 | Matsushita Electric Works Ltd | Hash device |
JP2002162904A (en) | 2000-11-27 | 2002-06-07 | Matsushita Electric Works Ltd | Hash function processor |
KR20040017434A (en) * | 2002-08-21 | 2004-02-27 | 이광엽 | Calculating method for message digest 5 hashing function having parallel calculating structure |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100901697B1 (en) * | 2007-07-09 | 2009-06-08 | 한국전자통신연구원 | Apparatus for low power ???-1 hash operation and Apparatus for low power ???? cryptographic using this |
US8086864B2 (en) | 2007-07-09 | 2011-12-27 | Electronics And Telecommunications Research Institute | Low power HMAC encryption apparatus |
KR101082512B1 (en) | 2010-04-16 | 2011-11-10 | 우원정보기술(주) | Encryption method and apparatus for medical sensor of health care |
CN111488119A (en) * | 2019-01-29 | 2020-08-04 | 三星电子株式会社 | Semiconductor memory device for hash solution and driving method thereof |
CN111488119B (en) * | 2019-01-29 | 2024-02-13 | 三星电子株式会社 | Semiconductor memory device for hash solution and driving method thereof |
CN111767553A (en) * | 2020-05-29 | 2020-10-13 | 上海橙群微电子有限公司 | Data encryption and decryption method, MCU, electronic equipment and readable storage medium |
CN111767553B (en) * | 2020-05-29 | 2024-04-12 | 上海橙群微电子有限公司 | Data encryption and decryption method, MCU, electronic equipment and readable storage medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100901697B1 (en) | Apparatus for low power ???-1 hash operation and Apparatus for low power ???? cryptographic using this | |
US8155310B2 (en) | Key derivation functions to enhance security | |
US11546135B2 (en) | Key sequence generation for cryptographic operations | |
Algredo-Badillo et al. | FPGA-based implementation alternatives for the inner loop of the Secure Hash Algorithm SHA-256 | |
JP4820821B2 (en) | Transpose data conversion for security enhancement | |
US20090161863A1 (en) | Hardware implementation of the secure hash standard | |
US20060034454A1 (en) | Exponential data transform to enhance security | |
US20020097868A1 (en) | Pseudorandom number generating apparatus or encryption or decryption apparatus using the same | |
JP2007094377A (en) | Encryption processor | |
CN112580072B (en) | Data set intersection method and device | |
Glabb et al. | Multi-mode operator for SHA-2 hash functions | |
CN107395371B (en) | Data encryption in wireless sensor networks | |
US20040228485A1 (en) | Method and apparatus for the generation of public key based on a user-defined ID in a cryptosystem | |
CN113193962B (en) | SM2 digital signature generation and verifier based on lightweight modular multiplication | |
US8077861B2 (en) | Permutation data transform to enhance security | |
KR100656375B1 (en) | Low power hash function encryption device | |
US20060098815A1 (en) | Methods of encoding and decoding data | |
KR20050065976A (en) | Apparatus and method for computing sha-1 hash function | |
KR20180083592A (en) | Apparatus and method for adding data | |
Jungk et al. | On optimized FPGA implementations of the SHA-3 Candidate Grøstl | |
Wang et al. | Optimized implementations of stream cipher ZUC-256 algorithm | |
Kuwakado et al. | New algorithm for finding preimages in a reduced version of the MD4 compression function | |
KR20140079529A (en) | ARIA encoding/decoding apparatus and method | |
Wilhelm | Aspects of hardware methodologies for the NTRU public-key cryptosystem | |
KR20030048631A (en) | Crypto Processing apparatus for Elliptic Curve Cryptosystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20121129 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20131128 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20141205 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20151201 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20181113 Year of fee payment: 13 |
|
FPAY | Annual fee payment |
Payment date: 20191203 Year of fee payment: 14 |