1996년, 기존의 RIPEMD에서 발견된 보안적 취약점에 대응해 벨기에의 루벤에 위치한 뢰벤 카톨릭 대학(Katholieke Universiteit Leuven)의 코식(COSIC) 연구 그룹의 한스 도버틴(Hans Dobbertin), 안톤 보슬라이어스(Antoon Bosselaers), 바트 프레닐(Bart Preenel)이 만든 보안 강화 버전중 하나로, 기존의 RIPEMD의 대체품으로 도입되었다.
문제점
오리지널 RIPEMD의 드롭 인 대체품으로 의심스러운 보안이 존재한다는 것으로 판명되었다.
특징
- 출력비트 수 : 128
- 내부상태 크기 : 128
- 블록 크기 : 512
- 길이 크기 : 64
- 문자열 크기 : 32
알고리즘
임의의 입력 메시지에 대해 해시 함수는 128비트 해시 값, 즉 메시지 요약을 생성한다. 이 알고리즘은 MD4 해싱 알고리즘을 기반으로 한다. MD4 해싱은 비선형 부울 함수의 사용을 포함하는 48개의 연산으로 구성되며, 각 연산은 3회 반복된다. RIPEMD-128의 알고리즘은 라운드 수를 4로 증가시킨다. 또한 다른 부울 함수와 상수 값이 사용된다. 알고리즘은 병렬로 두 줄(스트림)으로 실행되며, 일반적으로 왼쪽과 오른쪽으로 나뉜다. 알고리즘은 몇 가지 기본 단계로 구성된다.
1. 누락 된 비트 추가
알고리즘은 512 비트 길이의 데이터 블록으로 작동하며 입력 메시지는 필요한 크기로 미리 전달된다. 우선, 메시지의 초기 길이에 관계없이, 1비트가 추가되고, 수신 된 시퀀스의 길이가 모듈로 512가 되는 448비트가 될 때까지 비트0이 추가된다. 512비트까지 확장하면 수정 된 메시지의 길이는 64비트가 된다. 이 단계에서 1~512비트가 추가 될 수 있다.
2. 메시지 길이 추가하기
다음 단계에서는 원래 메시지의 길이가 64 비트 표현으로 (첫 번째 단계를 적용하기 전에) 448 비트의 수신 메시지에 추가된다. 초기 메시지의 길이가 2⁶⁴비트를 초과하는 경우, 하위 64비트만이 비트 길이로 사용된다. 또한 원본 메시지의 길이는 두 개의 32비트 단어 형식으로 추가된다. 먼저 낮은 32비트가 추가 된 다음 높은 비트가 추가된다. 이 단계가 끝나면 수정 된 메시지의 길이는 512비트가 된다. 16비트, 32비트 워드 형식으로도 표현 할 수가 있다.
3. 함수및 상수 정의
a. 메시지의 단어 순서
메시지에서 32비트 워드의 순서를 결정하기 위해 각 라운드에서 다양한 순열 함수 조합이 사용된다.
- 순열 함수 정의 :
i
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
|
7
|
14
|
13
|
1
|
10
|
6
|
15
|
3
|
12
|
0
|
9
|
5
|
2
|
14
|
11
|
8
|
- 순열 함수 정의 :
각 라운드에서 순서는 다음과 같이 결정된다.
선
|
라운드 1
|
라운드 2
|
라운드 3
|
라운드 4
|
왼쪽
|
|
|
|
|
오른쪽
|
|
|
|
|
b.부울 함수
각 라운드에서 특정 부울 함수가 각 행에 적용된다.
비선형 비트 단위 부울 함수 정의 :
각 라운드에서, 라인에 따라 적용된다 :
선
|
라운드 1
|
라운드 2
|
라운드 3
|
라운드 4
|
왼쪽
|
|
|
|
|
오른쪽
|
|
|
|
|
상수
알고리즘에 사용 된 상수(K)로 다음 실수의 전체 부분이 사용된다.
선
|
라운드 1
|
라운드 2
|
라운드 3
|
라운드 4
|
왼쪽
|
|
|
|
|
오른쪽
|
|
|
|
|
4.해싱 실행
모든 소스 함수 및 상수를 설정하고 메시지를 필요한 크기로 줄이면 알고리즘 샐행으로 진행할 수 있다. 이 알고리즘은 두 개의 병렬 경로(선)를 따라 실행된다. 메시지 처리는 32비트의 16단어로 이루어진다.
각 단계에서 다음 작업이 각 행에 대해 수행된다.
여기서는 위치의 순환 시프트를 나타낸다.[1]
각주
참고 자료
같이 보기
이 RIPEMD-128 문서는 알고리즘에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.
|
블록체인 : 블록체인 기술, 합의 알고리즘, 암호 알고리즘, 알고리즘 □■⊕, 블록체인 플랫폼, 블록체인 솔루션, 블록체인 서비스
|
|
채굴 알고리즘
|
SHA-256 • X11 • X11고스트 • X13 • X14 • X15 • X16R • X17 • 그로스톨 • 네오스크립트 • 니스트5 • 리라2알이 • 미리아드-그로스톨 • 블레이크 • 블레이크2 • 블레이크B • 블레이크2B • 블레이크256R8 • 블레이크256R14 • 스컹크해시 • 스케인 • 스크립트 알고리즘 • 스크립트엔 • 엘비알와이(LBRY) • 이더해시 • 이퀴해시 • 제반 • 쿼크 알고리즘 • 큐빗 알고리즘 • 크립토나이트 • 크립토나이트 라이트 • 타임트래블10 • 텐서리티 • 파스칼 • 프로그작업증명(ProgPoW)
|
|
매칭 알고리즘
|
BM25 • FAISS • 경매 • 더치 경매 • 매칭 알고리즘 • 매칭튜터 • 벡터검색 • 비크리 경매 • 센디 • 집닥 • 튜다 • 틴더
|
|
추천 알고리즘
|
TF-IDF • 역문서빈도(IDF) • 용어빈도(TF) • 추천 알고리즘 • 콘텐츠 기반 필터링 • 협업 필터링
|
|
고급 검색 알고리즘
|
AND-OR 검색 트리 • 국소 검색 알고리즘 • 국소 다발 검색 • 모의정련 • 언덕 오르기 검색 • 유전 알고리즘
|
|
대항 검색
|
검색의 차단 • 알파베타 가지치기 • 전방 가지치기 • 최소최대 알고리즘
|
|
제약 만족 문제
|
국소검색 • 역추적검색 • 제약전파
|
|
게임이론
|
게임이론 • 공유지의 비극 • 내시균형 • 메커니즘 디자인 • 비협조게임 • 사회선택이론 • 역게임이론 • 제로섬게임 • 조정게임 • 죄수의 딜레마 • 치킨게임 • 팃포탯 • 협조게임
|
|
위키 : 자동차, 교통, 지역, 지도, 산업, 기업, 단체, 업무, 생활, 쇼핑, 블록체인, 암호화폐, 인공지능, 개발, 인물, 행사, 일반
|
|