암호학적 해시함수 발표 자료

  1. 해시함수?
  2. 임의의 길이의 데이터를 고정된 길이의 해시값으로 변환하는 함수
  3. 결정적- 특정한 데이터에 해시함수를 적용하면 언제나 같은 해시 값이 도출됨(랜덤x)
    계산 용이- 일정한 수준 이상의 컴퓨터로 계산이 가능해야 함
  4. 자료저장의 효율성- 데이터의 크기가 얼마인지와는 상관 없이 해시값이 일정함. 예를 들어 100MB의 영상 자료도 32바이트의 해시 값으로 저장할 수 있음
    자료 검색의 용이성- 모든 자료 중에서 하나의 자료를 검색하는 대신 해시 값으로 바로 자료를 찾을 수 있음
  1. 일방통행: 한번 x를 h(x)로 변환하면 다시 h(x)로부터 x를 도출할 수 없음
  2. 높은 충돌 저항: 서로 다른 x와 y 값에 대해 h(x) = h(y)를 찾을 확률이 무시 가능함
  3. 숨김: 두 데이터가 조금만 달라도 완전히 다른 해시 값을 가짐
  1. 시작벡터(initialization vector): 함수 구성 시작을 위한 최초의 고정된 길이값(256bit)
    패딩(padding)- 데이터를 단위블록(sha 256의 경우 512)의 배수로 만들기 위한 값을 체움
  2. 압축(Compression)- 시작벡터와 패딩된 블록을 압축하여 시작벡터와 같은 값의 데이터(256bit)를 생성함
  3. 반복: 모든 블록이 소진될 때까지 다음 블록과 압축으로 생성된 블록을 다시 압축함
  1. 역산가능성: 해시의 길이에 따라 역산을 위한 계산이 기하급수적으로 늘어남
    (예) SHA-256 = 265bit(32byte), 2²⁵⁶의 계산이 필요함)
  2. 충돌 가능성: 무한한 양의 데이터를 유한한 길이의 해시함수로 변환하기 때문에 충돌은 있을 수 밖에 없음
    (비둘기집 문제)
  3. 충돌 가능성 계산: 생일파티 문제
    (사람이 23명이 모이면 서로 생일이 겹치는 사람이 한 쌍이라도 있을 확률은 50%임)
  4. 해시함수의 보안성이 깨진 예: MD-5/SHA-1
  1. 거래 ID(txid): 모든 거래 데이터는 고유의 해시 값을 가지며 이후 거래의 잔고(인풋)을 확인할 때 이전 거래의 해시를 통해 금액을 확인할 수 있음(거래 강의 참조)
  2. 블락헤더 해시(Block header hash): 블락체인 저장 단위인 모든 블락은 이전 블락헤드의 해시 값을 블락해드에 포함함 (블락들이 체인을 형성될 수 있는 이유임) 블락헤드 해드는 이전블락 해시, 버젼, 비트, 논스, 메르켈루트로 구성됨 (철완이의 블락해드 파이썬 코딩 참조)
  1. 머클 루트: 블락에 포함된 모든 거래의 데이터를 담은 하나의 해시 값 (Sidenote: 머클트리 참조)
  2. 공개 키, 비공개 키, 디지털 서명 (Public Key, Private Key, DSA): 비트코인 지갑 주소는 공개키와 비공개키의 해시 값으로 구성되어 있음. 그리고 거래를 하기 위한 디지털 서명은 개인의 비공개키에 디지털 서명을 추가하는 방식임(비공개키 암호학 강의 참조)
  3. 작업 증명(Proof of Work): 채굴자가 블락 생성을 위해 블락헤더 해시를 연산하는 방법 (원하는 값이 나올 때까지 블락해시를 구함)

--

--

--

커뮤니티를 만들고 운영합니다

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
아곤

아곤

커뮤니티를 만들고 운영합니다

More from Medium

John Picciuto’s Weekly Newsletter of Wrong Advice — Issue #58

Hyperbaric Oxygen Chamber for Sports

We are happy to announce that FistNFT and PGNFT CLUB held their first AMA!