[특강] 암호학에 대하여

허정·2022년 3월 24일
0

블록체인

목록 보기
30/38


암호학 기초를 Formal Method로 살펴봅시다.

1. 암호학

정보를 보호하는 방법을 연구합니다

  • 정보를 은닉 (대칭키 / 비대칭키)
  • 정보의 출처를 검증 ( 디지털 서명 알고리즘 )

암호학은 너무 강력해서 한때 미국 정부는 암호화 기술을 무기로 간주하고 규제를 심하게 했습니다.

2. 현대의 암호화 기술

56bit 이상의, 128bit 등의 비교적 높은.. -> 클수록 어려운 것이 느껴집니다.
공격을 위한 계산의 현실적 한계에 의존합니다.

  • 계산복잡도 이론
    다항 시간 내에 해결되지 않는 문제(다항 시간 알고리즘)
    소인수 분해
    이산 대수 문제
  • 다항 시간 알고리즘이 없다고 해서 안전한 것은 아닙니다. 증명이 되지 않았을 뿐입니다.
  • 문제의 크기에 의존합니다. 문제의 크기를 크게 만들어서 공격자의 공격이 무의미하게 만드는 것을 목적으로 합니다.

(ex) RSA_Factoring_Challenge
2048bit. 소수를 이용한 공개키 암호화 방식.

(cf) n bit => n * 0.3 십의 자리
256 bit = 256/3 = 85 자리 숫자. -> log(2)가 0.3인 것에 기반함.

3. SHA256의 위엄

2^256
최고급 GPU = 초당 약 10억 번 -> 불가능합니다.

  • 믿고 써도 될까요

    검증된 라이브러리 3가지가 위의 사진 마지막에 적혀있습니다.
  • Formal Verification
    SHA256은 아직 증명되지 않았을 뿐입니다.

4. 공개키 알고리즘 -현대 디지털 서명

(1) Alice and Bob

  • 임의의 수 R을 교환
  • 각자 비밀키(수)를 간직
    Alice: a
    Bob: b
  • 각자 아래 연산을 하고 그 결과를 교환
  • 교환한 수에 각자의 비밀키를 통해 서로 같은 수를 얻게 됨

(2) 타원 곡선 암호학

  • ECC (타원곡선암호화) 기반의 ECDSA를 쓰는 이유

(cf) 블록체인이 불편한 이유
하나를 저장하더라도 참여자들의 합의를 얻어야 하기 때문입니다.

  • 암호학 책 추천

5. 방패는 얼마든지 준비되어 있음

6. 나를 위한 암호학

7. 결론

0개의 댓글