CIA ? : 기밀성, 무결성, 가용성 (Confidentiality / Intergrity / Availability)
무결성? : 파일이 변경되지 않았다.
(밤새 맬로리가 파일을 변경했는지 어떤지를 조사하고 싶으면 어제 저장한 파일을 안전한 곳에 저장하고 오늘 불러온 파일과 동일한지 비교하면 된다.)
문제점 : 안전한 곳이 과연 있을까?
파일 전체가 너무 크면 검사가 불가 => 파일의 “지문”(해시) 이 필요
**파일의 단 한글자만 바뀌어도 해시값은 변한다.
> 파일을 해시함수에 넣으면 해시가 나온다.
> 어제 만든 파일을 해시함수에 넣어 해시를 추출, 오늘의 파일의 해시와 비교!
> P/W도 직접 암호화하는 것이 아니라 해시값을 사용하여 /etc/~~~에 저장한다.
> 일방향 해시 함수가 만들어내는 “해시값”은 파일의 지문에 해당.
> 일방향 해시 함수란? : h=f(m)
입력 : 메시지 / 출력 : 해시 값 (=> 입.출력이 각각 한 개씩 있다.)
해시 값의 길이는 메시지의 길이와 관계 X (해시 함수의 종류에 따라 값의 길이가 나뉨)
ex) SHA-1의 출력은 항상 160비트(20바이트)
해시 값의 길이 : SHA256 < SHA384 < SHA512
일방향 해시 함수의 성질
> 임의의 길이 메시지로부터 고정 길이의 해시 값을 계산한다
(어떤 길이의 메시지를 입력으로 주어도 일방향 해시 함수는 짧은 해시 값 생성)
> 해시 값을 고속으로 계산할 수 있다.
해시 값 계산은 고속이어야 하며, 메시지가 길어지면 해시 값을 구하는 시간이 길어질 수는 있다.
현실적인 시간 내에 계산할 수 없다면 소용이 없다.
> 메시지가 다르면 해시 값도 다르다.
메시지가 1비트라도 변화하면 해시 값은 매우 높은 확률로 다른 값이 돼야 함.
> 일방향성을 갖는다.
> 입력 (예시 345689)를 23으로 나눈다. 몫의 소수점 7자리부터 10자리까지 4자 : 해시값이 된다.
실습 : [ 해시 기초 ] (실습 환경 : 우분투(Ubuntu))
1. echo “A Likes B” > like.txt
(엔터, 공백 포함 10바이트!)
2. sha256sum like //sha256sum : 해시값을 구하는 함수
(xxd like 로 확인해보면 4120 4c69 6b65 7320 420a)
3. A Likes C로 바꾸면 4210 4c69 6b65 7320 430a
(sha256sum like로 확인해보면 해시값은 달라진다.)
'현대 암호학 기초' 카테고리의 다른 글
[ 암호학 ] 공개키 암호 Q & A (0) | 2022.05.25 |
---|---|
[ 암호학 ] 공개 키 암호_3 (RSA) (0) | 2022.05.24 |
[ 암호학 ] 공개 키 암호_2 (RSA) (0) | 2022.05.23 |
[ 암호학 ] 공개 키 암호 (0) | 2022.05.22 |
[ 암호학 ] 블록 암호 모드 (0) | 2022.05.20 |