KR100916805B1 - 256비트 출력을 갖는 해쉬 알고리즘 - Google Patents

256비트 출력을 갖는 해쉬 알고리즘 Download PDF

Info

Publication number
KR100916805B1
KR100916805B1 KR1020070094428A KR20070094428A KR100916805B1 KR 100916805 B1 KR100916805 B1 KR 100916805B1 KR 1020070094428 A KR1020070094428 A KR 1020070094428A KR 20070094428 A KR20070094428 A KR 20070094428A KR 100916805 B1 KR100916805 B1 KR 100916805B1
Authority
KR
South Korea
Prior art keywords
message
output
sub
bit
bits
Prior art date
Application number
KR1020070094428A
Other languages
English (en)
Other versions
KR20080025354A (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 고려대학교 산학협력단
Publication of KR20080025354A publication Critical patent/KR20080025354A/ko
Application granted granted Critical
Publication of KR100916805B1 publication Critical patent/KR100916805B1/ko

Links

Images

Classifications

    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 그 구현에 있어서 효율성이 크게 향상되며, 강한 안전성을 갖는 256비트 출력을 갖는 해쉬 알고리즘에 관한 것이다.
본 발명에 따르면, 임의의 길이의 메시지 비트열을 입력받아 워드열로 변환하는 단계, 상기 입력된 메시지를 기설정된 비트로 변환하는 단계 및 상기 기설정된 비트로 변환된 메시지를 입력받아서 압축을 수행하는 단계를 포함한다.
해쉬, 압축

Description

256비트 출력을 갖는 해쉬 알고리즘{Method of hash algorithms having 256 bit output}
본 발명은 새로운 256비트 출력을 갖는 해쉬 알고리즘에 관한 것으로, 특히 고속 소프트웨어 환경에 적합하고 128비트 이상의 안전도를 갖는 256비트 출력을 갖는 해쉬 알고리즘에 관한 것이다.
최근 미국 국립기술표준원에서는 256비트 이상의 출력크기를 갖는 SHA-256, 384, 512 알고리즘을 표준으로 제정하였다. 이는 컴퓨팅 파워의 증가로 인해 160비트 출력 크기를 갖는 알고리즘을 대체할 필요성이 대두되었기 때문이다. 그러나 국내 표준 해쉬 함수 알고리즘인 HAS-160의 경우, 160비트의 출력값을 갖기 때문에 국제 수준에서 요구되는 안전성을 제공하지 못한다. 따라서 고속 소프트웨어 환경에 적합한 256비트 출력을 갖는 해쉬 함수 알고리즘의 설계는 이 분야의 연구 초점이라 할 수 있다.
그러므로 본 발명의 목적은 256비트의 출력값을 갖고, 기존 공격에 대한 안전성을 제공하면서, 미국 표준 해쉬 함수 알고리즘인 SHA-256 이상의 효율성을 가지는 256비트 출력을 갖는 해쉬 알고리즘을 제공하는 데 있다.
이러한 목적을 이루기 위한 본 발명의 256비트 출력을 갖는 해쉬 알고리즘은 임의의 길이의 메시지 비트열을 입력받아 워드열로 변환하는 단계, 상기 입력된 메시지를 기설정된 비트로 변환하는 단계 및 상기 기설정된 비트로 변환된 메시지를 입력받아서 압축연산을 수행하는 단계를 포함한다.
상기 압축 연산의 수행은 복수의 압축 함수부가 수행하며, 상기 각 압축 함수부는 제 i 연쇄변수 및 분할된 메시지를 입력받아서 브랜치 함수부에서 연산하는 단계, 이웃하는 두 브랜치 함수부에서 출력된 서브 연쇄변수들간에 덧셈 연산을 수행하는 단계, 상기 덧셈 연산에서 출력된 값의 배타적 논리합 연산을 수행하는 단계 및 상기 배타적 논리합 연산에서 출력된 값과 상기 제 i 연쇄변수와의 덧셈연산을 수행하는 단계를 포함한다.
본 발명의 256비트 출력을 갖는 해쉬 알고리즘은 그 구현에 있어서 효율성이 크게 향상되며, 강한 안전성을 갖게 된다.
이하 첨부된 도면을 참조하여 본 발명의 256비트 출력을 갖는 해쉬 알고리즘을 상세히 설명한다.
도 1은 본 발명의 해쉬 함수 압축 장치의 구성을 나타낸 블록도이다. 도시된 바와 같이, 본 발명의 해쉬 함수 압축 장치는 비트열 변환부(100), 메시지 완성부(110) 및 압축 연산부(120)를 포함한다.
상기 비트열 변환부(100)는 임의의 길이 메시지의 비트열을 입력받아 워드열로 변환한다. 비트열 변환부(100)는 임의의 길이 메시지의 비트열에서 32비트 비트열을 4바이트의 문자열로 보고, 첫번째 바이트가 워드의 최하위 바이트가 되며, 첫번째 4바이트를 첫번째 워드로 두번째 4바이트를 두 번째 워드로 변환하는 과정을 반복하여 입력받은 메시지의 비트열을 워드열로 변환한다.
예를들면, 비트열 연산부는 입력되는 메시지가 10100010 0011101 11100101 01101011 11001001 10001010 10011101이라 한다. 상기 입력된 메시지를 워드로 변환하면 첫번째 4바이트는 6be539a2가 되며, 두번째 4바이트는 809d8ac9이 된다. 비트열 변환부(100)는 4바이트를 하나의 그룹으로 연산이 이루어지는데, 입력되는 메시지는 7바이트로 이루어져서, 하위 바이트가 4바이트로 형성되는 것이 아닌 3바이트로 형성된다. 비트열 변환부(100)는 하위 바이트가 4바이트로 형성되지 않은 경우에, 4바이트를 형성하기 위하여 100000…의 값으로 하위 바이트를 처리한다. 즉, 비트열 변환부(100)는 상기 입력되는 메시지의 최하위 3 바이트인 11001001 10001010 10011101에 10000000을 덧붙여서 4바이트를 형성한다. 그러므로 입력되는 메시지에 10000000이 덧붙여진 두번째 4바이트를 워드로 변환하는 경우에, 10000000의 워드로의 변환인 80이 덧붙여진다.
메시지 완성부(110)는 입력되는 메시지를 기설정된 비트로 변환한다. 본 발명에서는 입력되는 메시지는 512비트 단위로 처리되므로, 입력되는 메시지가 512비트가 아닌 경우에 512비트로 변환시킨다. 메시지 완성부(110)는 입력되는 메시지가 512비트가 아닌 경우에, 메시지의 길이가 448비트가 될 때까지 입력된 메시지에 0을 채운다. 그리고 마지막 64비트에는 입력되는 메시지의 길이를 표현한다. 메시지의 길이도 역시 워드로 변환되어 표현되고, 마지막 64비트에 표현되는 메시지의 길이는 64비트 중에서 상위 32비트에 먼저 표현된다.
상기 예에서와 같이 7바이트의 메시지가 입력되는 경우에, 메지시 완성부는 입력되는 메시지가 512비트가 아니므로, 메시지의 길이가 448비트가 될때까지 입력된 메시지에 0을 채운다. 즉, 입력된 메시지 뒤에 96개의 0이 채워진다. 그리고 마지막 64비트는 입력된 비트열의 길이로 표현되는데, 입력된 메시지의 길이가 56=111000이므로 이를 워드로 변환한 38이 마지막 64비트에 표현된다. 상기 38은 64비트에서 상위 32비트에 표현된다. 즉, 마지막 64비트는 00000038 00000000로 표현된다.
압축 연산부(120)는 상기 메시지 완성부(110)에서 기설정된 비트로 변환된 메시지를 입력받아서 압축 연산을 한다.
도 2는 도 1의 메시지가 압축 연산부에 의하여 압축되는 것을 보인 도면이다. 도시된 바와 같이, 압축 연산부(120)의 일련의 메시지(M[0]∥M[1]∥M[2]∥…)와 제 0 연쇄 변수(CV0)를 입력받아 입력된 메시지를 처리한다. 압축 연산부(120)는 복수의 압축 함수부(200)로 구성되며, 상기 각 압축 함수부(200)는 512비트 단위로 메시지를 처리하므로, 각 메시지들(M[0], M[1], M[2]…)은 그 길이가 512비트이다.
도 3은 도 2의 압축 함수부의 구성을 보인 도면이다. 도시된 바와 같이, 압축 함수부는 제 i 연쇄변수(CVi) 및 분할된 메시지를 입력받아서 연산하는 복수의 브랜치 함수부(300, 301, 302, 303), 이웃하는 두 브랜치 함수부(300, 301, 302, 303)에서 출력된 서브 연쇄변수들간에 덧셈연산을 수행하는 복수의 제 1 덧셈 연산부(310, 311), 상기 각 제 1 덧셈 연산부(310, 311)에서 출력된 값의 배타적 논리합 연산을 수행하는 배타적 논리합 연산부(320) 및 상기 배타적 논리합 연산부(320)에서 연산된 출력과 상기 압축 함수부로 입력되는 제 i 연쇄변수(CVi)와의 덧셈연산을 수행하는 제 2 덧셈 연산부(330)를 포함한다.
한편, 상기 메시지 완성부에서 기설정된 비트로 변환된 메시지는 압축 함수부에 입력되어 32비트 서브 메시지 워드(mi[0], mi[1], mi[2] …, mi[15])로 분할된다. 압축 함수부는 512비트의 메시지를 입력받게 되므로, 32비트 서브 메시지 워드는 모두 16개가 생성된다.
도 4는 브랜치 함수부의 연산의 흐름을 보인 도면이다. 도시된 바와 같이, 복수의 각 j(1≤j≤4) 브랜치 함수부(300, 301, 302, 303)는 복수의 제 1 서브 연 쇄변수(Rj (0)[t], 0≤t≤7)를 입력받고, 소정의 연산을 통해 제 8 서브 연쇄변수(Rj (8)[t])를 출력한다. 각 연쇄변수를 32비트로 구성된다. 각 제 s 서브 연쇄변수(Rj (s)[t])는 8개로 구성된다. 제 1 서브 연쇄변수는 (Rj(0)[t])는 제 i 연쇄변수(CVi)와 같다.
제 s+1의 1번째 서브 연쇄변수(Rj (s+1)[0])는 제 s의 5번째 서브 연쇄변수(Rj (s)[4] )와 상기 분할된 서브 메시지 중에서 제 j의 4s+1번째 서브 메시지(mij(4s+1)]와 덧셈연산을 수행하고, 상기 덧셈연산의 출력과 제 j의 2s+1번째 상수(δ[ρj(2s+1)])와 논리적 배타합 연산을 수행하며, 상기 논리적 배타합 연산의 출력과 제 j의 4s+3번째 서브 메시지(mij(4s+3)]와 덧셈연산을 수행하고, 상기 덧셈연산의 출력을 변수로 하여 제 1 함수연산(f(x))을 수행하며, 제 1 함수연산(f(x))의 출력을 8비트만큼 왼쪽으로 순환 이동연산을 행하고, 상기 순환이동연산의 출력과 제 s의 8번째 서브 연쇄변수 (Rj (s)[7])과의 덧셈연산을 수행한 값이 된다. 상기 제 1 함수연산은 하기의 수학식 1과 같다.
Figure 112007067280846-pat00001
상기 제 1 함수는 입력 변수(x)와 입력 변수를 15비트만큼 왼쪽으로 순환이동시킨 값(x≪15)과의 논리적 배타합 연산을 수행하고, 상기 논리적 배타합 연산의 출력과 입력 변수를 27비트만큼 왼쪽으로 순환이동시킨 값(x≪27)과의 논리적 배타합 연산을 수행한다.
제 s+1의 2번째 서브 연쇄변수(Rj (s+1)[1])는 제 s의 1번째 서브 연쇄변수(Rj (s)[0])와 제 j의 4s번째 서브 메시지(mij(4s)]와 덧셈연산을 수행하고, 상기 덧셈연산의 출력과 제 j의 2s번째 상수(δ[ρj(2s+1)])와의 논리적 배타합 연산을 수행하며, 상기 논리적 배타합 연산의 출력과 제 j의 4s+2번째 서브 메시지(mij(4s+2)])와의 덧셈연산을 수행한 값이 된다.
제 s+1의 3번째 서브 연쇄변수(Rj (s+1)[2])는 제 s의 1번째 서브 연쇄변수(Rj (s)[0])와 제 j의 4s번째 서브 메시지(mij(4s)])와 덧셈연산을 수행하고, 상기 덧셈연산의 출력을 변수로 하여 제 1 함수연산을 수행하고, 상기 제 1 함수연산 의 출력과 제 s의 2번째 서브 연쇄변수(Rj (s)[1])와의 덧셈연산을 수행한 값이 된다.
제 s+1의 4번째 서브 연쇄변수(Rj (s+1)[3])는 제 s의 1번째 서브 연쇄변수(Rj (s)[0])와 제 j의 4s번째 서브 메시지(mij(4s)])와 덧셈연산을 수행하고, 상기 덧셈연산의 출력을 변수로 하여 제 1 함수연산을 수행하고, 상기 제 1 함수연산의 출력을 13비트만큼 왼쪽으로 순환 이동연산을 행하고, 상기 순환 이동연산의 출력과 제 s의 3번째 서브 연쇄변수(Rj (s)[2])와 덧셈연산을 수행한다. 상기 덧셈연산의 출력값을 제 1 출력값이라 한다. 그리고 제 s의 1번째 연쇄변수(Rj (s)[0])와 제 j의 4s번째 서브 메시지(mij(4s)])와의 덧셈연산을 수행하고, 상기 덧셈연산의 출력과 제 j의 2s번째 상수(δ[ρj(2s)])와 논리적 배타합 연산을 수행하고, 상기 논리적 배타합 연산의 출력과 제 j의 4s+2번째 서브 메시지(mij(4s+2)])와 덧셈연산을 수행하고, 상기 덧셈연산의 출력을 변수로 하여 제 2 함수연산(g(x))을 수행한다. 상기 제 2 함수연산의 출력과 상기 제 1 출력값과의 배타적 논리합 연산을 수행한 값이 제 s+1의 4번째 서브 연쇄변수(Rj (s+1)[3])가 된다. 상기 제 2 함수연산은 하기의 수학식 2와 같다.
Figure 112007067280846-pat00002
상기 제 2 함수는 입력 변수를 7비트만큼 왼쪽으로 순환이동시킨 값(x≪7)과입력 변수를 25비트만큼 왼쪽으로 순환이동시킨 값(x≪25)과의 덧셈연산을 수행하고, 상기 덧셈연산의 출력과 입력 변수(x)와의 논리적 배타합 연산 수행한 값이다.
제 s+1의 5번째 서브 연쇄변수(Rj (s+1)[4])는 제 s의 1번째 서브 연쇄변수(Rj (s)[0])와 제 j의 4s번째 서브 메시지(mij(4s)])와의 덧셈연산을 수행하고, 상기 덧셈연산의 출력과 제 j의 2s번째 상수(δ[ρj(2s)])와 배타적 논리합 연산을 수행하며, 상기 배타적 논리합 연산을 제 j의 4s+2번째 서브 메시지(mij(4s+2)])와 덧셈연산을 수행하고, 상기 덧셈연산의 출력을 변수로 하여 제 2 함수연산을 수행하고, 상기 제 2 함수연산의 출력을 17비트만큼 왼쪽으로 순환 이동연산을 행하고, 상기 순환 이동연산의 출력을 제 s의 4번째 서브 연쇄변수(Rj (s)[3])와 논리적 배타합 연산을 수행한 값이 된다.
제 s+1의 서브 6번째 연쇄변수(Rj (s+1)[5])는 제 s의 5번째 서브 연쇄변수(Rj (s)[4])와 제 j의 4s+1번째 서브 메시지(mij(4s+1)])와 덧셈연산을 수행하고, 상기 덧셈연산의 출력을 제 j의 2s+1번째 상수(δ[ρj(2s+1)])와 논리적 배타합 연산을 수행하고, 상기 논리적 배타합 연산의 출력을 제 j의 4s+3번째 서브 메시지(mij(4s+3)])와 덧셈연산을 수행한 값이 된다.
제 s+1의 7번째 서브 연쇄변수(Rj (s+1)[6])는 제 s의 5번째 서브 연쇄변수(Rj (s)[4])와 제 j의 4s+1번째 서브 메시지(mij(4s+1)])와 덧셈연산을 수행하고, 상기 덧셈연산의 출력을 변수로 하여 제 2 함수연산을 수행하며, 상기 제 2 함수연산의 출력과 제 s의 6번째 서브 연쇄변수(Rj (s)[5])와의 덧셈연산을 수행한다.
제 s+1의 8번째 서브 연쇄변수(Rj (s+1)[7])는 제 s의 5번째 서브 연쇄변수(Rj (s)[4])와 제 j의 4s+1번째 서브 메시지(mij(4s+1)])와 덧셈연산을 수행하고, 상기 덧셈연산의 출력을 변수로 하여 제 2 함수연산을 수행하고, 상기 제 2 함수연산의 출력을 3비트만큼 왼쪽으로 순환 이동연산을 행하고, 상기 순환 이동연산의 출력과 제 s의 7번째 서브 연쇄변수(Rj (s)[6])와 덧셈연산을 수행한다. 상기 덧셈연산의 출력값을 제 2 출력값이라 한다. 그리고 제 s의 5번째 서브 연쇄변수(Rj (s)[4])와 제 j의 4s+1번째 서브 메시지(mij(4s+1)])와의 덧셈연산을 수행하 고, 상기 덧셈연산의 출력과 제 j의 2s+1번째 상수(δ[ρj(2s+1)])와 배타적 논리합 연산을 수행하며, 상기 배타적 논리합 연산의 출력과 제 j의 4s+3번째 서브 메시지(mij(4s+3)])와 덧셈연산을 수행하고, 상기 덧셈연산의 출력을 변수로 하여 제 2 함수연산을 수행한다. 상기 제 1 함수연산의 출력과 상기 제 1 출력값과의 배타적 논리합 연산을 수행한 값이 제 s+1의 8번째 서브 연쇄변수(Rj (s+1)[7])가 된다.
상기 브랜치 함수부(300, 301, 302, 303)에서의 제 s 서브 연쇄변수(Rj (s)[t])와 제 s+1 서브 연쇄변수(Rj (s+1)[t])와의 관계는 하기의 수학식 3과 같다.
Figure 112007067280846-pat00003
상기 브랜치 함수부(300, 301, 302, 303)가 서브 메시지를 입력받아 연산을 수행하는 데 있어서, 각 브랜치 함수부(300, 301, 302, 303)마다 입력되는 서브 메시지의 순서는 상이하다. 도 5는 브랜치 함수부마다 입력되는 서브 메시지의 순서를 나타낸 도면이다. 제 1 브랜치 함수부(300)에 입력되는 서브 메시지는 제 1의 0번째 서브 메시지(mij(0)])는 m[0]가 되고, 제 1의 1번째 서브 메시지는 m[1]이고, 제 1의 2번째 서브 메시지는 m[2]이고, 제 1의 3번째 서브 메시지는 m[3]이다. 그러나 제 2 브랜치 함수부(301)에 입력되는 메시지의 순서는 상기 제 1 브랜치 함수부(300)에 입력되는 메시지와 달리 제 2의 0번째 서브 메시지는 m[12]이고, 제 2의 1번째 서브 메시지는 m[0]이고, 제 2의 2번째 서브 메시지는 m[4]이고, 제 2의 3번째 서브 메시지는 m[8]이다. 제 3 브랜치 함수부(302)와 제 4 브랜치 함수부(303)의 서브 메시지의 순서 역시 도시된 바와 같이 타 브랜치 함수부의 서브 메시지의 순서와 상이하다.
그리고 상기 브랜치 함수부(300, 301, 302, 303)는 상수를 입력받게 되는데, 상수의 값은 도 6에 도시된다. 다만, 상수 역시 브랜치 함수부마다 입력되는 순서가 상이하다. 도 7은 브랜치 함수부마다 입력되는 상수의 순서를 나타낸 도면이다. 제 1 브랜치 함수부(300)는 제 1의 0번째 상수가 δ[0]이고, 제 1의 1번째 상수가 δ[1]이고, 제 1의 2번째 상수가 δ[2]이고, 제 1의 3번째 상수가 δ[3]이다. 그러나 제 2 브랜치 함수부(301)에 입력되는 상수는 제 2의 0번째 상수가 δ[3]이고, 제 2의 1번째 상수가 δ[6]이고, 제 2의 2번째 상수가 δ[9]이고, 제 3의 3번째 상 수가 δ[12]이다. 제 3 브랜치 함수부(302)와 제 4 브랜치 함수부(303)의 상수의 순서 역시 도시된 바와 같이 타 브랜치 함수부의 서브 메시지의 순서와 상이하다.
상기 복수의 각 제 j 브랜치 함수부(300, 301, 302, 303)는 복수의 제 1 서브 연쇄변수(Rj (1)[t])를 입력받아서 복수의 제 2 서브 연쇄변수(Rj (2)[t])를 출력하고, 상기 출력된 복수의 제 서브 2 연쇄변수(Rj (2)[t])를 입력으로 하여 복수의 제 3 서브 연쇄변수(Rj (3)[t])를 출력하는 연산을 계속 반복한다. 제 j 브랜치 함수부는 상기 연산을 8번 수행한다. 즉, 제 j 브랜치 함수부가 최종적으로 출력하는 연쇄변수는 제 8 서브 연쇄변수(Rj (8)[t])가 된다.
상기 복수의 제 1 덧셈연산부(310, 311)는 이웃하는 브랜치 함수부(300, 301, 302, 303)에서 출력된 제 8 서브 연쇄변수(R1 (8)[t]와 R2 (8)[t], R3 (8)[t]와 R4 (8)[t])간에 덧셈연산을 수행한다.
배타적 논리합 연산부(320)는 상기 제 1 브랜치 함수부(300)와 제 2 브랜치 함수부(301)에서 출력된 제 8 서브 연쇄변수(R1 (8)[t], R2 (8)[t])간에 덧셈연산의 출력과 제 3 브랜치 함수부(302)와 제 4 브랜치 함수부(304)에서 출력된 제 8 서브 연쇄변수(R3 (8)[t], R4 (8)[t])간에 덧셈연산의 출력간에 배타적 논리합 연산을 수행한 다.
상기 배타적 논리합 연산부(320)의 출력은 입력되는 제 i 연쇄변수(CVi[t])와 덧셈연산을 수행한다. 상기 덧셈연산의 출력은 제 i+1 연쇄변수(CVi +1[t])가 된다. 즉, 압축 함수부의 출력은 제 i+1 연쇄변수(CVi +1[t])가 된다.
한편, 제 1 연쇄변수(CV1[t])를 출력하기 위해서는 제 0 연쇄변수(CV0[t])가 요구된다. 그러므로 제 0 연쇄변수의 값은 그림 8에 도시된 값을 갖는다.
본 발명은 기재된 구체적인 예에 대해서만 상세히 설명되었지만 본 발명의 기술사상 범위 내에서 다양한 변형 및 수정이 가능함은 당업자에게 있어서 명백한 것이며, 이러한 변형 및 수정이 첨부된 특허청구범위에 속함은 당연한 것이다.
도 1은 본 발명의 해쉬 함수 압축 장치의 구성을 나타낸 블록도.
도 2는 도 1의 메시지가 압축 연산부에 의하여 압축되는 것을 보인 도면.
도 3은 도 2의 압축 함수부의 구성을 보인 도면.
도 4는 브랜치 함수부의 연산의 흐름을 보인 도면.
도 5는 브랜치 함수부마다 입력되는 서브 메시지의 순서를 나타낸 도면.
도 6은 브랜치 함수부로 입력되는 상수의 값을 나타낸 도면.
도 7은 브랜치 함수부마다 입력되는 상수의 순서를 나타낸 도면.
도 8은 제 0 연쇄변수의 값을 나타낸 도면.

Claims (6)

  1. 임의의 길이의 메시지 비트열을 입력받아 워드열로 변환하는 단계;
    상기 입력된 메시지를 기설정된 비트로 변환하는 단계; 및
    상기 기설정된 비트로 변환된 메시지와 제 0 연쇄변수를 입력받아서 압축 연산을 수행하는 단계;를 포함하는 256비트 출력을 갖는 해쉬 알고리즘으로서,
    상기 압축 연산의 수행은 복수의 압축 함수부가 수행하며, 상기 각 압축 함수부는,
    제 i 연쇄변수 및 분할된 메시지를 입력받아서 브랜치 함수부에서 연산하는 단계;
    이웃하는 두 브랜치 함수부에서 출력된 서브 연쇄변수들간에 덧셈 연산을 수행하는 단계;
    상기 덧셈 연산에서 출력된 값의 배타적 논리합 연산을 수행하는 단계; 및
    상기 배타적 논리합 연산에서 출력된 값과 상기 제 i 연쇄변수와의 덧셈연산을 수행하는 단계;를 포함하는 것을 특징으로 하는 256비트 출력을 갖는 해쉬 알고리즘.
  2. 제 1항에 있어서, 상기 워드열로 변환하는 단계는;
    임의의 길이 메시지의 비트열에서 32비트열을 4바이트의 문자열로 보고, 첫번째 바이트가 워드의 최하위 바이트가 되며, 첫번째 4바이트를 첫번째 워드로 두번째 4바이트를 두번째 워드로 변환하는 것을 특징으로 하는 256비트 출력을 갖는 해쉬 알고리즘.
  3. 제 1항에 있어서, 상기 기설정된 비트로 변환하는 단계는;
    512비트로 변환하는 것을 특징으로 하는 256비트 출력을 갖는 해쉬 알고리즘.
  4. 제 3항에 있어서, 상기 512비트로의 변환은;
    메시지의 길이가 512비트가 아닌경우에, 메시지의 길이가 448비트가 될때까지 입력된 메시지에 0을 채우고, 마지막 64비트는 메시지의 비트열의 길이로 표현
    되는 것을 특징으로 하는 256비트 출력을 갖는 해쉬 알고리즘.
  5. 삭제
  6. 삭제
KR1020070094428A 2006-09-15 2007-09-17 256비트 출력을 갖는 해쉬 알고리즘 KR100916805B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020060089456 2006-09-15
KR20060089456 2006-09-15

Publications (2)

Publication Number Publication Date
KR20080025354A KR20080025354A (ko) 2008-03-20
KR100916805B1 true KR100916805B1 (ko) 2009-09-14

Family

ID=39413223

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070094428A KR100916805B1 (ko) 2006-09-15 2007-09-17 256비트 출력을 갖는 해쉬 알고리즘

Country Status (1)

Country Link
KR (1) KR100916805B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9288041B2 (en) 2013-05-29 2016-03-15 Electronics And Telecommunications Research Institute Apparatus and method for performing compression operation in hash algorithm
KR20160090646A (ko) * 2015-01-22 2016-08-01 한국전자통신연구원 고속 메시지 해싱을 위한 압축함수를 제공하는 연산 방법 및 그 장치
US9479193B2 (en) 2013-07-26 2016-10-25 Electronics And Telecommunications Research Institute Apparatus and method for performing compression operation in hash algorithm

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101445339B1 (ko) * 2010-12-23 2014-10-01 한국전자통신연구원 기밀성과 무결성을 제공하는 통합 암호화 장치 및 그 방법
TWI442110B (zh) 2011-01-26 2014-06-21 Coretronic Corp 導光板及光源模組

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
축소 라운드 SHACAL-2의 연관키 공격, 김종성 외 3인, 정보보호학회논문집, 제15권 제3호(2005.06)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9288041B2 (en) 2013-05-29 2016-03-15 Electronics And Telecommunications Research Institute Apparatus and method for performing compression operation in hash algorithm
US9479193B2 (en) 2013-07-26 2016-10-25 Electronics And Telecommunications Research Institute Apparatus and method for performing compression operation in hash algorithm
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
KR20080025354A (ko) 2008-03-20

Similar Documents

Publication Publication Date Title
KR100916805B1 (ko) 256비트 출력을 갖는 해쉬 알고리즘
CN104168085B (zh) 一种基于冗余熵变换的数据压缩方法
Zhurakovskyi et al. Increasing the efficiency of information transmission in communication channels
WO2011007956A2 (ko) 데이터의 압축방법
CN112506880B (zh) 数据处理方法及相关设备
CN110365678B (zh) 一种基于反样本的工控网络协议漏洞挖掘方法
Ryabko et al. Fast and efficient construction of an unbiased random sequence
CN108768656A (zh) 一种应用于数据校验的哈希算法
US8370411B2 (en) Generating unique random numbers for multiple instantiations
US7895347B2 (en) Compact encoding of arbitrary length binary objects
CN101399667A (zh) 产生快速安全哈希函数的步函数装置和消息扩展方法
CN111008691A (zh) 一种权值和激活值都二值化的卷积神经网络加速器架构
CN104580017A (zh) 基于rss的网络会话分发方法及系统
Sun et al. Constructing mixed-integer programming models whose feasible region is exactly the set of all valid differential characteristics of SIMON
Naqvi et al. Pseudo-random key generation for secure HMAC-MD5
Kishore et al. An efficient parallel algorithm for hash computation in security and forensics applications
CN102263881B (zh) 半色调图像调频挂网处理方法及装置
Ryabko et al. The distinguishing attack on Speck, Simon, Simeck, HIGHT and LEA
CN115952517A (zh) 一种杂凑值计算方法及系统
Sethi et al. Data compression techniques
CN110266781B (zh) 一种基于哈希函数的网络节点随机选取方法
CN103618601A (zh) 一种基于预选择大数分解的rsa密码破解系统及方法
JP4547534B2 (ja) 疑似乱数生成器強度評価装置及び暗号化装置
Awad et al. Efficient chaotic permutations for image encryption algorithms
Liu et al. Parallel HAIFA Hashing Algorithm Based on Lorenz Chaos

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120615

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130621

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee