Blockchain Technology - jjin-choi/study_note GitHub Wiki
ยง Chapter 2. ์ํธ ๊ธฐ์
01. ์ํธ์ ์ญ์ฌ
- ์ํธ๋ฌธ์ ๋ณด๋ธ ์ฌ๋๊ณผ ๋ฐ์ ์ฌ๋์ ๋์ผํ ํค๋ฅผ ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ฉฐ, ์ด๋ฐ ๋ชฉ์ ์ ํค๋ฅผ ๋น๋ฐํค (Secret key) ํน์ ๋์นญํค (Symmetric key) ๋ผ๊ณ ํจ.
- ๋น๋ฐํค๋ฅผ ๊ฐ์ง ์ฌ๋๋ง์ด ์ํธ๋ฅผ ํ ์ ์์ผ๋ฏ๋ก ๋น๋ฐํค๋ฅผ ์์ ํ๊ฒ ์ ๋ฌํด์ผ ํ๋ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ ๊ฐ ์์.
- ํ๋ ์ํธ๋ ๋น๋์นญํค (Asymmetric key) ํน์ ๊ณต๊ฐํค (Public key) ๋ฐฉ์์ ์ฌ์ฉ
- ๊ณต๊ฐํค ๋ฐฉ์์ ํค๋ฅผ ์ ๋ฌํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋์นญํค ๋ฐฉ์์ ๋ฌธ์ ์ ์ ํด๊ฒฐํ ์ ์๋ค.
02. ์ํธ๋ฌธ์ ์๊ฑด
- ์์ ํ ์ํธ๋ฌธ์ ์ํด์๋ ํผ๋ (Confusion) ๊ณผ ํ์ฐ (Diffusion) ๊ณผ์ ์ ์ฌ๋ฌ ๋ฒ ๋ฐ๋ณต (Rounding)
- ํผ๋ (Confusion) : ์๋ฌธ๊ณผ ์ํธ๋ฌธ์ ๊ด๊ณ๋ ๋ชจํธํด์ผ ํจ.
- ํ์ฐ (Diffusion) : ์๋ฌธ์ ํน์ ์์น์ ์๋ ๋ด์ฉ์ ์ํธ๋ฌธ์ ์ฌ๋ฌ ์์น์ ์ํฅ์ ๋ฏธ์ณ์ผ ํจ.
03. ๋์นญํค ๊ธฐ๋ฐ ์ํธ ๊ธฐ์
- ๋์ ๋ฐฉ์
- Block cipher : ๋ฌธ์๋ฅผ ์ฌ๋ฌ ๊ฐ์ ๋ธ๋ก์ผ๋ก ๋๋ ๋ค์ ๋ธ๋ก ๋จ์๋ก ํค๋ฅผ ์ ์ฉ
- Stream cipher : ์๋ฌธ์ด ์ค์๊ฐ ๋ฐ์ดํฐ์ธ ๊ฒฝ์ฐ (ex. ์์ฑ ํตํ ๋ด์ฉ, ํด๋ํฐ๊ณผ ๊ธฐ์ง๊ตญ ์ฌ์ด์ ์ ํธ ์ ๋ฌ ๋ฑ)
- ๋ธ๋ก ์ํธ ๋ฐฉ์ (Block cipher)
- Electronic Code Book (ECB) : ์๋ฌธ ๋ธ๋ก๊ณผ ์ํธ๋ฌธ ๋ธ๋ก์ด ์๋ก ์ผ๋์ผ ๋์
- ๋ณ๋ ฌ ์ฒ๋ฆฌ ๊ฐ๋ฅํ์ง๋ง ํ์ฐ ๊ณผ์ ์ด ์์ผ๋ฏ๋ก ์์ ํ์ง ๋ชปํจ.
- Cipher Block Chaining (CBC) : ์๋ฌธ ๋ธ๋ก๊ณผ ์ํธ๋ฌธ ๋ธ๋ก์ด ์ผ๋์ผ๋ก ๋์ํ์ง ์์
- ex) ์ํธ๋ฌธ ๋ธ๋ก์ด ๋ค์ ํผ๋๋ฐฑ ๋์ด ๋ค์ ์๋ฌธ ๋ธ๋ก์ ๋ฐ์.
- Electronic Code Book (ECB) : ์๋ฌธ ๋ธ๋ก๊ณผ ์ํธ๋ฌธ ๋ธ๋ก์ด ์๋ก ์ผ๋์ผ ๋์
- Advanced Encryption Standard (AES) ์๊ณ ๋ฆฌ์ฆ
- ์นํ-์ ์น ๊ตฌ์กฐ (Substitution-Permutation Network, SPN)
- Substitution ์ ํผ๋ ๊ธฐ๋ฅ
- Permutation ์ ํ์ฐ ๊ธฐ๋ฅ
- ํ์ค์ผ๋ก๋ 128 ๋นํธ ํค๊ฐ ์ฌ์ฉ๋๊ณ ์นํ๊ณผ ํ์ฐ ๊ณผ์ ์ ์ด 10๋ฒ ๋ฐ๋ณต (10 round) ํ๋ค.
- ๋นํธ์ฝ์ธ ์ฝ์ด ํ๋ก๊ทธ๋จ์์๋ ์ง๊ฐ์ ์ํธํ ํ ๋ 256 ๋นํธ์ AES ์๊ณ ๋ฆฌ์ฆ (CBC ๋ชจ๋) ์ฌ์ฉ.
- ์นํ-์ ์น ๊ตฌ์กฐ (Substitution-Permutation Network, SPN)
04. ๋์นญํค ์ํธ ์ ์ฐจ ์ค์ต
- hash function
- merkle trees (https://decentralizedthoughts.github.io/2020-12-22-what-is-a-merkle-tree/) (https://101blockchains.com/merkle-trees/) (https://www.banksalad.com/contents/%EC%89%BD%EA%B2%8C-%EC%84%A4%EB%AA%85%ED%95%98%EB%8A%94-%EB%B8%94%EB%A1%9D%EC%B2%B4%EC%9D%B8-%EB%A8%B8%ED%81%B4%ED%8A%B8%EB%A6%AC-Merkle-Trees-%EB%9E%80-ilULl)
course
https://www.coursera.org/specializations/blockchain https://www.coursera.org/learn/blockchain-basics#syllabus https://www.coursera.org/learn/decentralized-apps-on-blockchain?specialization=blockchain