RIPEMD-160

위키원
fshiel8165 (토론 | 기여)님의 2019년 7월 2일 (화) 13:40 판 (개요)
이동: 둘러보기, 검색

개요

RIPEMD-160은 Merkle-Damgård 구축을 기반으로하는 암호화 해시 함수로, 주로 Bitcoin표준에서 사용된다.128 비트 해시 다이제스트를 생성하는 RIPEMD 알고리즘의 강화 버전으로, RIPEMD-160알고리즘은 160비트 출력을 생성한다. 다른 RIPEMD버전과는 다르게 어떤 특허에도 제약을 받지 않는 것으로 알려져있다.[1]

등장배경

1996년, 기존의 RIPEMD에서 발견되는 보안적인 취약점에 대응하여 벨기에의 루벤에 위치한 Katholieke UniversitLeuven의 COSIC연구 그룹의 Hans Dobbertin, Antoon Bosselaers, Bart Preenel이 만든 보안 강화 버전이다.

알고리즘

패딩

메시지를 512비트의 배수로 패딩하고 바이트 스크림 입력을 32비트 워드로 패딩해야 한다. 길이 연장 공격을 방지하기 위해 Merkle-Damgorrd 강화법을 사용한 패딩 방식은 MD4와 동일하다.이는 메시지 끝에 추가되는 하나와 블록 끝에 추가되는 메시지 길이(비트 단위)로 구성된다.바이트는 먼저 low end라는 단어에 밀어 넣는다. 다음은 다른 메시지 길이에 대해 가능한 패턴을 보여주기 위해 단어에 패딩된 네 가지 메시지 예제이다.

Ripemd padding.png

그런 다음 메시지의 길이를 두 번째에서 마지막 요소까지 추가해야 한다.

압축함수

압축함수는 메시지 블록이 16회 전달되는 가변 서브 블록으로 구성된다. 총 80회 주행에는 5가지 다른 변형이 있다. 이 프로세스는 하단의 데이터 미팅에서 두 번 발생하여 다음 블록으로 이동하거나(있는 경우) 해시 레지스터에 추가되지 않는다. 하위 블록은 비선형 함수의 설계, 메시지 블록을 라운드별로 읽는 순서, 왼쪽 회전량과 k 상수에 따라 달라질 수 있다. 서브 블록의 설계와 압축 기능의 전체 레이아웃을 오른쪽에 나타낸다.

각주

  1. 댕이댕이, 〈RIPEMD 비트코인 /알고리즘/ 공격 기법/ 사용 현황〉, 《네이버 블로그》 , 2017-12-08

참고 자료