![](https://velog.velcdn.com/images%2Fvamprodo47%2Fpost%2F7ae1e29b-f646-4b1d-bfba-69c5313c0ad4%2Fimage.png)
암호학 기초를 Formal Method로 살펴봅시다.
1. 암호학
정보를 보호하는 방법을 연구합니다
- 정보를 은닉 (대칭키 / 비대칭키)
![](https://velog.velcdn.com/images%2Fvamprodo47%2Fpost%2Fac67d401-751e-4c61-97f7-3544217ee5b5%2Fimage.png)
- 정보의 출처를 검증 ( 디지털 서명 알고리즘 )
암호학은 너무 강력해서 한때 미국 정부는 암호화 기술을 무기로 간주하고 규제를 심하게 했습니다.
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억 번 -> 불가능합니다.
![](https://velog.velcdn.com/images%2Fvamprodo47%2Fpost%2F34be17eb-68c6-4f02-ac8a-9f24435bc814%2Fimage.png)
- 믿고 써도 될까요
![](https://velog.velcdn.com/images%2Fvamprodo47%2Fpost%2F0217f158-f641-47bc-a762-6dec913ccfe7%2Fimage.png)
검증된 라이브러리 3가지가 위의 사진 마지막에 적혀있습니다.
- Formal Verification
SHA256은 아직 증명되지 않았을 뿐입니다.
![](https://velog.velcdn.com/images%2Fvamprodo47%2Fpost%2F653f52d7-8a21-4efe-84a5-cec3e37ec426%2Fimage.png)
![](https://velog.velcdn.com/images%2Fvamprodo47%2Fpost%2F875db531-4324-48da-a4cb-8b0fddc6fb0a%2Fimage.png)
4. 공개키 알고리즘 -현대 디지털 서명
(1) Alice and Bob
- 임의의 수 R을 교환
- 각자 비밀키(수)를 간직
Alice: a
Bob: b
- 각자 아래 연산을 하고 그 결과를 교환
![](https://velog.velcdn.com/images%2Fvamprodo47%2Fpost%2F48b386b8-8285-47bf-9167-e171cc4c7b3a%2Fimage.png)
- 교환한 수에 각자의 비밀키를 통해 서로 같은 수를 얻게 됨
![](https://velog.velcdn.com/images%2Fvamprodo47%2Fpost%2Fc2af26f7-20b7-4dea-91a7-8119e728cfd4%2Fimage.png)
(2) 타원 곡선 암호학
![](https://velog.velcdn.com/images%2Fvamprodo47%2Fpost%2F30fca823-ed20-4ada-b24a-7d497041e5b9%2Fimage.png)
- ECC (타원곡선암호화) 기반의 ECDSA를 쓰는 이유
![](https://velog.velcdn.com/images%2Fvamprodo47%2Fpost%2F8d63a339-c8d1-42df-8de0-14d8a98fc619%2Fimage.png)
(cf) 블록체인이 불편한 이유
하나를 저장하더라도 참여자들의 합의를 얻어야 하기 때문입니다.
- 암호학 책 추천
![](https://velog.velcdn.com/images%2Fvamprodo47%2Fpost%2F5108ae29-083c-46b2-8175-66ffde0dfce0%2Fimage.png)
5. 방패는 얼마든지 준비되어 있음
![](https://velog.velcdn.com/images%2Fvamprodo47%2Fpost%2F9d59b68e-ffa2-4fc2-89a5-9bea2ee2c8af%2Fimage.png)
6. 나를 위한 암호학
![](https://velog.velcdn.com/images%2Fvamprodo47%2Fpost%2Fe7d9054c-c782-4430-9a0e-a9b000727a79%2Fimage.png)
![](https://velog.velcdn.com/images%2Fvamprodo47%2Fpost%2F56c4809e-bef4-4d47-b89e-14d60f3997f2%2Fimage.png)
![](https://velog.velcdn.com/images%2Fvamprodo47%2Fpost%2F891b056a-f8aa-4608-929c-41a42e2d1d54%2Fimage.png)
7. 결론
![](https://velog.velcdn.com/images%2Fvamprodo47%2Fpost%2F608becd5-9584-4d68-8306-49fbe86c1c5b%2Fimage.png)