MD5 이것저것

24
MD5 이이이이 161001 이이

Transcript of MD5 이것저것

Page 1: MD5 이것저것

MD5 이것저것161001 에그

Page 2: MD5 이것저것

MD5 란 ?• 128 비트 암호화 해시 함수• 예 ) MD5(“ 야근” ) =

0672f7ac30e1ea7ee1baf8a637757b45

Page 3: MD5 이것저것

128 비트 / 암호화 / 해시 함수

Page 4: MD5 이것저것

해시 함수• 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑• 예 ) f(x) = x % 10 은 어떤 정수든 1 자리 정수로 매핑

f(9) = 9f(28) = 8f(119) = 9

Page 5: MD5 이것저것

해시 함수 - 용도• 빠른 데이터 검색• 예 ) 많은 수의 숫자 데이터해시 함수는 f(x) = x % 10

9 -> f(9) = 9 -> 9 번 슬롯에 추가28 -> f(28) = 8 -> 8 번 슬롯에 추가119 -> f(119) = 9 -> 9 번 슬롯에 추가...

이후 119 를 찾을 때는 9 번 슬롯에 추가된 숫자들에 대해서만 검사하면 됨

Page 6: MD5 이것저것

해시 함수 - 용도• 해시 값이 가능한 고르게 분포해야 함• 앞의 예에서 하나의 슬롯에 몰리게 되면 그 슬롯 검색에는 많은 시간 소요

Page 7: MD5 이것저것

해시 함수 - 특징• 같은 입력값이라면 같은 출력값• 어려운 말로 결정론적 (deterministic) 알고리즘

• 즉 , 두 해시 값이 다르다면 원래의 데이터도 다르다 .

Page 8: MD5 이것저것

128 비트 / 암호화 해시 함수

Page 9: MD5 이것저것

암호화 해시 함수• 해시 값으로부터 원래의 입력값과의 관계를 찾기 어려운 해시 함수• 예로 든 f(x) = x % 10 는 입력값과 해시 값들을 비교해보면 함수 구하기 매우 쉬움• 함수가 충분히 복잡하고 해시 값이 최대한 충돌하지 않아야 한다 .

Page 10: MD5 이것저것

128 비트 암호화 해시 함수

Page 11: MD5 이것저것

128 비트• 출력값이 항상 128 비트• 16 진수 (4 비트 ) 숫자 32 개

Page 12: MD5 이것저것

MD5 란 ?• 128 비트 암호화 해시 함수• 임의의 길이의 메시지를 입력받아 128 비트짜리 고정 길이의 출력값을 내는 복잡한 함수

Page 13: MD5 이것저것

해킹은 당했지만 비밀번호는 안전합니다

• 비밀번호를 직접 DB 에 저장하지 않고 암호화 해시 함수를 거친 해시 값을 저장• 비밀번호가 abc123 이라면

MD5(“abc123”) = e99a18c428cb38d5f260853678922e03• 로그인 시 입력한 비밀번호의 해시 값과 DB 에 저장된 해시 값을 비교• 해시 값으로부터 입력값을 끌어낼 수 없어야 하…겠지만 !

Page 14: MD5 이것저것

https://crackstation.net/

Page 15: MD5 이것저것

레인보우 테이블

• 입력값 별 해시 값을 미리 구해둠• 단순한 입력 값이라면 암호화의 효과는 없다고 봐야 함

Page 16: MD5 이것저것

알고리즘 결함• 해시 충돌• 해시 함수가 서로 다른 두 개의 입력값에 대해 동일한 출력값을 내는 상황

• MD5 의 해시 충돌을 찾아내는 많은 방법들이 발견됨• 최근에는 SHA-3 와 같은 다른 해시 함수 사용

Page 17: MD5 이것저것

Salt• 어떤 알고리즘을 이용해도 abc123 을 비밀번호로 쓰는 사용자는 나올 것• 아예 시스템에서 입력값에 특정 값 (salt) 을 덧붙여 해시 생성

Page 18: MD5 이것저것

MD5 의 뜻밖의 용도

Page 19: MD5 이것저것

MD5 배틀• 이름을 입력하면 MD5 해시 값을 계산하여 캐릭터를 생성 , 배틀

Page 20: MD5 이것저것

출처 :본격 2 차세계대전 만화 -9- < 바바롯사 >Homa comics by 굽시니스트(http://homa.egloos.com/3446540)

Page 21: MD5 이것저것

다시 한번 해시 함수의 특징• 입력값이 같다면 출력값이 같다 .• 해시 값이 고르게 분포한다 .• 입력값에 미세한 변화만 줘도 출력값에 많은 변화가 일어난다 .• 산사태 효과 (avalanche effect)

Page 22: MD5 이것저것

랜덤 캐릭터 생성에 응용• 입력값이 같다면 출력값이 같다 .• 같은 캐릭터를 다시 만들 수 있다 .

• 해시 값이 고르게 분포한다 .• 다양한 캐릭터가 만들어진다 .

• 입력값에 미세한 변화만 줘도 출력값에 많은 변화가 일어난다 .• 특정 스탯을 노린 입력값을 만들 수 없다 .

• 최강의 이름 찾기 , 특정 이름을 이길 수 있는 이름 찾기 같은 플레이 가능

Page 23: MD5 이것저것

뻘 아이디어• 랜덤 히로인과 랜덤 주인공이 나오는 비주얼 노벨• 캐릭터 특성에 따라 시나리오 자동 진행• 재미 요소• 랜덤 캐릭터 생성• 특정 이름의 히로인과 해피 엔딩 볼 수 있는 주인공 이름 찾기

Page 24: MD5 이것저것

참고 자료• MD5 - 위키백과

https://ko.wikipedia.org/wiki/MD5• MD5 배틀 - 나무위키

https://namu.wiki/w/MD5%20%EB%B0%B0%ED%8B%80• 안전한 패스워드 저장 – NAVER D2

http://d2.naver.com/helloworld/318732