KR19990053174A - 해쉬함수를 이용한 정보의 무결성 확인방법 - Google Patents

해쉬함수를 이용한 정보의 무결성 확인방법 Download PDF

Info

Publication number
KR19990053174A
KR19990053174A KR1019970072765A KR19970072765A KR19990053174A KR 19990053174 A KR19990053174 A KR 19990053174A KR 1019970072765 A KR1019970072765 A KR 1019970072765A KR 19970072765 A KR19970072765 A KR 19970072765A KR 19990053174 A KR19990053174 A KR 19990053174A
Authority
KR
South Korea
Prior art keywords
information
message
hash function
integrity
function
Prior art date
Application number
KR1019970072765A
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 KR1019970072765A priority Critical patent/KR19990053174A/ko
Publication of KR19990053174A publication Critical patent/KR19990053174A/ko

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

본 발명은 해쉬함수를 이용한 정보의 무결성 확인방법에 관한 것으로, 특히 정보 보호 분야에서 빈번하게 사용되는 중요한 암호 기술 중의 하나인 해쉬함수를 이용한 정보의 무결성 확인방법에 관한 것이다.
해쉬 함수는 임의의 길이 메시지를 고정된 짧은 길이로 사상시키는 함수로 중요정보의 무결성 확인과 메시지 인증코드의 구성, 디지털 서명의 효율성 증대를 위한 목적으로 사용된다. 알고리즘이 수행 속도면에서 효율적이어야 한다. 실제 암호적으로 안전하고 효율적인 해쉬 함수의 구성은 매우 어려운 문제이다. 따라서, 본 발명은 입력 메시지 워드로부터 추가로 8개의 메시지 워드를 생성하는 메시지 확장을 사용하고, 암호적으로 강한 성질들을 만족하는 부울 함수와 각 단계 연산에서 사용되는 로테이션 연산을 입력 메시지에 의존하는 가변적인 메시지-의존 로테이션(Message-dependent Rotation)을 사용하여 암호적으로 안전하고 효율적인 해쉬함수를 구성한다. 그 결과 정보의 전송시 그 정보에 대한 해쉬 값을 함께 전송함으로써 전송도중에 발생할 수 있는 제 3 자에 의한 정보의 수정 및 삽입 등의 문제에 대해 정보의 무결성을 확인할 수 있고, 데이터 파일의 저장시에 파일에 대한 해쉬 값을 계산해 둠으로서 중요 데이터에 대한 무결성을 확인할 수 있다.

Description

해쉬함수를 이용한 정보의 무결성 확인방법
본 발명은 해쉬함수를 이용한 정보의 무결성 확인방법에 관한 것으로, 특히 해쉬함수의 각 단계 연산에 암호학적으로 강한 성질들을 만족하는 부울 함수와 입력 메시지에 의존하는 메시지-의존 로테이션(Message-Dependent Rotation)을 사용하여 해쉬함수의 안전성을 향상시키는 것이다.
일반적으로, 해쉬 함수는 임의의 유한 길이 비트스트링을 고정된 길이의 스트링으로 사상시키는 함수로 흔히 그 출력을 해쉬값 또는 메시지 다이제스트(message digest)라 한다. 해쉬 함수의 목적은 중요 정보의 전송시 제 3자에 의한 정보의 수정, 삽입 등의 문제에 대해 무결성을 확인하는 것으로 메시지 인증 코드의 구성과 디지털 서명의 효율성 증대를 위해서도 사용된다. 일방향 해쉬 함수는 프리이미지 레지스턴스(preimage resistance)와 세컨드 프리이미지 레지스턴스(second preimage resistance) 성질을 만족해야 하고 암호학적으로 유용한 해쉬 함수는 충돌 회피성(collision resistance)을 만족해야 한다. 즉, 같은 해쉬값을 가지는 서로 다른 두 입력(충돌)을 발견하는 것이 계산상 수행 불가능해야 한다.
해쉬 함수는 크게 블록 암호 알고리즘을 이용한 해쉬 함수와 전용해쉬 함수로 분류한다. DES나 IDEA와 같은 블록 암호를 이용한 경우는 기존의 구현되어 있는 블록 암호를 이용할 수 있다는 장점이 있지만, 블록 암호의 처리 속도가 느리고 수출 제한의 문제로 인해 현재 대부분의 해쉬 함수는 전용 해쉬 함수이다. 전용 해쉬 함수의 대표적인 예로 MD 계열 해쉬 함수가 있다. 기존의 MD 계열 해쉬 함수는 Merkle과 Damgard 의 이론에 기반한 반복적인 처리 형태를 가진다. 1990년에 Rivest에 의해 제안된 MD4 해쉬 함수는 현재 완전히 해독되어 더 이상 안전하지 않고 MD5 역시 내부 취약성이 발견되었다. 1995년 유럽의 RIPE 컨소시움에서 제안한 RIPEMD 역시 안전하지 못한 것으로 증명되었고 다시 이를 개선한 RIPEMD-128/160이 제안된 상태이다. 미국의 NIST에서는 1993년에 SHA를 공개한 후 다시 1995년에 이를 개선한 SHA-1를 발표하였고 현재 미국 표준으로 공인되어 있다. 1993년에 HAVAL 해쉬 함수가 제안되었다. 그외에 많은 해쉬 함수가 제안되었지만 현재 암호학적으로 안전하다고 간주되는 해쉬 함수로 RIPEMD-160, SHA-1, HAVAL 등이 있다.
그러나, 실제 암호학적으로 안전하고 처리 속도면에서 효율적인 해쉬함수를 구성하는 것은 매우 어려운 문제이다. 해쉬 함수는 임의의 유한 길이 메시지를 고정된 짧은 길이로 사상시키는 함수이기 때문에 같은 해쉬값을 가지는 서로 다른 두 입력 메시지가 항상 존재한다. 따라서 암호학적으로 유용한 해쉬 함수는 이러한 충돌 쌍을 발견하는 것이 계산상 불가능해야 한다. 또한 해쉬 함수는 메시지 인증 코드, 디지털 서명과 같은 다른 응용에 포함되어 사용되어지기 때문에 그 처리 속도가 빨라야 한다.
따라서, 본 발명은 해쉬 함수의 메시지 적용의 단순성을 제거하기 위해 입력 메시지로부터 추가로 메시지를 생성하여 처리하고, 각 단계 연산에 사용되는 부울 함수를 암호학적으로 강한 성질들을 만족하도록 하고, 로테이션(rotation)연산은 입력 메시지에 의존하는 메시지-의존 로테이션(message-dependent rotation)을 사용함으로서 안전성을 향상시키는 해쉬함수를 이용한 정보의 무결성 확인방법을 제공하는 데 그 목적이 있다.
상기한 목적을 달성하기 위한 본 발명은 해쉬함수의 각 단계 연산에 있어서, 암호적으로 강한 성질을 만족하는 부울 함수와 입력 메시지에 의존하는 메시지-의존 로테이션(message-dependent rotation)을 사용하는 것을 특징으로 한다.
도 1은 본 발명에 따른 해쉬 함수의 전체 구조 블록도.
도 2는 본 발명에 따른 해쉬 함수의 압축 함수의 블록도.
도 3은 본 발명에 따른 해쉬 함수의 단계 연산의 블록도.
도 4는 본 발명에 따른 해쉬 함수에 대한 동작 흐름도.
이하, 첨부도면을 참조하여 본 발명을 상세히 설명하면 다음과 같다.
도 1은 본 발명에 따른 해쉬 함수의 전체적인 구조도이고, 도 2는 본 발명에 따른 압축 함수의 구조도이다.
현재 대부분의 해쉬 함수는 각 메시지 블록에 대해 압축 함수를 반복 적용하는 형태이다. 본 발명은 512비트 단위로 메시지를 처리하고 160 비트의 연쇄 변수(5개의 워드 A, B, C, D, E)와 160 비트의 해쉬값을 가진다. 워드는 32-비트 크기이다. 처리 과정은 먼저 입력 메시지를 512 비트(16 워드) 블록 단위로 분할하여 처리한다. 입력 메시지가 블록 길이의 배수가 되도록 마지막 블록은 padding을 수행한다. Padding은 마지막 블록 길이가 448비트가 되도록 '1'을 추가한 다음 필요한 수만큼 '0'을 추가한다. 그리고 64비트의 원래 메시지 길이를 추가한다. 각 메시지 블록에 대해 압축 함수를 수행하는데 압축 함수는 4 라운드로 구성된다. 그리고, 압축 함수에서 16개 입력 메시지 블록이 좀더 많은 부분에 사용되도록 추가로 8개의 메시지 블록을 생성한다. 따라서 압축 함수의 각 라운드는 총 24단계로 구성되어 전체 96단계 연산을 수행한다. 메시지 확장은 16개 메시지 워드가 유사한 빈도로 사용되면서 빠르게 구현되도록 하였다.
압축 함수의 각 라운드에 적용되는 메시지 워드의 순서는 추가로 생성된 메시지 워드는 가능한 서로 많이 떨어지도록 하고, 각 단계에서 같은 메시지 워드를 사용하지 않도록 설계되었다. 라운드에서의 단계 연산은 아래 [수학식 1]과 같다.
A=(f(A, B, C, D, E) + Xi+ K)≪s, B = B≪10
연쇄 변수 (A, B, C, D, E)의 초기값 IV는 다음과 같고
A=0x67452301, B=0xefcdab89, C=0x98badcfe, D=0x10325476, E=c3d2e1f0
각 라운드의 단계에 적용되는 상수 K는 다음과 같다.
K1=0, K2=0x5a827999, K3=0x6ed9eba1, K4=0x8f1bbcdc
각 라운드에서 사용되는 다음의 부울 함수는 0-1 balanced , high nonlinearlity, SAC(Strict Avalanche Criterion)과 같은 암호학적으로 좋은 성질들을 만족한다.
f0(x1, x2, x3, x4, x5) = x1x2 x3x4 x2x3x4 x5
f1(x1, x2, x3, x4, x5) = x2x3 x4x5 x1
f2(x1, x2, x3, x4, x5) = x1x3 x2x5 x3x5 x4
그리고, 효율성을 위해 가장 계산량이 적은 부울 함수 f1을 2 라운드와 4 라운드에서 반복 사용한다. 그리고 단계 연산에서 사용되는 순환이동 s는 입력 메시지에 의존하여 다음처럼 정의된다.
s=Ximod32
여기서의 메시지 워드 Xi는 단계 연산에 적용되는 메시지 워드와 다른 메시지 워드이다.
도 3은 본 발명에 따른 해쉬 함수의 단계 연산의 블록도이고, 도 4는 본 발명에 따른 해쉬 함수에 대한 동작 흐름도이다.
상술한 바와같이 일반적으로는 중요 정보의 전송시 전송 도중에 발생한 제 3 자에 의한 정보의 수정이나 삽입 등의 문제를 수신측에서 확인할 수 없고, 중요 파일의 저장시에도 타인에 의한 파일의 수정이나 변졍 등의 사실을 확인하기 어렵다.
본 발명은 이러한 경우에 전송되는 정보와 함께 그 정보에 대한 해쉬값을 함께 전송함으로서 수신측에서 정보의 무결성을 확인할 수 있고, 파일의 저장시에도 파일에 대한 해쉬값을 유지함으로서 무결성을 확인할 수 있다. 또한 메시지 인증 코드의 구성과 디지털 서명시 그 효율을 향상시키기 위해 본 발명을 사용할 수 있다.

Claims (1)

  1. 해쉬함수의 각 단계 연상에 있어서, 암호적으로 강한 성질을 만족하는 부울 함수와 입력 메시지에 의존하는 메시지-의존 로테이션(message-dependent rotation)을 사용하는 것을 특징으로 하는 해쉬함수를 이용한 정보의 무결성 확인방법.
KR1019970072765A 1997-12-23 1997-12-23 해쉬함수를 이용한 정보의 무결성 확인방법 KR19990053174A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970072765A KR19990053174A (ko) 1997-12-23 1997-12-23 해쉬함수를 이용한 정보의 무결성 확인방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970072765A KR19990053174A (ko) 1997-12-23 1997-12-23 해쉬함수를 이용한 정보의 무결성 확인방법

Publications (1)

Publication Number Publication Date
KR19990053174A true KR19990053174A (ko) 1999-07-15

Family

ID=66099679

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970072765A KR19990053174A (ko) 1997-12-23 1997-12-23 해쉬함수를 이용한 정보의 무결성 확인방법

Country Status (1)

Country Link
KR (1) KR19990053174A (ko)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020034457A (ko) * 2000-11-02 2002-05-09 구자홍 해쉬 함수와 워터 마크 기술을 응용한 디지털 저작물의생성 및 인증 방법과 전송되는 디지털 저작물의 구조
KR100465950B1 (ko) * 2001-02-09 2005-01-13 캐논 가부시끼가이샤 정보 처리 장치 및 그 제어 방법, 컴퓨터 프로그램을 저장한 저장 매체
KR100486169B1 (ko) * 2001-05-24 2005-04-28 코렉주식회사 전자계좌이체를 이용한 전자지불방법 및 그 장치
KR100703777B1 (ko) * 2005-04-21 2007-04-06 삼성전자주식회사 컨텐츠 제공자 인증 및 컨텐츠 무결성 보장을 위한 시스템
KR100714430B1 (ko) * 2001-07-17 2007-05-04 샤프 가부시키가이샤 프로세스 과정에서 암호화된 데이터의 위조 검출 데이터를발생시키는 장치 및 방법
KR100746033B1 (ko) * 2006-02-17 2007-08-06 삼성전자주식회사 무결성 측정 장치 및 방법
KR100755683B1 (ko) * 2003-05-07 2007-09-05 삼성전자주식회사 컨텐츠 제공자 인증 및 컨텐츠 무결성 보장 방법
WO2008060042A1 (en) * 2006-11-13 2008-05-22 Lg Electronics Inc. Method for securely transmitting device management message via broadcast channel and server and terminal thereof
KR100884488B1 (ko) * 2001-05-11 2009-02-18 루센트 테크놀러지스 인크 메시지 인증 시스템 및 방법
US8121293B2 (en) 2000-11-28 2012-02-21 Nokia Corporation System for ensuring encrypted communication after handover
US8185742B2 (en) 2006-06-29 2012-05-22 Samsung Electronics Co., Ltd. Device and method for providing video stream having integrity
KR20160090646A (ko) * 2015-01-22 2016-08-01 한국전자통신연구원 고속 메시지 해싱을 위한 압축함수를 제공하는 연산 방법 및 그 장치

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020034457A (ko) * 2000-11-02 2002-05-09 구자홍 해쉬 함수와 워터 마크 기술을 응용한 디지털 저작물의생성 및 인증 방법과 전송되는 디지털 저작물의 구조
US8121293B2 (en) 2000-11-28 2012-02-21 Nokia Corporation System for ensuring encrypted communication after handover
KR100465950B1 (ko) * 2001-02-09 2005-01-13 캐논 가부시끼가이샤 정보 처리 장치 및 그 제어 방법, 컴퓨터 프로그램을 저장한 저장 매체
KR100884488B1 (ko) * 2001-05-11 2009-02-18 루센트 테크놀러지스 인크 메시지 인증 시스템 및 방법
KR100486169B1 (ko) * 2001-05-24 2005-04-28 코렉주식회사 전자계좌이체를 이용한 전자지불방법 및 그 장치
KR100714430B1 (ko) * 2001-07-17 2007-05-04 샤프 가부시키가이샤 프로세스 과정에서 암호화된 데이터의 위조 검출 데이터를발생시키는 장치 및 방법
KR100762276B1 (ko) * 2001-07-17 2007-10-01 샤프 가부시키가이샤 프로세스 과정에서 암호화된 데이터의 위조 검출 데이터를발생시키는 장치 및 방법
US7751556B2 (en) 2001-07-17 2010-07-06 Sharp Kabushiki Kaisha Apparatus and method of generating falsification detecting data of encrypted data in the course of process
KR100755683B1 (ko) * 2003-05-07 2007-09-05 삼성전자주식회사 컨텐츠 제공자 인증 및 컨텐츠 무결성 보장 방법
US7395426B2 (en) 2003-05-07 2008-07-01 Samsung Electronics Co., Ltd. Method of authenticating content provider and assuring content integrity
KR100703777B1 (ko) * 2005-04-21 2007-04-06 삼성전자주식회사 컨텐츠 제공자 인증 및 컨텐츠 무결성 보장을 위한 시스템
KR100746033B1 (ko) * 2006-02-17 2007-08-06 삼성전자주식회사 무결성 측정 장치 및 방법
US8185742B2 (en) 2006-06-29 2012-05-22 Samsung Electronics Co., Ltd. Device and method for providing video stream having integrity
WO2008060042A1 (en) * 2006-11-13 2008-05-22 Lg Electronics Inc. Method for securely transmitting device management message via broadcast channel and server and terminal thereof
KR20160090646A (ko) * 2015-01-22 2016-08-01 한국전자통신연구원 고속 메시지 해싱을 위한 압축함수를 제공하는 연산 방법 및 그 장치
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

Similar Documents

Publication Publication Date Title
EP2691906B1 (en) Method and system for protecting execution of cryptographic hash functions
Dang Recommendation for applications using approved hash algorithms
US8275125B2 (en) Method for designing a secure hash function and a system thereof
US7546461B2 (en) Strengthening secure hash functions
US8086860B2 (en) Method for preventing and detecting hash collisions of data during the data transmission
Maetouq et al. Comparison of hash function algorithms against attacks: A review
KR19990053174A (ko) 해쉬함수를 이용한 정보의 무결성 확인방법
Van Rompay et al. Cryptanalysis of 3-pass HAVAL
Smart et al. Hash functions, message authentication codes and key derivation functions
US8190892B2 (en) Message authentication code with blind factorization and randomization
CN111683061A (zh) 基于区块链的物联网设备访问控制方法及装置
Nita et al. Hash functions
Sasaki et al. Improved single-key distinguisher on HMAC-MD5 and key recovery attacks on sandwich-MAC-MD5
Bartkewitz Building hash functions from block ciphers, their security and implementation properties
Lakshmanan et al. Security and robustness enhancement of existing Hash algorithm
KR20050064343A (ko) 스트림 암호를 이용한 메시지 인증 코드 구성 방법
Shin et al. A new hash function based on MDx-family and its application to MAC
JP4914329B2 (ja) メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、プログラム、および記録媒体
Almansa Arévalo Hashing: Types, Benefits and Security Issues
Shin et al. Hash functions and the MAC using all-or-nothing property
Speirs II Dynamic cryptographic hash functions
Pajčin et al. Analysis of software realized DSA algorithm for digital signature
Salihu et al. Enhancing Cybersecurity with Practical Cryptographic Hash Algorithms
Kulkarni et al. Secured Hash2 based Message Authentication Code using GUI Controls
Tiwari Design of Cryptographic Hash Functions based on MD and MD Variant

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application