|
|
167번째 줄: |
167번째 줄: |
| | | |
| == 같이 보기 == | | == 같이 보기 == |
− |
| |
| * [[RIPEMD]] | | * [[RIPEMD]] |
| | | |
− | {{알고리즘|토막글}} | + | {{암호 알고리즘|검토 필요}} |
2019년 7월 7일 (일) 03:41 기준 최신판
RIPEMD-128은 임의의 길이의 입력 값을 128비트로 압축하는 암호화 해시함수이다.
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이다.
- 출력비트 수 : 128
- 내부상태 크기 : 128
- 블록 크기 : 512
- 길이 크기 : 64
- 문자열 크기 : 32
알고리즘[편집]
임의의 입력 메시지에 대해 해시 함수는 128비트 해시 값, 즉 메시지 요약을 생성한다. 이 알고리즘은 MD4 해싱 알고리즘을 기반으로 한다. MD4 해싱은 비선형 부울 함수의 사용을 포함하는 48개의 연산으로 구성되며, 각 연산은 3회 반복된다. RIPEMD-128의 알고리즘은 라운드 수를 4로 증가시킨다. 또한 다른 부울 함수와 상수 값이 사용된다. 알고리즘은 병렬로 두 줄(스트림)으로 실행되며, 일반적으로 왼쪽과 오른쪽으로 나뉜다. 알고리즘은 몇 가지 기본 단계로 구성된다.
누락 된 비트 추가[편집]
알고리즘은 512 비트 길이의 데이터 블록으로 작동하며 입력 메시지는 필요한 크기로 미리 전달된다. 우선, 메시지의 초기 길이에 관계없이, 1비트가 추가되고, 수신 된 시퀀스의 길이가 모듈로 512가 되는 448비트가 될 때까지 비트0이 추가된다. 512비트까지 확장하면 수정 된 메시지의 길이는 64비트가 된다. 이 단계에서 1~512비트가 추가 될 수 있다.
메시지 길이 추가하기[편집]
다음 단계에서는 원래 메시지의 길이가 64 비트 표현으로 (첫 번째 단계를 적용하기 전에) 448 비트의 수신 메시지에 추가된다. 초기 메시지의 길이가 2⁶⁴비트를 초과하는 경우, 하위 64비트만이 비트 길이로 사용된다. 또한 원본 메시지의 길이는 두 개의 32비트 단어 형식으로 추가된다. 먼저 낮은 32비트가 추가 된 다음 높은 비트가 추가된다. 이 단계가 끝나면 수정 된 메시지의 길이는 512비트가 된다. 16비트, 32비트 워드 형식으로도 표현 할 수가 있다.
함수및 상수 정의[편집]
메시지의 단어 순서[편집]
메시지에서 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
|
왼쪽
|
|
|
|
|
오른쪽
|
|
|
|
|
부울 함수[편집]
각 라운드에서 특정 부울 함수가 각 행에 적용된다.
비선형 비트 단위 부울 함수 정의 :
각 라운드에서, 라인에 따라 적용된다 :
선
|
라운드 1
|
라운드 2
|
라운드 3
|
라운드 4
|
왼쪽
|
|
|
|
|
오른쪽
|
|
|
|
|
알고리즘에 사용 된 상수(K)로 다음 실수의 전체 부분이 사용된다.
선
|
라운드 1
|
라운드 2
|
라운드 3
|
라운드 4
|
왼쪽
|
|
|
|
|
오른쪽
|
|
|
|
|
해싱 실행[편집]
모든 소스 함수 및 상수를 설정하고 메시지를 필요한 크기로 줄이면 알고리즘 샐행으로 진행할 수 있다. 이 알고리즘은 두 개의 병렬 경로(선)를 따라 실행된다. 메시지 처리는 32비트의 16단어로 이루어진다.
각 단계에서 다음 작업이 각 행에 대해 수행된다.
여기서는 위치의 순환 시프트를 나타낸다.[1]
참고 자료[편집]
같이 보기[편집]
이 RIPEMD-128 문서는 암호 알고리즘에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.
|
블록체인 : 블록체인 기술, 합의 알고리즘, 암호 알고리즘 □■⊕, 알고리즘, 블록체인 플랫폼, 블록체인 솔루션, 블록체인 서비스
|
|
암호기술
|
개인키 • 경량암호 • 다자간 계산(MPC) • 다중서명(멀티시그) • 동형암호 • 디지털서명 • 링서명 • 배타적 논리합(XOR) • 복호화 • 블랙박스 암호 • 서명 • 소수 • 소인수분해 • 슈노르서명 • 스케인 • 스키테일 • 스테가노그래피 • 안전한 다자간 계산(SMPC) • 암호 • 암호경제학 • 암호문 • 암호키 • 암호학 • 암호화 • 이산로그 • 전자봉투 • 전자서명 • 전치암호 • 종단간 암호화 • 치환암호(대체암호) • 키 • 패딩 • 패스워드 • 평문 • 합성수 • 해독 • 해시 • 형태보존암호 • 혼돈 • 화이트박스 암호 • 확산
|
|
논리연산
|
논리곱(AND) • 논리연산 • 논리합(OR) • 배타적 논리합(XOR) • 부울곱 • 부울대수 • 부울합 • 부정논리곱(NAND) • 부정논리합(NOR) • 부정연산(NOT)
|
|
SHA
|
SHA • SHA0 • SHA1 • SHA2 • SHA224 • SHA256 • SHA384 • SHA512 • SHA512/224 • SHA512/256 • SHA3 • SHA3-224 • SHA3-256 • SHA3-384 • SHA3-512
|
|
MD
|
MD • MD2 • MD4 • MD5 • RIPEMD • RIPEMD-128 • RIPEMD-160 • RIPEMD-256 • RIPEMD-320
|
|
기타 해시
|
CRC-16 • CRC-32 • CRC-64 • Keccak-256 • Keccak-384 • Keccak-512 • Shake-128 • Shake-256 • 베이스32 • 베이스32 파일 • 베이스58 • 베이스64 • 베이스64 파일 • 순환중복검사
|
|
대칭키
|
AES • ARIA(아리아) • DES • HIGHT(하이트) • LEA • SEED(시드) • 대칭키 • 대칭키 암호 알고리즘 • 디피-헬만 • 디피-헬만 키교환 • 레인달 • 블로피시 • 블록암호 • 스트림 암호 • 에스박스(S-Box) • 트리플 DES
|
|
비대칭키
|
PKI • RSA • 공개키 • 공개키 암호 알고리즘 • 비대칭키 • 엘가말 • 타원곡선 • 타원곡선 디지털서명 알고리즘 • 타원곡선암호
|
|
영지식증명
|
영지식 상호 증명(ZKIP) • 영지식 스나크 • 영지식 스타크 • 영지식증명
|
|
양자암호
|
BB84 프로토콜 • E91 프로토콜 • B92 프로토콜 • 비밀키 오류율 • 안전성 증명 • 양자난수생성기 • 양자내성암호 • 양자암호 • 양자얽힘 • 양자역학 • 양자중첩 • 양자컴퓨터 • 양자키 • 양자키분배 • 양자통신 • 연속 변수 프로토콜
|
|
암호해독
|
기지평문공격(KPA) • 선택암호문공격(CCA) • 선택평문공격(CPA) • 암호공격 • 암호문 단독공격(COA) • 암호해독
|
|
암호학 인물
|
라이언 플레이페어 • 레너드 애들먼 • 로널드 리베스트 • 마틴 헬만 • 블레즈 드 비즈네르 • 아디 샤미르 • 앨런 튜링 • 웨슬리 피터슨 • 찰스 휘트스톤 • 휫필드 디피
|
|
위키 : 자동차, 교통, 지역, 지도, 산업, 기업, 단체, 업무, 생활, 쇼핑, 블록체인, 암호화폐, 인공지능, 개발, 인물, 행사, 일반
|
|