KR20080018182A - 보안 해시 함수의 강화 - Google Patents

보안 해시 함수의 강화 Download PDF

Info

Publication number
KR20080018182A
KR20080018182A KR1020077028547A KR20077028547A KR20080018182A KR 20080018182 A KR20080018182 A KR 20080018182A KR 1020077028547 A KR1020077028547 A KR 1020077028547A KR 20077028547 A KR20077028547 A KR 20077028547A KR 20080018182 A KR20080018182 A KR 20080018182A
Authority
KR
South Korea
Prior art keywords
message
subblock
block
xor
hash
Prior art date
Application number
KR1020077028547A
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 마이크로소프트 코포레이션
Publication of KR20080018182A publication Critical patent/KR20080018182A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • 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/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04KSECRET COMMUNICATION; JAMMING OF COMMUNICATION
    • H04K1/00Secret communication
    • H04K1/04Secret communication by frequency scrambling, i.e. by transposing or inverting parts of the frequency band or by inverting the whole band
    • 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
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

보안 해시 함수를 강화하는 시스템 및/또는 방법을 설명한다. 이 시스템 및/또는 방법은, 일부 실시예들에서, 메시지에 기초하여 그리고 프로세스를 이용하여 랜덤하게 보이는 요소를 생성할 수 있다. 이후, 이 요소는 메시지와 어셈블링될 수 있다. 이 어셈블리는 보안 해시 함수를 이용하여 해싱될 수 있다. 동일한 프로세스 및 보안 해시 함수를 이용함으로써, 메시지가 추후에 인증받을 수 있다.
해시 함수, 어셈블리, 암호화 키, 해시 발생기

Description

보안 해시 함수의 강화{STRENGTHENING SECURE HASH FUNCTIONS}
보안 해시 함수는 흔히 메시지를 인증하는 데 사용된다. 예를 들어, 디지털 서명은 보안 해시 함수에 의존한다. 사람은 보안 해시 함수를 이용하여 계산된 다큐먼트의 해시에 서명함으로써 그 다큐먼트에 디지털 방식으로 서명할 수 있다. 이후, 디지털 서명은, 그 사람이 서명한 다큐먼트라고 주장되는 이 다큐먼트의 해시를 동일한 해시 함수를 이용하여 계산함으로써 인증받을 수 있다. 제1 해시 및 제2 해시가 동일하면, 다큐먼트들은 동일한 것으로 간주된다. 다큐먼트들이 동일하다면, 디지털 서명은 인증된 것이다.
2개의 다큐먼트는 동일한 것으로 알려지는 것이 아니라 동일한 것으로 간주되는데, 그 이유는 서로 다른 2개의 다큐먼트의 해시들이 동일할 수 있기 때문이다. 이것을 충돌이라 한다.
충돌의 일 예는 수학 용어들로 나타낼 수 있다. 보안 해시 함수(H(M))가 임의 길이의 메시지(M)에 대하여 연산을 행할 수 있고 고정된 길이의 해시(h)를 리턴한다고 가정한다. 따라서, h = H(M)이며, 여기서 h는 고정된 길이를 갖는다. 그러나, 이것은, 메시지(M1)가 고정된 길이의 해시(h)보다 크면 H(M1) = H(M2)처럼 2개의 서로 다른 메시지(M1, M2)가 등가 해시(h)들을 가질 수 있는 가능성을 남기게 된다. H(M1) = H(M2)라면, 충돌이 발생하였다.
충돌의 확률은 임의의 특별한 메시지가 인증된 것일 확률을 확인하는 데 중요하다. 160비트의 해시를 발생시키는 보안 해시 함수에 대하여, 예를 들어, 2개의 랜덤한 메시지가 동일한 해시를 가질 확률은 2160분의 1이다. 그러나, 임의의 2개 메시지가 동일한 해시를 가질 수 있는 랜덤 메시지들의 그룹은 예상되는 바와 같이 그렇게 클 필요가 없다. 그룹의 어떠한 2개 메시지라도 동일한 해시를 가질 수 있기 때문에, 그 그룹에서는 160비트 해시에 대하여 약 280개의 메시지만 있으면 된다.
이러한 이유로 인해, 충돌을 야기하려는, 즉, 2개의 메시지가 동일한 해시를 갖게 하려는 이는, 160비트의 해시에 대하여 약 280번 이하의 시도로 이러한 충돌을 발생시킬 수 있다. 예를 들어, 윌리(Willy)가 조지(George)를 속이려 한다고 가정한다. 윌리는, 조지에게 유리한 계약서 및 윌리에게 유리한 계약서인 2개의 계약을 작성할 수 있다. 윌리는 각 다큐먼트에 (스페이스를 추가하는 것처럼) 미묘한 변경을 행하고 각각에 대하여 해시값들을 실행시킬 수 있다. 윌리는 자신에게 유리한 계약들 중 하나에 대한 해시값이 조지에게 유리한 계약들중 하나에 대한 해시값과 매칭될 때까지 계속해서 그렇게 행할 수 있다. 이렇게 함으로써, 윌리는, 조지에게 유리한 계약(Mg)과 윌리에게 유리한 계약(Mw) 간에 충돌을 발생시켜, H(Mg)=H(Mw)이게 할 수 있다. 윌리가 이렇게 행하게 되면, 윌리는, 조지가 해시 값(h)에 서명하는 프로토콜을 이용하여 조지에게 유리한 계약을 조지에게 서명하라고 한다. 윌리는, 향후 어느 순간에, 조지가 서명한 조지에게 유리한 계약을 조지가 서명하지 않은 윌리에게 유리한 계약으로 대체한다. 이제, 윌리는, 자신에게 유리한 계약의 해시값이 조지에게 유리한 계약에 대한 조지 서명의 해시값(h)과 매칭되기 때문에, 조지가 윌리에게 유리한 계약에 서명하였음을 재정자(법원의 재판관)에게 납득시킬 수 있다.
160비트 해시와 같은 큰 해시로 이러한 충돌을 야기하는 것은, 최근까지 상당히 어려운 것으로 고려되었다. 280개 메시지에 대하여 해시들을 변경하고 계산하려면 현재의 처리 속도로는 수백 내지 수천 년의 시간과 수백 대의 컴퓨터가 필요하다. 그러나, 최근에, 일부에서는, 한 메시지의 비트들에 제어되는 작은 변경들을 행함으로써 269개의 메시지만으로 충돌이 가능하다고 주장하였다. 이것이 사실이라면, 수백 대의 컴퓨터로 현재의 처리 속도로 몇개월 후에 충돌을 야기할 수 있으며, 5년 또는 10년 후에는 아마도 하나의 컴퓨터로 1년 안에 충돌을 야기할 수 있을 것이다.
사람들은, 충돌을 이상적인 경우보다 잠재적으로 쉽게 생성하는 다른 공격들 뿐만 아니라 그러한 특별한 가능성으로 인해, 일부 보안 해시 함수들의 보안 및 유용성을 의심하게 되었다.
보안 해시 함수를 강화하는 시스템 및/또는 방법(툴)을 설명한다. 이 툴은, 일부 실시예들에서, 메시지에 기초하여 랜덤하게 보이는(random-appearing) 요소를 생성할 수 있다. 이후, 툴은 요소를 메시지와 어셈블링할 수 있다. 이러한 어셈블리는 보안 해시 함수를 이용하여 해싱될 수 있으며, 그 결과 해시는, 요소가 없는 메시지에 대하여 동일한 보안 해시 함수로 계산된 해시와 동일한 길이를 갖는다. 이렇게 함으로써, 툴은 충돌을 생성하려는 공격들의 일부 유형들의 유효성을 줄여 보안 해시 함수를 강화할 수 있다.
다른 일부 실시예들에서, 툴은, 메시지의 서브 블록들을 암호화하고, 서브 블록들 및 암호화된 서브 블록들의 배타적 OR(XOR)를 계산하며, 서브 블록들을 XOR 서브 블록들과 어셈블링할 수 있다. 이렇게 함으로써, 메시지의 비트들을 조작하는 것에 의해서는 쉽게 제어될 수 없는 비트들의 재생가능한 어셈블리를 해싱할 수 있다. 그 결과 해시는 메시지 자체에 대하여 계산된 해시보다 안전할 수 있다.
이러한 발명의 개요는, 상세한 설명에서 더 설명되는 간략화된 형태의 개념들 선택을 도입하도록 제공된 것이다. 이 발명의 개요는 청구 대상의 주요하거나 필수 특징들을 식별하려고 의도한 것이 아니며, 청구 대상의 범위 결정을 돕는 데 이용되는 것을 의도한 것도 아니다.
도 1은 다양한 실시예들이 동작할 수 있는 예시적인 운영 환경을 도시한다.
도 2는 메시지를 처리하기 위한 예시적인 흐름도이다.
도 3은 블록 암호화 및 배타적 OR 연산을 이용하는 보안 해시 함수를 위한 예시적인 프로세스이다.
도 4는 메시지의 예시적인 블록들, 그 블록들의 서브 블록들, 및 어셈블링된 블록들을 도시한다.
도 5는 암호화 키에 대한 제어를 줄이기 위한 예시적인 프로세스이다.
도 6은 메시지의 예시적인 XOR 블록들, 암호화된 서브 블록들, 및 어셈블링된 블록들을 도시한다.
명세서 및 도면 전체에 걸쳐 동일한 번호를 이용하여 유사한 컴포넌트들 및 특징들을 참조하고 있다.
개요
다음에 따르는 설명은, 보안 해시 함수를 강화시킬 수 있는 시스템(들) 및/또는 방법(들)(툴)을 설명한다. 툴은, 충돌을 생성하려는 공격들의 일부 유형들의 유효성을 줄임으로써 보안 해시 함수를 강화할 수 있다. 예를 들어, 툴은, 메시지의 비트들에 대하여 제어되는 작은 변경에 기초하는 공격으로부터 보안 해시 함수를 강화할 수 있다.
툴은, 일부 실시예들에서, 메시지에 기초하여 그리고 프로세스를 이용하여 랜덤하게 보이는 요소를 생성할 수 있다. 이후, 툴은, 요소를 메시지와 어셈블링할 수 있다. 이러한 어셈블리는 보안 해시 함수를 이용하여 해싱될 수 있고, 그 결과 해시는 메시지에 대하여 동일한 보안 해시 함수로 계산된 해시와 동일한 길이를 갖는다. 랜덤하게 보이는 다른 요소도, 다른 메시지에 기초하여 그리고 동일한 프로세스를 이용하여 생성될 수 있으며, 그 결과 랜덤하게 보이는 다른 요소는 메 시지들이 동일하다면 처음의 랜덤하게 보이는 요소와 동일하다. 이렇게 함으로써, 미래의 어느 시점에 다른 메시지로부터 다른 어셈블리가 생성될 수 있고, 이 때 그 메시지들이 동일하다면, 다른 어셈블리에 대하여 계산된 해시가 처음의 어셈블리에 대하여 계산된 해시와 동일할 것이다. 이것은 메시지를 인증받게 할 수 있다.
다른 일실시예에서, 툴은, 메시지의 블록들에 블록 암호화를 수행하여, 암호화된 블록들을 발생시킨다. 이후, 툴은 암호화된 블록들 및 블록들의 ADD, SUB 또는 XOR과 같은 연산을 계산하여, ADD, SUB 또는 XOR 블록들을 발생시킨다. 이후, 툴은 ADD, SUB 또는 XOR 블록들을 블록들과 어셈블링하여, 어셈블링된 블록들을 발생시킨다. 이후, 어셈블링된 블록들을 해싱할 수 있다. 어셈블링된 블록들의 비트들은 메시지의 비트들을 변경하는 것에 의해서는 쉽게 제어될 수 없으며, 이것은 그 메시지의 비트들을 신중하게 변경함으로써 충돌을 생성하려는 시도를 잠재적으로 방해한다.
또한, 툴은, 또다른 일실시예에서, 메시지의 블록들을 서브 블록들로 분리할 수 있다. 이후, 툴은 서브 블록들 중 하나 이상에 기초하여 암호화 키를 계산한다. 툴은 서브 블록을 그 암호화 키를 갖는 암호화 함수로 암호화하여 암호화된 서브 블록을 제공하며, 여기서 암호화 키는 암호화되는 서브 블록이 아닌 다른 서브 블록으로부터 계산된다. 이것은, 암호화된 서브 블록들의 개수가 서브 블록들의 개수와 같아질 때까지 반복될 수 있다. 이후, 암호화된 서브 블록들 및 서브 블록들을 결합한다(concatenate). 최종 결합에서는, 블록의 크기와 동일한 크기를 갖는 2개의 결합된 블록이 포함된다. 이렇게 결합된 블록들 각각은 서브 블록들 및 암호화된 서브 블록들을 포함한다. 또한, 툴은, 결합된 블록 각각이 서브 블록들 및 암호화된 서브 블록들을 포함하도록 설정할 수 있고, 여기서 암호화된 서브 블록들은, 2개의 결합된 블록 중 자신이 속하지 않은 결합된 블록의 서브 블록들로부터 계산된 키를 이용하여 암호화된다. 결합된 블록들은 보안 해시 함수로 해싱될 수 있다.
예시적인 운영 환경
툴을 상세히 설명하기 전에, 다음에 따르는 예시적인 운영 환경을 설명하여 툴을 채용할 수 있는 분야 및 방식에 대한 당업자의 이해를 돕는다. 후술하는 설명은 하나의 예를 들고 있지만 이 툴의 응용을 임의의 하나의 특정한 운영 환경으로 제한하려는 것은 아니다.
도 1은, 일반적으로 100으로 지정되며 프로세서(104) 및 컴퓨터 판독가능 매체(106)를 구비한 컴퓨터(102)를 포함하는 이러한 하나의 운영 환경을 예시한다. 프로세서는 컴퓨터 판독가능 매체를 액세스 및/또는 실행할 수 있다. 컴퓨터 판독가능 매체는, 보안 해시를 계산할 수 있는 해시 발생기(108), 보안 해시 함수를 강화할 수 있는 해시 프리프로세서(110), 및 제1 메시지(112)와 제2 메시지(114)인 2개 메시지를 포함하거나, 이에 대한 액세스를 구비한다.
메시지의 선처리
다음에 따르는 설명은, 운영 환경(100)의 요소들이 메시지에 대하여 해시를 계산하기 전에 그 메시지를 먼저 처리함으로써 보안 해시 함수를 강화할 수 있는 예시적인 방식들을 설명한다. 이러한 프로세스는, 해시가 계산되는 비트들을 공격 자가 제어하는 것을 줄이는 데 효과적이다.
도 2를 참조해 보면, 제1 메시지(112)를 처리하기 위한 예시적인 흐름도(200)가 도시되어 있다. 흐름도(200)는, 환경(100)의 요소들에 의한 액션들의 한 세트 및 이러한 요소들 간에 수반되는 통신을 예시한다. 액션 및 수반 통신은 화살표로 표시되어 있다. 이 흐름도는 임의의 적합한 하드웨어, 소프웨어, 펌웨어, 또는 이들의 조합으로 구현될 수 있다. 소프트웨어 및 펌웨어의 경우에, 이 흐름도는 컴퓨터 실행가능 명령어들로 구현된 동작들의 세트들을 나타낸다.
화살표 1에서, 해시 프리프로세서(110)는 제1 메시지(112)에 기초하여 재생가능하며(reproducible) 랜덤하게 보이는 요소(202)를 계산한다. 툴은, 메시지의 일부들 및 이 메시지의 암호화된 일부들에 대하여 이하의 실시예들에서 설명하는 논리적 연산들과 같은 논리적 연산을 행함으로써 그 요소를 계산할 수 있다. 요소(202)는, 실제로는 랜덤하지 않지만, 제1 메시지의 비트들에 대한 변경으로 쉽게 제어되지 않도록 충분히 랜덤하게 보인다. 이 요소는 재생가능하며, 동일한 요소들은, 그 요소들을 발생시키기 위한 동일한 메시지들 및 동일한 프로토콜들에 기초하여 발생할 수 있다. 따라서, 2개의 동일한 메시지들이 동일한 방식으로 처리되고 그 결과 어셈블리가 동일한 해시 함수를 이용하여 해싱되면, 동일한 메시지들은 동일한 해시들을 갖게 된다. 이것은 해시를 이용하여 메시지들이 인증될 수 있게 한다.
화살표 2에서, 해시 프리프로세서(110)는 제1 메시지(112) 및 요소(202)를 포함하는 어셈블리(204)를 만든다. 이 어셈블리는 쉽게 제어될 수 없는 비트들을 포함한다. 따라서, 이 어셈블리는 제1 메시지(112)의 비트들 및 이 비트들에 의존하는 비트들(요소(202))을 포함하지만, 이러한 어셈블리의 비트들은 제1 메시지를 조작하는 악성 조작의 영향을 쉽게 받지 않는다. 본 실시예에서, 어셈블리는, 제1 메시지에 기초하여 재생가능한, 요소 및 제1 메시지의 임의의 조합일 수 있다.
화살표 3에서, 해시 발생기(108)는 어셈블리의 해시를 계산한다. 이 해시는, 해시 발생기의 해시 함수와 동일한 해시 함수 및 동일한 요소를 이용하여 제1 메시지를 인증받게 하는 데 효과적이다. 요소의 동일성은, 동일한 제1 메시지가 동일한 방식으로 해시 프리프로세서에 의해 처리되는 것에 의해 허용될 수 있다.
본 실시예에서는, 해시 발생기(108)가 변경되지 않는다. 오히려, 해시 함수 자체가 아니라, 해시가 계산되는 비트들이 변경된다. 이것은 각각 보안 해시 알고리즘(Secure Hash Algorithm-1; SHA-1) 및 보안 해시 시스템(SHS)과 같은 표준 보안 해시 함수 및 시스템을 계속하여 사용할 수 있게 한다.
공격자는, 메시지 자체의 비트들을 완전히 제어할 수 있지만, 메시지가 흐름도(200)에서 설명한 바와 같이 선처리됨으로써, 해시가 계산되는 비트들 중 많은 부분을 더 이상 제어하지 못한다. 이것은 해시가 단순히 메시지 자체가 아닌 선처리된 메시지에 대하여 계산되기 때문이다. 충돌(2개의 서로 다른 메시지에 대한 동일한 해시)을 생성하려는 공격자는, 일반적으로 메시지의 해싱될 블록들의 시작 비트들에 제어되는 작은 변경을 가함으로써 그러한 공격을 시도할 수 있다. 그러나, 흐름도(200)를 따르는 툴은, 공격자의 메시지의 해시 및 다른 메시지의 해시 간의 충돌 여지를 증가시키는 공격자의 능력을 줄일 수 있다. 공격자에 의한 메시 지의 작은 변경은 선처리된 메시지를 크게 변경시키고, 이에 따라 충돌을 생성하려는 공격자의 능력을 잠재적으로 줄이게 된다.
블록 암호화 및 배타적 OR 연산
다음으로, 툴이 블록 암호화 및 배타적 OR 연산을 이용하여 보안 해시 함수를 강화시키는 예시적인 방식들을 설명한다. 후술하는 설명이 청구 대상의 응용을 한정하려는 것이 아님을 인식 및 이해하기 바란다.
도 3에는, 예시적인 프로세스(300)가 개별적인 동작 또는 액션을 나타내는 일련의 단계들로 도시되어 있다. 후술하는 일실시예에서, 해시 프리프로세서(110)와 같은 도 1의 운영 환경(100)의 요소들이 이러한 프로세스를 수행한다. 본 명세서에서 설명하는 이러한 프로세스 및 다른 프로세스는 임의의 적합한 하드웨어, 소프트웨어, 펌웨어, 또는 그 조합으로 구현될 수 있으며, 소프트웨어 및 펌웨어의 경우에, 이러한 프로세스들은, 컴퓨터 판독가능 매체(106)에 저장되며 프로세서(104)에 의해 실행가능한 컴퓨터 실행가능 명령어들로서 구현된 한 세트의 동작들을 나타낸다.
단계(302)는 메시지를 블록들로 분리한다. 이 블록들은 보안 해시 함수에 의해 처리될 수 있는 크기를 가질 수 있다. 도 4에 도시한 예시적인 일실시예에서, 해시 프리프로세서(110)는 제1 메시지(112)를 일련의 512비트 블록들로 나누며, 그 비트 블록들 중 3개의 블록이 402에 도시되어 있다.
단계(304)는 메시지를 서브 블록들로 분리한다. 각 서브 블록은 블록들(402)처럼 보다 큰 블록들로부터 분리될 수 있다. 예시한 실시예에서, 한 서브 블록마다 128비트인 서브 블록(404) 4개를 각 블록(402)으로부터 분리한다. 이 블록들 중 하나의 블록으로부터 분리된 서브 블록들이 "A", "B", "C", "D"로 표시되어 있다.
단계(306)는 메시지의 서브 블록들을 암호화하여 암호화된 서브 블록들을 제공한다. 일실시예에서, 단계(306)는 메시지의 서브 블록들을 암호화하여 암호화된 서브 블록들을 제공하는데, 이 때 서브 블록들의 개수가 임의의 개수일 수 있다.
"K", "L", "T"라 칭하는 3개의 연산을 수행할 수 있다. K 함수는 키를 발생시킨다. L 함수는, 키가 알려져 있더라도 암호를 비가역으로 만드는 패드를 발생시킨다. T 함수는, 서브 블록들의 변환이 높은 확률로 일대일 방식으로 유지되는 것을 보장하는 태그(t)를 발생시킨다. 이것은 4개의 서브 블록들(A, B, C, D)에 대해서 다음에 따르는 방식으로 수학적으로 표현될 수 있다.
Figure 112007087941932-PCT00001
보다 일반적으로, 이것은 다음과 같이 수학적으로 표현될 수 있다.
Figure 112007087941932-PCT00002
t, U, V, W, X의 이러한 출력에 의해, 다음과 같은 경우가 나타날 수 있다.
Figure 112007087941932-PCT00003
그리고, 공격자가 AB를 키로서 선택하는 것을 방지하려면, K 함수는 다음과 같을 수 있다.
Figure 112007087941932-PCT00004
블록들을 더 혼합하려면, 다른 전단사 함수를 이용할 수도 있다.
이러한 프로세스의 일 예가 아래에 나타나 있다. 여기서, 단계(306)는 원래의 서브 블록들(A, B, C, D)을 하나의 블록 암호로 암호화한다. 단계(306)는 이를 해시 프리프로세서(110)를 이용하여 행할 수 있으며, 이에 따라 암호화 키(n)를 갖는 암호화 함수(En)를 이용하여 서브 블록(A)을 암호화할 수 있다. 여기서, R은 서브 블록(A)을 암호화한 결과로서, 암호화된 서브 블록이라 칭한다. 암호화 키는, 동일한 블록으로부터 분리된 다른 서브 블록, 이 경우, 임의의 서브 블록(B, C, 또는 D) 또는 이 임의의 서브 블록(B, C, 및/또는 D)의 조합의 비트들로부터 유도된다. 본 실시예에서, 암호화 키는 서브 블록들(C, D)로부터 유도되므로 cd로 표시된다. 이것은 다음과 같이 수학적으로 표현될 수 있다.
Figure 112007087941932-PCT00005
사용되는 암호화 함수는 128비트 고급 암호화 표준(Advanced Encryption Standard; AES) 암호화 함수일 수 있다. 암호화 키는, 하나 이상의 다른 서브 블 록들에 기초하고 또한 재생가능하도록 다른 서브 블록들로부터 유도될 수 있다.
마찬가지로, 단계(306)는, 다른 암호화된 서브 블록들을 제공하도록 다른 서브 블록들(B, C, D)을 암호화할 수 있다. 이들은 수학적으로 다음과 같이 표현된다.
Figure 112007087941932-PCT00006
따라서, 다수의 암호화된 서브 블록들이 만들어지며, 이들 각각은 재생가능하며 하나 이상의 서브 블록들의 비트들에 기초한다.
단계(308)는 하나의 서브 블록 및 하나의 암호화된 서브 블록의 배타적 OR(XOR)를 계산하여 하나의 XOR 서브 블록을 제공한다.
여기서, 해시 프리프로세서(110)는, 배타적 OR(XOR, 또는, 수학 기호로
Figure 112007087941932-PCT00007
)를 계산하여
Figure 112007087941932-PCT00008
의 결과를 얻게 된다.
이러한 결과들의 각각은 랜덤하게 보이며 공격자에 의해 쉽게 제어되지 않는다. 따라서, 공격자가 A, B, C, 또는 D의 비트들을, 제어되는 작은 변경을 이용하는 것들에 의해 악의적으로 변경하더라도, XOR 서브 블록들은, A, B, C, 또는 D의 비트들의 변경을 허용하는 것과 같은 대응하는 제어 레벨로 악의적으로 선택되지 않을 수 있다.
단계(310)는 서브 블록들 및 XOR 서브 블록들을 어셈블링하여 어셈블링된 블 록들을 제공한다. 각 어셈블링된 블록은, 자신이 기초하고 있는 블록들보다 개수는 2배만큼 많을 수 있지만, 그 블록들의 비트 크기와 동일한 비트 크기를 가질 수 있다.
예시한 바와 같이, 서브 블록들(A, B, C, D)은 XOR 블록들(
Figure 112007087941932-PCT00009
)에 결합된다. 여기서, 이 블록들은
Figure 112007087941932-PCT00010
Figure 112007087941932-PCT00011
인 2개의 어셈블링된 블록들로 어셈블링된다.
이 블록들이 단계(406)에서 도 4에 도시되어 있다. 이렇게 어셈블링된 블록들 각각은, 메시지의 비트들에 대하여 제어되는 작은 변경으로 쉽게 제어될 수 없는 요소들을 포함한다. 또한, 이러한 요소들은 메시지의 비트들에 대하여 제어되는 작은 변경을 이용하여 충돌을 생성하려는 시도를 더욱 어렵게 만든다.
이러한 어셈블링된 블록들의 각각은, 어셈블링된 블록들이 기초하고 있는 메시지의 블록들과 동일한 방식으로 해싱될 수 있는 크기를 가질 수 있다. 많은 보안 해시 함수들은, 보다 많은 계산 시간을 필요로 하지만, 동일한 크기의 추가 블록들을 쉽게 처리할 수 있다.
단계(304, 306, 308, 및/또는 310)는 메시지의 각 블록 또는 하나 이상의 다른 블록들에 대하여 반복될 수 있다. 이러한 액션들을 반복함으로써, 메시지의 대부분 또는 전부가, 예시한 실시예의 XOR 블록들처럼, 재생가능하며 랜덤하게 보이는 요소들을 포함하도록 선처리될 수 있다.
단계(312)는 서브 블록들 및 XOR 서브 블록들의 어셈블리에 대하여 보안 해 시 함수를 계산한다. 메시지가 (흔히) 하나보다 많은 블록을 포함하는 경우, 서브 블록들 및 XOR 서브 블록들의 다수의 어셈블리에 대하여 보안 해시 함수를 계산한다. 예시한 실시예에서, 해시 발생기(108)는 SHA-1를 이용하여 서브 블록들 및 XOR 서브 블록들의 어셈블리들의 160비트 해시를 계산한다. 이렇게 함으로써, 메시지에 기초하며 이 메시지로부터 재생가능한 해시를 계산할 수 있다.
예를 들어, 제2 메시지(114)가 도 3에 예시한 바와 같이 처리되면, 그 결과 제2 메시지에 대하여 발생하는 해시는, 제2 메시지(114) 및 제1 메시지(112)가 동일한 경우, 제1 메시지(112)의 해시와 동일할 것이다. 이 해시들이 동일한 경우, 제1 메시지 또는 제2 메시지는 인증받을 수 있다. 이 해시들이 동일하지 않은 경우, 제1 메시지 및 제2 메시지가 동일하지 않음을 알 수 있다.
암호화 키
다음에 따르는 설명은, 툴이 메시지의 선처리에 사용되는 암호화 키에 대한 잠재적 제어를 줄임으로써 보안 해시 함수를 강화하는 예시적인 방식들을 설명한다. 도 2 또는 도 3에서 설명한 바와 같이, 툴은, 요소가 유도되는 메시지의 비트들을 조작하는 공격자에 의해 쉽게 제어될 수 없는 그 요소를 생성함으로써 보안 해시 함수를 부분적으로 강화한다.
도 5는, 암호화 키에 대한 제어를 줄이기 위한 예시적인 프로세스(500)를 설정한다. 프로세스(500)는, 해시 프리프로세서(110)와 같은 도 1의 운영 환경(100)의 요소들에 의해 수행되는 개별적인 동작들이나 액션들을 나타내는 일련의 단계들로 도시되어 있다.
단계(502)는, 메시지로부터 재생가능하며 랜덤하게 보이는 요소를 유도한다. 도 6에 도시한 예시적인 일실시예에서는, 단계(308)로부터 발생하는 XOR 서브 블록들(602)이 제공된다. 이러한 XOR 서브 블록들 및 이들의 구성물인 암호화된 서브 블록들(P, Q, R, S)은, 스스로 해싱될 수는 없지만 해싱을 위한 블록들로 어셈블링될 요소들을 만드는 데 이용되기 때문에, 본 실시예에서 중간물들이다.
따라서, 다음과 같은 경우를 얻을 수 있다.
Figure 112007087941932-PCT00012
단계(504)는, 메시지로부터 유도된 재생가능하며 랜덤하게 보이는 요소로부터 랜덤하게 보이는 암호화 키를 유도한다. 여기서, 해시 프리프로세서(110)는 랜덤하게 보이는 암호화 키(RAE-n)를 설정하고, 이 "n"은, 도 6에 도시한 XOR 서브 블록들(602)에 기초하여 키가 유도되는 요소를 나타낸다. 이것은 다음과 같이 표현할 수 있다.
Figure 112007087941932-PCT00013
단계(506)는 랜덤하게 보이는 암호화 키(RAE 키)를 이용하여 메시지의 일부를 암호화한다. 여기서, 도 3의 단계(304)로부터 발생하는 서브 블록들(404; A, B, C, D)은, 단계(504)에서 XOR 서브 블록들(602)로부터 유도된 RAE 키들을 이용하여 암호화된다. 이것은, V, W, T, U로 표시된, RAE-키 암호화된 서브 블록들(604) 을 제공한다. 따라서, 서브 블록들(404)은 RAE 키(RAE-n)를 갖는 암호화 함수(En)를 이용하여 암호화되어 RAE-키 암호화된 서브 블록들이 제공된다.
이것은 수학적으로 다음과 같이 표현된다.
Figure 112007087941932-PCT00014
이후, 이러한 RAE-키 암호화된 서브 블록들은, 도 3의 프로세스(300)에 따라, 암호화된 블록들로서 처리될 수 있다. 여기서, P = T, Q = U, R = V, 및 S = W이다. 예를 들어 도 3의 단계들(308, 310) 후에, 다음과 같이 어셈블링된 블록들(606)이 발생한다.
즉,
Figure 112007087941932-PCT00015
Figure 112007087941932-PCT00016
이다.
결론
전술한 시스템 및 방법은 보안 해시 함수를 강화한다. 이 시스템 및 방법은 메시지들 간에 충돌을 생성하려는 공격들의 일부 유형들의 유효성을 상당히 줄일 수 있다. 이렇게 함으로써, 메시지들은 보안 해시 함수를 이용하여 보다 높은 확실성으로 인증받을 수 있다. 구조적 특징 및/또는 방법론적 액션에 특정된 용어로 시스템 및 방법을 설명하였지만, 청구 범위에서 한정된 시스템 및 방법이 반드시 전술한 특정한 특징들이나 액션들로 제한되지 않는다는 점을 이해할 것이다. 오히려, 특정한 특징들 및 액션들은 청구하는 시스템 및 방법을 구현하는 예시적인 형 태로 제시된 것이다.

Claims (20)

  1. 내부에 컴퓨터 판독가능 명령어를 갖는 하나 이상의 컴퓨터 판독가능 매체로서,
    상기 컴퓨터 판독가능 명령어가 컴퓨터에 의해 실행될 때,
    메시지에 기초하며 프로세스를 이용하여 랜덤하게 보이는 요소를 생성하는 단계와,
    상기 요소를 상기 메시지와 어셈블링하여 어셈블리를 제공하는 단계 - 상기 어셈블리는 보안 해시 함수로 해싱되어 해시를 제공할 수 있고, 상기 해시는 상기 메시지가 동일한 보안 해시 함수에 의해 해싱되는 것으로부터 발생하는 제2 해시의 길이와 동일한 길이를 가짐 -
    를 포함하는 단계들을 상기 컴퓨터에게 수행시키고,
    상기 프로세스는 제2 메시지에 기초하여 랜덤하게 보이는 제2 요소를 생성할 수 있고, 상기 제2 메시지가 상기 제1 메시지와 동일한 경우, 상기 랜덤하게 보이는 제2 요소는 랜덤하게 보이는 제1 요소와 동일한 컴퓨터 판독가능 매체.
  2. 제1항에 있어서,
    상기 랜덤하게 보이는 요소를 생성하는 단계는,
    블록 암호를 이용하여 상기 메시지의 일부를 암호화함으로써, 암호화된 일부를 제공하는 단계와,
    상기 암호화된 일부 및 상기 메시지의 상기 일부에 대하여 배타적 OR(XOR)을 계산하여 랜덤하게 보이는 요소를 제공하는 단계
    를 포함하는 컴퓨터 판독가능 매체.
  3. 제1항에 있어서,
    상기 어셈블링하는 단계는 상기 랜덤하게 보이는 요소 및 상기 메시지를 결합하는 단계를 포함하는 컴퓨터 판독가능 매체.
  4. 제1항에 있어서,
    상기 프로세스는,
    블록 암호를 이용하여 상기 메시지의 일부를 암호화함으로써, 암호화된 일부를 제공하는 단계와,
    상기 암호화된 일부 및 상기 메시지의 상기 일부에 대하여 배타적 OR(XOR)을 계산하여 랜덤하게 보이는 요소를 제공하는 단계
    를 포함하는 컴퓨터 판독가능 매체.
  5. 제1항에 있어서,
    상기 랜덤하게 보이는 요소를 생성하는 단계는,
    상기 메시지에 기초하여 중간물인 랜덤하게 보이는 요소를 얻는 단계와,
    상기 중간물인 랜덤하게 보이는 요소로부터 랜덤하게 보이는 암호화 키를 유 도하는 단계와,
    상기 메시지의 일부를 상기 랜덤하게 보이는 암호화 키를 이용하는 암호화 함수로 암호화함으로써, 암호화된 일부를 제공하는 단계와,
    상기 암호화된 일부 및 상기 메시지의 상기 일부의 배타적 OR(XOR)을 계산하여 랜덤하게 보이는 요소를 제공하는 단계
    를 포함하는 컴퓨터 판독가능 매체.
  6. 제5항에 있어서,
    상기 암호화 함수는 128비트 고급 암호화 표준(Advanced Encryption Standard) 블록-암호 암호화 함수를 포함하는 컴퓨터 판독가능 매체.
  7. 제1항에 있어서,
    상기 보안 해시 함수는 보안 해시 알고리즘-1(Secure Hash Algorithm-1)을 포함하는 컴퓨터 판독가능 매체.
  8. 내부에 컴퓨터 판독가능 명령어를 갖는 하나 이상의 컴퓨터 판독가능 매체로서,
    상기 컴퓨터 판독가능 명령어가 컴퓨터에 의해 실행될 때,
    하나의 데이터 블록의 제1 서브 블록 및 제2 서브 블록을 암호화하여 암호화된 제1 서브 블록 및 암호화된 제2 서브 블록을 제공하는 단계와,
    상기 제1 서브 블록 및 상기 암호화된 제1 서브 블록의 배타적 OR(XOR)을 계산하여 제1 XOR 서브 블록을 제공하는 단계와,
    상기 제2 서브 블록 및 상기 암호화된 제2 서브 블록의 배타적 OR(XOR)을 계산하여 제2 XOR 서브 블록을 제공하는 단계와,
    상기 제1 XOR 서브 블록 및 상기 제2 XOR 서브 블록을 상기 제1 서브 블록 및 상기 제2 서브 블록과 어셈블링하여 어셈블링된 제1 블록 및 어셈블링된 제2 블록을 제공하는 단계
    를 포함하는 단계들을 상기 컴퓨터에게 수행시키는 컴퓨터 판독가능 매체.
  9. 제8항에 있어서,
    상기 암호화하는 단계는, 상기 제1 서브 블록 및 상기 제2 서브 블록에 대하여 블록 암호를 수행하는 단계를 포함하는 컴퓨터 판독가능 매체.
  10. 제8항에 있어서,
    상기 암호화 단계는,
    상기 제2 서브 블록으로부터 유도된 제1 암호화 키를 이용하여 상기 제1 서브 블록을 암호화하는 단계와,
    상기 제1 서브 블록으로부터 유도된 제2 암호화 키를 이용하여 상기 제2 서브 블록을 암호화하는 단계
    를 포함하는 컴퓨터 판독가능 매체.
  11. 제10항에 있어서,
    상기 암호화 단계는 제3 서브 블록 및 제4 서브 블록을 암호화하는 단계를 포함하고,
    상기 제1, 제2, 또는 제4 서브 블록으로부터 유도된 제3 암호화 키를 이용하여 상기 제3 서브 블록을 암호화하고, 상기 제1, 제2, 또는 제3 서브 블록으로부터 유도된 제4 암호화 키를 이용하여 상기 제4 서브 블록을 암호화하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  12. 제11항에 있어서,
    상기 어셈블링된 제1 블록 또는 상기 어셈블링된 제2 블록은, 상기 제1 XOR 블록, 상기 제2 XOR 블록, 상기 제3 서브 블록, 상기 제4 서브 블록의 결합인 컴퓨터 판독가능 매체.
  13. 제8항에 있어서,
    상기 암호화 단계는, 고급 암호화 표준 블록-암호 암호화 함수를 수행하는 단계를 포함하는 컴퓨터 판독가능 매체.
  14. 제8항에 있어서,
    상기 블록은 메시지의 일부이고,
    상기 블록을 제1 서브 블록과 제2 서브 블록으로 분리하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  15. 제14항에 있어서,
    상기 메시지를 복수의 블록으로 분리하는 단계를 더 포함하고,
    상기 블록은 상기 복수의 블록 중 하나의 블록인 컴퓨터 판독가능 매체.
  16. 제8항에 있어서,
    상기 블록의 길이는 512비트이고 상기 서브 블록들의 길이는 128비트인 컴퓨터 판독가능 매체.
  17. 제8항에 있어서,
    상기 어셈블링된 제1 및 제2 블록들에 대하여 해시를 계산하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  18. Figure 112007087941932-PCT00017
    를 계산하는 단계와,
    Figure 112007087941932-PCT00018
    를 계산하여 해시(h)를 제공하는 단계를 포함하고,
    여기서, A, B, C, D는 메시지의 일부들이고, E는 암호화 함수이며, cd는 상기 일부들(C, D)로부터 유도된 암호화 키이고, ab는 상기 일부들(A, B)로부터 유도된 암호화 키이며, H는 보안 해시 함수인 방법.
  19. 제18항에 있어서,
    E는 128비트 고급 암호화 표준(AES) 암호화 함수를 포함하는 방법.
  20. 제18항에 있어서,
    H는 보안 해시 알고리즘-1(SHA-1)을 포함하는 방법.
KR1020077028547A 2005-06-28 2006-06-13 보안 해시 함수의 강화 KR20080018182A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/168,842 US7546461B2 (en) 2005-06-28 2005-06-28 Strengthening secure hash functions
US11/168,842 2005-06-28

Publications (1)

Publication Number Publication Date
KR20080018182A true KR20080018182A (ko) 2008-02-27

Family

ID=37569013

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077028547A KR20080018182A (ko) 2005-06-28 2006-06-13 보안 해시 함수의 강화

Country Status (6)

Country Link
US (1) US7546461B2 (ko)
EP (1) EP1886432A2 (ko)
JP (1) JP2008545163A (ko)
KR (1) KR20080018182A (ko)
CN (1) CN101204035A (ko)
WO (1) WO2007001829A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180112061A (ko) * 2016-02-23 2018-10-11 엔체인 홀딩스 리미티드 블록체인 집행의 스마트 계약을 위한 레지스트리 및 자동화 관리 방법

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070113083A1 (en) * 2005-07-14 2007-05-17 Volkovs Nikolajs System and method of message authentication
KR100785810B1 (ko) * 2006-12-05 2007-12-13 한국전자통신연구원 Rfid 데이터 보호 장치 및 방법
US8086860B2 (en) * 2007-10-01 2011-12-27 Tata Consultancy Services Limited Method for preventing and detecting hash collisions of data during the data transmission
US8954754B2 (en) * 2011-12-22 2015-02-10 Intel Corporation Method and apparatus to process SHA-1 secure hashing algorithm
KR102013841B1 (ko) 2012-08-06 2019-08-23 삼성전자주식회사 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치
US9935768B2 (en) 2012-08-06 2018-04-03 Samsung Electronics Co., Ltd. Processors including key management circuits and methods of operating key management circuits
CA2903830C (en) 2013-03-05 2021-08-24 Fasetto, Llc System and method for cubic graphical user interfaces
CN103209075A (zh) * 2013-03-15 2013-07-17 南京易司拓电力科技股份有限公司 一种密码交换方法
WO2015009944A1 (en) 2013-07-18 2015-01-22 Christmas Coy System and method for multi-angle videos
US10095873B2 (en) 2013-09-30 2018-10-09 Fasetto, Inc. Paperless application
US9584402B2 (en) * 2014-01-27 2017-02-28 Fasetto, Llc Systems and methods for peer to peer communication
EP4322496A3 (en) 2014-07-10 2024-05-01 Fasetto, Inc. Systems and methods for message editing
US10437288B2 (en) 2014-10-06 2019-10-08 Fasetto, Inc. Portable storage device with modular power and housing system
CN107006063B (zh) 2014-10-06 2021-08-24 法斯埃托股份有限公司 用于便携式存储设备的系统和方法
JP6754369B2 (ja) 2015-03-11 2020-09-09 ファセット・インコーポレーテッド ウェブapi通信システムおよび方法
WO2017096245A1 (en) 2015-12-03 2017-06-08 Fasetto, Llc Systems and methods for memory card emulation
EP4221085A1 (en) 2016-11-23 2023-08-02 Fasetto, Inc. Systems and methods for streaming media
EP3576992A4 (en) 2017-02-03 2020-12-02 Fasetto, Inc. SYSTEMS AND METHODS FOR STORING DATA IN KEY DEVICES
US10763630B2 (en) 2017-10-19 2020-09-01 Fasetto, Inc. Portable electronic device connection systems
TW201919361A (zh) * 2017-11-09 2019-05-16 張英輝 以雜文加強保護之區塊加密及其解密之方法
MX2020005623A (es) 2017-12-01 2021-01-08 Fasetto Inc Sistemas y metodos para el cifrado de datos mejorado.
KR20210018217A (ko) 2018-04-17 2021-02-17 파세토, 인크. 실시간 피드백이 있는 디바이스 프레젠테이션
WO2019225735A1 (ja) * 2018-05-25 2019-11-28 株式会社ZenmuTech データ処理装置、方法及びコンピュータプログラム
JP2022016089A (ja) 2020-07-10 2022-01-21 富士通株式会社 生成プログラム、生成方法、および生成装置
US11288663B1 (en) 2021-06-25 2022-03-29 Arri E. Manuel Blockring service, system, and method thereof
US11934667B1 (en) * 2021-06-30 2024-03-19 Amazon Technologies, Inc. Encrypted-data-only media operations

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4229818A (en) * 1978-12-29 1980-10-21 International Business Machines Corporation Method and apparatus for enciphering blocks which succeed short blocks in a key-controlled block-cipher cryptographic system
US5214698A (en) * 1991-03-20 1993-05-25 International Business Machines Corporation Method and apparatus for validating entry of cryptographic keys
US5323464A (en) * 1992-10-16 1994-06-21 International Business Machines Corporation Commercial data masking
US5606616A (en) * 1995-07-03 1997-02-25 General Instrument Corporation Of Delaware Cryptographic apparatus with double feedforward hash function
WO1998031122A1 (en) 1997-01-08 1998-07-16 Bell Communications Research, Inc. A method and apparatus for generating secure hash functions
KR100389902B1 (ko) 1997-06-23 2003-09-22 삼성전자주식회사 차분해독법과선형해독법에대하여안전성을보장하는고속블럭암호화방법
US6578144B1 (en) 1999-03-23 2003-06-10 International Business Machines Corporation Secure hash-and-sign signatures
EP1081888B1 (en) * 1999-08-31 2005-12-21 Matsushita Electric Industrial Co., Ltd. Encryption method, encryption apparatus, decryption method, and decryption apparatus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180112061A (ko) * 2016-02-23 2018-10-11 엔체인 홀딩스 리미티드 블록체인 집행의 스마트 계약을 위한 레지스트리 및 자동화 관리 방법

Also Published As

Publication number Publication date
CN101204035A (zh) 2008-06-18
US7546461B2 (en) 2009-06-09
EP1886432A2 (en) 2008-02-13
US20060294386A1 (en) 2006-12-28
WO2007001829A2 (en) 2007-01-04
JP2008545163A (ja) 2008-12-11
WO2007001829A3 (en) 2007-05-18

Similar Documents

Publication Publication Date Title
KR20080018182A (ko) 보안 해시 함수의 강화
Leurent et al. {SHA-1} is a shambles: First {Chosen-Prefix} collision on {SHA-1} and application to the {PGP} web of trust
CN109951296B (zh) 一种基于短签名的远程数据完整性验证方法
Ali et al. A novel improvement with an effective expansion to enhance the MD5 hash function for verification of a secure E-document
Gnatyuk et al. Secure hash function constructing for future communication systems and networks
US7995750B2 (en) Privacy-preserving concatenation of strings
WO2015163822A1 (en) Method and system for generating / decrypting ciphertext, and method and system for searching ciphertexts in a database
US7986780B2 (en) Privacy-preserving substring creation
Alkandari et al. Cryptographic hash function: A high level view
WO2016153430A1 (en) Method of obfuscating data
CN106452791A (zh) 一种无信任中心的量子数字签名方法
CN111859435B (zh) 一种数据安全处理方法及装置
Majumdar et al. A novel DNA-inspired encryption strategy for concealing cloud storage
Bhandari et al. Enhancement of MD5 Algorithm for Secured Web Development.
Ahmad et al. A secure network communication protocol based on text to barcode encryption algorithm
Duan et al. Secure and verifiable outsourcing of large-scale nonnegative matrix factorization (NMF)
Sadeghi-Nasab et al. A comprehensive review of the security flaws of hashing algorithms
Yang [Retracted] Application of Hybrid Encryption Algorithm in Hardware Encryption Interface Card
US20180097633A1 (en) Signature generation and verification system
Polpong et al. Authentication and password storing improvement using SXR algorithm with a hash function
Bock Modern Cryptography for Cybersecurity Professionals: Learn how you can leverage encryption to better secure your organization's data
Cid Recent developments in cryptographic hash functions: Security implications and future directions
Asif et al. A review on classical and modern encryption techniques
Gorbenko et al. Analysis of Potential Post-Quantum Schemes of Hash-Based Digital Signatur
Velioğlu et al. A New Approach to Cryptographic Hashing: Color Hidden Hash Algorithm

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid