본문 바로가기

보안/정보보호이론

(14)
키 (Key) 1. 키 교환 (Key Exchange) - 통신을 할 때 공개키는 크므로 블록 암호를 사용한다.- 처음에는 서로 공개키와, 개인키를 갖고 있다. 2. 키의 독립성 (Key Independence) - 세션키는 동시에 열릴 수도 있고 아닐 수 도있다.- 다만 모든 세션키는 서로 독립적이어야 한다.- 유출된 세션키는 다른 유출되지 않은 세션 키의 정보를 얻기 위해 사용될 수 없어야 한다. 3. 순방향 비밀성 (Forward Secrecy) - 만약 private 키가 유출되어도 다른 세션키는 알 수 없어야 한다.- 그 이유는 기존의 주고 받은 내용을 보호하기 위해서이다.- 유출된 private 키는 유출되지 않은 세션 키의 정보를 얻기 위해 사용될 수 없어야 한다. 4. SSR(Session state r..
신원확인 방법 (Entity Authentication) 온라인에서 신원확인을 하기 위해선? 1. 신원확인 방법(Types of Identification) 1) 알고 있는 정보 : 비밀번호, 비밀 (password, secret) 2) 내가 가지고 있는 것 : 스마트 카드 (다른 곳으로 옮기기 힘든 하드웨어 토큰) 3) 나의 몸 : 지문, 홍채 (fingerprint, Iris) 2. 어떤 종류의 공격이 가능할까? 1) Impersonation - 자기가 아니면서 위장해서 공격 2) Replay attack- 프로토콜 메시지를 관측 후 캡처, 똑같은 메시지를 다시 재전송 한다 3) Interleaving attack- 프로토콜을 여러명이서 사용할 경우- 흘러다니는 메시지를 캡처해서 다른 사람에게 보냄- 동시 세션이 열렸을 때 섞어서 보내는 공격- 받는 사람은..
안전한 서명 (Security Model for Signature) 안전한 서명이 되려면? 1) Strong Unforgeability - 어떠한 공격자도 유효한 (메시지, 시그니처)의 쌍을 생성할 수 없다. 2) 만약 forgery가 성공하려면? - 이 게임은 공개키로 자신이 원하는 메시지의 전자 서명을 알 수 있다.- 이때 서명 오라클(signing oracle)을 사용하지 않고 인증이 가능한 (메시지, 시그니처) 쌍을 생성해야 한다.- 또는 높은 확률로 forgery가 성공하면 게임에서 승리 한다.- 역으로 말하면 안전함을 보여주려면 어떠한 공격도 성공하지 못함을 보여주면 된다. Blind Signature 다음과 같은 조건이 성립하면 된다. 은행을 예제로 들어 설명한다. 1) Unforgeabiligy - 이 코인은 누구나 만들 수 없다.-> 은행에서 coin을 ..
Discrete Logarithm Based Problem 0. 시작하기전에 이 문제를 이해하기 전에 알아야할 것이 있다. 문제 A(하위)를 풀 수 없으면 다른 문제 B(상위)도 풀 수 없다. -> 안전 (명제)다른 문제 B를 풀 수 있으면 문제 A를 풀 수 있다. -> 안전 (대우) 예를들어 RSA(B)를 깨는 공격자가 그 알고리즘을 이용해 Factorization문제(A)를 깨는 것을 보여주면 이 문제는 안전하다고 말할 수 있다. 어렵게 들릴지 모르겠지만 다음 내용만 이해하면된다. 어떠한 난제가 안전함을 보여주기 위해선 polynomial time reduction을 보여주면 된다.이는 한문제를 다항식 시간 안에 다른 문제로 바꾸고 그 문제의 해를 다른 문제의 해로 바꾸는 방법이나 과정을 말한다. Discrete Logarithm Based Problem이 ..
RSA (Rivest, shamir, adelman) 0. RSA 정리 위의 증명에서 사용한 오일러 법칙은 다음과 같다. 1. 수치로 계산해보는 RSA encryption 1) 문제 풀이 2) 문제풀이 계산과정 2. 중국인 나머지 정리(CRT : Chinese Remainder Theorem)을 사용한 복호화 이 결과는 mod n에서 계산하는 것 보다 mod p 와 mod q계산이 더 효율적임을 보여준다. 이를 이해할려면 중국인 나머지 정리부터 이해해야 한다. 3. RSA 공격 1) Chosen Ciphertext Attack 2) small e with the same small message and different 3) circular encryption attack 적긴 했지만...사실 이해가 안간다. 4) OAEP (optimal Asymmetri..
공개키 (Public Key) 1. 대칭키의 문제점 1) 키 분배 문제2) 서로 모르는 사이의 경우 보안 커뮤니케이션이 불가능하다.3) 키 관리 문제점 2. 공개키 암호 시스템 - x는 개인키이고 y는 공개키이다. - 누군가가 모두 공개키를 알 수 있도록 등록을 해놓는다. - 이것을 관리하는 방법은 이 카테고리 마지막 게시글에서 설명한다. - A 는 B와 모르는 사이라고 가정한다. - A는 B의 공개키를 가지고 암호화 해서 B에게 보낸다. - A는 B에게 안전하게 메시지를 보낼 수 있고 - B는 본인만 그 내용을 확인할 수 있다. 3. 일방향 함수 - 해쉬 함수와 같이 - x --> f(x) 는 쉽지만 - f(x) --> x 는 어려워야 한다. - 단 private key를 가지고 있을 경우 쉽게 f(x) --> x 가 가능해진다. ..
기출 문제 풀이 1. Z16, Z16* ? 2. p가 prime number일때 Z*p는? justify! 3. Z55*에서 7-1를 extended euclidean algorithm을 이용해서 구하라 4. 3100 mod 7은? 5. mono-alphabetic cipher에서 frequency analysis에 대해 설명하라 6. COA, KPA, CPA, CCA의 차이는? 7. Affine cipher에서 (plaintext, ciphertext) 2개의 쌍이 주어졌을 때, Known plaintext attack에 안전하지 않음을 보여라.
Hash Functions @ Hash Function @ Cryptographic Hash Functions - 암호학적으로 의미있는 해쉬함수가 되려면? - MDC (Modification Detection Code) : m || H(m) - 일단 여기선 키가 없고 에러가 있는지만 확인한다. - MAC (Message Authentication Code) : m || MACk(m)- 여기서 k는 key를 의미한다.- 키를 모르면 메시지 m에 대한 MAC값을 만들 수 없다. 알고 있을 때만 만들 수 있다.- 메세지를 누가 보냈는지 알 수 있다.(인증) @ MDC - 요구사항 1) Pre-image Resistance 2) Second Pre-image Resistance 3) Collision Resistance - MDC의 구조..