AES
암호화의 기본은 덧셈트릭으로 비밀번호 1234가 있다면 여기에 키 456을 더한 값을 서로 공개된 네트워크에서 교환하는 것이다. 수신자는 456이 원래 값을 얻기 위해 필요한 키임을 알면 된다.
16자 블록을 128비트 키를 이용해 10차례 혼합계산을 한다. 혼합계산이란 키와 데이터를 조각 내어 다양한 방법으로 조합하는 것이다.
공개키교환
디피헬먼 공개키 교환으로도 알려져 있다. 컴퓨터는 이산누승법이 가능하나 이산로그가 불가능하다. 이처럼 조합된 값이 분해가 불가능하다면 암호화에 적합하다. 거듭제곱과 시계연산을 사용한다. 시계연산이란 진수계산과 동일하다. 시계는 12개를 한 주기로 가지므로 13은 1을 나타낸다. 두 컴퓨터가 서로 개인키를 가지고 있다고 하자.(5와 7) 그리고 시계단위와 기저수(x^n에서 x)를 공개한다.(시계단위와 기저수가 11과 2라고 하자) 두 컴퓨터는 2^5, 2^7 값을 11로 나눈 나머지를 서로 교환하며 교환한 값을 기저수로 사용하여 다시 자신의 개인키를 거듭제곱한다. 그 후 그 값을 다시 11로 나눈 나머지가 서로 같아지게 된다. 실제로는 수백만자리의 시계크기와 매우 큰 개인 수를 제공하며 시계 크기는 소수여야 한다. 기저수는 시계크기의 원시근어야 하는데 그래야만 시계의 모든 자리수가 나올 수 있다.
'알고리즘' 카테고리의 다른 글
몬테카를로 기법에 대해서 간단히 알아보기 (0) | 2016.04.07 |
---|---|
문자열 탐색 알고리즘들 살펴보기 (0) | 2016.02.07 |
깊이우선탐색과 위상정렬에 대해 알아보기 (0) | 2016.01.24 |
그래프 자료구조에 대해서 간단히 알아보기 (0) | 2016.01.22 |
계층구조(트리)에 대해 알아보기 (0) | 2016.01.20 |