해시(hash)
다양한 길이를 가진 데이터를 고정된 길이를 가진 데이터로 매핑(mapping)한 값
해시는 특정한 데이터를 이를 상징하는 더 짧은 길이의 데이터로 변환하는 행위를 의미
상징 데이터는 원래의 데이터가 조금만 달라져도 확연하게 달라지는 특성을 가지고 있어 무결성을 지키는 데에 많은 도움을 준다.
복호화가 불가능
입력 데이터 집합이 출력 데이터 집합을 포함
특정한 출력 데이터를 토대로 입력 데이터를 찾을수 없기 때문
동일한 출력 값을 만들어낼 수 있는 입력 값의 가짓수는 수학적으로 무한개
하나의 원 데이터는 하나의 해시값만 가지지만, 하나의 해시값을 만들어 낼 수 있는 원본 데이터는 매우 많음
원래의 데이터가 같으면 해시값도 항상 동일
대표적인 해시 함수로는 MD5, SHA
해시 방법
- 제산법
나머지 연산자를 사용하여 테이블 주소를 계산
- 제곱법
레코드 키 값을 제곱한 후에 결과 값의 중간 부분에 있는 몇 비트를 선택하여 해시 테이블의 홈 주소로 사용
- 숫자 분석법
어떤 분포인지를 조사하여 비교적 고른 분포를 나타내는 자릿수를 필요한 만큼 선택하여, 레코드의 홈 주소로 사용
- 폴딩법
마지막 부분을 제외한 모든 부분의 길이가 동일하게 여러 부분으로 나누고, 이들 부분을 모두 더하거나 배타적 논리합(XOR)을 취하여, 해시 테이블의 홈 주소로 이용하는 방법
이중폴딩, 경계폴딩
- 기수변환법
어떤 진법으로 표현된 주어진 레코드 키를 다른 진법으로 간주하고 키를 변환하여 홈 주소를 얻는 방법
- 무작위 방법
난수를 발생시켜 각 레코드 키의 홈 주소를 결정하는 방법
Vivado Gen bitstream without re-run syn/impl (0) | 2021.12.08 |
---|---|
KASUMI 암호화 알고리즘 (0) | 2021.11.30 |
Aria (0) | 2021.11.30 |
DES (0) | 2021.11.30 |
AES (0) | 2021.11.30 |
댓글 영역