• Mindscape ๐Ÿ”ฅ
    • Playlist ๐ŸŽง
  • ๐Ÿค– Artifical Intelligence

    • 1. Basics; Linear Algebra
    • 2. Basics; Linear Algebra (2), Search (1)
    • 3. Search (2)
    • 4. Knowledge and Logic (1)
    • 5. Knowledge and Logic (2)
    • 6. Probability
    • 7. Information Theory
    • 8. Probabilitc Reasoning (2)
    • 9. Probabilitc Reasoning (3)
    • 10. Machine Learning (1)
    • 11. Machine Learning (2)
    • 12. Machine Learning (3)
    • 13. Linear Models
    • 14. Other Classic ML Models (1)
    • 15. Other Classic ML Models (2)
  • ๐Ÿ”’ Computer Security

    • 01. Overview
    • 02. ์ •๋ณด๋ณด์•ˆ์ •์ฑ… ๋ฐ ๋ฒ•๊ทœ
    • 03. Cryptographic Tools
    • 04. User Authentication
    • 05. Access Control
    • 06. Database Security
    • 07. Malicious Software
    • 08. Firmware Analysis
  • ๐Ÿ—„๏ธ Database System

    • 1. Introduction
    • 2. Relational Model
    • 3. SQL
    • 6. E-R Model
    • 7. Relational Database Design (1)
    • 7. Relational Database Design (2)
    • 13. Data Storage Structures
    • 14. Indexing
    • 15. Query Processing
  • ๐Ÿ“ Software Engineering

    • 2. Introduction to Software Engineering
    • 3. Process
    • 4. Process Models
    • 5. Agile
    • 6. Requirements
    • 7. Requirements Elicitation and Documentation
    • 8. Architecture
    • 9. Unified Modelling Language
    • 10. Object-Oriented Analysis
    • Object-Oriented Design
  • ๐Ÿง  Algorithm

    • Python ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•œ ํŒ
    • C++ std::vector ์‚ฌ์šฉ๋ฒ• ์ •๋ฆฌ
    • Vim ์‚ฌ์šฉ ๋งค๋‰ด์–ผ
    • 1018๋ฒˆ: ์ฒด์ŠคํŒ ๋‹ค์‹œ ์น ํ•˜๊ธฐ
    • 1966๋ฒˆ: ํ”„๋ฆฐํ„ฐ ํ

03. Cryptographic Tools

Contents

  • Symmetric Encryption
  • Message Confidentiality
  • Secure Hash Function
  • Public Key Encryption

Encryption and Message authentication

  • Encryption (์•”ํ˜ธํ™”): ๋ฐ์ดํ„ฐ ๋ณดํ˜ธ๋ฅผ ์œ„ํ•ด ์•”ํ˜ธํ™” ํ•„์š”
    • Confidentiality (๊ธฐ๋ฐ€์„ฑ) ๋ฐ Integrity (๋ฌด๊ฒฐ์„ฑ) ์ œ๊ณต ๊ฐ€๋Šฅ
    • Symmetric encryption (๋Œ€์นญ ์•”ํ˜ธ) ๋ฐ Asymmetric encryption (๋น„๋Œ€์นญ ์•”ํ˜ธ)
  • Message authentication (๋ฉ”์‹œ์ง€ ์ธ์ฆ)
    • Integrity๋Š” ์ œ๊ณต ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, confidentiality๋Š” ์ œ๊ณต ๋ถˆ๊ฐ€

Symmetric Encryption

  • ์ „์†ก๋˜๊ฑฐ๋‚˜ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์— confidentiality๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ๋ณดํŽธ์ ์ธ ๊ธฐ์ˆ 
  • Conventional encryption (๊ด€์šฉ ์•”ํ˜ธ) ๋˜๋Š” single-key encryption (๋‹จ์ผํ‚ค ์•”ํ˜ธ)๋ผ๊ณ ๋„ ํ•จ
  • ์•ˆ์ „ํ•œ ์‚ฌ์šฉ์„ ์œ„ํ•œ ๋‘ ๊ฐ€์ง€ ์š”๊ตฌ์‚ฌํ•ญ:
    • ๊ฐ•๋ ฅํ•œ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ•„์š”
    • ์†ก์‹ ์ž์™€ ์ˆ˜์‹ ์ž๋Š” ์•ˆ์ „ํ•œ ๋ฐฉ์‹์œผ๋กœ secret key (๋น„๋ฐ€ํ‚ค) ์‚ฌ๋ณธ์„ ํš๋“ํ•˜๊ณ  ํ‚ค๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์œ ์ง€ํ•ด์•ผ ํ•จ
  • Public-key encryption (๊ณต๊ฐœํ‚ค ์•”ํ˜ธ) ์ด์ „์ธ 1970๋…„๋Œ€๊นŒ์ง€ ์œ ์ผํ•œ ๋Œ€์•ˆ
  • ์—ฌ์ „ํžˆ ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋Œ€์•ˆ
  • 5๊ฐ€์ง€ ๊ตฌ์„ฑ ์š”์†Œ:
    • Plaintext (ํ‰๋ฌธ)
    • Encryption algorithm (์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜)
    • Secret key (๋น„๋ฐ€ํ‚ค)
    • Ciphertext (์•”ํ˜ธ๋ฌธ)
    • Decryption algorithm (๋ณตํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜)

Cryptography

  • ์„ธ ๊ฐ€์ง€ ๋…๋ฆฝ์ ์ธ ์ฐจ์›์œผ๋กœ ๋ถ„๋ฅ˜๋จ:
    • Plaintext๋ฅผ ciphertext๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์—ฐ์‚ฐ ์œ ํ˜•
      • Substitution (์น˜ํ™˜): plaintext์˜ ๊ฐ ์š”์†Œ๊ฐ€ ๋‹ค๋ฅธ ์š”์†Œ๋กœ ๋งคํ•‘๋จ
      • Transposition (์ „์น˜): plaintext์˜ ์š”์†Œ๊ฐ€ ์žฌ๋ฐฐ์—ด๋จ
    • ์‚ฌ์šฉ๋˜๋Š” ํ‚ค์˜ ์ˆ˜
      • ์†ก์‹ ์ž์™€ ์ˆ˜์‹ ์ž๊ฐ€ ๋™์ผํ•œ ํ‚ค ์‚ฌ์šฉ โ€“ symmetric (๋Œ€์นญ)
      • ์†ก์‹ ์ž์™€ ์ˆ˜์‹ ์ž๊ฐ€ ๊ฐ๊ฐ ๋‹ค๋ฅธ ํ‚ค ์‚ฌ์šฉ โ€“ asymmetric (๋น„๋Œ€์นญ)
    • Plaintext๊ฐ€ ์ฒ˜๋ฆฌ๋˜๋Š” ๋ฐฉ์‹
      • Block cipher (๋ธ”๋ก ์•”ํ˜ธ): ํ•œ ๋ฒˆ์— ํ•œ ๋ธ”๋ก์˜ ์š”์†Œ๋ฅผ ์ฒ˜๋ฆฌ
      • Stream cipher (์ŠคํŠธ๋ฆผ ์•”ํ˜ธ): ์ž…๋ ฅ ์š”์†Œ๋ฅผ ์—ฐ์†์ ์œผ๋กœ ์ฒ˜๋ฆฌ

Cryptanalytic Attacks

  • Cryptanalytic Attack
    • ์˜์กดํ•˜๋Š” ๊ฒƒ:
      • ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํŠน์„ฑ
      • plaintext์˜ ์ผ๋ฐ˜์ ์ธ ํŠน์„ฑ์— ๋Œ€ํ•œ ์ผ๋ถ€ ์ง€์‹
      • ์ผ๋ถ€ plaintext-ciphertext ์Œ ์ƒ˜ํ”Œ
    • ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํŠน์„ฑ์„ ์ด์šฉํ•˜์—ฌ ํŠน์ • plaintext ๋˜๋Š” ์‚ฌ์šฉ ์ค‘์ธ ํ‚ค๋ฅผ ์ถ”๋ก  ์‹œ๋„
    • ์„ฑ๊ณต ์‹œ, ํ•ด๋‹น ํ‚ค๋กœ ์•”ํ˜ธํ™”๋œ ๋ชจ๋“  ๋ฏธ๋ž˜ ๋ฐ ๊ณผ๊ฑฐ ๋ฉ”์‹œ์ง€๊ฐ€ ์†์ƒ๋จ
  • Brute-Force Attack (์ „์‚ฌ ๊ณต๊ฒฉ)
    • ์ผ๋ถ€ ciphertext์— ๋Œ€ํ•ด ํ•ด๋… ๊ฐ€๋Šฅํ•œ plaintext ๋ฒˆ์—ญ์ด ์–ป์–ด์งˆ ๋•Œ๊นŒ์ง€ ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ํ‚ค๋ฅผ ์‹œ๋„
    • ์„ฑ๊ณต์„ ์œ„ํ•ด ํ‰๊ท ์ ์œผ๋กœ ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ํ‚ค์˜ ์ ˆ๋ฐ˜์„ ์‹œ๋„ํ•ด์•ผ ํ•จ

Cryptanalysis

  • ๊ณต๊ฒฉ ์œ ํ˜•
    • Cryptanalyst (์•”ํ˜ธ ๋ถ„์„๊ฐ€)์—๊ฒŒ ์•Œ๋ ค์ง„ ์ •๋ณด

Computationally Secure Encryption Schemes

  • ์•”ํ˜ธํ™”๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ computationally secure (๊ณ„์‚ฐ์ ์œผ๋กœ ์•ˆ์ „)ํ•จ:
    • ์•”ํ˜ธ ํ•ด๋… ๋น„์šฉ์ด ์ •๋ณด์˜ ๊ฐ€์น˜๋ฅผ ์ดˆ๊ณผ
    • ์•”ํ˜ธ ํ•ด๋…์— ํ•„์š”ํ•œ ์‹œ๊ฐ„์ด ์ •๋ณด์˜ ์œ ํšจ ์ˆ˜๋ช…์„ ์ดˆ๊ณผ
  • ์ผ๋ฐ˜์ ์œผ๋กœ ํ•ด๋…์— ํ•„์š”ํ•œ ๋…ธ๋ ฅ์˜ ์–‘์„ ์ถ”์ •ํ•˜๊ธฐ ๋งค์šฐ ์–ด๋ ค์›€
  • Brute-force attack์˜ ์‹œ๊ฐ„/๋น„์šฉ์€ ์ถ”์ • ๊ฐ€๋Šฅ

Attacking Symmetric Encryption

  • Brute-Force Attack
    • ์ผ๋ถ€ ciphertext์— ๋Œ€ํ•ด ํ•ด๋… ๊ฐ€๋Šฅํ•œ plaintext ๋ฒˆ์—ญ์ด ์–ป์–ด์งˆ ๋•Œ๊นŒ์ง€ ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ํ‚ค๋ฅผ ์‹œ๋„
    • ์„ฑ๊ณต์„ ์œ„ํ•ด ํ‰๊ท ์ ์œผ๋กœ ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ํ‚ค์˜ ์ ˆ๋ฐ˜์„ ์‹œ๋„ํ•ด์•ผ ํ•จ
    • Average Time Required for Exhaustive Key Search (์ „์ˆ˜ ํ‚ค ํƒ์ƒ‰์— ํ•„์š”ํ•œ ํ‰๊ท  ์‹œ๊ฐ„)

Figure 2.2 Time to Break a Code

  • (10^6 decryptions/ms ๊ฐ€์ • ์‹œ)
  • ๊ทธ๋ž˜ํ”„๋Š” symmetric encryption ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ํ‚ค๋ฅผ ์‹œ๋„ํ•˜๋Š” brute-force ๋ฐฉ์‹์œผ๋กœ ๊ณต๊ฒฉ๋ฐ›๋Š”๋‹ค๊ณ  ๊ฐ€์ •ํ•จ

Table 2.2 Comparison of Three Popular Symmetric Encryption Algorithms

  • ์„ธ ๊ฐ€์ง€ ์œ ๋ช… ๋Œ€์นญ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋น„๊ต

Feistel Cipher Structure

Block Cipher Structure

  • Symmetric block cipher๋Š” ๋‹ค์Œ์œผ๋กœ ๊ตฌ์„ฑ๋จ:
    • A sequence of rounds (๋ผ์šด๋“œ์˜ ์—ฐ์†)
    • ํ‚ค์— ์˜ํ•ด ์ œ์–ด๋˜๋Š” substitutions ๋ฐ permutations (์น˜ํ™˜ ๋ฐ ์ˆœ์—ด)
  • ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ฐ ์„ค๊ณ„ ํŠน์ง•:
    • Block size (๋ธ”๋ก ํฌ๊ธฐ)
    • Key size (ํ‚ค ํฌ๊ธฐ)
    • Number of rounds (๋ผ์šด๋“œ ์ˆ˜)
    • Subkey generation algorithm (์„œ๋ธŒํ‚ค ์ƒ์„ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜)
    • Round function (๋ผ์šด๋“œ ํ•จ์ˆ˜)
    • Fast software encryption/decryption (๋น ๋ฅธ ์†Œํ”„ํŠธ์›จ์–ด ์•”ํ˜ธํ™”/๋ณตํ˜ธํ™”)
    • Ease of analysis (๋ถ„์„์˜ ์šฉ์ด์„ฑ)

Data Encryption Standard (DES)

  • ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜์—ˆ๋˜ ์•”ํ˜ธํ™” ๋ฐฉ์‹
    • FIPS PUB 46
    • Data Encryption Algorithm (DEA)๋ผ๊ณ ๋„ ํ•จ
    • Feistel network์˜ ์‚ฌ์†Œํ•œ ๋ณ€ํ˜•
    • 64-bit plaintext block๊ณผ 56-bit key๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 64-bit ciphertext block ์ƒ์„ฑ
  • ๊ฐ•๋„์— ๋Œ€ํ•œ ์šฐ๋ ค:
    • ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ์šฐ๋ ค
    • DES๋Š” ํ˜„์กดํ•˜๋Š” ๊ฐ€์žฅ ๋งŽ์ด ์—ฐ๊ตฌ๋œ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜
    • 56-bit key์˜ ์‚ฌ์šฉ
    • Electronic Frontier Foundation (EFF)๋Š” 1998๋…„ 7์›” DES ์•”ํ˜ธํ™”๋ฅผ ํ•ด๋…ํ–ˆ๋‹ค๊ณ  ๋ฐœํ‘œ

Triple DES (3DES)

  • ๊ธฐ๋ณธ DES ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋‘ ๊ฐœ ๋˜๋Š” ์„ธ ๊ฐœ์˜ ๊ณ ์œ ํ•œ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ธ ๋ฒˆ ๋ฐ˜๋ณต
  • ์žฅ์ :
    • 168-bit ํ‚ค ๊ธธ์ด๋Š” DES์˜ brute-force attack์— ๋Œ€ํ•œ ์ทจ์•ฝ์ ์„ ๊ทน๋ณต
    • ๊ธฐ๋ณธ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด DES์™€ ๋™์ผ
  • ๋‹จ์ :
    • ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์†Œํ”„ํŠธ์›จ์–ด์—์„œ ๋А๋ฆผ
    • 64-bit ๋ธ”๋ก ํฌ๊ธฐ๋ฅผ ์‚ฌ์šฉ
  • ์ฒ˜์Œ์—๋Š” ๊ธˆ์œต ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ๋จ
  • 1999๋…„ DES FIPS PUB 46-3 ํ‘œ์ค€์— ํฌํ•จ
  • ์„ธ ๊ฐœ์˜ ํ‚ค์™€ ์„ธ ๋ฒˆ์˜ DES ์‹คํ–‰์„ ์‚ฌ์šฉ:
    • C=E(K3,D(K2,E(K1,P)))C = E(K_3, D(K_2, E(K_1, P)))C=E(K3โ€‹,D(K2โ€‹,E(K1โ€‹,P)))
  • ๋ณตํ˜ธํ™”๋Š” ํ‚ค๋ฅผ ์—ญ์ˆœ์œผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ผํ•˜๊ฒŒ ์ˆ˜ํ–‰
  • ๋‘ ๋ฒˆ์งธ ๋‹จ๊ณ„์—์„œ ๋ณตํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ์กด DES ์‚ฌ์šฉ์ž์™€์˜ ํ˜ธํ™˜์„ฑ ์ œ๊ณต
  • ์œ ํšจ 168-bit ํ‚ค ๊ธธ์ด, ๋А๋ฆฌ์ง€๋งŒ ์•ˆ์ „ํ•จ
  • AES๊ฐ€ ๊ฒฐ๊ตญ 3DES๋ฅผ ๋Œ€์ฒดํ•  ๊ฒƒ์ž„

Advanced Encryption Standard (AES)

  • 3DES๋ฅผ ๋Œ€์ฒดํ•  ํ•„์š”์„ฑ ๋ฐœ์ƒ
    • 3DES๋Š” ์žฅ๊ธฐ์ ์ธ ์‚ฌ์šฉ์— ํ•ฉ๋ฆฌ์ ์ด์ง€ ์•Š์•˜์Œ
  • NIST๋Š” 1997๋…„ ์ƒˆ๋กœ์šด AES๋ฅผ ์œ„ํ•œ ์ œ์•ˆ์„ ์š”์ฒญ
    • 3DES์™€ ๋™๋“ฑํ•˜๊ฑฐ๋‚˜ ๋” ๋‚˜์€ ๋ณด์•ˆ ๊ฐ•๋„๋ฅผ ๊ฐ€์ ธ์•ผ ํ•จ
    • ํšจ์œจ์„ฑ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์–ด์•ผ ํ•จ
  • Symmetric block cipher
    • 128-bit ๋ฐ์ดํ„ฐ ๋ฐ 128/192/256-bit ํ‚ค
  • 2001๋…„ 11์›” Rijndael์„ ์„ ์ •
  • FIPS 197๋กœ ๋ฐœํ‘œ๋จ

AES Round Structure

Table 20.2 (a) S-box

Table 20.2(b) Inverse S-box

Shift Rows

  • ์•”ํ˜ธํ™” ์‹œ State์˜ ๊ฐ ํ–‰์„ ๊ฐ๊ฐ 0, 1, 2, 3 ๋ฐ”์ดํŠธ์”ฉ ์™ผ์ชฝ์œผ๋กœ ํšŒ์ „
  • ๋ณตํ˜ธํ™”๋Š” ๋ฐ˜๋Œ€๋กœ ์ˆ˜ํ–‰
  • ๊ฐœ๋ณ„ ๋ฐ”์ดํŠธ๋ฅผ ํ•œ ์—ด์—์„œ ๋‹ค๋ฅธ ์—ด๋กœ ์ด๋™์‹œํ‚ค๊ณ  ๋ฐ”์ดํŠธ๋ฅผ ์—ด์— ๊ฑธ์ณ ๋ถ„์‚ฐ์‹œํ‚ค๊ธฐ ์œ„ํ•จ

Mix Columns and Add Key

  • Mix columns
    • ๊ฐ ์—ด์— ๋Œ€ํ•ด ๊ฐœ๋ณ„์ ์œผ๋กœ ์ž‘๋™
    • ๊ฐ ๋ฐ”์ดํŠธ๋ฅผ ํ•ด๋‹น ์—ด์˜ ๋„ค ๋ฐ”์ดํŠธ ๋ชจ๋‘์˜ ํ•จ์ˆ˜์ธ ์ƒˆ ๊ฐ’์œผ๋กœ ๋งคํ•‘
    • ์œ ํ•œ์ฒด ์ƒ์˜ ๋ฐฉ์ •์‹์„ ์‚ฌ์šฉ
    • ์—ด ๋‚ด ๋ฐ”์ดํŠธ์˜ ์ข‹์€ ํ˜ผํ•ฉ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•จ
  • Add round key
    • ๋‹จ์ˆœํžˆ State๋ฅผ ํ™•์žฅ๋œ ํ‚ค์˜ ๋น„ํŠธ๋“ค๊ณผ XOR ์—ฐ์‚ฐ
    • ๋ผ์šด๋“œ ํ‚ค ํ™•์žฅ ๋ฐ AES์˜ ๋‹ค๋ฅธ ๋‹จ๊ณ„์˜ ๋ณต์žก์„ฑ์œผ๋กœ๋ถ€ํ„ฐ ๋ณด์•ˆ์„ฑ ํ™•๋ณด

Practical Security Issues

  • ์ผ๋ฐ˜์ ์œผ๋กœ symmetric encryption์€ ๋‹จ์ผ 64-bit ๋˜๋Š” 128-bit ๋ธ”๋ก๋ณด๋‹ค ํฐ ๋ฐ์ดํ„ฐ ๋‹จ์œ„์— ์ ์šฉ๋จ
  • Electronic codebook (ECB) ๋ชจ๋“œ๋Š” ๋‹ค์ค‘ ๋ธ”๋ก ์•”ํ˜ธํ™”์— ๋Œ€ํ•œ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ์ ‘๊ทผ ๋ฐฉ์‹
  • ๊ฐ plaintext ๋ธ”๋ก์€ ๋™์ผํ•œ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•”ํ˜ธํ™”๋จ
  • Cryptanalyst๊ฐ€ plaintext์˜ ๊ทœ์น™์„ฑ์„ ์•…์šฉํ•  ์ˆ˜ ์žˆ์Œ
  • Modes of operation (์šด์˜ ๋ชจ๋“œ)
    • ๊ธด ์‹œํ€€์Šค์— ๋Œ€ํ•œ symmetric block encryption์˜ ๋ณด์•ˆ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ๋œ ๋Œ€์•ˆ ๊ธฐ์ˆ 
    • ECB์˜ ์•ฝ์ ์„ ๊ทน๋ณต

Modes of Operation

Electronic Codebook (ECB)

  • ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ชจ๋“œ
  • Plaintext๋Š” b ๋น„ํŠธ ๋‹จ์œ„๋กœ ์ฒ˜๋ฆฌ๋˜๋ฉฐ ๊ฐ ๋ธ”๋ก์€ ๋™์ผํ•œ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•”ํ˜ธํ™”๋จ
  • ๊ฐ plaintext ๋ธ”๋ก์— ๋Œ€ํ•ด ๊ณ ์œ ํ•œ ciphertext ๊ฐ’์ด ์žˆ์œผ๋ฏ€๋กœ "์ฝ”๋“œ๋ถ"์ด๋ผ ๋ถˆ๋ฆผ
  • ๋ฐ˜๋ณต๋˜๋Š” plaintext๊ฐ€ ๋ฐ˜๋ณต๋˜๋Š” ciphertext์—์„œ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ธด ๋ฉ”์‹œ์ง€์— ๋Œ€ํ•ด ์•ˆ์ „ํ•˜์ง€ ์•Š์Œ
  • ๋ณด์•ˆ ๊ฒฐํ•จ์„ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด ๋™์ผํ•œ plaintext ๋ธ”๋ก์ด ๋ฐ˜๋ณต๋  ๊ฒฝ์šฐ ๋‹ค๋ฅธ ciphertext ๋ธ”๋ก์„ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ์ˆ ์ด ํ•„์š”

Cipher Block Chaining (CBC)

Cipher Feedback (CFB)

Counter (CTR)

Block Cipher Encryption Stream Encryption

Block & Stream Ciphers

  • Block Cipher
    • ํ•œ ๋ฒˆ์— ํ•œ ๋ธ”๋ก์˜ ์š”์†Œ๋ฅผ ์ฒ˜๋ฆฌ
    • ๊ฐ ์ž…๋ ฅ ๋ธ”๋ก์— ๋Œ€ํ•ด ์ถœ๋ ฅ ๋ธ”๋ก์„ ์ƒ์„ฑ
    • ํ‚ค๋ฅผ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
    • ๋” ์ผ๋ฐ˜์ 
  • Stream Cipher
    • ์ž…๋ ฅ ์š”์†Œ๋ฅผ ์—ฐ์†์ ์œผ๋กœ ์ฒ˜๋ฆฌ
    • ํ•œ ๋ฒˆ์— ํ•œ ์š”์†Œ์”ฉ ์ถœ๋ ฅ์„ ์ƒ์„ฑ
    • ์ฃผ์š” ์žฅ์ ์€ ๊ฑฐ์˜ ํ•ญ์ƒ ๋” ๋น ๋ฅด๊ณ  ํ›จ์”ฌ ์ ์€ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์ 
    • Plaintext๋ฅผ ํ•œ ๋ฒˆ์— ํ•œ ๋ฐ”์ดํŠธ์”ฉ ์•”ํ˜ธํ™”
    • Pseudorandom stream (์˜์‚ฌ ๋‚œ์ˆ˜ ์ŠคํŠธ๋ฆผ)์€ ์ž…๋ ฅ ํ‚ค๋ฅผ ๋ชจ๋ฅด๋ฉด ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๋Š” ์ŠคํŠธ๋ฆผ
    • ์„ค๊ณ„ ๊ณ ๋ ค ์‚ฌํ•ญ:
      • ์•”ํ˜ธํ™” ์‹œํ€€์Šค๋Š” ๊ธด ์ฃผ๊ธฐ๋ฅผ ๊ฐ€์ ธ์•ผ ํ•จ
      • Keystream์€ ๋‚œ์ˆ˜ ์†์„ฑ์— ๊ทผ์‚ฌํ•ด์•ผ ํ•จ
      • ์ถฉ๋ถ„ํžˆ ๊ธด ํ‚ค๋ฅผ ์‚ฌ์šฉ

Speed Comparisons of Symmetric Ciphers on a Pentium 4

  • ์ถœ์ฒ˜: http://www.cryptopp.com/benchmarks.html

Message Authentication

  • Active attack (๋Šฅ๋™์  ๊ณต๊ฒฉ)์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธ
  • ์ˆ˜์‹ ๋œ ๋ฉ”์‹œ์ง€๊ฐ€ ์ง„์งœ์ธ์ง€ ํ™•์ธ
    • ๋‚ด์šฉ์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์Œ
    • ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ถœ์ฒ˜๋กœ๋ถ€ํ„ฐ ์˜ด
    • ์‹œ๊ธฐ์ ์ ˆํ•˜๊ณ  ์˜ฌ๋ฐ”๋ฅธ ์ˆœ์„œ์ž„
  • Conventional encryption ์‚ฌ์šฉ ๊ฐ€๋Šฅ
    • ์†ก์‹ ์ž์™€ ์ˆ˜์‹ ์ž๋งŒ์ด ํ‚ค๋ฅผ ๊ณต์œ 

Message Authentication Codes

Secure Hash Functions

Figure 2.6 Message Authentication Using a One-Way Hash Function

  • ๋‹จ๋ฐฉํ–ฅ ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ ๋ฉ”์‹œ์ง€ ์ธ์ฆ

Hash Function Requirements

  • ์ž„์˜ ํฌ๊ธฐ์˜ ๋ฐ์ดํ„ฐ ๋ธ”๋ก์— ์ ์šฉ ๊ฐ€๋Šฅ
  • ๊ณ ์ • ๊ธธ์ด ์ถœ๋ ฅ ์ƒ์„ฑ
  • ์ฃผ์–ด์ง„ xxx์— ๋Œ€ํ•ด H(x)H(x)H(x) ๊ณ„์‚ฐ์ด ๋น„๊ต์  ์‰ฌ์›€
  • One-way (๋‹จ๋ฐฉํ–ฅ์„ฑ) ๋˜๋Š” pre-image resistant (์—ญ์ƒ ์ €ํ•ญ์„ฑ)
    • H(x)=hH(x) = hH(x)=h๋ฅผ ๋งŒ์กฑํ•˜๋Š” xxx๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ๊ณ„์‚ฐ์ ์œผ๋กœ ๋ถˆ๊ฐ€๋Šฅ
  • Second pre-image resistant (์ œ2 ์—ญ์ƒ ์ €ํ•ญ์„ฑ) ๋˜๋Š” weak collision resistant (์•ฝํ•œ ์ถฉ๋Œ ์ €ํ•ญ์„ฑ)
    • H(y)=H(x)H(y) = H(x)H(y)=H(x)๋ฅผ ๋งŒ์กฑํ•˜๋Š” yโ‰ xy \ne xy๎€ =x๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ๊ณ„์‚ฐ์ ์œผ๋กœ ๋ถˆ๊ฐ€๋Šฅ
  • Collision resistant (์ถฉ๋Œ ์ €ํ•ญ์„ฑ) ๋˜๋Š” strong collision resistance (๊ฐ•ํ•œ ์ถฉ๋Œ ์ €ํ•ญ์„ฑ)
    • H(x)=H(y)H(x) = H(y)H(x)=H(y)๋ฅผ ๋งŒ์กฑํ•˜๋Š” ์ž„์˜์˜ ์Œ (x,y)(x, y)(x,y)๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ๊ณ„์‚ฐ์ ์œผ๋กœ ๋ถˆ๊ฐ€๋Šฅ

Security of Hash Functions

  • Secure hash function์„ ๊ณต๊ฒฉํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ์ ‘๊ทผ ๋ฐฉ์‹:
    • Cryptanalysis: ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋…ผ๋ฆฌ์  ์•ฝ์  ์ด์šฉ
    • Brute-force attack: ํ•ด์‹œ ํ•จ์ˆ˜์˜ ๊ฐ•๋„๋Š” ์ „์ ์œผ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ƒ์„ฑํ•˜๋Š” ํ•ด์‹œ ์ฝ”๋“œ์˜ ๊ธธ์ด์— ์˜์กด
  • SHA๋Š” ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ํ•ด์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ์ถ”๊ฐ€์ ์ธ secure hash function ์‘์šฉ ๋ถ„์•ผ:
    • Passwords (๋น„๋ฐ€๋ฒˆํ˜ธ): ์šด์˜ ์ฒด์ œ๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ์˜ ํ•ด์‹œ๋ฅผ ์ €์žฅ
    • Intrusion detection (์นจ์ž… ํƒ์ง€): ์‹œ์Šคํ…œ์˜ ๊ฐ ํŒŒ์ผ์— ๋Œ€ํ•ด H(F)H(F)H(F)๋ฅผ ์ €์žฅํ•˜๊ณ  ํ•ด์‹œ ๊ฐ’์„ ๋ณดํ˜ธ

Secure Hash Algorithm (SHA)

  • SHA๋Š” ๋ณธ๋ž˜ NIST์— ์˜ํ•ด ๊ฐœ๋ฐœ๋จ
  • 1993๋…„ FIPS 180์œผ๋กœ ๋ฐœํ‘œ๋จ
  • 1995๋…„ SHA-1์œผ๋กœ ๊ฐœ์ •๋จ
    • 160-bit ํ•ด์‹œ ๊ฐ’ ์ƒ์„ฑ
  • NIST๋Š” 2002๋…„ ๊ฐœ์ •๋œ FIPS 180-2๋ฅผ ๋ฐœํ‘œ
    • 3๊ฐ€์ง€ ์ถ”๊ฐ€ ๋ฒ„์ „์˜ SHA ์ถ”๊ฐ€
    • SHA-256, SHA-384, SHA-512
    • 256/384/512-bit ํ•ด์‹œ ๊ฐ’
    • SHA-1๊ณผ ๋™์ผํ•œ ๊ธฐ๋ณธ ๊ตฌ์กฐ์ด์ง€๋งŒ ๋ณด์•ˆ์„ฑ์ด ๋” ๋†’์Œ
  • 2005๋…„ NIST๋Š” SHA-1 ์Šน์ธ์„ ๋‹จ๊ณ„์ ์œผ๋กœ ์ค‘๋‹จํ•˜๊ณ  2010๋…„๊นŒ์ง€ ๋‹ค๋ฅธ SHA ๋ฒ„์ „์— ์˜์กดํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ „ํ™˜ํ•  ์˜์‚ฌ๋ฅผ ๋ฐœํ‘œ

Table 21.1 Comparison of SHA Parameters

  • SHA ๋งค๊ฐœ๋ณ€์ˆ˜ ๋น„๊ต

SHA-512 Structure

SHA-3

  • SHA-1์€ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜์–ด SHA-2๋กœ ๋‹จ๊ณ„์ ์œผ๋กœ ๋Œ€์ฒด๋จ
  • SHA-2๋Š” ์ด์ „ ๋ฒ„์ „๊ณผ ๋™์ผํ•œ ๊ตฌ์กฐ์™€ ์ˆ˜ํ•™์  ์—ฐ์‚ฐ์„ ๊ณต์œ ํ•˜์—ฌ ์šฐ๋ ค๋ฅผ ์•ผ๊ธฐ
  • SHA-2๊ฐ€ ์ทจ์•ฝํ•ด์งˆ ๊ฒฝ์šฐ ๊ต์ฒด์— ํ•„์š”ํ•œ ์‹œ๊ฐ„ ๋•Œ๋ฌธ์—, NIST๋Š” 2007๋…„ SHA-3๋ฅผ ์ƒ์‚ฐํ•˜๊ธฐ ์œ„ํ•œ ๊ฒฝ์Ÿ์„ ๋ฐœํ‘œ
  • ์š”๊ตฌ์‚ฌํ•ญ:
    • 224, 256, 384, 512 ๋น„ํŠธ์˜ ํ•ด์‹œ ๊ฐ’ ๊ธธ์ด๋ฅผ ์ง€์›ํ•ด์•ผ ํ•จ
    • ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ „์ฒด ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์ „์— ๋ฉ”๋ชจ๋ฆฌ์— ๋ฒ„ํผ๋งํ•  ํ•„์š” ์—†์ด ํ•œ ๋ฒˆ์— ์ž‘์€ ๋ธ”๋ก์„ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•จ

SHA-3 Evaluation Criteria

  • SHA-2๊ฐ€ ์ง€์›ํ•˜๋Š” ์ฃผ์š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•˜๋„๋ก ์„ค๊ณ„๋จ
    • Digital signatures (๋””์ง€ํ„ธ ์„œ๋ช…), hashed message authentication codes (ํ•ด์‹œ ๋ฉ”์‹œ์ง€ ์ธ์ฆ ์ฝ”๋“œ), key generation (ํ‚ค ์ƒ์„ฑ), pseudorandom number generation (์˜์‚ฌ ๋‚œ์ˆ˜ ์ƒ์„ฑ)
  • Security (๋ณด์•ˆ์„ฑ)
    • ๊ฐ•๋„๋Š” ๋‹ค์–‘ํ•œ ํ•„์ˆ˜ ํ•ด์‹œ ํฌ๊ธฐ์™€ preimage resistance ๋ฐ collision resistance ๋ชจ๋‘์— ๋Œ€ํ•ด ์ด๋ก ์  ์ตœ๋Œ€์น˜์— ๊ฐ€๊นŒ์›Œ์•ผ ํ•จ
    • SHA-2 ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ž ์žฌ์ ์œผ๋กœ ์„ฑ๊ณต์ ์ธ ๋ชจ๋“  ๊ณต๊ฒฉ์— ์ €ํ•ญํ•˜๋„๋ก ์„ค๊ณ„๋˜์–ด์•ผ ํ•จ
  • Cost (๋น„์šฉ)
    • ๋‹ค์–‘ํ•œ ํ•˜๋“œ์›จ์–ด ํ”Œ๋žซํผ์—์„œ ์‹œ๊ฐ„ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์ ์ด์–ด์•ผ ํ•จ
  • Algorithm and implementation characteristics (์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฐ ๊ตฌํ˜„ ํŠน์„ฑ)
    • ์œ ์—ฐ์„ฑ ๋ฐ ๋‹จ์ˆœ์„ฑ๊ณผ ๊ฐ™์€ ํŠน์„ฑ์„ ๊ณ ๋ ค
  • NIST๋Š” 2015๋…„ SHA-3๋ฅผ ๋ฐœํ‘œ

HMAC

  • ์•”ํ˜ธํ•™์  ํ•ด์‹œ ์ฝ”๋“œ์—์„œ ํŒŒ์ƒ๋œ MAC (๋ฉ”์‹œ์ง€ ์ธ์ฆ ์ฝ”๋“œ) ๊ฐœ๋ฐœ์— ๊ด€์‹ฌ์ด ์žˆ์—ˆ์Œ
    • ์•”ํ˜ธํ•™์  ํ•ด์‹œ ํ•จ์ˆ˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋” ๋น ๋ฅด๊ฒŒ ์‹คํ–‰๋จ
    • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ฝ”๋“œ๊ฐ€ ๋„๋ฆฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•จ
  • SHA-1์€ secret key์— ์˜์กดํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— MAC์œผ๋กœ ์‚ฌ์šฉ๋˜๋„๋ก ์„ค๊ณ„๋˜์ง€ ์•Š์Œ
  • RFC2014๋กœ ๋ฐœํ‘œ๋จ
  • IP security (IP ๋ณด์•ˆ)๋ฅผ ์œ„ํ•œ ์˜๋ฌด ๊ตฌํ˜„ MAC์œผ๋กœ ์„ ํƒ๋จ
  • Transport Layer Security (TLS) ๋ฐ Secure Electronic Transaction (SET)๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ์—์„œ ์‚ฌ์šฉ๋จ

HMAC Design Objectives

  • ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์ˆ˜์ • ์—†์ด ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•จ
  • ๋” ๋น ๋ฅด๊ฑฐ๋‚˜ ๋” ์•ˆ์ „ํ•œ ํ•ด์‹œ ํ•จ์ˆ˜๊ฐ€ ๋ฐœ๊ฒฌ๋˜๊ฑฐ๋‚˜ ํ•„์š”ํ•  ๊ฒฝ์šฐ ๋‚ด์žฅ๋œ ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์‰ฝ๊ฒŒ ๊ต์ฒดํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉ
  • ์‹ฌ๊ฐํ•œ ์„ฑ๋Šฅ ์ €ํ•˜ ์—†์ด ํ•ด์‹œ ํ•จ์ˆ˜์˜ ์›๋ž˜ ์„ฑ๋Šฅ์„ ๋ณด์กด
  • ๊ฐ„๋‹จํ•œ ๋ฐฉ์‹์œผ๋กœ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ฒ˜๋ฆฌ
  • ๋‚ด์žฅ๋œ ํ•ด์‹œ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ํ•ฉ๋ฆฌ์ ์ธ ๊ฐ€์ •์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์˜ ๊ฐ•๋„์— ๋Œ€ํ•œ ์ž˜ ์ดํ•ด๋œ ์•”ํ˜ธํ•™์  ๋ถ„์„์„ ๊ฐ–์ถค

HMAC Structure

Security of HMAC

  • ๋ณด์•ˆ์€ ๊ธฐ๋ณธ ํ•ด์‹œ ํ•จ์ˆ˜์˜ ์•”ํ˜ธํ•™์  ๊ฐ•๋„์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง
  • HMAC์— ๋Œ€ํ•œ ์„ฑ๊ณต์ ์ธ ๊ณต๊ฒฉ ํ™•๋ฅ ์€ ๋‚ด์žฅ๋œ ํ•ด์‹œ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ๋‹ค์Œ ๊ณต๊ฒฉ ์ค‘ ํ•˜๋‚˜์™€ ๋™์ผํ•จ:
    • ๊ณต๊ฒฉ์ž๊ฐ€ ์ž„์˜์˜ ๋น„๋ฐ€ IV๋ฅผ ๊ฐ€์ง€๊ณ ๋„ ์ถœ๋ ฅ์„ ๊ณ„์‚ฐ
      • Brute force key O(2n)O(2^n)O(2n), ๋˜๋Š” birthday attack (์ƒ์ผ ๊ณต๊ฒฉ) ์‚ฌ์šฉ
    • ๋˜๋Š” ๊ณต๊ฒฉ์ž๊ฐ€ IV๊ฐ€ ์ž„์˜์ด๊ณ  ๋น„๋ฐ€์ผ ๋•Œ๋„ ํ•ด์‹œ ํ•จ์ˆ˜์—์„œ ์ถฉ๋Œ์„ ์ฐพ์Œ
      • ์ฆ‰, H(M)=H(Mโ€ฒ)H(M) = H(M')H(M)=H(Mโ€ฒ)์ธ MMM๊ณผ Mโ€ฒM'Mโ€ฒ์„ ์ฐพ์Œ
      • Birthday attack O(2n/2)O(2^{n/2})O(2n/2)

Public-Key Encryption Structure

  • 1976๋…„ Diffie์™€ Hellman์— ์˜ํ•ด ๊ณต๊ฐœ์ ์œผ๋กœ ์ œ์•ˆ๋จ
  • ์ˆ˜ํ•™์  ํ•จ์ˆ˜์— ๊ธฐ๋ฐ˜
  • Asymmetric
    • ๋‘ ๊ฐœ์˜ ๊ฐœ๋ณ„ ํ‚ค ์‚ฌ์šฉ
    • Public key (๊ณต๊ฐœํ‚ค) ๋ฐ private key (๊ฐœ์ธํ‚ค)
    • Public key๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ์šฉํ•˜๋„๋ก ๊ณต๊ฐœ๋จ
    • ๋ฐฐํฌ๋ฅผ ์œ„ํ•ด ์–ด๋–ค ํ˜•ํƒœ์˜ ํ”„๋กœํ† ์ฝœ์ด ํ•„์š”

Public-Key Encryption

  • Plaintext
    • ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์ž…๋ ฅ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๋ฉ”์‹œ์ง€ ๋˜๋Š” ๋ฐ์ดํ„ฐ
  • Encryption algorithm
    • plaintext์— ๋ณ€ํ™˜์„ ์ˆ˜ํ–‰
  • Public and private key
    • ์•”ํ˜ธํ™”๋ฅผ ์œ„ํ•œ ํ‚ค์™€ ๋ณตํ˜ธํ™”๋ฅผ ์œ„ํ•œ ํ‚ค ํ•œ ์Œ
  • Ciphertext
    • ์ถœ๋ ฅ์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” ๋’ค์„ž์ธ ๋ฉ”์‹œ์ง€
  • Decryption key
    • ์›๋ณธ plaintext๋ฅผ ์ƒ์„ฑ

Applications for Public-Key Cryptosystems

  • ๊ณต๊ฐœํ‚ค ์•”ํ˜ธ ์‹œ์Šคํ…œ์˜ ์‘์šฉ

Requirements for Public-Key Cryptosystems

  • ํ‚ค ์Œ์„ ์ƒ์„ฑํ•˜๊ธฐ ์‰ฌ์›€ (๊ณ„์‚ฐ์ ์œผ๋กœ)
  • ๊ณต๊ฐœํ‚ค๋ฅผ ์•„๋Š” ์†ก์‹ ์ž๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ์•”ํ˜ธํ™”ํ•˜๊ธฐ ์‰ฌ์›€ (๊ณ„์‚ฐ์ ์œผ๋กœ)
  • ๊ฐœ์ธํ‚ค๋ฅผ ์•„๋Š” ์ˆ˜์‹ ์ž๊ฐ€ ์•”ํ˜ธ๋ฌธ์„ ๋ณตํ˜ธํ™”ํ•˜๊ธฐ ์‰ฌ์›€ (๊ณ„์‚ฐ์ ์œผ๋กœ)
  • ๊ณต๊ฒฉ์ž๊ฐ€ ๊ณต๊ฐœํ‚ค๋กœ๋ถ€ํ„ฐ ๊ฐœ์ธํ‚ค๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ ๋ถˆ๊ฐ€๋Šฅํ•จ (๊ณ„์‚ฐ์ ์œผ๋กœ)
  • ๊ณต๊ฒฉ์ž๊ฐ€ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ์›๋ณธ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณต๊ตฌํ•˜๊ธฐ ๋ถˆ๊ฐ€๋Šฅํ•จ (๊ณ„์‚ฐ์ ์œผ๋กœ)
  • ์–ด๋А ํ‚ค๋“  ๊ฐ ์—ญํ• ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์œ ์šฉํ•จ

Asymmetric Encryption Algorithms

  • RSA (Rivest, Shamir, Adleman)
    • 1977๋…„ ๊ฐœ๋ฐœ
    • ๊ฐ€์žฅ ๋„๋ฆฌ ์ธ์ •๋ฐ›๊ณ  ๊ตฌํ˜„๋œ public-key encryption ์ ‘๊ทผ ๋ฐฉ์‹
    • Plaintext์™€ ciphertext๊ฐ€ ์–ด๋–ค n์— ๋Œ€ํ•ด 0๊ณผ n-1 ์‚ฌ์ด์˜ ์ •์ˆ˜์ธ block cipher
  • Diffie-Hellman
    • Key exchange (ํ‚ค ๊ตํ™˜) ์•Œ๊ณ ๋ฆฌ์ฆ˜
    • ๋‘ ์‚ฌ์šฉ์ž๊ฐ€ ๋ฉ”์‹œ์ง€์˜ ํ›„์† ๋Œ€์นญ ์•”ํ˜ธํ™”๋ฅผ ์œ„ํ•œ secret key๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต์œ  ๋น„๋ฐ€์— ์•ˆ์ „ํ•˜๊ฒŒ ํ•ฉ์˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•จ
    • ํ‚ค ๊ตํ™˜์—๋งŒ ๊ตญํ•œ๋จ
  • Digital Signature Standard (DSS)
    • SHA-1๊ณผ ํ•จ๊ป˜ digital signature ๊ธฐ๋Šฅ๋งŒ ์ œ๊ณต
    • ์•”ํ˜ธํ™”๋‚˜ ํ‚ค ๊ตํ™˜์—๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ
  • Elliptic curve cryptography (ECC)
    • RSA์™€ ์œ ์‚ฌํ•œ ๋ณด์•ˆ์„ฑ์„ ๊ฐ€์ง€๋ฉด์„œ๋„ ํ›จ์”ฌ ์ž‘์€ ํ‚ค ์‚ฌ์šฉ

RSA Public-Key Encryption

  • 1977๋…„ MIT์˜ Rivest, Shamir & Adleman์— ์˜ํ•ด ๊ฐœ๋ฐœ
  • ๊ฐ€์žฅ ์ž˜ ์•Œ๋ ค์ ธ ์žˆ๊ณ  ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” public-key ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ์†Œ์ˆ˜๋ฅผ ๋ฒ•์œผ๋กœ ํ•˜๋Š” ์ •์ˆ˜์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ์„ ์‚ฌ์šฉ
  • ์•”ํ˜ธํ™”: C=Memodโ€‰โ€‰nC = M^e \mod nC=Memodn
  • ๋ณตํ˜ธํ™”: M=Cdmodโ€‰โ€‰n=(Me)dmodโ€‰โ€‰n=MM = C^d \mod n = (M^e)^d \mod n = MM=Cdmodn=(Me)dmodn=M
  • ์†ก์‹ ์ž์™€ ์ˆ˜์‹ ์ž ๋ชจ๋‘ nnn๊ณผ eee์˜ ๊ฐ’์„ ์•Ž
  • ์ˆ˜์‹ ์ž๋งŒ ddd์˜ ๊ฐ’์„ ์•Ž
  • Public key PU={e,n}PU = \{e, n\}PU={e,n}์™€ private key PR={d,n}PR = \{d, n\}PR={d,n}๋ฅผ ์‚ฌ์šฉํ•˜๋Š” public-key encryption ์•Œ๊ณ ๋ฆฌ์ฆ˜

RSA Algorithm

RSA Example

Security of RSA

  • Brute force
    • ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  private key ์‹œ๋„
    • ๋ฐฉ์–ด์ฑ…์€ ํฐ ํ‚ค ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด์ง€๋งŒ, ์ด๋Š” ์‹คํ–‰ ์†๋„๋ฅผ ๋Šฆ์ถค
  • Mathematical attacks (์ˆ˜ํ•™์  ๊ณต๊ฒฉ)
    • ์—ฌ๋Ÿฌ ์ ‘๊ทผ๋ฒ•์ด ์žˆ์œผ๋ฉฐ, ๋ชจ๋‘ ๋‘ ์†Œ์ˆ˜์˜ ๊ณฑ์„ ์ธ์ˆ˜๋ถ„ํ•ดํ•˜๋Š” ๋…ธ๋ ฅ๊ณผ ๋™์ผ
  • Timing attacks (ํƒ€์ด๋ฐ ๊ณต๊ฒฉ)
    • ๋ณตํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง
    • ์™„์ „ํžˆ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋ฐฉํ–ฅ์—์„œ ์˜ค๋ฉฐ, ciphertext-only attack (์•”ํ˜ธ๋ฌธ ๋‹จ๋… ๊ณต๊ฒฉ)
    • ๋Œ€์‘์ฑ…: ์ผ์ •ํ•œ ์ง€์ˆ˜ํ™” ์‹œ๊ฐ„, ๋ฌด์ž‘์œ„ ์ง€์—ฐ, ๋ธ”๋ผ์ธ๋”ฉ
  • Chosen ciphertext attacks (์„ ํƒ ์•”ํ˜ธ๋ฌธ ๊ณต๊ฒฉ)
    • RSA ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์†์„ฑ์„ ์•…์šฉํ•˜๋Š” ๊ณต๊ฒฉ

Table 21.2 Progress in Factorization

  • ์ธ์ˆ˜๋ถ„ํ•ด์˜ ์ง„์ „

Diffie-Hellman Key Exchange

  • ์ตœ์ดˆ๋กœ ๋ฐœํ‘œ๋œ public-key ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • 1976๋…„ Diffie์™€ Hellman์ด public key ๊ฐœ๋… ์„ค๋ช…๊ณผ ํ•จ๊ป˜ ๋ฐœํ‘œ
  • ๋‹ค์ˆ˜์˜ ์ƒ์šฉ ์ œํ’ˆ์—์„œ ์‚ฌ์šฉ๋จ
  • ๋ฉ”์‹œ์ง€์˜ ํ›„์† ์•”ํ˜ธํ™”๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” secret key๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๊ตํ™˜ํ•˜๋Š” ์‹ค์šฉ์ ์ธ ๋ฐฉ๋ฒ•
  • ๋ณด์•ˆ์€ ์ด์‚ฐ ๋กœ๊ทธ ๊ณ„์‚ฐ์˜ ์–ด๋ ค์›€์— ์˜์กด

Diffie-Hellman Key Exchange Algorithm

Diffie-Hellman Example

  • ์†Œ์ˆ˜ q=353q = 353q=353
  • ์›์‹œ๊ทผ ฮฑ=3\alpha = 3ฮฑ=3
  • A์™€ B๊ฐ€ ๊ฐ๊ฐ ์ž์‹ ์˜ ๊ณต๊ฐœํ‚ค ๊ณ„์‚ฐ
    • A๋Š” YA=397modโ€‰โ€‰353=40Y_A = 3^{97} \mod 353 = 40YAโ€‹=397mod353=40 ๊ณ„์‚ฐ
    • B๋Š” YB=3233modโ€‰โ€‰353=248Y_B = 3^{233} \mod 353 = 248YBโ€‹=3233mod353=248 ๊ณ„์‚ฐ
  • ๊ตํ™˜ ํ›„ ๋น„๋ฐ€ํ‚ค ๊ณ„์‚ฐ:
    • A: K=(YB)XAmodโ€‰โ€‰353=24897modโ€‰โ€‰353=160K = (Y_B)^{X_A} \mod 353 = 248^{97} \mod 353 = 160K=(YBโ€‹)XAโ€‹mod353=24897mod353=160
    • B: K=(YA)XBmodโ€‰โ€‰353=40233modโ€‰โ€‰353=160K = (Y_A)^{X_B} \mod 353 = 40^{233} \mod 353 = 160K=(YAโ€‹)XBโ€‹mod353=40233mod353=160
  • ๊ณต๊ฒฉ์ž๋Š” ๋‹ค์Œ์„ ํ’€์–ด์•ผ ํ•จ:
    • 3amodโ€‰โ€‰353=403^a \mod 353 = 403amod353=40 (์–ด๋ ค์›€)
    • ์›ํ•˜๋Š” ๋‹ต์€ 97์ด๋ฉฐ, ๊ทธ ํ›„ B์™€ ๊ฐ™์ด ํ‚ค๋ฅผ ๊ณ„์‚ฐ

Key Exchange Protocols

Man-in-the-Middle Attack

  • ๊ณต๊ฒฉ ๊ณผ์ •:
    1. Darth๊ฐ€ ๊ฐœ์ธํ‚ค XD1X_{D1}XD1โ€‹ & XD2X_{D2}XD2โ€‹์™€ ๊ทธ๋“ค์˜ ๊ณต๊ฐœํ‚ค YD1Y_{D1}YD1โ€‹ & YD2Y_{D2}YD2โ€‹๋ฅผ ์ƒ์„ฑ
    2. Alice๊ฐ€ YAY_AYAโ€‹๋ฅผ Bob์—๊ฒŒ ์ „์†ก
    3. Darth๊ฐ€ YAY_AYAโ€‹๋ฅผ ๊ฐ€๋กœ์ฑ„๊ณ  YD1Y_{D1}YD1โ€‹์„ Bob์—๊ฒŒ ์ „์†ก. Darth๋Š” K2K_2K2โ€‹๋„ ๊ณ„์‚ฐ
    4. Bob์ด YD1Y_{D1}YD1โ€‹์„ ๋ฐ›๊ณ  K1K_1K1โ€‹์„ ๊ณ„์‚ฐ
    5. Bob์ด YBY_BYBโ€‹๋ฅผ Alice์—๊ฒŒ ์ „์†ก (์Šฌ๋ผ์ด๋“œ ์˜คํƒ€: YBY_BYBโ€‹์—ฌ์•ผ ํ•จ)
    6. Darth๊ฐ€ YBY_BYBโ€‹๋ฅผ ๊ฐ€๋กœ์ฑ„๊ณ  YD2Y_{D2}YD2โ€‹๋ฅผ Alice์—๊ฒŒ ์ „์†ก. Darth๋Š” K1K_1K1โ€‹์„ ๊ณ„์‚ฐ
    7. Alice๊ฐ€ YD2Y_{D2}YD2โ€‹๋ฅผ ๋ฐ›๊ณ  K2K_2K2โ€‹๋ฅผ ๊ณ„์‚ฐ
  • ๋ชจ๋“  ํ›„์† ํ†ต์‹ ์ด ์†์ƒ๋จ

Other Public-Key Algorithms

  • Digital Signature Standard (DSS)
    • FIPS PUB 186
    • SHA-1 ๋ฐ Digital Signature Algorithm (DSA)์„ ์‚ฌ์šฉ
    • 1991๋…„ ์ตœ์ดˆ ์ œ์•ˆ, 1993๋…„ ๋ณด์•ˆ ์šฐ๋ ค๋กœ ๊ฐœ์ •, 1996๋…„ ์‚ฌ์†Œํ•œ ๊ฐœ์ •
    • ์•”ํ˜ธํ™”๋‚˜ ํ‚ค ๊ตํ™˜์— ์‚ฌ์šฉ๋  ์ˆ˜ ์—†์Œ
    • Digital signature ๊ธฐ๋Šฅ๋งŒ ์ œ๊ณตํ•˜๋„๋ก ์„ค๊ณ„๋œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‚ฌ์šฉ
  • Elliptic-Curve Cryptography (ECC)
    • RSA๋ณด๋‹ค ์ž‘์€ ๋น„ํŠธ ํฌ๊ธฐ๋กœ ๋™๋“ฑํ•œ ๋ณด์•ˆ ์ œ๊ณต
    • IEEE P1363๊ณผ ๊ฐ™์€ ํ‘œ์ค€์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Œ
    • ECC์— ๋Œ€ํ•œ ์‹ ๋ขฐ ์ˆ˜์ค€์€ ์•„์ง RSA๋งŒํผ ๋†’์ง€ ์•Š์Œ
    • ํƒ€์› ๊ณก์„ ์ด๋ผ๋Š” ์ˆ˜ํ•™์  ๊ตฌ์กฐ์— ๊ธฐ๋ฐ˜

Digital Signatures

  • ์ถœ์ฒ˜ ๋ฐ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ์ธ์ฆ์— ์‚ฌ์šฉ
  • Private key๋กœ ํ•ด์‹œ ์ฝ”๋“œ๋ฅผ ์•”ํ˜ธํ™”ํ•˜์—ฌ ์ƒ์„ฑ
  • Confidentiality๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์Œ
    • ์™„์ „ํ•œ ์•”ํ˜ธํ™”์˜ ๊ฒฝ์šฐ์—๋„ ๋งˆ์ฐฌ๊ฐ€์ง€
    • ๋ฉ”์‹œ์ง€๋Š” ๋ณ€๊ฒฝ์œผ๋กœ๋ถ€ํ„ฐ ์•ˆ์ „ํ•˜์ง€๋งŒ ๋„์ฒญ์œผ๋กœ๋ถ€ํ„ฐ๋Š” ์•ˆ์ „ํ•˜์ง€ ์•Š์Œ

Public Key Certificates

Key Distribution

  • ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•˜๋ ค๋Š” ๋‘ ๋‹น์‚ฌ์ž์—๊ฒŒ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ํ‚ค๋ฅผ ๋ณผ ์ˆ˜ ์—†๋„๋ก ํ‚ค๋ฅผ ์ „๋‹ฌํ•˜๋Š” ์ˆ˜๋‹จ
  • ๋‘ ๋‹น์‚ฌ์ž(A์™€ B)๋Š” ๋‹ค์Œ ๋ฐฉ๋ฒ•์œผ๋กœ ์ด๋ฅผ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ์Œ:
    1. A๊ฐ€ ํ‚ค๋ฅผ ์„ ํƒํ•˜์—ฌ B์—๊ฒŒ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์ „๋‹ฌ
    2. ์ œ3์ž๊ฐ€ ํ‚ค๋ฅผ ์„ ํƒํ•˜์—ฌ A์™€ B์—๊ฒŒ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์ „๋‹ฌ
    3. A์™€ B๊ฐ€ ์ด์ „์— ๊ทธ๋ฆฌ๊ณ  ์ตœ๊ทผ์— ํ‚ค๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ, ํ•œ์ชฝ์ด ๋‹ค๋ฅธ ์ชฝ์— ์ด์ „ ํ‚ค๋กœ ์•”ํ˜ธํ™”๋œ ์ƒˆ ํ‚ค๋ฅผ ์ „์†ก
    4. A์™€ B๊ฐ€ ๊ฐ๊ฐ ์ œ3์ž C์™€ ์•”ํ˜ธํ™”๋œ ์—ฐ๊ฒฐ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ, C๊ฐ€ ์•”ํ˜ธํ™”๋œ ๋งํฌ๋ฅผ ํ†ตํ•ด A์™€ B์—๊ฒŒ ํ‚ค๋ฅผ ์ „๋‹ฌ

Key Distribution

Kerberos Overview

  • ๋ณธ๋ž˜ MIT์—์„œ ๊ฐœ๋ฐœ๋จ
  • ๊ณต๊ฐœ ๋„๋ฉ”์ธ ๋ฐ ์ƒ์šฉ ์ง€์› ๋ฒ„์ „์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์†Œํ”„ํŠธ์›จ์–ด ์œ ํ‹ธ๋ฆฌํ‹ฐ
  • ์ธํ„ฐ๋„ท ํ‘œ์ค€์œผ๋กœ ๋ฐœํ‘œ๋˜์—ˆ์œผ๋ฉฐ ์›๊ฒฉ ์ธ์ฆ์˜ ์‚ฌ์‹ค์ƒ ํ‘œ์ค€
  • ์ „์ฒด์ ์ธ ๋ฐฉ์‹์€ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ œ3์ž ์ธ์ฆ ์„œ๋น„์Šค
  • ์‚ฌ์šฉ์ž๊ฐ€ ํ˜ธ์ถœํ•˜๋Š” ๊ฐ ์„œ๋น„์Šค์— ๋Œ€ํ•ด ์ž์‹ ์˜ ์‹ ์›์„ ์ฆ๋ช…ํ•ด์•ผ ํ•˜๋ฉฐ, ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ž์‹ ์˜ ์‹ ์›์„ ์ฆ๋ช…ํ•ด์•ผ ํ•จ

Kerberos Protocol

  • Client/server ๋Œ€ํ™”์˜ ๋ณด์•ˆ์— ๋Œ€ํ•œ ๋‹ค์–‘ํ•œ ์œ„ํ˜‘์— ๋Œ€์‘ํ•˜๋„๋ก ์„ค๊ณ„๋จ
  • ๋ช…๋ฐฑํ•œ ๋ณด์•ˆ ์œ„ํ—˜์€ impersonation (๊ฐ€์žฅ)
  • ์„œ๋ฒ„๋Š” ์„œ๋น„์Šค๋ฅผ ์š”์ฒญํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์‹ ์›์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ
  • Clients, application servers, Kerberos server๋ฅผ ํฌํ•จ
    • ์‚ฌ์šฉ์ž๋Š” ์ฒ˜์Œ์— ์‹ ์› ํ™•์ธ์„ ์œ„ํ•ด AS (์ธ์ฆ ์„œ๋ฒ„)์™€ ํ˜‘์ƒ
    • AS๋Š” ์‹ ์›์„ ํ™•์ธํ•œ ๋‹ค์Œ ์ •๋ณด๋ฅผ application server (์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์„œ๋ฒ„)์— ์ „๋‹ฌํ•˜๊ณ , ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์„œ๋น„์Šค ์š”์ฒญ์„ ์ˆ˜๋ฝ
  • Authentication Server (AS) ์‚ฌ์šฉ
    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด AS์—๊ฒŒ ์‚ฌ์šฉ์ž์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ณด๋‚ด๋ฉด ์ƒ๋Œ€๋ฐฉ์ด ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๊ด€์ฐฐํ•  ์ˆ˜ ์žˆ์Œ
    • ์ƒ๋Œ€๋ฐฉ์ด AS๋ฅผ ๊ฐ€์žฅํ•˜์—ฌ ์ž˜๋ชป๋œ ๊ฒ€์ฆ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Œ
  • ์ด๋ฅผ ์•ˆ์ „ํ•œ ๋ฐฉ์‹์œผ๋กœ ์ˆ˜ํ–‰ํ•  ๋ฐฉ๋ฒ•์„ ์ฐพ์•„์•ผ ํ•จ

Kerberos Realms

  • Kerberos ํ™˜๊ฒฝ์€ ๋‹ค์Œ์œผ๋กœ ๊ตฌ์„ฑ๋จ:
    • Kerberos server
    • ์„œ๋ฒ„์— ๋“ฑ๋ก๋œ ๋‹ค์ˆ˜์˜ clients
    • ์„œ๋ฒ„์™€ ํ‚ค๋ฅผ ๊ณต์œ ํ•˜๋Š” ๋‹ค์ˆ˜์˜ application servers
  • ์ด๋ฅผ realm (์˜์—ญ)์ด๋ผ๊ณ  ํ•จ
  • ๋‹ค๋ฅธ ๊ด€๋ฆฌ ์กฐ์ง ํ•˜์˜ ํด๋ผ์ด์–ธํŠธ ๋ฐ ์„œ๋ฒ„ ๋„คํŠธ์›Œํฌ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค๋ฅธ realm์„ ๊ตฌ์„ฑ
  • ์—ฌ๋Ÿฌ realm์ด ์žˆ๋Š” ๊ฒฝ์šฐ:
    • ๊ทธ๋“ค์˜ Kerberos ์„œ๋ฒ„๋Š” secret key๋ฅผ ๊ณต์œ ํ•ด์•ผ ํ•˜๋ฉฐ, ๋‹ค๋ฅธ realm์˜ Kerberos ์„œ๋ฒ„๊ฐ€ ์‚ฌ์šฉ์ž๋ฅผ ์ธ์ฆํ•˜๋Š” ๊ฒƒ์„ ์‹ ๋ขฐํ•ด์•ผ ํ•จ
    • ๋‘ ๋ฒˆ์งธ realm์˜ ์ฐธ์—ฌ ์„œ๋ฒ„๋“ค๋„ ์ฒซ ๋ฒˆ์งธ realm์˜ Kerberos ์„œ๋ฒ„๋ฅผ ์‹ ๋ขฐํ•  ์˜ํ–ฅ์ด ์žˆ์–ด์•ผ ํ•จ

Kerberos Performance Issues

  • ๋Œ€๊ทœ๋ชจ client-server ์„ค์น˜์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Œ
  • Kerberos๊ฐ€ ๋Œ€๊ทœ๋ชจ ํ™˜๊ฒฝ์˜ ์„ฑ๋Šฅ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ:
    • ์‹œ์Šคํ…œ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ตฌ์„ฑ๋˜์—ˆ๋‹ค๋ฉด ๊ฑฐ์˜ ์—†์Œ
    • ํ‹ฐ์ผ“์€ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜์—ฌ ํŠธ๋ž˜ํ”ฝ์„ ์ค„์ž„
  • ๋Œ€๊ทœ๋ชจ Kerberos ๋ณด์•ˆ์€ Kerberos ์„œ๋ฒ„๋ฅผ ๋ณ„๋„์˜ ๊ฒฉ๋ฆฌ๋œ ๋จธ์‹ ์— ๋ฐฐ์น˜ํ•จ์œผ๋กœ์จ ๊ฐ€์žฅ ์ž˜ ๋ณด์žฅ๋จ
  • ์—ฌ๋Ÿฌ realm์˜ ๋™๊ธฐ๋Š” ์„ฑ๋Šฅ ๊ด€๋ จ์ด ์•„๋‹Œ ๊ด€๋ฆฌ์ ์ธ ๊ฒƒ์ž„

Certificate Authority (CA)

  • ์ธ์ฆ์„œ๋Š” ๋‹ค์Œ์œผ๋กœ ๊ตฌ์„ฑ๋จ:
    • Public key์™€ ํ‚ค ์†Œ์œ ์ž์˜ User ID
    • ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ œ3์ž์— ์˜ํ•ด ์„œ๋ช…๋จ
    • ์ผ๋ฐ˜์ ์œผ๋กœ ์ œ3์ž๋Š” ์‚ฌ์šฉ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ(์˜ˆ: ์ •๋ถ€ ๊ธฐ๊ด€ ๋˜๋Š” ๊ธˆ์œต ๊ธฐ๊ด€)๊ฐ€ ์‹ ๋ขฐํ•˜๋Š” CA (์ธ์ฆ ๊ธฐ๊ด€)
  • ์‚ฌ์šฉ์ž๋Š” ์ž์‹ ์˜ ๊ณต๊ฐœํ‚ค๋ฅผ ๊ธฐ๊ด€์— ์•ˆ์ „ํ•œ ๋ฐฉ์‹์œผ๋กœ ์ œ์‹œํ•˜๊ณ  ์ธ์ฆ์„œ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ์Œ
  • ๊ทธ ํ›„ ์‚ฌ์šฉ์ž๋Š” ์ธ์ฆ์„œ๋ฅผ ๊ฒŒ์‹œํ•  ์ˆ˜ ์žˆ์Œ
  • ์ด ์‚ฌ์šฉ์ž์˜ ๊ณต๊ฐœํ‚ค๊ฐ€ ํ•„์š”ํ•œ ์‚ฌ๋žŒ์€ ๋ˆ„๊ตฌ๋‚˜ ์ธ์ฆ์„œ๋ฅผ ์–ป๊ณ  ์ฒจ๋ถ€๋œ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ช…์„ ํ†ตํ•ด ์œ ํšจํ•œ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ

X.509 Authentication Service

  • Public-key certificates ์„œ์‹์— ๋Œ€ํ•œ ๋ณดํŽธ์ ์œผ๋กœ ์ธ์ •๋œ ํ‘œ์ค€
  • CCITT X.500 ๋””๋ ‰ํ„ฐ๋ฆฌ ์„œ๋น„์Šค ํ‘œ์ค€์˜ ์ผ๋ถ€
  • Public-key crypto ๋ฐ digital signatures ์‚ฌ์šฉ
  • IPsec, SSL, SET, S/MIME ๋“ฑ ๋„คํŠธ์›Œํฌ ๋ณด์•ˆ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋จ
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํ‘œ์ค€ํ™”๋˜์ง€ ์•Š์•˜์ง€๋งŒ RSA๊ฐ€ ๊ถŒ์žฅ๋จ

X.509 Certificates

Public Key Infrastructure X.509 (PKIX)

PKIX Management Functions

  • Registration (๋“ฑ๋ก)
  • Initialization (์ดˆ๊ธฐํ™”)
  • Certification (์ธ์ฆ)
  • Key pair recovery (ํ‚ค ์Œ ๋ณต๊ตฌ)
  • Key pair update (ํ‚ค ์Œ ๊ฐฑ์‹ )
  • Revocation request (ํ์ง€ ์š”์ฒญ)
  • Cross certification (๊ต์ฐจ ์ธ์ฆ)

Rotor Machines

  • ํ˜„๋Œ€ ์•”ํ˜ธ ์ด์ „์— rotor machine (ํšŒ์ „๊ธฐ)์ด ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ product cipher (๊ณฑ ์•”ํ˜ธ)์˜€์Œ
  • ์ œ2์ฐจ ์„ธ๊ณ„๋Œ€์ „์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋จ
    • ๋…์ผ Enigma, ์—ฐํ•ฉ๊ตฐ Hagelin, ์ผ๋ณธ Purple
  • ๋งค์šฐ ๋ณต์žกํ•˜๊ณ  ๊ฐ€๋ณ€์ ์ธ substitution cipher๋ฅผ ๊ตฌํ˜„
  • ๊ฐ๊ฐ ํ•˜๋‚˜์˜ ์น˜ํ™˜์„ ์ œ๊ณตํ•˜๋Š” ์ผ๋ จ์˜ ์‹ค๋ฆฐ๋”๋ฅผ ์‚ฌ์šฉํ–ˆ์œผ๋ฉฐ, ๊ฐ ๊ธ€์ž๊ฐ€ ์•”ํ˜ธํ™”๋œ ํ›„ ํšŒ์ „ํ•˜๊ณ  ๋ณ€๊ฒฝ๋จ
  • 3๊ฐœ์˜ ์‹ค๋ฆฐ๋”๋กœ 263=1757626^3 = 17576263=17576๊ฐœ์˜ ์•ŒํŒŒ๋ฒณ์„ ๊ฐ€์ง
  • ๋‹ค์ค‘ ์•”ํ˜ธํ™” ๋‹จ๊ณ„
    • Substitution cipher์™€ transposition cipher ๋ชจ๋‘ ์‚ฌ์šฉ
  • ๊ธฐ๋ณธ ์›๋ฆฌ
    • ๋…๋ฆฝ์ ์œผ๋กœ ํšŒ์ „ํ•˜๋Š” ์‹ค๋ฆฐ๋” ์„ธํŠธ
    • ๊ฐ ์‹ค๋ฆฐ๋”์˜ ์ „๊ธฐ ํŽ„์Šค๊ฐ€ ์„ธํŠธ๋ฅผ ๋”ฐ๋ผ ํ๋ฆ„
    • ๊ฐ ์‹ค๋ฆฐ๋”์—๋Š” 26๊ฐœ์˜ ์ž…๋ ฅ ํ•€๊ณผ 26๊ฐœ์˜ ์ถœ๋ ฅ ํ•€์ด ์žˆ์Œ
  • ๊ฐ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์„ ์•ŒํŒŒ๋ฒณ ๋ฌธ์ž์™€ ์—ฐ๊ด€์‹œํ‚จ๋‹ค๋ฉด
    • ๋‹จ์ผ ์‹ค๋ฆฐ๋”๋Š” monoalphabetic substitution (๋‹จ์ผ์น˜ํ™˜ ์•”ํ˜ธ)์„ ์ •์˜
  • ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด ์‹ค๋ฆฐ๋”๊ฐ€ ํ•œ ์œ„์น˜ ํšŒ์ „
    • ๋‚ด๋ถ€ ์—ฐ๊ฒฐ์ด ๊ทธ์— ๋”ฐ๋ผ ์ด๋™
    • ๋”ฐ๋ผ์„œ ๋‹ค๋ฅธ monoalphabetic substitution cipher๊ฐ€ ์ •์˜๋จ
  • 26 ๊ธ€์ž ํ›„์— ์‹ค๋ฆฐ๋”๋Š” ์ดˆ๊ธฐ ์ƒํƒœ๋กœ ๋Œ์•„์˜ด
  • ์ฃผ๊ธฐ๊ฐ€ 26์ธ polyalphabetic permutation (๋‹ค์ค‘์น˜ํ™˜ ์ˆœ์—ด) ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ํ•œ ์‹ค๋ฆฐ๋”์˜ ์ถœ๋ ฅ์ด ๋‹ค์Œ ์‹ค๋ฆฐ๋”์˜ ์ž…๋ ฅ์— ์—ฐ๊ฒฐ๋จ
  • ๊ฐ€์žฅ ๋ฐ”๊นฅ์ชฝ ์‹ค๋ฆฐ๋”๋Š” ๊ฐ ํ‚ค ์ž…๋ ฅ๋งˆ๋‹ค ํ•œ ํ•€ ์œ„์น˜ ํšŒ์ „
  • ๋ฐ”๊นฅ์ชฝ ์‹ค๋ฆฐ๋”๊ฐ€ ํ•œ ๋ฐ”ํ€ด ์™„์ „ํžˆ ํšŒ์ „ํ•  ๋•Œ๋งˆ๋‹ค ์ค‘๊ฐ„ ์‹ค๋ฆฐ๋”๊ฐ€ ํ•œ ํ•€ ์œ„์น˜ ํšŒ์ „
  • ์ค‘๊ฐ„ ์‹ค๋ฆฐ๋”๊ฐ€ ํ•œ ๋ฐ”ํ€ด ์™„์ „ํžˆ ํšŒ์ „ํ•  ๋•Œ๋งˆ๋‹ค ์•ˆ์ชฝ ์‹ค๋ฆฐ๋”๊ฐ€ ํ•œ ํ•€ ์œ„์น˜ ํšŒ์ „
  • 26ร—26ร—26=17,57626 \times 26 \times 26 = 17,57626ร—26ร—26=17,576
์ตœ๊ทผ ์ˆ˜์ •: 25. 11. 6. ์˜คํ›„ 12:07
Contributors: kmbzn
Prev
02. ์ •๋ณด๋ณด์•ˆ์ •์ฑ… ๋ฐ ๋ฒ•๊ทœ
Next
04. User Authentication

BUILT WITH

CloudflareNode.jsGitHubGitVue.jsJavaScriptVSCodenpm

All trademarks and logos are property of their respective owners.
ยฉ 2025 kmbzn ยท MIT License