KR101428770B1 - 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치 및 방법 - Google Patents

해시 알고리즘에서의 압축 연산을 수행하기 위한 장치 및 방법 Download PDF

Info

Publication number
KR101428770B1
KR101428770B1 KR20130060863A KR20130060863A KR101428770B1 KR 101428770 B1 KR101428770 B1 KR 101428770B1 KR 20130060863 A KR20130060863 A KR 20130060863A KR 20130060863 A KR20130060863 A KR 20130060863A KR 101428770 B1 KR101428770 B1 KR 101428770B1
Authority
KR
South Korea
Prior art keywords
bit
chain variable
state data
data
rti
Prior art date
Application number
KR20130060863A
Other languages
English (en)
Inventor
홍득조
김동찬
이정근
권대성
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR20130060863A priority Critical patent/KR101428770B1/ko
Priority to US14/155,756 priority patent/US9288041B2/en
Priority to JP2014005890A priority patent/JP5728596B2/ja
Application granted granted Critical
Publication of KR101428770B1 publication Critical patent/KR101428770B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Abstract

본 발명은 512비트 메시지와 512비트 연쇄변수 데이터를 입력받아 128비트 레지스터 기반의 단계 함수를 반복 연산하여 해시값의 기초가 되는 갱신된 512비트 연쇄변수 데이터를 산출하기 위한, 고속 메시지 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치 및 방법을 개시한다. 이를 위해, 본 발명에 따른 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치는 메시지를 입력받아 복수의 확장 메시지를 생성하는 메시지 확장부; 연쇄변수 데이터를 입력받아 초기 상태 데이터로 변환하는 연쇄변수 초기 변환부; 초기 상태 데이터와 복수의 확장 메시지를 기초로 단계 함수를 반복 연산하여 최종 상태 데이터를 산출하는 단계 함수 연산부; 및 최종 상태 데이터를 이용하여 연쇄변수 데이터로부터 갱신된 연쇄변수 데이터를 생성하여 출력하는 연쇄변수 최종 변환부를 포함한다.

Description

해시 알고리즘에서의 압축 연산을 수행하기 위한 장치 및 방법 {APPARATUS AND METHOD FOR PERFORMING COMPRESSION OPERATION IN HASH ALGORITHM}
본 발명은 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치 및 방법에 관한 것으로, 보다 구체적으로 512비트 메시지와 512비트 연쇄변수 데이터를 입력받아 128비트 레지스터 기반의 단계 함수를 반복 연산하여 해시값의 기초가 되는 갱신된 512비트 연쇄변수 데이터를 산출하는, 고속 메시지 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치 및 방법에 관한 것이다.
메시지에 대한 무결성의 제공은 각종 기기의 통신 및 자료 저장을 위한 암호 어플리케이션의 주된 기능이다. 해시(Hash) 함수는 이러한 메시지의 무결성을 보장하기 위한 함수로써, 메시지의 서명, 인증 등에서 널리 활용된다. 일반적으로, 해시 함수에서는 연쇄변수(Chain variable) 데이터가 사용되고, 메시지를 특정 길이 단위로 분할한 후, 각 메시지 단위들을 연쇄변수 데이터와 함께 압축 함수에 입력하여 연쇄변수 데이터를 갱신한다. 압축 함수에서 출력되는 최종 연쇄변수 데이터는 다양한 알고리즘에 의해 가공되어 해당 메시지의 해시값이 된다.
이와 관련하여, '256비트 출력을 갖는 해쉬 알고리즘'을 발명의 명칭으로 하는 한국등록특허 제10-0916805호는 임의의 길이의 메시지 비트열을 입력 받아 워드열로 변환하고, 입력된 메시지를 기설정된 비트로 변환하여 압축 연산을 수행함으로써 연쇄변수를 산출하는 해시 알고리즘 기법을 제시하고 있다.
이러한, 해시 함수의 속도 효율성을 높이기 위해서는 해시 함수의 핵심 알고리즘인 압축 함수가 암호 어플리케이션에 특화된 칩 또는 CPU에 최적 구현이 가능하도록 설계되어야 할 필요가 있다.
본 발명의 목적은, 512비트의 출력값을 갖고, 기존 공격에 대한 안정성을 보장하면서, 고속 메시지 해싱이 가능한 해시 함수에 적용되는 128비트 레지스터 기반의 압축 함수를 연산하는 기법을 제공함에 있다.
상기한 목적을 달성하기 위한 본 발명에 따른 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치는, 메시지를 입력받아 복수의 확장 메시지를 생성하는 메시지 확장부; 연쇄변수 데이터를 입력받아 초기 상태 데이터로 변환하는 연쇄변수 초기 변환부; 상기 초기 상태 데이터와 상기 복수의 확장 메시지를 기초로 단계 함수를 반복 연산하여 최종 상태 데이터를 산출하는 단계 함수 연산부; 및 상기 최종 상태 데이터를 이용하여 상기 연쇄변수 데이터로부터 갱신된 연쇄변수 데이터를 생성하여 출력하는 연쇄변수 최종 변환부를 포함하는 것을 특징으로 한다.
이때, 상기 메시지 확장부는, 16개의 32비트 서브 메시지들(
Figure 112013047649312-pat00001
,
Figure 112013047649312-pat00002
, … ,
Figure 112013047649312-pat00003
,
Figure 112013047649312-pat00004
)이 연접되어 구성된 512비트 메시지(
Figure 112013047649312-pat00005
)를 입력받아, 수학식
Figure 112013047649312-pat00006
에 기초하여 각각 12개의 32비트 서브 확장 메시지들(
Figure 112013047649312-pat00007
,
Figure 112013047649312-pat00008
, … ,
Figure 112013047649312-pat00009
,
Figure 112013047649312-pat00010
)이 연접되어 구성되는 32개의 384비트 확장 메시지(
Figure 112013047649312-pat00011
)를 생성할 수 있다. 여기서, r은
Figure 112013047649312-pat00012
인 정수이고,
Figure 112013047649312-pat00013
은 x를 16으로 나누었을 때의 나머지를 출력하는 연산을 의미한다.
이때, 상기 연쇄변수 초기 변환부는, 16개의 32비트 서브 연쇄변수 데이터들(
Figure 112013047649312-pat00014
,
Figure 112013047649312-pat00015
, … ,
Figure 112013047649312-pat00016
,
Figure 112013047649312-pat00017
)이 연접되어 구성된 512비트 연쇄변수 데이터(
Figure 112013047649312-pat00018
)를 입력받아, 수학식
Figure 112013047649312-pat00019
에 기초하여 16개의 32비트 초기 서브 상태 데이터들(
Figure 112013047649312-pat00020
,
Figure 112013047649312-pat00021
, … ,
Figure 112013047649312-pat00022
,
Figure 112013047649312-pat00023
)이 연접되어 구성되는 512비트 초기 상태 데이터(
Figure 112013047649312-pat00024
)로 변환할 수 있다.
이때, 상기 단계 함수 연산부는, 상기 512비트 초기 상태 데이터(
Figure 112013047649312-pat00025
)와 상기 32개의 384비트 확장 메시지(
Figure 112013047649312-pat00026
)를 기초로, 수학식
Figure 112013047649312-pat00027
;
Figure 112013047649312-pat00028
;
Figure 112013047649312-pat00029
;
Figure 112013047649312-pat00030
;
Figure 112013047649312-pat00031
을 연산하는 단계 함수를 반복 연산하여 최종 상태 데이터를 산출할 수 있다. 여기서,
Figure 112013047649312-pat00032
는 각각 32비트인 x, y의 논리적 배타합을 출력하는 연산,
Figure 112013047649312-pat00033
는 각각 32비트인 x, y를 양의 정수로 표현한 값의 합을 232로 나누었을 때의 나머지를 32비트로 출력하는 연산,
Figure 112013047649312-pat00034
는 32비트인 x를 왼쪽으로 a비트만큼 순환이동시켜 출력하는 연산을 의미한다.
이때, 상기 단계 함수 연산부는, 상기 단계 함수를 r에 대해 0에서 31까지 32회 반복하여 연산하여, 16개의 32비트 최종 서브 상태 데이터들(
Figure 112013047649312-pat00035
,
Figure 112013047649312-pat00036
, … ,
Figure 112013047649312-pat00037
,
Figure 112013047649312-pat00038
)이 연접되어 구성되는 512비트 최종 상태 데이터(
Figure 112013047649312-pat00039
)를 산출할 수 있다.
이때, 상기 연쇄변수 최종 변환부는, 수학식
Figure 112013047649312-pat00040
에 기초하여 512비트 연쇄변수 데이터(
Figure 112013047649312-pat00041
)를 갱신하고, 갱신된 512비트 연쇄변수 데이터(
Figure 112013047649312-pat00042
)를 출력할 수 있다.
또한, 상기한 목적을 달성하기 위한 본 발명에 따른 해시 알고리즘에서의 압축 연산을 수행하기 위한 방법은, 메시지를 입력받아 복수의 확장 메시지를 생성하는 단계; 연쇄변수 데이터를 입력받아 초기 상태 데이터로 변환하는 단계; 상기 초기 상태 데이터와 상기 복수의 확장 메시지를 기초로 단계 함수를 반복 연산하여 최종 상태 데이터를 산출하는 단계; 및 상기 최종 상태 데이터를 이용하여 상기 연쇄변수 데이터로부터 갱신된 연쇄변수 데이터를 생성하여 출력하는 하는 단계를 포함하는 것을 특징으로 한다.
이때, 상기 복수의 확장 메시지를 생성하는 단계에서는, 16개의 32비트 서브 메시지들(
Figure 112013047649312-pat00043
,
Figure 112013047649312-pat00044
, … ,
Figure 112013047649312-pat00045
,
Figure 112013047649312-pat00046
)이 연접되어 구성된 512비트 메시지(
Figure 112013047649312-pat00047
)를 입력받아, 수학식
Figure 112013047649312-pat00048
에 기초하여 각각 12개의 32비트 서브 확장 메시지들(
Figure 112013047649312-pat00049
,
Figure 112013047649312-pat00050
, … ,
Figure 112013047649312-pat00051
,
Figure 112013047649312-pat00052
)이 연접되어 구성되는 32개의 384비트 확장 메시지(
Figure 112013047649312-pat00053
)를 생성할 수 있다. 여기서, r은
Figure 112013047649312-pat00054
인 정수이고,
Figure 112013047649312-pat00055
은 x를 16으로 나누었을 때의 나머지를 출력하는 연산을 의미한다.
이때, 상기 연쇄변수 데이터를 입력받아 상기 초기 상태 데이터로 변환하는 단계에서는, 16개의 32비트 서브 연쇄변수 데이터들(
Figure 112013047649312-pat00056
,
Figure 112013047649312-pat00057
, … ,
Figure 112013047649312-pat00058
,
Figure 112013047649312-pat00059
)이 연접되어 구성된 512비트 연쇄변수 데이터(
Figure 112013047649312-pat00060
)를 입력받아, 수학식
Figure 112013047649312-pat00061
에 기초하여 16개의 32비트 초기 서브 상태 데이터들(
Figure 112013047649312-pat00062
,
Figure 112013047649312-pat00063
, … ,
Figure 112013047649312-pat00064
,
Figure 112013047649312-pat00065
)이 연접되어 구성되는 512비트 초기 상태 데이터(
Figure 112013047649312-pat00066
)로 변환할 수 있다.
이때, 상기 단계 함수를 반복 연산하여 상기 최종 상태 데이터를 산출하는 단계에서는, 상기 512비트 초기 상태 데이터(
Figure 112013047649312-pat00067
)와 상기 32개의 384비트 확장 메시지(
Figure 112013047649312-pat00068
)를 기초로, 수학식
Figure 112013047649312-pat00069
;
Figure 112013047649312-pat00070
;
Figure 112013047649312-pat00071
;
Figure 112013047649312-pat00072
;
Figure 112013047649312-pat00073
을 연산하는 단계 함수를 반복 연산하여 최종 상태 데이터를 산출할 수 있다. 여기서,
Figure 112013047649312-pat00074
는 각각 32비트인 x, y의 논리적 배타합을 출력하는 연산,
Figure 112013047649312-pat00075
는 각각 32비트인 x, y를 양의 정수로 표현한 값의 합을 232로 나누었을 때의 나머지를 32비트로 출력하는 연산,
Figure 112013047649312-pat00076
는 32비트인 x를 왼쪽으로 a비트만큼 순환이동시켜 출력하는 연산을 의미한다.
이때, 상기 단계 함수를 반복 연산하여 상기 최종 상태 데이터를 산출하는 단계에서는, 상기 단계 함수를 r에 대해 0에서 31까지 32회 반복하여 연산하여, 16개의 32비트 최종 서브 상태 데이터들(
Figure 112013047649312-pat00077
,
Figure 112013047649312-pat00078
, … ,
Figure 112013047649312-pat00079
,
Figure 112013047649312-pat00080
)이 연접되어 구성되는 512비트 최종 상태 데이터(
Figure 112013047649312-pat00081
)를 산출할 수 있다.
이때, 상기 연쇄변수 데이터로부터 갱신된 연쇄변수 데이터를 생성하여 출력하는 하는 단계에서는, 수학식
Figure 112013047649312-pat00082
에 기초하여 512비트 연쇄변수 데이터(
Figure 112013047649312-pat00083
)를 갱신하고, 갱신된 512비트 연쇄변수 데이터(
Figure 112013047649312-pat00084
)를 출력할 수 있다.
본 발명에 따르면, 단순한 메시지 확장 알고리즘을 제공하는 한편, 대부분의 CPU에서 보편적으로 사용되는 비트 덧셈(Addition), 비트 순환이동(Rotation), 비트 논리적 배타합(XOR: eXclusive-OR) 연산자들만을 조합한 압축 연산 알고리즘을 제공함으로써, 128비트 레지스터를 이용한 고속 병렬처리가 가능하고, 이에 따라 CPU가 적은 연산량만으로도 압축 연산을 수행할 수 있도록 하는 효과가 있다.
도 1은 본 발명의 실시예에 따른 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치의 구성을 설명하기 위한 블록도이다.
도 2는 도 1에 도시된 단계 함수 연산부에서 수행되는 단계 함수의 연산을 도식화한 도면이다.
도 3은 본 발명에 따른 해시 알고리즘에서의 압축 연산을 수행하기 위한 방법을 설명하기 위한 흐름도이다.
도 4는 도 3에 도시된 본 발명에 따른 해시 알고리즘에서의 압축 연산을 수행하기 위한 방법에서 단계 함수를 반복하여 연산하는 과정을 보다 구체적으로 설명하기 위한 흐름도이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
이하에서는 도 1 및 도 2를 참조하여, 본 발명에 따른 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치의 구성 및 그 동작에 대하여 설명하도록 한다.
도 1은 본 발명의 실시예에 따른 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치의 구성을 설명하기 위한 블록도이다.
도 1을 참조하면, 본 발명에 따른 압축 연산 수행 장치(10)는, 외부로부터 메시지(M, 20)를 입력받아 복수의 확장 메시지를 생성하는 메시지 확장부(100), 외부로부터 연쇄변수 데이터(CV, 30)를 입력받아 단계 함수의 초기 상태 데이터로 변환하는 연쇄변수 초기 변환부(200), 메시지 확장부(100)에 의해 생성된 복수의 확장 메시지와 연쇄변수 초기 변환부(200)에 의해 변환된 초기 상태 데이터에 기초하여 단계 함수를 반복 연산하여 최종 상태 데이터를 산출하는 단계 함수 연산부(300) 및 단계 함수 연산부(300)에 의해 산출된 최종 상태 데이터를 이용하여 연쇄변수 초기 변환부(200)에 입력된 연쇄변수 데이터(CV, 30)를 갱신한 연쇄변수 데이터(CV', 40)를 출력하는 연쇄변수 최종 변환부(400)를 포함한다.
메시지 확장부(100)는 압축 연산 수행 장치(10)에 별도로 구비되는 인터페이스(미도시)를 통해 사용자로부터 512 비트수를 갖는 메시지(M)을 입력받고, 그로부터 32개의 384 비트수를 갖는 확장 메시지들(
Figure 112013047649312-pat00085
,
Figure 112013047649312-pat00086
, … ,
Figure 112013047649312-pat00087
,
Figure 112013047649312-pat00088
;
Figure 112013047649312-pat00089
,
Figure 112013047649312-pat00090
)을 생성한다. 이때, 메시지 확장부(100)로 입력되는 512비트 메시지(M)는 하기의 수학식 1로 표현되는 바와 같이 각각 32 비트수를 갖는 16개의 서브 메시지들(
Figure 112013047649312-pat00091
,
Figure 112013047649312-pat00092
, … ,
Figure 112013047649312-pat00093
,
Figure 112013047649312-pat00094
)이 연접되어 구성된다.
Figure 112013047649312-pat00095
메시지 확장부(100)는 입력된 512비트 메시지(
Figure 112013047649312-pat00096
)로부터 하기의 수학식 2로 표현되는 바와 같이 12개의 32 비트수를 갖는 서브 확장 메시지들(
Figure 112013047649312-pat00097
,
Figure 112013047649312-pat00098
, … ,
Figure 112013047649312-pat00099
,
Figure 112013047649312-pat00100
)이 연접되어 구성되는 384 비트수를 갖는 확장 메시지(
Figure 112013047649312-pat00101
,
Figure 112013047649312-pat00102
)를 생성한다.
Figure 112013047649312-pat00103
이때, 메시지 확장부(100)는 하기의 수학식 3에 기초하여 512비트 메시지(
Figure 112013047649312-pat00104
)로부터 총 32개의 384비트 확장 메시지들(
Figure 112013047649312-pat00105
,
Figure 112013047649312-pat00106
, … ,
Figure 112013047649312-pat00107
,
Figure 112013047649312-pat00108
;
Figure 112013047649312-pat00109
,
Figure 112013047649312-pat00110
)을 생성한다.
Figure 112013047649312-pat00111
여기서,
Figure 112013047649312-pat00112
은 (12r+1)을 16으로 나누었을 때의 나머지를 출력하는 연산을 의미한다. 한편, 메시지 확장부(100)는 입력된 512비트 메시지(
Figure 112013047649312-pat00113
)로부터 생성한 32개의 384비트 확장 메시지들(
Figure 112013047649312-pat00114
,
Figure 112013047649312-pat00115
, … ,
Figure 112013047649312-pat00116
,
Figure 112013047649312-pat00117
;
Figure 112013047649312-pat00118
,
Figure 112013047649312-pat00119
)을 단계 함수 연산부(300)로 출력한다.
연쇄변수 초기 변환부(200)는 압축 연산 수행 장치(10)에 별도로 구비되는 인터페이스 또는 외부에 위치하는 연쇄변수 생성 수단(미도시)으로부터 512 비트수를 갖는 연쇄변수 데이터(CV)를 입력받고, 이를 512 비트수를 갖는 초기 상태 데이터(X0)로 변환한다. 이때, 연쇄변수 초기 변환부(200)로 입력되는 512비트 연쇄변수 데이터(CV)는 하기의 수학식 4로 표현되는 바와 같이 각각 32 비트수를 갖는 16개의 서브 연쇄변수 데이터들(
Figure 112013047649312-pat00120
,
Figure 112013047649312-pat00121
, … ,
Figure 112013047649312-pat00122
,
Figure 112013047649312-pat00123
)이 연접되어 구성된다.
Figure 112013047649312-pat00124
연쇄변수 초기 변환부(200)는 입력된 512비트 연쇄변수 데이터(
Figure 112013047649312-pat00125
)를 하기의 수학식 5로 표현되는 바와 같이 16개의 32 비트수를 갖는 초기 서브 상태 데이터들(
Figure 112013047649312-pat00126
,
Figure 112013047649312-pat00127
, … ,
Figure 112013047649312-pat00128
,
Figure 112013047649312-pat00129
)이 연접되어 구성되는 512 비트수를 갖는 초기 상태 데이터(X0)로 변환한다.
Figure 112013047649312-pat00130
이때, 연쇄변수 초기 변환부(200)는 하기의 수학식 6에 기초하여 512비트 연쇄변수 데이터(
Figure 112013047649312-pat00131
)를 512비트 초기 상태 데이터(
Figure 112013047649312-pat00132
)로 변환한다.
Figure 112013047649312-pat00133
연쇄변수 초기 변환부(200)는 입력된 512비트 연쇄변수 데이터(
Figure 112013047649312-pat00134
)로부터 변환한 512비트 초기 상태 데이터(
Figure 112013047649312-pat00135
)를 단계 함수 연산부(300)로 출력한다.
단계 함수 연산부(300)는 연쇄변수 초기 변환부(200)로부터 입력받은 512비트 초기 상태 데이터(
Figure 112013047649312-pat00136
)를 초기값으로, 메시지 확장부(100)로부터 입력받은 32개의 384비트 확장 메시지들(
Figure 112013047649312-pat00137
,
Figure 112013047649312-pat00138
, … ,
Figure 112013047649312-pat00139
,
Figure 112013047649312-pat00140
;
Figure 112013047649312-pat00141
,
Figure 112013047649312-pat00142
)을 이용하여 하기의 수학식 7 내지 수학식 11의 연산이 수행되는 단계 함수를 반복 연산하여 최종 상태 데이터를 산출한다.
Figure 112013047649312-pat00143
Figure 112013047649312-pat00144
Figure 112013047649312-pat00145
Figure 112013047649312-pat00146
Figure 112013047649312-pat00147
여기서,
Figure 112013047649312-pat00148
는 각각 32비트인 x, y의 논리적 배타합을 출력하는 연산을 의미하고,
Figure 112013047649312-pat00149
는 각각 32비트인 x, y를 양의 정수로 표현한 값의 합을 232로 나누었을 때의 나머지를 32비트로 출력하는 연산을 의미하며,
Figure 112013047649312-pat00150
는 32비트인 x를 왼쪽으로 a비트만큼 순환이동시켜 출력하는 연산을 의미한다. 이때, 단계 함수 연산부(300)는 n(
Figure 112013047649312-pat00151
)회째 단계 함수에서 수학식 7에 따른 연산을 먼저 수행한 후, 수학식 8 내지 수학식 11에 따른 연산을 병렬적으로 수행할 수 있다. 단계 함수 연산부(300)는 상기의 수학식 7 내지 수학식 11과 같은 단계 함수를 32회 반복하여 연산하고, 단계 함수를 32회째 연산한 결과값들(
Figure 112013047649312-pat00152
,
Figure 112013047649312-pat00153
, … ,
Figure 112013047649312-pat00154
,
Figure 112013047649312-pat00155
)을 하기의 수학식 12와 같이 연접하여 최종 상태 데이터(X32)를 산출한다. 단계 함수 연산부(300)는 단계 함수를 반복 연산하여 산출한 최종 상태 데이터(X32)를 연쇄변수 최종 변환부(400)로 출력한다.
Figure 112013047649312-pat00156
한편, 단계 함수 연산부(300)가 서브 상태 데이터들(
Figure 112013047649312-pat00157
,
Figure 112013047649312-pat00158
, … ,
Figure 112013047649312-pat00159
,
Figure 112013047649312-pat00160
)과 서브 확장 메시지들(
Figure 112013047649312-pat00161
,
Figure 112013047649312-pat00162
, … ,
Figure 112013047649312-pat00163
,
Figure 112013047649312-pat00164
)을 입력값으로 (r+1)회째 단계 함수를 연산함으로써 서브 상태 데이터들(
Figure 112013047649312-pat00165
,
Figure 112013047649312-pat00166
, … ,
Figure 112013047649312-pat00167
,
Figure 112013047649312-pat00168
)을 산출하는 연산은 도 2에 도시된 바와 같이 나타낼 수 있다.
연쇄변수 최종 변환부(400)는 단계 함수 연산부(300)로부터 입력받은 최종 상태 데이터(
Figure 112013047649312-pat00169
)를 이용하여 연쇄변수 초기 변환부(200)에 입력되는 연쇄변수 데이터(
Figure 112013047649312-pat00170
)를 갱신하고, 갱신된 연쇄변수 데이터(
Figure 112013047649312-pat00171
)를 출력한다. 이때, 연쇄변수 최종 변환부(400)는 하기의 수학식 13에 기초하여 512 비트수를 갖는 연쇄변수 데이터(
Figure 112013047649312-pat00172
)를 갱신한 연쇄변수 데이터(
Figure 112013047649312-pat00173
)를 생성한다.
Figure 112013047649312-pat00174
연쇄변수 최종 변환부(400)로부터 출력되는 갱신된 512비트 연쇄변수 데이터(
Figure 112013047649312-pat00175
)는 이미 공지된 다양한 알고리즘에 따라 가공되어 메시지 확장부(100)로 입력되는 512비트 메시지(
Figure 112013047649312-pat00176
)에 대한 해시값으로 이용된다.
이하에서는 도 3 및 도 4를 참조하여, 본 발명에 따른 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치에 의해 수행되는 압축 연산 수행 방법에 대하여 설명하도록 한다. 앞서, 도 1 및 도 2를 참조하여 설명한 본 발명에 따른 압축 연산 수행 장치(10)의 동작과 일부 중복되는 부분은 생략하여 설명하기로 한다.
도 3은 본 발명에 따른 해시 알고리즘에서의 압축 연산을 수행하기 위한 방법을 설명하기 위한 흐름도이다.
도 3을 참조하면, 본 발명에 따른 압축 연산 수행 방법은, 먼저 메시지 확장부(100)가 사용자 인터페이스를 통해 압축 및 암호화의 대상이 되는 512비트 메시지(
Figure 112013047649312-pat00177
)를 입력받는다(S100).
그 다음으로, 메시지 확장부(100)는 수학식 3에 기초하여, 16개의 32비트 서브 메시지들(
Figure 112013047649312-pat00178
,
Figure 112013047649312-pat00179
, … ,
Figure 112013047649312-pat00180
,
Figure 112013047649312-pat00181
)이 연접되어 구성된 512비트 메시지(
Figure 112013047649312-pat00182
)로부터 각각 12개의 32비트 서브 확장 메시지들(
Figure 112013047649312-pat00183
,
Figure 112013047649312-pat00184
, … ,
Figure 112013047649312-pat00185
,
Figure 112013047649312-pat00186
)이 연접되어 구성되는 32개의 384비트 확장 메시지들(
Figure 112013047649312-pat00187
,
Figure 112013047649312-pat00188
, … ,
Figure 112013047649312-pat00189
,
Figure 112013047649312-pat00190
;
Figure 112013047649312-pat00191
,
Figure 112013047649312-pat00192
)을 생성한다(S200). 이때, 메시지 확장부(100)는 생성한 32개의 384비트 확장 메시지들(
Figure 112013047649312-pat00193
,
Figure 112013047649312-pat00194
)을 단계 함수 연산부(300)로 출력한다.
한편, 연쇄변수 초기 변환부(200)는 사용자 인터페이스 또는 외부의 연쇄변수 생성 수단으로부터 16개의 32비트 서브 연쇄변수 데이터들(
Figure 112013047649312-pat00195
,
Figure 112013047649312-pat00196
, … ,
Figure 112013047649312-pat00197
,
Figure 112013047649312-pat00198
)이 연접되어 구성된 512비트 연쇄변수 데이터(
Figure 112013047649312-pat00199
)를 입력받고, 수학식 6에 기초하여 512비트 연쇄변수 데이터(
Figure 112013047649312-pat00200
)를 16개의 32비트 초기 서브 상태 데이터들(
Figure 112013047649312-pat00201
,
Figure 112013047649312-pat00202
, … ,
Figure 112013047649312-pat00203
,
Figure 112013047649312-pat00204
)이 연접되어 구성되는 512비트 초기 상태 데이터(
Figure 112013047649312-pat00205
)로 변환한다(S300). 이때, 연쇄변수 초기 변환부(200)는 변환한 512비트 초기 상태 데이터(
Figure 112013047649312-pat00206
)를 단계 함수 연산부(300)로 출력한다.
그 다음으로, 단계 함수 연산부(300)는 메시지 확장부(100)로부터 수신한 32개의 384비트 확장 메시지들(
Figure 112013047649312-pat00207
,
Figure 112013047649312-pat00208
)과 연쇄변수 초기 변환부(200)로부터 수신한 512비트 초기 상태 데이터(
Figure 112013047649312-pat00209
)에 기초하여 수학식 7 내지 수학식 11과 같이 표현되는 단계 함수를 반복하여 연산한다(S400). 이때, 단계 함수 연산부(300)는 각각 32 비트수를 갖는 16개의 초기 서브 상태 데이터들(
Figure 112013047649312-pat00210
,
Figure 112013047649312-pat00211
, … ,
Figure 112013047649312-pat00212
,
Figure 112013047649312-pat00213
)을 1회째 단계 함수의 입력값으로 하고, (r+1)회째 단계 함수의 연산 시에 각각 32비트수를 갖는 12개의 서브 확장 메시지들(
Figure 112013047649312-pat00214
,
Figure 112013047649312-pat00215
, … ,
Figure 112013047649312-pat00216
,
Figure 112013047649312-pat00217
)을 적용하여 단계 함수를 32회 반복하여 연산한다.
그리고, 단계 함수 연산부(300)는 마지막으로 연산된 단계 함수의 결과값들(즉, 32회째에 연산된 단계 함수의 결과값들;
Figure 112013047649312-pat00218
,
Figure 112013047649312-pat00219
, … ,
Figure 112013047649312-pat00220
,
Figure 112013047649312-pat00221
)을 연접하여 512비트 최종 상태 데이터(
Figure 112013047649312-pat00222
)를 산출한다(S500). 이때, 단계 함수 연산부(300)는 산출한 512비트 최종 상태 데이터(
Figure 112013047649312-pat00223
)를 연쇄변수 최종 변환부(400)로 출력한다.
마지막으로, 연쇄변수 최종 변환부(400)는 단계 함수 연산부(300)로부터 수신한 512비트 최종 상태 데이터(
Figure 112013047649312-pat00224
)를 이용하여 연쇄변수 초기 변환부(200)로 입력되는 512비트 연쇄변수 데이터(
Figure 112013047649312-pat00225
)를 갱신하여 출력한다(S600). 이때, 연쇄변수 최종 변환부(400)는 수학식 13에 기초하여 연쇄변수 초기 변환부(200)로 입력되는 512비트 연쇄변수 데이터(
Figure 112013047649312-pat00226
)를 갱신하고, 갱신된 512비트 연쇄변수 데이터(
Figure 112013047649312-pat00227
)를 생성하여 출력한다(S600).
도 4는 도 3에 도시된 본 발명에 따른 해시 알고리즘에서의 압축 연산을 수행하기 위한 방법을 나타낸 흐름도에서, 단계 함수를 반복하여 연산하는 S400 단계를 보다 구체적으로 설명하기 위한 흐름도이다.
도 4를 참조하면, 단계 함수를 반복하여 연산하는 S400 단계는, 먼저 단계 함수 연산부(300)가 메시지 확장부(100)로부터 32개의 384비트 확장 메시지들(,
Figure 112013047649312-pat00229
)을 입력받는 한편, 연쇄변수 초기 변환부(200)로부터 512비트 초기 상태 데이터(
Figure 112013047649312-pat00230
)를 입력받는다(S410).
그 다음으로, 단계 함수 연산부(300)는 r값을 0으로 설정한 후, 초기 서브 상태 데이터들(
Figure 112013047649312-pat00231
,
Figure 112013047649312-pat00232
, … ,
Figure 112013047649312-pat00233
,
Figure 112013047649312-pat00234
)을 입력값으로 하여 1회째 단계 함수의 연산을 시작한다(S420).
그리고, (r+1)회째 단계 함수의 연산에서, 단계 함수 연산부(300)는 수학식 7(
Figure 112013047649312-pat00235
)에 따라
Figure 112013047649312-pat00236
값을 먼저 계산하고(S430), 수학식 8(
Figure 112013047649312-pat00237
), 수학식 9(
Figure 112013047649312-pat00238
), 수학식 10(
Figure 112013047649312-pat00239
), 및 수학식 11(
Figure 112013047649312-pat00240
)에 따라 결과값들(
Figure 112013047649312-pat00241
,
Figure 112013047649312-pat00242
, … ,
Figure 112013047649312-pat00243
,
Figure 112013047649312-pat00244
;
Figure 112013047649312-pat00245
,
Figure 112013047649312-pat00246
)을 산출한다(S440).
상기 S430 내지 S440 단계에 따라 (r+1)회째 단계 함수의 연산이 수행된 다음, r값이 31인지 여부를 확인한다(S450).
상기 S450 단계에서의 확인 결과, r값이 31이 아니라면(즉, r값이 31 보다 작다면), 단계 함수 연산부(300)는 r값을 1 증가시키고(S460), 상기 S430 내지 S440 단계에 따라 단계 함수를 반복하여 연산한다.
반면에, 상기 S450 단계에서의 확인 결과, r값이 31이라면, 32회째 단계 함수의 연산에서 출력된 결과값들(
Figure 112013047649312-pat00247
,
Figure 112013047649312-pat00248
, … ,
Figure 112013047649312-pat00249
,
Figure 112013047649312-pat00250
)을 연접하여 512비트 최종 상태 데이터(
Figure 112013047649312-pat00251
)를 출력한다(S470).
한편, 본 발명에 따른 해시 알고리즘에서의 압축 연산을 수행하기 위한 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터로 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터로 판독 가능한 기록 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 기록 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터로 판독 가능한 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 모든 형태의 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상에서와 같이 도면과 명세서에서 최적의 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10: 압축 연산 수행 장치
100: 메시지 확장부
200: 연쇄변수 초기 변환부
300: 단계 함수 연산부
400: 연쇄변수 최종 변환부

Claims (12)

  1. 메시지를 입력받아 복수의 확장 메시지를 생성하는 메시지 확장부;
    연쇄변수 데이터를 입력받아 초기 상태 데이터로 변환하는 연쇄변수 초기 변환부;
    상기 초기 상태 데이터와 상기 복수의 확장 메시지를 기초로 단계 함수를 반복 연산하여 최종 상태 데이터를 산출하는 단계 함수 연산부; 및
    상기 최종 상태 데이터를 이용하여 상기 연쇄변수 데이터로부터 갱신된 연쇄변수 데이터를 생성하여 출력하는 연쇄변수 최종 변환부를 포함하는 것을 특징으로 하는, 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치.
  2. 청구항 1에 있어서,
    상기 메시지 확장부는,
    16개의 32비트 서브 메시지들(
    Figure 112013047649312-pat00252
    ,
    Figure 112013047649312-pat00253
    , … ,
    Figure 112013047649312-pat00254
    ,
    Figure 112013047649312-pat00255
    )이 연접되어 구성된 512비트 메시지(
    Figure 112013047649312-pat00256
    )를 입력받아, 수학식
    Figure 112013047649312-pat00257
    에 기초하여 각각 12개의 32비트 서브 확장 메시지들(
    Figure 112013047649312-pat00258
    ,
    Figure 112013047649312-pat00259
    , … ,
    Figure 112013047649312-pat00260
    ,
    Figure 112013047649312-pat00261
    )이 연접되어 구성되는 32개의 384비트 확장 메시지(
    Figure 112013047649312-pat00262
    )를 생성하는 것을 특징으로 하는, 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치.(여기서, r은
    Figure 112013047649312-pat00263
    인 정수이고,
    Figure 112013047649312-pat00264
    은 x를 16으로 나누었을 때의 나머지를 출력하는 연산을 의미한다.)
  3. 청구항 2에 있어서,
    상기 연쇄변수 초기 변환부는,
    16개의 32비트 서브 연쇄변수 데이터들(
    Figure 112013047649312-pat00265
    ,
    Figure 112013047649312-pat00266
    , … ,
    Figure 112013047649312-pat00267
    ,
    Figure 112013047649312-pat00268
    )이 연접되어 구성된 512비트 연쇄변수 데이터(
    Figure 112013047649312-pat00269
    )를 입력받아, 수학식
    Figure 112013047649312-pat00270
    에 기초하여 16개의 32비트 초기 서브 상태 데이터들(
    Figure 112013047649312-pat00271
    ,
    Figure 112013047649312-pat00272
    , … ,
    Figure 112013047649312-pat00273
    ,
    Figure 112013047649312-pat00274
    )이 연접되어 구성되는 512비트 초기 상태 데이터(
    Figure 112013047649312-pat00275
    )로 변환하는 것을 특징으로 하는, 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치.
  4. 청구항 3에 있어서,
    상기 단계 함수 연산부는,
    상기 512비트 초기 상태 데이터(
    Figure 112013047649312-pat00276
    )와 상기 32개의 384비트 확장 메시지(
    Figure 112013047649312-pat00277
    )를 기초로 상기 단계 함수를 반복 연산하여 상기 최종 상태 데이터를 산출하고,
    상기 단계 함수는 하기의 수학식 1 내지 5를 연산하는 함수인 것을 특징으로 하는, 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치.
    수학식 1;
    Figure 112013047649312-pat00278

    수학식 2;
    Figure 112013047649312-pat00279

    수학식 3;
    Figure 112013047649312-pat00280

    수학식 4;
    Figure 112013047649312-pat00281

    수학식 5;
    Figure 112013047649312-pat00282

    (여기서,
    Figure 112013047649312-pat00283
    는 각각 32비트인 x, y의 논리적 배타합을 출력하는 연산,
    Figure 112013047649312-pat00284
    는 각각 32비트인 x, y를 양의 정수로 표현한 값의 합을 232로 나누었을 때의 나머지를 32비트로 출력하는 연산,
    Figure 112013047649312-pat00285
    는 32비트인 x를 왼쪽으로 a비트만큼 순환이동시켜 출력하는 연산을 의미한다.)
  5. 청구항 4에 있어서,
    상기 단계 함수 연산부는,
    상기 단계 함수를 r에 대해 0에서 31까지 32회 반복하여 연산하여, 16개의 32비트 최종 서브 상태 데이터들(
    Figure 112013047649312-pat00286
    ,
    Figure 112013047649312-pat00287
    , … ,
    Figure 112013047649312-pat00288
    ,
    Figure 112013047649312-pat00289
    )이 연접되어 구성되는 512비트 최종 상태 데이터(
    Figure 112013047649312-pat00290
    )를 산출하는 것을 특징으로 하는, 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치.
  6. 청구항 5에 있어서,
    상기 연쇄변수 최종 변환부는,
    수학식
    Figure 112013047649312-pat00291
    에 기초하여 512비트 연쇄변수 데이터(
    Figure 112013047649312-pat00292
    )를 갱신하고, 갱신된 512비트 연쇄변수 데이터(
    Figure 112013047649312-pat00293
    )를 출력하는 것을 특징으로 하는, 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치.
  7. 메시지 확장부가, 메시지를 입력받아 복수의 확장 메시지를 생성하는 단계;
    연쇄변수 초기 변환부가, 연쇄변수 데이터를 입력받아 초기 상태 데이터로 변환하는 단계;
    단계 함수 연산부가, 상기 초기 상태 데이터와 상기 복수의 확장 메시지를 기초로 단계 함수를 반복 연산하여 최종 상태 데이터를 산출하는 단계; 및
    연쇄변수 최종 변환부가, 상기 최종 상태 데이터를 이용하여 상기 연쇄변수 데이터로부터 갱신된 연쇄변수 데이터를 생성하여 출력하는 하는 단계를 포함하는 것을 특징으로 하는, 해시 알고리즘에서의 압축 연산을 수행하기 위한 방법.
  8. 청구항 7에 있어서,
    상기 복수의 확장 메시지를 생성하는 단계는,
    16개의 32비트 서브 메시지들(
    Figure 112013047649312-pat00294
    ,
    Figure 112013047649312-pat00295
    , … ,
    Figure 112013047649312-pat00296
    ,
    Figure 112013047649312-pat00297
    )이 연접되어 구성된 512비트 메시지(
    Figure 112013047649312-pat00298
    )를 입력받아, 수학식
    Figure 112013047649312-pat00299
    에 기초하여 각각 12개의 32비트 서브 확장 메시지들(
    Figure 112013047649312-pat00300
    ,
    Figure 112013047649312-pat00301
    , … ,
    Figure 112013047649312-pat00302
    ,
    Figure 112013047649312-pat00303
    )이 연접되어 구성되는 32개의 384비트 확장 메시지(
    Figure 112013047649312-pat00304
    )를 생성하는 것을 특징으로 하는, 해시 알고리즘에서의 압축 연산을 수행하기 위한 방법.(여기서, r은
    Figure 112013047649312-pat00305
    인 정수이고,
    Figure 112013047649312-pat00306
    은 x를 16으로 나누었을 때의 나머지를 출력하는 연산을 의미한다.)
  9. 청구항 8에 있어서,
    상기 연쇄변수 데이터를 입력받아 상기 초기 상태 데이터로 변환하는 단계는,
    16개의 32비트 서브 연쇄변수 데이터들(
    Figure 112013047649312-pat00307
    ,
    Figure 112013047649312-pat00308
    , … ,
    Figure 112013047649312-pat00309
    ,
    Figure 112013047649312-pat00310
    )이 연접되어 구성된 512비트 연쇄변수 데이터(
    Figure 112013047649312-pat00311
    )를 입력받아, 수학식
    Figure 112013047649312-pat00312
    에 기초하여 16개의 32비트 초기 서브 상태 데이터들(
    Figure 112013047649312-pat00313
    ,
    Figure 112013047649312-pat00314
    , … ,
    Figure 112013047649312-pat00315
    ,
    Figure 112013047649312-pat00316
    )이 연접되어 구성되는 512비트 초기 상태 데이터(
    Figure 112013047649312-pat00317
    )로 변환하는 것을 특징으로 하는, 해시 알고리즘에서의 압축 연산을 수행하기 위한 방법.
  10. 청구항 9에 있어서,
    상기 단계 함수를 반복 연산하여 상기 최종 상태 데이터를 산출하는 단계는,
    상기 512비트 초기 상태 데이터(
    Figure 112013047649312-pat00318
    )와 상기 32개의 384비트 확장 메시지(
    Figure 112013047649312-pat00319
    )를 기초로 상기 단계 함수를 반복 연산하여 상기 최종 상태 데이터를 산출하고,
    상기 단계 함수는 하기의 수학식 1 내지 5를 연산하는 함수인 것을 특징으로 하는, 해시 알고리즘에서의 압축 연산을 수행하기 위한 방법.
    수학식 1;
    Figure 112013047649312-pat00320

    수학식 2;
    Figure 112013047649312-pat00321

    수학식 3;
    Figure 112013047649312-pat00322

    수학식 4;
    Figure 112013047649312-pat00323

    수학식 5;
    Figure 112013047649312-pat00324

    (여기서,
    Figure 112013047649312-pat00325
    는 각각 32비트인 x, y의 논리적 배타합을 출력하는 연산,
    Figure 112013047649312-pat00326
    는 각각 32비트인 x, y를 양의 정수로 표현한 값의 합을 232로 나누었을 때의 나머지를 32비트로 출력하는 연산,
    Figure 112013047649312-pat00327
    는 32비트인 x를 왼쪽으로 a비트만큼 순환이동시켜 출력하는 연산을 의미한다.)
  11. 청구항 10에 있어서,
    상기 단계 함수를 반복 연산하여 상기 최종 상태 데이터를 산출하는 단계는,
    상기 단계 함수를 r에 대해 0에서 31까지 32회 반복하여 연산하여, 16개의 32비트 최종 서브 상태 데이터들(
    Figure 112013047649312-pat00328
    ,
    Figure 112013047649312-pat00329
    , … ,
    Figure 112013047649312-pat00330
    ,
    Figure 112013047649312-pat00331
    )이 연접되어 구성되는 512비트 최종 상태 데이터(
    Figure 112013047649312-pat00332
    )를 산출하는 것을 특징으로 하는, 해시 알고리즘에서의 압축 연산을 수행하기 위한 방법.
  12. 청구항 11에 있어서,
    상기 연쇄변수 데이터로부터 갱신된 연쇄변수 데이터를 생성하여 출력하는 하는 단계는,
    수학식
    Figure 112013047649312-pat00333
    에 기초하여 512비트 연쇄변수 데이터(
    Figure 112013047649312-pat00334
    )를 갱신하고, 갱신된 512비트 연쇄변수 데이터(
    Figure 112013047649312-pat00335
    )를 출력하는 것을 특징으로 하는, 해시 알고리즘에서의 압축 연산을 수행하기 위한 방법.



KR20130060863A 2013-05-29 2013-05-29 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치 및 방법 KR101428770B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR20130060863A KR101428770B1 (ko) 2013-05-29 2013-05-29 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치 및 방법
US14/155,756 US9288041B2 (en) 2013-05-29 2014-01-15 Apparatus and method for performing compression operation in hash algorithm
JP2014005890A JP5728596B2 (ja) 2013-05-29 2014-01-16 ハッシュアルゴリズムにおける圧縮演算を行うための装置および方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20130060863A KR101428770B1 (ko) 2013-05-29 2013-05-29 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101428770B1 true KR101428770B1 (ko) 2014-08-08

Family

ID=51750076

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130060863A KR101428770B1 (ko) 2013-05-29 2013-05-29 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치 및 방법

Country Status (3)

Country Link
US (1) US9288041B2 (ko)
JP (1) JP5728596B2 (ko)
KR (1) KR101428770B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160090646A (ko) * 2015-01-22 2016-08-01 한국전자통신연구원 고속 메시지 해싱을 위한 압축함수를 제공하는 연산 방법 및 그 장치

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201501437A (zh) * 2013-06-26 2015-01-01 Dawnary Tech Co Ltd 直連式介質轉換器
KR101516573B1 (ko) * 2013-07-26 2015-05-04 한국전자통신연구원 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080025354A (ko) * 2006-09-15 2008-03-20 고려대학교 산학협력단 256비트 출력을 갖는 해쉬 알고리즘

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5897662A (en) * 1995-08-18 1999-04-27 International Business Machines Corporation Pseudo-random address generation mechanism that reduces address translation time
US20030041242A1 (en) * 2001-05-11 2003-02-27 Sarver Patel Message authentication system and method
US20060034456A1 (en) * 2002-02-01 2006-02-16 Secure Choice Llc Method and system for performing perfectly secure key exchange and authenticated messaging
JP2003302901A (ja) * 2002-04-11 2003-10-24 Sony Corp セルラーオートマタを適用したハッシュ値算出処理方法およびデータ処理装置
JP2010128392A (ja) 2008-11-28 2010-06-10 Canon Inc ハッシュ処理装置及びその方法
TWI501580B (zh) * 2009-08-07 2015-09-21 Dolby Int Ab 資料串流的鑑別
CN103477341B (zh) * 2011-04-06 2016-05-18 塞尔蒂卡姆公司 散列算法在处理器上的有效实现

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080025354A (ko) * 2006-09-15 2008-03-20 고려대학교 산학협력단 256비트 출력을 갖는 해쉬 알고리즘

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160090646A (ko) * 2015-01-22 2016-08-01 한국전자통신연구원 고속 메시지 해싱을 위한 압축함수를 제공하는 연산 방법 및 그 장치
KR101688636B1 (ko) * 2015-01-22 2016-12-21 한국전자통신연구원 고속 메시지 해싱을 위한 압축함수를 제공하는 연산 방법 및 그 장치
US9843442B2 (en) 2015-01-22 2017-12-12 Electronics And Telecommunications Research Institute Operation method and apparatus for providing compression function for fast message hashing

Also Published As

Publication number Publication date
US20140355755A1 (en) 2014-12-04
JP2014232301A (ja) 2014-12-11
US9288041B2 (en) 2016-03-15
JP5728596B2 (ja) 2015-06-03

Similar Documents

Publication Publication Date Title
EP3758281A1 (en) Fast xmss signature verification and nonce sampling process without signature expansion
KR101330664B1 (ko) 저전력 암호화 장치 및 방법
CN111464308A (zh) 一种实现多种哈希算法可重构的方法和系统
JP6044738B2 (ja) 情報処理装置、プログラム及び記憶媒体
KR101428770B1 (ko) 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치 및 방법
CN111370064A (zh) 基于simd的哈希函数的基因序列快速分类方法及系统
EP3758290A1 (en) Parallel processing techniques for hash-based signature algorithms
US20140153725A1 (en) Low-power encryption apparatus and method
US20120069998A1 (en) Encryption device
JP5202350B2 (ja) 暗号処理装置及び暗号処理方法及び暗号処理プログラム
JP5752337B1 (ja) 情報処理システム、情報処理方法およびプログラム
KR101516573B1 (ko) 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치 및 방법
JP5858938B2 (ja) 計算装置、計算システム、計算方法
US8312363B2 (en) Residue generation
US9843442B2 (en) Operation method and apparatus for providing compression function for fast message hashing
CN113971015B (zh) Uia2计算电路及其数据处理方法、芯片、电子设备及存储介质
JP5791562B2 (ja) 圧縮関数演算装置、圧縮関数演算方法、およびプログラム
WO2022127085A1 (zh) 执行哈希算法的电路、计算芯片、数据处理设备和方法
KR20230161195A (ko) 영지식 증명 친화적인 일방향 함수를 이용한 연산 방법, 그리고 이를 구현하기 위한 장치
KR101541157B1 (ko) 이진 확장 유한체 곱셈 연산을 수행하는 방법
WO2018094566A1 (zh) 并行哈希函数的构造方法
KR101508495B1 (ko) 아리아 암호화 장치 및 방법
JP2013195453A (ja) 演算装置
JP2009258437A (ja) べき乗計算装置及びプログラム
JP2007266879A (ja) データ変換装置及びデータ変換方法及びデータ変換プログラム

Legal Events

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

Payment date: 20170703

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180625

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190701

Year of fee payment: 6