본문 바로가기

CS/정보보호

(10)
[정보보호] Digital Signatures Digital Signature은 message authentication을 위한 보안 기술로, 메시지를 교환하는 2개의 parties를 third party로부터 보호해주지만, 메시지를 교환하는 당사자들 사이의 authentication은 보장하지 않는다. Digital signature은 1) signature의 author, date, time을 verify하고 2) 메시지 내용을 authenticate 하며 3) third party가 이를 검증하게 해 dispute resolution(분쟁 해결)을 할 수 있다. Attack and Forgeries Attacks 1) Key-only attack: signature이 attacked 당하는 A의 public key만 알고 있다. 2) Known..
[정보보호] Message Authentication Codes Message Authentication 1) 메시지의 integrity 보호 2) Originator의 identity validate (발신자의 신원 확인) 3) non-repudiation of origin(dispute resolution): 발신자가 메시지를 보냈다는 사실을 부인하지 못하도록 한다. 1) Hash function 2) Message Encryption: Encryption 자체가 authenticator로 사용될 수 있다. 3) Message Authentication Code(MAC) Symmetric Encryption for Message Authentication Symmetric Encryption은 동일한 키를 사용하여 메시지를 암호화, 복호화 하는 방식이다. Symm..
[정보보호] Cryptographic Hash Functions Hash Function 해시 함수는 arbitrary 메시지를 fixed size로 condense 하는 함수로, ( h = H(M) ) data integrity를 위해 사용되며 메시지에 변화가 생기면 이를 감지할 수 있다. 좋은 해시 함수란 1) 균등하게 distributed 되고 2) random 한 함수를 말하며, 이러한 해시 함수는 주로 public에 공개되어 있다. Cryptographic Hash Function 암호학적으로 해시 함수는 두 가지 중요한 특징을 갖는다. 1) One-way property: 이는 원본 데이터(preimage)에서 해시 값(image)을 찾기는 쉽지만, 주어진 해시 값에서 원래 데이터를 역으로 찾기는 어렵다는 것이다. 2) Collision-free prope..
[정보보호] PRNG(Pseudorandom Number Generator) Asymmetric Ciphers에 기반한 PRNG(Pseudorandom Number Generator) 비대칭 암호 알고리즘은 키 쌍(private key, public key)을 사용하여 데이터를 암호화 및 복호화한다. 이러한 알고리즘은 output이 키에 의존하기 때문에, 특정 input에 대해 동일한 output을 생성하지 않는다. 즉 암호화된 데이터는 외부에서 봤을 때 무작위로 보이게 된다. 이러한 무작위로 보이는 출력을 사용하여 난수를 생성하는 PRNG를 만들 수 있다. PRNGS란, deterministic 알고리즘을 사용해 pseudorandom number을 생성하는 프로그램이다. 이는 완전히 random 하지는 않지만, 많은 randomness tests를 통과할 수 있다. Asymm..
[정보보호] TLS(Transport Layer Secrecy)에서의 Forward Secrecy Forward Secrecy란 long-term private key가 향후에 노출(compromised) 되더라도 session key가 revealed 되지 않도록 하는 보안이다. TLS 1.2 이전의 보안은 1. RSA의 경우 서버가 private key를 protect 하는 동안까지만 secure하였고 forward secure 하지는 않았다. 2. DHE(Ephemeral DH), ECDHE(Elliptic Curve DH)의 경우에는 forward secure을 제공했다. 이는 임시로 생성된 Diffie - Hellman 키를 사용하다가, 이 키가 compromised 되면 해당 public key를 discard 하고 새로운 키를 생성하여 보안을 유지한다. TLS 1.3에서는 RSA-base..
[정보보호] Elliptic Curve Cryptography ECC는 타원 곡성의 특징을 기반으로 하는 public key crypto 기술(공개키, 개인키 두개 사용)로, 타원 곡선의 특성을 활용하여 작은 bit 크기의 키로도 효율적인 보안을 제공할 수 있다. 이는 비교적 최근 기술이므로 다른 암호화 기술에 비해 분석이 덜 되었지만 그럼에도 불구하고 효율성이 뛰어나다. 기본 개념 elliptic curve는 다음과 같은 식의 형태로, 위 식을 만족하는 모든 (x,y)가 집합 E(a,b)에 속한다. Finite Elliptic Curves Finite Elliptic Curves는 Zp(소수 p를 사용하여 정의된 정수 집합) 또는 GF(2^m) 상의 타원 곡선이다. ECC에서는 variable과 coefficient가 finite 한 값이어야 한다. 현재 fini..
[정보보호] ElGamal Cryptography ElGamal Cryptography는 discrete logarithm 해결의 어려움에 기반하여 finite Galois에서의 exponentiation을 쓴다. Key exchange는 Diffie-Hellman 방식으로 하고, Data encryption 과정을 추가적으로 거친다. random number k는 매번 unique 해야하고, 그러지 않은 경우 결과는 insecure 할 것이다.
[정보보호] Diffie-Hellman Key exchange Diffie-Hellman 방식은 public key distribution scheme이지, arbitrary message를 교환하는데에 사용할 수 없지만 대신 common key를 생성할 수 있다. 이 common key 값은 participant에 달려있으며, 키를 교환하는 두 participant만 값을 서로 알 수 있다. finite Galois field 내에서 exponentiation으로 생성된 암호들은 풀기 쉽지만, Diffie-hellman 방식은 discrete logarithm이 풀기 어렵다는 것에 착안하여 만들어진 키 교환 방식이기 때문에 풀기 어렵다. 이는 1 session 과정으로, 브라우저 접속 후 웹사이트 접속 시 브라우저와 서버가 통신하여 key exchange를 한다...