본문 바로가기

Computer Science/정보보호

암호화2

비대칭 암호화 방식

암호화 키를 교환하는 것이 문제이기 때문이기 때문에 구멍이 생겼습니다.

 

 

비대칭 키에 대한 이해

수학 문제를 풀 때 어려움을 이용한 것입니다.

디피 헬만은 이산로그 풀이의 어려움을 이용해서 만들었습니다.

 

철수, 영희는 공개키 3을 압니다.

자기만 알고 있는 키공개된 키제곱으로 넣습니다.

 

  • 영희도 7이란 숫자를  243^7을 합니다.
  • (3^7)을 철수에게 보냅니다.
  • 500... 이 서로 알고있는 대칭 암호화 키로 씁니다.

이산 로그를 써서 지수를 알아내기 어려운 방식을 이용한 것입니다.

 

 

비대칭 암호화 방식 - RSA

소수를 이용했을 때 큰 수의 소인 분해할 때 어려움을 이용합니다.

  • 중요 정보를 두 개의 소수로 표현한 후 그것의 곱을 힌트와 함께 전송해 암호로 사용할 수 있다는 아이디어

RSA 예제

 

 

  • 만약 영희가 자신의 N을 p=17,159와 q=10,247의 곱인 N=17,159*10,247=175,828,273으로 정했다면
  • 영희는 자신의 N 값을 모든 사람들에게 공개 이때의 N 값은 영희의 공개키가 된다.
  • 영희에게 메시지를 보내 고 싶은 사람은 N 값을 찾아 어떤 알고리즘을 통해 암호화를 한 후 
  • 영희에게 보냄. 사설 키는 p와 q를 통해 계산됨

 

RSA 알고리즘

암호화 키 

  • e, n

복호화 키

  • d, n

 

  1. 두 개의 큰 소수 p와 q 선정 , n=p*q
  2. 공개키 e는 pi(n)=(p-1)(q-1)과 서로소의 관계가 되게 임의 e 선정
  3. e*d mod pi(n)=1의 관계에 있는 개인키 d 구함
  4.  (e, n)을 공개키로 공개 , d, n을 개인키로 보관

평문 M 일 때 , 암호화 과정 E(M)=M e (mod n) = C
암호문 C 일 때 , 복호화 과정 : D(C)=C d (mod n) = M

 

RSA 숫자로 예시

계산되는 과정을 보기 위해 3, 11을 사용합시다.

  • n = 33이 됩니다.
  • e값으로 서로소인 7 값을 정합니다.
  • 개인키 d를 정하기 위해서 7 *d mode 20 하는 d인 3이 됩니다.

 

비대칭 키를 이용한 기밀성 확보

철수가 영희에게 안전하게 정보를 전달하기 위해 영희의 공개키를 사용합니다.

영희의 사설키로만 암호를 풀 수 있습니다.

수신자의 사설키로만 암호화가 가능합니다.

 

  • 철수와 영희가 어느 날 철물점에 가서 자물쇠를 하나 샀다고 하자. 
  • 둘은 나중에 중요한 물건을 주고받을 때 이 자물쇠를 쓰기로 하고 , 자물쇠 부분은 철수가 갖고 열쇠는 영희가 갖는다. 
  • 어느 날 철수가 중요한 물건을 영희에게 보낼 일이 생겼다. 
  • 그 물건은 꼭 영희만 받아야 하기 때문에 철수는 둘이 같이 산 자물쇠를 쓰기로 했다. 
  • 튼튼한 상자를 사서 함께 산 자물쇠로 잠근 후 영희에게 소포로 보낸다. 
  • 그러면 소포로 보내진 상자는 열쇠를 가진 영희만 열어볼 수 있을 것이다. 
  • 여기서 자물쇠는 영희의 공개키가 되고 열쇠는 영희의 사설 키가 된다

 

비대칭 키를 이용한 부인방지 확보

철수가 철수의 사설키로 만들고 영희한테 보내면

영희는 철수의 공개키로 풀 수 있습니다.

이건 철수만 만들 수 있습니다.

  • 철수와 영희가 달리기 대회에서 우승해 받은 메달을 반으로 잘라 나눠가졌다고 하자. 
  • 세월이 흘러 철수는 자식에게 메달의 반을 물려주었다. 
  • 그리고 영희가 어떤 아이가 목에 반쪽짜리 메달을 메고 다니는 것을 보고 , 너 철수의 딸 맞지라고 했을 때 메달의 반을 가지고 있던 그 아이가 “난 철수의 딸이 아냐”라고할 수 없을 것이다.
  • 철수가 가지고 있던 메달의 반이 철수의 사설 키가 되고 , 영희가 가지고 있던 메달의 반이 철수의 공개키가 된다

 

해쉬

해쉬 결과를 가지고 거꾸로 추측이 가능하지 않습니다.

(거꾸로는 안된다는 뜻입니다.)

 

 

해쉬 - MD5

 

해시 - 데이터베이스에서

데이터 베이스에서도 많이 쓰입니다.

사람의 id를 해쉬 함수에 넣으면 본인의 정보가 어디 담겨있는지 알아내는데 좋습니다.

탐색하면 오래 걸리기 때문입니다.

 

보안에서는 "무결성"을 확인하기 위한 알고리즘으로 사용됩니다.

해쉬 결과를 같이 보내서 수신자는 받은 것을 해쉬를 돌려서 이상한 게 왔는지 확인합니다.

 

해시 알고리즘의 종류 - MD5, SHA, 

SHA 알고리즘은 5개 블록으로 나눠서 각자 연산을 해서 5개의 블록으로 만듭니다.

 

요약

비대칭 암호화 방식

  • 키 교환 : 디피와 헬만이 비대칭 암호화 방식을 통한 키 교환 아이디어 고안
  • RSA: 충분히 큰 두 소수의 곱을 보고 두 소수를 찾기 어려운 점을 이용한다. 1977 년 8 월에 공개. RSA에서 쓰이는 소수는 250 자리
  • 기밀성 확보를 위한 암호화 : 수신자의 공개키로 암호화하여 송신한다
  • 부인방지 확보를 위한 암호화 : 발신자의 사설키로 암호화하여 송신한다


해시

  • 해시의 특성
    - 입력되는 평문의 길이가 달라도 결괏값의 길이는 같다
    - 입력되는 평문의 내용이 조금만 바뀌어도 해시값이 완전히 달라진다
  • 보안에서 해시를 사용하는 목적 : 무결성 확보
  • MD5(Message Digest function 95): RSA와 함께 공개키 기반 구조 (Public KeyInfrastructure)를 만들기 위해 개발되었다. 32 비트 컴퓨터에 최적화되어 있다
  • SHA(Secure Hash Algorithm): 160 비트 값을 생성하는 해시 함수다. 데이터를 512 비트의 블록으로 입력한다

 

728x90