╱╱╭╮╱╱╱╱╱╱╭━━━╮╱╱╱╭╮╱╭╮╱╱╱╱╱╱ ╱╱┃┃╱╱╱╱╱╱┃╭━╮┃╱╱╱┃┃╱┃┃╱╱╱╱╱╱ ╱╱┃┣━━┳━━╮┃┃╱┃┣━╮╱┃╰━╯┣━━┳━╮╱ ╭╮┃┃╭╮┃┃━┫┃╰━╯┃╭╮╮┃╭━╮┃╭╮┃╭╮╮ ┃╰╯┃╭╮┃┃━┫┃╭━╮┃┃┃┃┃┃╱┃┃╭╮┃┃┃┃ ╰━━┻╯╰┻━━╯╰╯╱╰┻╯╰╯╰╯╱╰┻╯╰┻╯╰╯

CS/정보 보안

[정보 보안] Cryptographic Tools (2)

재안안 2024. 6. 22. 19:28

[2] Cryptographic Tools

Symmetric Encryption : single-key encryption
- plaintext : original message
- encryption algorithm
- secret key
- ciphertext : scrambled message
- decryption algorithm

2 requirements
- encryption algorithm : Block Ciphers
- secret key shared by sender and recipient

 

@Block Ciphers

-  planetext, ciphertext, key size
1) Data Encryption Standard (64, 64, 56)
-  2) 3DES (64, 64, 112/168)
-  3) Advanced Encryption Standard (128, 128, 128/192/256)

Attacking Symmetric Encryption
- brute-force attack 무차별적 대입 (56 비트 키는 약 10시간이면 뚫린다)
- cyptanalysis 암호학적 분석

Message Authentication (against falsification and transactions) : Veryfing received message is authentic

authentic의 조건
- contents unaltered
- is from authentic source
- timely in correct sequence

순서 확인 방법
1. conventional encryption (key)

2. separate authentication mechanism (key + tag)
- Message Authentication Code
secret key to generate a small block of data
메시지와 블럭을 같이 보냄

- One Way Hash Function
no secrete key as input, instead send message digest
(variable-size message) -> fixed-size message
복호화 불가능

Hash Function Requirements
impossible to prove 
x such that H(x) = h
y != x such that H(y) == H(x)
(x, y) such that H(x) == H(y)

Public Key Encryption (asymmetric, mathematical functions)
- plaintext
- public key and private key
- encrption algorithm
- ciphertext
- decryption algorithm

Public Key Authentication
- 공개키로 잠근건 개인키로 열고 (authentication)
- 개인키로 잠근건 공개키로 연다 (integrity)

encrypt a small bit block called authenticator
- lower cost, same result

Public Key Requirements
- easy to create key pairs
- easy for sender knowing public key to encrypt
- easy for receiver knowiing private key to decrypt
- impossible to determine PRb by PUb
- impossible to determine message by Pub and ciphertext

Public Key Algorithms
- key exchange algorithm
- RSA
- elliptic curve cryptography
- digital signature standard

Public Key Certifiates
- authenticity of public keys (퍼블릭키로 인증)
public key + user ID singed by a trusted third party
siginature is created by encrypted hash code and CA's private key

- distribute secret keys : digital envelopes
first arrange 없이 secrete키 공유하는 법

1. creation (message M, encrypt E, decrypt D)
- M을 one-time symmetric key로 E -> E1
- 해당 symmetric key를 수신자의 PUb로 E -> E2
- E1와 E2를 모두 전송

2. open (Message M, encrypt E, decrypt D)
- E2를 수신자의 PRb로 D -> D2
- D2로 E1를 D -> D1(M)

Random Numbers (generation of keys)
- Pseudo Random Number Generator (simulation and modeling)
- 랜덤성으로 통계적 기준은 넘지만 예측가능. 효율적이다.


구현
- linear congruential method
- blum blum shub
- ANSI X9.17 PNRG

- True Random Number Generator (lotteries, games, security)
효율은 안좋지만 효과는 제일 좋다

Authentication = user authentication + message authentication