머클-헬만 배낭 암호체계

Merkle–Hellman knapsack cryptosystem

머클-헬먼 배낭 암호 시스템은 초기 공개키 암호체계 중 하나이다.1978년 랄프 머클마틴 헬먼에 의해 출판되었다.다항식 시간 공격은 1984년에 Adi Shamir에 의해 출판되었다.그 결과, 암호체계는 현재 불안정한 것으로 간주되고 있다.[1]: 465 [2]: 190

역사

공개키 암호화의 개념은 1976년 휘트필드 디피와 마틴 헬먼에 의해 도입되었다.[3]당시 그들은 어떤 비밀 "트랩도어" 정보 없이는 계산하기 어려운 함수인 "트랩도어 함수"의 일반적인 개념만을 제안했지만, 아직 그러한 함수의 실질적인 예를 찾지 못하고 있었다.그 후 1977년 RSA, 1978년 Merkle-Hellman과 같은 몇 년 동안 다른 연구자들에 의해 구체적인 공개키 암호 시스템이 제안되었다.[4]

설명

Merkle-Hellman은 공개키 암호체계로, 암호화를 위한 공개키와 암호 해독을 위한 비공개키라는 두 개의 키가 사용된다.그것은 서브셋 합계 문제(캡삭 문제의 특별한 경우)에 근거한다.[5]문제는 다음과 같다: 정수 정수 c 의 집합이 주어진 c{\하는 A 의 하위 집합을 찾으십시오 일반적으로 이 문제는 NP-완전한 것으로 알려져 있다.그러나 이(가) 증가하여 집합의 각 요소가 집합의 모든 숫자의 합보다 작을 경우 문제는 "쉬운"이며 단순한 탐욕 알고리즘으로 다항식 시간에 해결할 수 있다.

인 머클-헬먼, 메시지 암호를 해독하려면 겉보기에는 "힘든" 배낭 문제를 해결해야 해.개인 키에는 숫자 의 증가 목록이 포함되어 있으며 공용 키에는 W 의 "disguided" 버전인 숫자 의 증가되지 않는 목록이 포함되어 있다 개인 키에는 하드 변환에 사용할 수 있는 일부 "rapdoor" 정보도 포함되어 있다. 을(를) 사용한 배낭 문제에서 W 을(를 사용한 손쉬운 배낭 문제.

RSA와 같은 다른 공개 키 암호 시스템과 달리, Merkle-Hellman의 두 키는 서로 교환할 수 없으므로 개인 키를 암호화에 사용할 수 없다.따라서 Merkle-Hellman은 Samir가 서명에 사용할 수 있는 변종을 발표했음에도 불구하고 암호화 서명에 의한 인증에 직접 사용할 수 있는 것은 아니다.[6]

키 생성

1. 블록 크기 을 선택하십시오 이 키로 n {\ n 길이의 정수를 암호화할 수 있다.

2. 정수의 랜덤하게 증가된 시퀀스 선택

> i= - 1 1 < c\ .

3. 무작위 정수 을(를) 다음과 같이 선택한다.

4. ,)= , r (가) 같은 값인 임의 r r}을 선택하십시오

5. 순서 계산

여기서 =

공개 키는 이고 개인 키는(, , r) 입니다

암호화

(를) -bit m {\2}\m_로 구성되며 이 가장 높은 순서 비트로 한다. (가) 0이 아닌 i{\ b_{i를 선택하고 함께 추가하십시오.동등하게 계산한다.

= = b

은 c 입니다

암호 해독

암호문 를) 해독하려면 c}을를) 합한 B {\ c의 서브셋을 찾아야 한다 우리는 }의 서브셋을 찾는 것의 하나로 변환함으로써 이 문제는 다항식 시간 내에 해결될 수 있다

1. 확장유클리드 알고리즘을 사용하여 modulo 모듈 반전을 계산한다. (가) 과(와) 동일하므로 역이 존재할 것이다

의 계산은 메시지와 무관하며, 개인 키가 생성되었을 때 한 번만 할 수 있다.

2. 계산하다

3. 아래에 설명된 간단한 탐욕 알고리즘에 의해 증가 W (를 하여 c{\에 대한 부분집합 문제를 해결하십시오.Let be the resulting list of indexes of the elements of which sum to . (That is, .)

4. m 비트 위치에 각각 1개, 기타 모든 비트 위치에 0개씩 메시지 {\을(를) 생성하십시오.

부분합계 문제 해결

이 단순한 탐욕 알고리즘은 다항식 시간에서 를) 합한 증가 W 의 하위 집합을 찾는다.

1. 을(를) 빈 목록으로 초기화하십시오.
2. 에서 c c보다 작거나 같은 가장 큰 요소를 w j {\displaystyle w_라고 말하십시오
3. 빼기: - c
4. j 을(를 추가하십시오
5. (가) 0보다 크면 2단계로 돌아가십시오.

키 생성

다음과 같은 8개 값의 무작위적으로 증가된 시퀀스를 만들어 8비트 숫자를 암호화하는 키를 만드십시오.

합계가 706이므로 에 대해 더 큰 값을 선택하십시오

=

복사하려면 r r을(를) 선택하십시오

=

의 각 요소에 modulo (를) 곱하여 공용 B 을(를) 생성하십시오

그러므로 =( , , , )

암호화

8비트 메시지를 = = 2 각 비트에 의 해당 숫자를 곱하고 결과를 추가한다.

0 * 295 + 1 * 592 + 1 * 301 + 0 * 14 + 0 * 28 + 0 * 353 + 0 * 120 + 1 * 236     = 1129

암호 텍스트 (는) 1129이다.

암호 해독

1129의 암호를 해독하려면 먼저 확장 유클리드 알고리즘을 하여 r md {\의 모듈 반전을 찾으십시오

= - 1 = - 1 8 = .

계산 = c = 8 = .

탐욕스러운 알고리즘을 사용하여 w i {\displaystyle 값의 합으로 분해하십시오.

따라서 = + + = + + w + w 2 {\3}+ 색인 은 X=(, , , 2, 2로 계산할 수 있다

= = - i= 2 - - + + - = + + = m97.

암호해석

1984년에 Adi Shamir는 개인 키를 사용하지 않고도 다항식 시간에 암호화된 메시지를 해독할 수 있는 Merkle-Hellman 암호 시스템에 대한 공격을 발표했다.[7] The attack analyzes the public key and searches for a pair of numbers and such that is a superincreasing sequence.공격에 의해 발견된(, ) 쌍은 개인 키의 , ) 과 같지 않을 수 있지만, 이 쌍과 로 B{\을(으)를 사용하는 하드 배낭 문제를 초증가 시퀀스를 사용하는 쉬운 문제로 변환하는 데 사용할 수 있다.그 공격은 오직 공개 키에서만 작동한다. 암호화된 메시지에 대한 접근은 필요하지 않다.

참조

  1. ^ Schneier, Bruce (1996). Applied Cryptography. New York: John Wiley & Sons. ISBN 0-471-12845-7.
  2. ^ Stinson, Douglas R. (1995). Cryptography: Theory and Practice. Boca Raton: CRC Press. ISBN 0-8493-8521-0.
  3. ^ Whitfield Diffie; Martin Hellman (1976). "New directions in cryptography". IEEE Transactions on Information Theory. 22 (6): 644. CiteSeerX 10.1.1.37.9720. doi:10.1109/TIT.1976.1055638.
  4. ^ Merkle, Ralph; Hellman, Martin (1978). "Hiding information and signatures in trapdoor knapsacks". IEEE Transactions on Information Theory. 24 (5): 525–530. doi:10.1109/TIT.1978.1055927.
  5. ^ Cherowitzo, William (2002-03-02). "Merkle-Hellman Knapsack Cryptosystem". Math 5410 - Modern Cryptology. Retrieved 2019-08-18.
  6. ^ Shamir, Adi (July 1978). "A Fast Signature Scheme". MIT Laboratory for Computer Science Technical Memorandum. 79 (MIT/LCS/TM–107): 15240. Bibcode:1978STIN...7915240S.
  7. ^ Shamir, Adi (1984). "A polynomial-time algorithm for breaking the basic Merkle - Hellman cryptosystem". IEEE Transactions on Information Theory. 30 (5): 699–704. doi:10.1109/SFCS.1982.5.