RIPEMD-128 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
1번째 줄: 1번째 줄:
'''RIPEMD-128'''은 임의의 길이의 입력 값을 128[[비트]]로 압축하는 [[암호화]] [[해시함수]]이다.
+
== 등장배경 ==
  
==개요==
+
1996년, 기존의 RIPEMD에서 발견된 보안적 취약점에 대응해 벨기에의 루벤에 위치한 Katholieke UniversitLeuven의 COSIC연구 그룹의 Hans Dobbertin, Antoon Bosselaers, Bart Preenel이 만든 보안 강화 버전중 하나로, 기존의 [[RIPEMD]]의 대체품으로 도입되었다.
RIPEMD-128의 개발은 유럽의 RIPE(RACE Integrity Primitives Evaluation) 프로젝트 주관 하에 [[MD4]]와 [[MD5]]의 취약점을 분석했던 연구 그룹이 주도하였다. 이때 128비트의 [[RIPEMD]]을 개발했다. 그러나 1996년 [[뢰벤카톨릭대학교]](Katholieke Universiteit Leuven) 코식(COSIC)연구 그룹의 [[한스 도버틴]](Hans Dobbertin)은 RIPEMD-128에 대한 해독 가능성을 지적했는데, 실제로 오리지널 [[RIPEMD]]의 드롭 인 대체품으로 의심스러운 보안이 존재한다는 것으로 판명되었다. RIPE 개발 그룹에서는 한스 도버틴을 직접 참여시켜 160비트 해시함수인 RIPEMD-160을 다시 개발했다. 이것이 바로 [[RIPEMD-160]]이다.
+
 
 +
== 문제점 ==
 +
 
 +
오리지널 [[RIPEMD]]의 드롭 인 대체품으로 의심스러운 보안이 존재한다는 것으로 판명되었다.
  
 
== 특징 ==
 
== 특징 ==
16번째 줄: 19번째 줄:
 
임의의 입력 메시지에 대해 해시 함수는 128비트 해시 값, 즉 메시지 요약을 생성한다. 이 알고리즘은 [[MD4]] 해싱 알고리즘을 기반으로 한다. MD4 해싱은 비선형 부울 함수의 사용을 포함하는 48개의 연산으로 구성되며, 각 연산은 3회 반복된다. RIPEMD-128의 알고리즘은 라운드 수를 4로 증가시킨다. 또한 다른 부울 함수와 상수 값이 사용된다. 알고리즘은 병렬로 두 줄(스트림)으로 실행되며, 일반적으로 왼쪽과 오른쪽으로 나뉜다. 알고리즘은 몇 가지 기본 단계로 구성된다.
 
임의의 입력 메시지에 대해 해시 함수는 128비트 해시 값, 즉 메시지 요약을 생성한다. 이 알고리즘은 [[MD4]] 해싱 알고리즘을 기반으로 한다. MD4 해싱은 비선형 부울 함수의 사용을 포함하는 48개의 연산으로 구성되며, 각 연산은 3회 반복된다. RIPEMD-128의 알고리즘은 라운드 수를 4로 증가시킨다. 또한 다른 부울 함수와 상수 값이 사용된다. 알고리즘은 병렬로 두 줄(스트림)으로 실행되며, 일반적으로 왼쪽과 오른쪽으로 나뉜다. 알고리즘은 몇 가지 기본 단계로 구성된다.
  
===누락 된 비트 추가===
+
=== 1. 누락 된 비트 추가 ===
 +
 
 
알고리즘은 512 비트 길이의 데이터 블록으로 작동하며 입력 메시지는 필요한 크기로 미리 전달된다. 우선, 메시지의 초기 길이에 관계없이, 1비트가 추가되고, 수신 된 시퀀스의 길이가 모듈로 512가 되는 448비트가 될 때까지 비트0이 추가된다. 512비트까지 확장하면  수정 된 메시지의 길이는 64비트가 된다. 이 단계에서 1~512비트가 추가 될 수 있다.
 
알고리즘은 512 비트 길이의 데이터 블록으로 작동하며 입력 메시지는 필요한 크기로 미리 전달된다. 우선, 메시지의 초기 길이에 관계없이, 1비트가 추가되고, 수신 된 시퀀스의 길이가 모듈로 512가 되는 448비트가 될 때까지 비트0이 추가된다. 512비트까지 확장하면  수정 된 메시지의 길이는 64비트가 된다. 이 단계에서 1~512비트가 추가 될 수 있다.
  
===메시지 길이 추가하기===
+
=== 2. 메시지 길이 추가하기 ===
 +
 
 
다음 단계에서는 원래 메시지의 길이가 64 비트 표현으로 (첫 번째 단계를 적용하기 전에) 448 비트의 수신 메시지에 추가된다.  초기 메시지의 길이가  2⁶⁴비트를 초과하는 경우, 하위 64비트만이 비트 길이로 사용된다. 또한 원본 메시지의 길이는 두 개의 32비트 단어 형식으로 추가된다. 먼저 낮은 32비트가 추가 된 다음 높은 비트가 추가된다. 이 단계가 끝나면 수정 된 메시지의 길이는 512비트가 된다. 16비트, 32비트 워드 형식으로도 표현 할 수가 있다.
 
다음 단계에서는 원래 메시지의 길이가 64 비트 표현으로 (첫 번째 단계를 적용하기 전에) 448 비트의 수신 메시지에 추가된다.  초기 메시지의 길이가  2⁶⁴비트를 초과하는 경우, 하위 64비트만이 비트 길이로 사용된다. 또한 원본 메시지의 길이는 두 개의 32비트 단어 형식으로 추가된다. 먼저 낮은 32비트가 추가 된 다음 높은 비트가 추가된다. 이 단계가 끝나면 수정 된 메시지의 길이는 512비트가 된다. 16비트, 32비트 워드 형식으로도 표현 할 수가 있다.
  
===함수및 상수 정의===
+
=== 3. 함수및 상수 정의 ===
==== 메시지의 단어 순서 ====
+
 
 +
==== a. 메시지의 단어 순서 ====
  
 
메시지에서 32비트 워드의 순서를 결정하기 위해 각 라운드에서 다양한 순열 함수 조합이 사용된다.
 
메시지에서 32비트 워드의 순서를 결정하기 위해 각 라운드에서 다양한 순열 함수 조합이 사용된다.
94번째 줄: 100번째 줄:
 
|}
 
|}
  
==== 부울 함수 ====
+
==== b.부울 함수 ====
 
각 라운드에서 특정 부울 함수가 각 행에 적용된다.
 
각 라운드에서 특정 부울 함수가 각 행에 적용된다.
  
150번째 줄: 156번째 줄:
 
|}
 
|}
  
===해싱 실행 ===
+
=== 4.해싱 실행 ===
  
 
모든 소스 함수 및 상수를 설정하고 메시지를 필요한 크기로 줄이면 알고리즘 샐행으로 진행할 수 있다. 이 알고리즘은 두 개의 병렬 경로(선)를 따라 실행된다. 메시지 처리는 32비트의 16단어로 이루어진다.
 
모든 소스 함수 및 상수를 설정하고 메시지를 필요한 크기로 줄이면 알고리즘 샐행으로 진행할 수 있다. 이 알고리즘은 두 개의 병렬 경로(선)를 따라 실행된다. 메시지 처리는 32비트의 16단어로 이루어진다.
158번째 줄: 164번째 줄:
 
<math>{\displaystyle A:=(A+f(B,C,D)+X+K)^{<<s}}</math>
 
<math>{\displaystyle A:=(A+f(B,C,D)+X+K)^{<<s}}</math>
  
여기서는 위치의 순환 시프트를 나타낸다.<math>{\displaystyle ^{<<s}}</math><ref>위키피디아, [https://ru.wikipedia.org/wiki/RIPEMD-128#cite_note-Cryptanalysis_of_Full_RIPEMD-128-1 RIPEMD-128]</ref>
+
여기서는 위치의 순환 시프트를 나타낸다.<math>{\displaystyle ^{<<s}}</math><ref>위키피디아, [https://ru.wikipedia.org/wiki/RIPEMD-128#cite_note-Cryptanalysis_of_Full_RIPEMD-128-1 RIPEMD-128], 2019-02-06</ref>
  
 
{{각주}}
 
{{각주}}
164번째 줄: 170번째 줄:
 
== 참고 자료 ==
 
== 참고 자료 ==
  
* 위키피디아 - https://ru.wikipedia.org/wiki/RIPEMD-128#cite_note-Cryptanalysis_of_Full_RIPEMD-128-1,
+
* 〈[https://ru.wikipedia.org/wiki/RIPEMD-128#cite_note-Cryptanalysis_of_Full_RIPEMD-128-1]〉, 《위키피디아》
  
 
== 같이 보기 ==
 
== 같이 보기 ==
 +
 
* [[RIPEMD]]
 
* [[RIPEMD]]
  
{{암호 알고리즘|검토 필요}}
+
{{알고리즘|토막글}}

해시넷에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 해시넷:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)