<암호학>
2008.01.29 01:11

[네기] 제 4장 - 일회용 암호

조회 수 1840 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
일회용 암호는 평문을 각 문자당 2진수 16비트 아스키코드(이유: 한글은 16비트)에 해당하는 숫자로 변환한다. 그리고 비밀키는 각 문자당 아스키코드에 해당하는 2진수로 변환한다. 이 때 2진수 비트는 한글은 16비트, 그 외는 8비트 이하로 일정하지 않다. 2진수로 변환한 평문과 비밀키를 Stream암호로 변환한 것이 일회용암호이다. 비밀키의 길이가 평문보다 작으면 비밀키를 반복해서 암호화를 하도록 프로그램을 만들었다. 복호화는 암호문에 비밀키를 배타합(XOR연산)하여 구하면 된다.


컴퓨터 자판의 아스키코드는 다음과 같다. 단, space=32

[앞으로 이것의 이름은 자료 1 입니다.]


[자료1]
     !    "   #   $   % &   '   (    )   *   +  ,    -   .   /   0   1  2   3   4   5   6  7   8   9   :   ;   <   =  
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
>   ?
62 63
@  A   B   C   D  E   F  G   H   I   J    K   L   M  N   O  P  Q   R  S   T   U  V  W  X   Y  Z   [        ]  
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
^  _
94 95
`    a    b   c      d    e     f    g     h     i      j     k     l     m    n     o    p    q    r      s    t      u
96  97  98  99  100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
  v     w   x     y     z     {    |      }    ~      
118 119 120 121 122 123 124 125 126

[/1자료]


-주의

[1자료] 는 시작

[/1자료] 는 끝 입니다.


일회용(One-time pad) 암호


평문(한글 가능)


I'm Negi Point : 12830


암호키

I'm Negi


2진수 암호키(아스키코드를 2진수로 변환하여 이은것)

100100110011111011011000001001110110010111001111101001 (54비트)
I => 73(10진수) => 1001001 (7비트)
' => 39(10진수) => 100111 (6비트)
m => 109(10진수) => 1101101 (7비트)
  => 32(10진수) => 100000 (6비트)
N => 78(10진수) => 1001110 (7비트)
e => 101(10진수) => 1100101 (7비트)
g => 103(10진수) => 1100111 (7비트)
i => 105(10진수) => 1101001 (7비트)

2진수 평문(아스키코드를 16비트 2진수로 변환하여 이은것)
0000000001001001000000000010011100000000011011010000000000100000000000000100111000000000011001010000000001100111000000000110100100000000001000000000000001010000000000000110111100000000011010010000000001101110000000000111010000000000001000000000000000111010000000000010000000000000001100010000000000110010000000000011100000000000001100110000000000110000 (352비트)

평문을 암호키의 길이 만큼씩 나누어 암호키를 더한 2진수 암호문
평  문 = 000000000100100100000000001001110000000001101101000000
암호키 = 100100110011111011011000001001110110010111001111101001
암호문 = 100100110111011111011000000000000110010110100010101001

평  문 = 000010000000000000010011100000000001100101000000000110
암호키 = 100100110011111011011000001001110110010111001111101001
암호문 = 100110110011111011001011101001110111110010001111101111

평  문 = 011100000000011010010000000000100000000000000101000000
암호키 = 100100110011111011011000001001110110010111001111101001
암호문 = 111000110011100001001000001001010110010111001010101001

평  문 = 000000011011110000000001101001000000000110111000000000
암호키 = 100100110011111011011000001001110110010111001111101001
암호문 = 100100101000001011011001100000110110010001110111101001

평  문 = 011101000000000000100000000000000011101000000000001000
암호키 = 100100110011111011011000001001110110010111001111101001
암호문 = 111001110011111011111000001001110101111111001111100001

평  문 = 000000000000110001000000000011001000000000001110000000
암호키 = 100100110011111011011000001001110110010111001111101001
암호문 = 100100110011001010011000001010111110010111000001101001

평  문 = 0000001100110000000000110000
암호키 = 1001001100111110110110000010
암호문 = 1001000000001110110110110010

2진수 암호문(2진수 평문에 2진수 암호키를 더한 것)
000010010101100101110010101010011001001010000010110110011000001101100100011101111010011110011100111110111110000010011101011111110011111000011001001100110010100110000010101111100101110000011010011001000000001110110110110010

16진수 암호문(2진수 암호문을 16진수로 변환한 것)
9377d80065a2a66cfb2e9df23efe338482565caa64a0b660d91de9e73ef8275fcf864cca60af97069900edb2

왼쪽칸 아래에 있는 전체 16진수 암호문

9377d80065a2a66cfb2e9df23efe338482565caa64a0b660d91de9e73ef8275fcf864cca60af97069900edb2

복호키

I'm Negi

2진수 복호키(아스키코드를 2진수로 변환하여 이은것)
100100110011111011011000001001110110010111001111101001 (54비트)
I => 73(10진수) => 1001001 (7비트)
' => 39(10진수) => 100111 (6비트)
m => 109(10진수) => 1101101 (7비트)
  => 32(10진수) => 100000 (6비트)
N => 78(10진수) => 1001110 (7비트)
e => 101(10진수) => 1100101 (7비트)
g => 103(10진수) => 1100111 (7비트)
i => 105(10진수) => 1101001 (7비트)


2진수 암호문(16진수를 2진수로 변환하여 이은것)

1001001101110111110110000000000001100101101000101010011001101100111110110010111010011101111100100011111011111110001100111000010010000010010101100101110010101010011001001010000010110110011000001101100100011101111010011110011100111110111110000010011101011111110011111000011001001100110010100110000010101111100101110000011010011001000000001110110110110010 (352비트)

암호문을 복호키의 길이 만큼씩 나누어 복호키를 더한 2진수 복호문
암호문 = 111000110011100001001000001001010110010111001010101001
복호키 = 100100110011111011011000001001110110010111001111101001
복호문 = 011100000000011010010000000000100000000000000101000000

암호문 = 100100101000001011011001100000110110010001110111101001
복호키 = 100100110011111011011000001001110110010111001111101001
복호문 = 000000011011110000000001101001000000000110111000000000

암호문 = 111001110011111011111000001001110101111111001111100001
복호키 = 100100110011111011011000001001110110010111001111101001
복호문 = 011101000000000000100000000000000011101000000000001000

암호문 = 100100110011001010011000001010111110010111000001101001
복호키 = 100100110011111011011000001001110110010111001111101001
복호문 = 000000000000110001000000000011001000000000001110000000

암호문 = 1001000000001110110110110010
복호키 = 1001001100111110110110000010
복호문 = 0000001100110000000000110000

2진수 복호문(2진수 암호문에 2진수 복호키를 더한 것)
0000000001001001000000000010011100000000011011010000000000100000000000000100111000000000011001010000000001100111000000000110100100000000001000000000000001010000000000000110111100000000011010010000000001101110000000000111010000000000001000000000000000111010000000000010000000000000001100010000000000110010000000000011100000000000001100110000000000110000

복호문(2진수 복호문을 아스키코드로 복호화한 것)


I'm Negi Point : 12830


-뭐.. 공격으로 할떈 I'm Negi 이것은 해독이 안됩니다. 하지만 이것은 암호를 주고 그 암호를
복호키를 사용하여 한 것이기 떄문입니다. 복호키가 다를시
I'm耑䭠噬爅匙ᕪ앜ꖛ頙殑戊䂄쭪꼙黟狞

이렇게 뜨고 암호가 제대로 안나옵니다-


-이 암호에 관하여 질문은 받지 않겠습니다.








List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 필독! 분류 정리는 곧 정리하도록.. 합니다. YuRi 2009.08.13 11030
공지 필독! 추리상식 정리 거의 다 되었습니다 (수정.) 2 YuRi 2009.08.02 10306
83 <문학> 추리 소설의 원칙 -③ 초보자들이 소설쓸때 알아야할 5가지 YuRi 2009.08.05 1611
82 <문학> 추리 소설의 원칙 -② 반 다인의 소설작법 20칙. YuRi 2009.08.05 1782
81 <문학> 추리 소설의 원칙 -① 녹스의 추리소설작법 10계 YuRi 2009.08.05 1808
80 <암호학> 키보드와 키패드 다잉메시지를 풀어보자! file Kudo L 2009.08.04 1887
79 <용어> 코난을 분석하는 방법은... 1 동방탐정 2009.07.31 1698
78 <인체학> [사이코 패스] Negi 2009.02.07 2077
77 <암호학> 암호의 역사 スナイジン 2008.02.01 2050
76 <암호학> [네기] 제 6장 타원곡선 암호 Negi 2008.02.01 2144
75 <암호학> 암호학 신용카드 속의 암호 Fowl 2008.01.30 1865
74 <암호학> 암호의 역사 - RSA 암호체계 이론 - 키암호 기법 Fowl 2008.01.29 2230
73 <암호학> 암호학 강좌 한글을 암호화 하는 경우 Fowl 2008.01.29 1942
72 <암호학> [네기] 제 5장 - RSA(공개키)암호 Negi 2008.01.29 2098
» <암호학> [네기] 제 4장 - 일회용 암호 Negi 2008.01.29 1840
70 <암호학> 암호학강좌 고전암호 -3 폴리비우스 암호 Fowl 2008.01.28 3094
69 <암호학> 암호학강좌 001 들어가는말 002 고전 암호이론 Fowl 2008.01.24 2071
68 <암호학> [네기] 제 3장 DES 암호 1 Negi 2008.01.23 2080
67 <암호학> [네기] 제 2장 - 단문자암호 Negi 2008.01.23 1885
66 <암호학> [네기] 제 1장 - Hill 암호 Negi 2008.01.23 2068
65 <총기&폭탄> [펌] 총알의 파괴력과 회전력의 관계는? (네이버 지식 iN) 빙가 2008.01.22 2052
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7

Information

  • 웹서버상태 정상 llllllllllll 1Gbps Line
  • 코난21닷컴 운영 일째,
    K-COM이후 일째 입니다.
    오늘:
    41
    어제:
    51
    전체:
    1,336,880


    2001년부터 18년째 운영되고 있습니다.
    Copyright© 2006-2016 CONAN21.COM All rights reserved.