2020. 5. 14.

[암호학] 공개키 기본 mod 암호화 실습 정리


mod 7

공개키
4
개인키
2
원문
6

6    *  4     mod 7 = 3     
원문 * 공개키 mod 7 = 암호문

3        *   2        mod 7 = 6      
암호문 *  개인키  mod 7 = 원문

조건 1. 원문도 mod 나누는 숫자보다 작아야한다.
조건 2. 공개키와 개인키를 곱해서 mod 숫자로 나눈것이 1

mod 11

공개키
4
개인키
3
원문
10

10    *  4     mod 11 = 7       
원문 * 공개키 mod 11 = 암호문

7        *   3        mod 11 = 10       
암호문 *  개인키  mod 11 = 원문

*단어 암호화

역수가 1 4 17 공개키와 개인키로 사용한다.

아무거나 넣어서 테스트해본다.

mod 67
공개키
4
개인키
17
원문
40

40    *    4    mod 67 = 26
원문  * 공개키 mod 67 = 암호문

26      *    17      mod 67 = 40
암호문 *  개인키  mod 67 = 원문

# 본격적인 단어 알고리즘을 시작한다.

아스키 코드처럼 숫자를 치환하여 apple 위에 알고리즘으로 암호화한다.
a-z  = 0-25
나머지는 따로 지정해주어야한다.

아래표를 참조한다.


이대로 apple 치환하면
a
p
p
l
e
0
15
15
11
4

0 15 15 11 4
mod 이용하여 위에 숫자를 암호화한다. 공개키는 4 .

0    *    4    mod 67 = 0
15   *    4    mod 67 = 60
15   *    4    mod 67 = 60
11   *    4    mod 67 = 44
4   *    4    mod 67 = 16

암호화된 숫자다.
0  60 60 44 16

복호화 해본다. 비밀키는 17이다.

0    *    17   mod 67 = 0
60   *    17    mod 67 = 15
60   *    17    mod 67 = 15
44   *    17    mod 67 = 11
16   *    17    mod 67 = 4

복호화된 숫자다.
0 15 15 11 4

숫자를 알파벳으로 치환하면
apple 나온다.

0 넣으면 0 나오므로 0으로 알파벳을 치환하면 안된다.

알파벳은 사실 제일좋은건 29 mod 만드는게 좋다.

mod 29
개인키 5
공개키 6



치환
b h e  + i   q   r   q   l  m  k   y h  m c  y  m e
2 8 5 28 9 17 18 17 12 13 11 25 8 13 3 25 13 5

복호화

2 * 6 mod 29 = 12
8 * 6 mod 29 = 19
5 * 6 mod 29 = 1
28 * 6 mod 29 = 23
9 * 6 mod 29 = 25
17 * 6 mod 29 = 15
18 * 6 mod 29 = 21
17 * 6 mod 29 = 15
12 * 6 mod 29 = 14
13 * 6 mod 29 = 20
11 * 6 mod 29 = 8
25 * 6 mod 29 = 5
8 * 6 mod 29 = 19
13 * 6 mod 29 = 20
3 * 6 mod 29 = 18
25 * 6 mod 29 = 5
13 * 6 mod 29 = 20
5 * 6 mod 29 = 1



12 19 1 23 25 15 21 15 14 20 8 5 19 20 18 5 20 1
 l   s  a  w  y  o   u   o   n   t h e   s  t   r  e  t   a

i saw you on the street

암호화는 오타가 있는게 정상이다.

댓글 없음:

댓글 쓰기