<암호학>
2008.02.01 08:34

[네기] 제 6장 타원곡선 암호

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

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
F 상의 타원곡선(elliptic curve)이란 y2 + a1*x*y + a2*y = x3 + a3*x2 + a4*x + a5, 단, a1,a2,a3,a4,a5 ∈ F 형태의 방정식으로 주어진 곡선을 말한다.

(I) 체 F의 표수(characteristic)가 2와 3이 아닌 경우


체의 표수(characteristic) p 가 2와 3이 아닐 때는, 위 타원곡선을 적당히 이동을 하면 y2 = x3 + a*x + b 형태로 나온다. 이 때 암호론에서 사용하는 곡선은 변형된 타원곡선이 smooth인 경우, 즉 우변의 방정식이 중근(4*a3+27*b2 ≡0(mod p) 이면 중근존재)을 갖지 않을 경우에, 변형된 타원곡선 상의 점과 무한 원점(0)(항등원)으로 구성된 점들 사이에 적당한 덧셈연산을 정의하면 가환군이 된다는 것을 이용한 암호방법이다. 곡선상의 점 P=(x1, y1), Q=(x2, y2)의 덧셈연산은 아래 그림과 같이 두 점 P,Q를 지나는 직선과 타원곡선과 만나는 제3의 교점(x,y)을 x축에 관해 대칭한 점(x, -y)을 P+Q=(x3, y3) 로 정의한다. 계산을 해보면 아래(1)(2)와 같다. 제3의 교점이 없으면, 즉 직선이 y축과 평행하면 (3)과 같이 정의한다.
단, P + Q = (x1, y1) + (x2, y2) = (x3, y3)


(1) (x1 ≠x2)인 경우 (지나는 직선이 y축에 평행하지 않음)


x3 = (y2-y1 / x2-x1)2 - x1-x2 ; y3 = (y2-y1 / x2-x1)(x1-x3) - y1.
(2) (x1 = x2 이고 y1 = y2 ≠0)인 경우 (지나는 직선이 접선)
x3 = (3x12+a / 2y1)2 - x1-x2 ; y3 = (3x12+a / 2y1)(x1-x3) - y1.
(3) (x1 = x2 이고 y1 = -y2)인 경우 (지나는 직선이 y축에 평행)
P + Q = 0(무한원점). 즉, Q = -(x1, y1) = (x1, -y1).
P + 0(무한원점) = P.
(II) 체 F의 표수(characteristic)가 2 경우

이 경우의 체의 원소수는 2p (단 p 는 양의 정수)인 유한체가 되므로, 타원곡선은 다음 중 어느 하나와 동형이 된다.
♡ y2 + y = x3.
♡ y2 + xy = x3 + x.
♡ y2 + y = x3 + x + 1.
여기서는 간단히 계산하기 위해 y2 + y = x3 을 사용하여 덧셈연산을 한 것을 나열한다.
(1) (x1 ≠x2)인 경우 (지나는 직선이 y축에 평행하지 않음)


x3 = (y2+y1 / x2+x1)2 + x1+x2 ; y3 = (y2+y1 / x2+x1)(x1+x3) + y1 + 1.
(2) (x1 = x2 이고 y1 = y2)인 경우
x3 = x14 ; y3 = y14 + 1.
(III) 체 F의 표수(characteristic)가 3인 경우

500 이하의 다음 소수를 이용하여 연습해보기 바란다. 아래 연습에서 수의 입력 방법에 따라 이상한 결과가 나오면 왜 그런지 이유를 생각해 볼 것.

5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103,107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499,

♡ 타원곡선(Elliptic curve)상의 점 찾기
     타원곡선 y2 = x3 + ax + b (mod p)의 연습입니다. p>3이고 4a3 + 27b2 ≡0(mod p)(중근)이 아닌 a,b 쌍을 대입하세요.  

97 소수(p>3)
5  x의 계수(a)
11   상수항(b)

     y2 = x3 + ax + b (mod p)를 만족하는 (항등원인 무한원점 (항등,원) 포함)개의 점들이 가환군을 이룸
     단, 점의 수가 300개가 넘으면 필자가 힘듬이로.....
     모든 원소를 찾은 것이 아님.

1(0,37),2(0,60),3(3,21),4(3,76),5(4,17),6(4,80),7(5,8),8(5,89),9(7,1),10(7,96),11(9,3),12(9,94),13(10,24),14(10,73),15(12,21),16(12,76),17(14,20),18(14,77),19(15,39),20(15,58),21(16,4),22(16,93),23(17,16),24(17,81),25(18,4),26(18,93),27(21,29),28(21,68),29(22,14),30(22,83),31(25,12),32(25,85),33(29,2),34(29,95),35(30,1),36(30,96),37(31,9),38(31,88),39(34,43),40(34,54),41(36,44),42(36,53),43(39,8),44(39,89),45(40,26),46(40,71),47(41,48),48(41,49),49(43,22),50(43,75),51(47,45),52(47,52),53(49,27),54(49,70),55(51,30),56(51,67),57(52,36),58(52,61),59(53,8),60(53,89),61(57,5),62(57,92),63(60,1),64(60,96),65(63,4),66(63,93),67(68,42),68(68,55),69(69,36),70(69,61),71(72,13),72(72,84),73(73,36),74(73,61),75(74,40),76(74,57),77(76,32),78(76,65),79(79,43),80(79,54),81(81,43),82(81,54),83(82,21),84(82,76),85(85,39),86(85,58),87(93,11),88(93,86),89(94,39),90(94,58),

-힘들다 힘들어-

타원곡선암호에서 좌표 더하기와 위수 구하기

위의 결과에서 두 개의 좌표를 골라 x, y좌표를 따로 따로 입력하세요.
0, 37       (x1좌표, y1좌표)
85, 58     (x2좌표, y2좌표)


위 좌표의 덧셈은 (0,37) + (85,58) = (9,3) 이고 좌표(0,37) 의 법 에 관한 위수(order)는 91 입니다.



계산 힘들어...

♡ 타원곡선암호에서 암호화하기
     다음은 타원곡선을 이용한 ElGamal암호계입니다.

암호 알고리즘은 다음과 같습니다.

1. 수신자와 송신자는 타원곡선상 점을 누구나 구할 수 있도록 p, a, b를 공개합니다.
2. 받는 사람은 비밀키 k(정수)와 타원곡선상의 한 점 G를 선정하여 (비밀키k)*(공개키G) = kG를 계산하여 kG를 공개키로 공개합니다.
3. 보내는 사람은 평문M(타원곡선상의 점)과 암호화시 사용할 임의수 c(정수)를 선정합니다.
    그리고, c와 공개키 kG를 이용하여 암호문 (C1, C2), 단,
      C1 = (임의수c)*(공개키G)= cG
      C2 = [(임의수c)*(비밀키k)*(공개키G)] + (평문M) = ckG + M
     를 수신자에게 보냅니다.
4. 복호화는 암호문(C1,C2)를 받아 아래와 같이
      C2 - (비밀키k)*C1 = [ckG + M] - k(cG) = M(평문)
     으로 계산하면 평문을 얻을 수 있습니다.

     받는 사람의
     비밀키 k (정수) = 10
     타원곡선상의 점에서 한 개의 좌표(공개키G) = 12
     (x1좌표, y1좌표)(공개키G) = 76

     보내는 사람의 암호화시 사용할  = 21
     임의수 c (정수) = 49
     (x2좌표, y2좌표)(평문M) = 27


아래는 받는 사람의 공개키인 kG = (비밀키k)*(공개키G)의 결과입니다.
    
  10(12,76) = (76,32)    

아래는 암호문C1 =  cG = (임의수c)*(공개키G)의 좌표입니다.

  21(12,76) = (5,8)    
    
아래는 암호문C2 = ckG + M = [(임의수c)*(비밀키k)*(공개키G)] + (평문M)의 좌표

  [21*10*(12,76)] + (49,27) = (74,57) + (49,27) = (22,83)      

복호화는 암호문(C1,C2)를 받아 아래와 같이 C2 - kC1 = [ckG + M] - kcG = (평문M) 이 됨

(22,83) - 10(5,8) = (49,27)



-왠만해선 이거 안씁니다.-
    



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
» <암호학> [네기] 제 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
71 <암호학> [네기] 제 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이후 일째 입니다.
    오늘:
    40
    어제:
    51
    전체:
    1,336,879


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