This is page i Printer: Opaque this 계산과법연산, 그리고비밀통신을강조한 기초정수론 William Stein 강병련역 August 24, 2017

Size: px
Start display at page:

Download "This is page i Printer: Opaque this 계산과법연산, 그리고비밀통신을강조한 기초정수론 William Stein 강병련역 August 24, 2017"

Transcription

1 This is age i Printer: Oaque this 계산과법연산, 그리고비밀통신을강조한 기초정수론 William Stein 강병련역 August 24, 207

2 Contents This is age i Printer: Oaque this 서문 역자서문 iii v 소수. 소인수분해 소수들의열 Exercises 법 n 정수들의집합 2 2. 법 n 합동 중국인의나머지정리 역원과아주큰거듭제곱의빠른계산법 소수테스트 (Z/Z) 의구조 Exercises 공개키암호 불놀이 Diffie-Hellman 의열쇠교환 RSA 암호 RSA 공격하기 Exercises

3 ii Contents 4 이차상호법칙 이차상호법칙 Euler의기준 이차상호법칙의첫번째증명 가우스합을이용한이차상호법칙의증명 제곱근찾기 Exercises 연분수 정의 유한연분수 무한연분수 e의연분수 이차무리수 유리수인식하기 두제곱수의합 Exercises 타원곡선 정의 타원곡선의군구조 타원곡선을이용한정수의인수분해 타원곡선암호 유리수위에서의타원곡선 Exercises Answers and Hints 49 References 55

4 서문 This is age iii Printer: Oaque this 이책은소수와합동, 비밀통신, 그리고타원곡선에관한내용을아주치밀하게엮은책이다. 이책은저자가하버드, 캘리포니아대학샌디에고캠퍼스, 그리고워싱톤대학등에서학부학생들을가르치는과정에서만들어졌다. 체계적인정수론은, 유클리드가소수가무한히많다는것과모든양의정수는소수들의곱으로유일하게인수분해할수있다는산술의기본정리를증명한때인, 약 300B.C. 년경에시작되었다. 약천년이지나서 ( 약 972A.D. 경에 ) 아랍의수학자들이어떤자연수 n 이세변이모두자연수인직각삼각형의면적으로나타날수있는지를묻는합동수문제를생각하였다. 그런후또한번의천년의세월이지나 976 년에 Diffi 와 Hellman 이공용채널을이용하여두사람이사전에약속한비밀도없이비밀통신을할수있는공개키암호 (ublic-key crytosystem) 를처음으로소개하였다. 이것과또연이어개발된여러공개키암호들은디지털통신의세계를혁명적으로변화시켰다. 980 년대와 990 년대에는타원곡선이론이, 합동식, 소수판정, 공개키암호생성및공격등의연구에새로운통찰력을제시하고또 Andrew Wiles 의 Fermat 의마지막정리의해결과정에서중심적인역할을함으로써, 정수론에아주큰변화를가져왔다. 오늘날순수와응용정수론은동시에넓고깊은이론들의아주흥미로운복합체로서, 새로운알고리듬과구체적인계산으로부터끊임없이정보를얻으면서발전하고있다. 합동수문제가활발한연구로해결될가능성이아주크며, 소수의구조에대한우리의이해도한층더깊어졌다. 이연구들에대한우리의도전덕에비밀리통신하는우리의능력도한층개선되었다. 이책의목표는독자들을이런세상에좀더가깝게데려가는것이다.

5 iv 서문 독자들은이책의모든연습문제에꼭도전해보기바란다. 다는아니지만일부문제들의해답은이책의뒷부분에있으므로답도꼭확인해보기바란다. 또이책의많은예들은공짜로모두에게공개되어있으나아주강력한수학계산소프트웨어인 Sage(htt:// 를이용하여계산을수행하였다. 독자들은이예들을모두실행해보고비슷한예들로실험을반드시더해보길부탁한다. 사전지식. 독자들은수학적증명을읽고쓰는법을알아야하고또군, 환, 체의기본개념을알아야만한다. 따라서이책은학부학생들을위한책이지만, 보통의기초정수론의필요조건보다는더많은것을필요로하는책이다. 표현과관례. 자연수들의집합은 N = {, 2, 3,...} 으로, 정수들의집합, 유리수들의집합, 실수들의집합, 복소수들의집합도 Z, Q, R, 그리고 C 와같이표준기호를사용한다. 이책에서는기초정리 (roosition), 정리 (theorem), 보조정리 (lemma), 그리고따름정리 (corollary) 를다음과같이사용한다. 보통기초정리는덜중요하거나덜근본적인주장들에사용하고, 정리는아이디어들의결합체로서얻은주장들에, 보조정리는뒤에나올정리나기초정리에이용되는주장에, 따름정리는정리와기초정리, 그리고보조정리로부터쉽게얻어지는결과들에사용한다. 좀어려울수있는문제는 (*) 로표시한다. 감사글저자는 Brian Conrad, Carl Pomerance, 그리고 Ken Ribet 교수님께책의많은부분을명확히해준제안들에감사한다. Baurzhan Bektemirov, Lawrence Cabusora, 그리고 Keith Conrad 는이책의원고를읽어주고많은지적을해주었고, Carl Witty 는특히처음두단원을아주자세하게지적해주었다. Frank Calegari 은하버드에서 Math 24 과정을가르칠때이원고를사용해주어그와그의학생들로부터피드백을많이받을수있었다. Noam Elkies 는 Exercise 4.6 를제안하였다. Seth Kleinerman 은수업과제로절 5.4 을작성하였다. Hendrik Lenstra 는그의인수분해알고리듬을구현할때도움을주었다. Michael Abshoff, Sabmit Dasguta, David Joyner, Arthur Patterson, George Stehanides, Kevin Stern, Eve Thomson, Ting- You Wang, 그리고 Heidi Williams 는여러잘못을수정해주었다. 저자는또한 Henry Cohn 와 David Savitt 와의토론으로부터많은도움을받았다. 저자는이책을준비하기위하여 Sage[44], emacs, 그리고 L A TEX 을이용하였다.

6 역자서문 This is age v Printer: Oaque this 몇년전이책을본순간우리학생들에게정수론을가르칠때여기에소개된 Sage 를이용하는정수론강의를하고싶다는생각을하였다. 유감스럽게도최근몇년간은정수론을강의하지못하였고, 물론더중요한것은역자가직접 Sage 를포함하여강의를할때어떤결과가나타날런지를검증해볼충분한시간을가질수없었다. 역자의능력을생각하여이제일의중요도를바꾸니새로운강의를시도해볼자신이생겼다. 그첫번째시도로이책을번역하여정수론과암호론, 대수학특강을강의할때참고도서로삼으려고한다. 이번역이나와우리학생들에게도움이되길바란다. 이책의번역은다음과같이시작되었다. 역자가현재집필예정인기초정수론책에이책의 Sage 코드를이용할수있는지에대한저자의뜻을알기위해연락을하였고저자는흔쾌히허락하였다. 독립적으로이책이한국어로번역되는것을원한다면역자가할수있다고했고, 저자도아주좋다고하였다. 이에나의책에이책의 Sage 코드를소개하는것보다먼저저자의저서의내용을그의이름으로먼저소개하는것이옳다고생각하던차에충남대학교 206 년강의교재개발을계기로번역을시작하였다. 아마역자가실제강의를할때는다시우리학생들에맞는내용으로편역되어있지않을까한다. 이책은다른기초정수론책보다는속도감있게진행된다. 대수학에서다루는군, 환, 체등의용어들을소개는하지만, 증명에서대수학의성질을사용하는경우는극히드물다 (3 단원까지는전혀없음 ). 학부정수론교재로, 혹은암호론, 대수학의계산가능한영역에서좋은참고도서가되리라믿고번역하였다.

7 vi 역자서문 번역서가도움이되는모든학생들이좀더편하게부담없이참고할수있도록책으로출간하기보다는저자의홈페이지에번역본을올리게되었다. 일부학생들에게라도이번역서가도움이된다면역자는굉장히행복할것같다. 비록저자의홈페이지에온라인으로올리긴했지만, 연습문제의번역을이책을읽는각학생들의몫으로남긴것을제외하고는, 언제라도출판가능한완성된번역임을밝힌다. 한글번역본에대한의견은 로보내주기바란다. 연구년덕분에이책의번역에수개월의시간을집중할수있었다. 충남대에감사한다. 207 년 월 2 일 마지막수정 : 207 년 8 월 24 일

8 소수 (Prime Numbers) This is age Printer: Oaque this 00 = 으로쓸수있는것처럼모든양의정수는소수들의곱셈으로유일하게표현할수있다. 익숙한이사실의증명은그렇게쉽지만은않다. 심지어더놀라운사실은어떤 000 자리수의경우에는소수들의곱으로표현하는방법을찾는것조차도현재의기술로는불가능해보이는데, 그런데이기술이인터넷에서물건을사는수백만의사람들에의해서매일사용되고있다는것이다. 소수들로모든정수들을표현할수있으므로소수들이얼마나많이또어떻게정수들사이에분포하는지궁금해지는것은아주자연스러운호기심이아닐까? There are two facts about the distribution of rime numbers. The first is that, [they are] the most arbitrary and ornery objects studied by mathematicians: they grow like weeds among the natural numbers, seeming to obey no other law than that of chance, and nobody can redict where the next one will srout. The second fact is even more astonishing, for it states just the oosite: that the rime numbers exhibit stunning regularity, that there are laws governing their behavior, and that they obey these laws with almost military recision. Don Zagier[55] 정수론에서가장유명한미해결문제인리만가설 (Riemann hyothesis) 은소수의분포에대한정확한답을주고있다고많은수학자들이생각하는가설이다.

9 2. 소수 이단원에서는소수, 소인수분해, 그리고소수의분포와같은주제들을잘엮어정수론을연구하는기초를소개한다.. 절에서는 2 이상의모든정수는소수들이곱셈으로표현할수있다는소인수분해를엄밀하게증명하고, 소수들이곱으로표현하면상금을받을수있는특별한정수들을몇가지소개한다..2 절에서는소수가무한히많다는유클리드 (Euclid) 의증명으로시작해서소수들의집합에대하여논하고, 또알려진가장큰소수에관한이야기를소개한다. 마지막으로소수정리와리만가설을통해소수의분표에대해알아본다.. 소인수분해.. 소수 자연수들의집합과정수들의집합은각각 N, Z 로표현한다. N = {, 2, 3, 4,...}, Z = {..., 2,, 0,, 2,...}. 정의.. ( 나눈다 ). a 와 b 가정수일때 b = ac 인적당한정수 c 가존재하면 a 는 b 를나눈다고하고 a b 로쓴다. 이경우 a 는 b 의약수 (divisor) 라고한다. b = ac 인정수 c 가존재하지않으면 a 는 b 를나누지않는다고하고 a b 로쓴다. 예를들어 2 6 이고 3 5 이다. 또모든정수는 0 을나누고 0 은오직 0 만나눈다. 그러나 3 은 7 을정수에서는나누지않는다. 참조..2. 러시아의정수론책에서는 a 가 b 를나눈다를보통 b. : a 로표현한다. 정의..3 ( 소수와합성수 ). n 은 보다큰정수이다. 이때 n 의양의약수가 과 n 뿐이면소수 (rime), 그렇지않으면합성수라고부른다. 은소수도합성수도아니다. 차례대로소수들을나열하면 2, 3, 5, 7,, 3, 7, 9, 23, 29, 3, 37, 4, 43, 47, 53, 59, 6, 67, 7, 73, 79,..., 이고차례대로합성수를나열하면다음과같다. 4, 6, 8, 9, 0, 2, 4, 5, 6, 8, 20, 2, 22, 24, 25, 26, 27, 28, 30, 32, 33, 34,.... 참조..4. J. H. Conway 는 [, viii] 에서 은소수로봐야하고, Lehmer 는 24 년소수표 [30] 에서 를소수로간주하였다. 이책에서는 은소수도합성수도아닌수로본다. SAGE 예..5. Sage 를이용하여 a 와 b 사이의모든소수를찾을수있다.

10 . 소인수분해 3 sage: rime_range(0,50) [, 3, 7, 9, 23, 29, 3, 37, 4, 43, 47] a와 b 사이의 모든 합성수도 찾을 수 있다. sage: [n for n in range(0,30) if not is_rime(n)] [0, 2, 4, 5, 6, 8, 20, 2, 22, 24, 25, 26, 27, 28] 모든 자연수는 유일한 방법으로 소수로부터 만들어진다: 정리..6 (산술의 기본 정리 (Fundamental Theorem of Arithmetic)). 보다 큰 모든 자연수는 소수들의 곱으로 표현할 수 있고 그 방법은 차례를 무시하면 유일하다. 이 때 소수는 한 개의 소수의 곱이다. 은 공집합의 원소들의 곱으로 약속할 수 있다. 참조..7. 정리..6는..4절에서 증명하고자 하는데 여러분이 생각하 는 것보다는 까다롭다. 일반적으로 인수분해가 되면 그 방법은 한 가지 뿐일 것이라고 생각하기가 쉬우나 반드시 그렇지 않을 수도 있다. 집합 Z[ 5] = {a + b 5 : a, b Z} C, 에서 6은 두 가지 방법으로 인수분해된다. 6 = 2 3 = ( + 5) ( 5)...2 최대공약수 최대공약수의 개념을 이용하여 소수에는 다음 성질 ab a 혹은 b 이 성립함을 보이자. 이는 정리..6의 증명에서 핵심적인 역할을 한다. 정의..8 (최대공약수). 둘 다 0이 아닌 두 정수 a, b의 모든 공통 약수 중에서 가장 큰 수를 a와 b의 최대공약수 (Greatest Common Divisor) 라고 하고 gcd(a, b)로 쓴다. 즉, gcd(a, b) = max {d Z : d a and d b}. gcd(0, 0) = 0으로 약속한다. 예를 들어 gcd(, 2) =, gcd(6, 27) = 3 이며, 모든 정수 a에 대하여 gcd(0, a) = gcd(a, 0) = a이 성립한다. a 6= 0이면 gcd(a, b)는 존재한다. 왜냐하면 d a이면 d a 이고 a 보다 작거나 같은 자연수는 a 개뿐이기 때문이다. 같은 이유로 b 6= 0인 경우도 gcd는 존재한다. 보조정리..9. 임의의 정수 a와 b에 대하여 다음이 성립한다. gcd(a, b) = gcd(b, a) = gcd(±a, ±b) = gcd(a, b a) = gcd(a, b + a).

11 4. 소수 증명 다른 경우들도 같은 방법으로 증명할 수 있으므로 gcd(a, b) = gcd(a, b a)만 보이자. d가 a, b의 공약수라면, 즉 d a, d b라면 dc = a과 dc2 = b를 만족하는 정수 c 과 c2 가 존재한다. 그러면 b a = dc2 dc = d(c2 c ) 이므로 d b a이다. 따라서 gcd(a, b) gcd(a, b a). 왜냐하면, a, b의 공통 약수들이 a와 b a의 공약수가 되기 때문이다. a를 a로 b를 b a로 바꾸면 gcd( a, b a) gcd( a, b)이므로 gcd(a, b a) = gcd( a, b a) gcd( a, b) = gcd(a, b)가 되어 gcd(a, b) = gcd(a, b a)가 성립한다. 보조정리..0. a, b, n Z일 때 gcd(a, b) = gcd(a, b an)이 성립한다. 증명 보조정리..9를 계속하여 사용하면 gcd(a, b) = gcd(a, b a) = gcd(a, b 2a) = = gcd(a, b an). 정리..6를 증명했다고 잠시 가정하자. 그러면 gcd(a, b)를 계산하기 위한 소박한 방법은 정리..6를 이용하여 a와 b를 소수들의 곱으로 표 현하고 그것들로부터 gcd(a, b)를 소수들의 곱으로 표현하는 것이다. 예를 들어, a = 226, b = 275이면 a = 7 7 9, b = 이다. 따 라서 gcd(a, b) = 7이다. 그러나 a와 b를 소인수분해하지 않고도 아래의 알고리듬..3을이용하여 gcd(a, b)를 구할 수 있다. 알고리듬..3의 동기 부여를 위하여 gcd(226, 275)를 위에서 보인 것과 다른 방법으로 계산한다. 먼저 다음 유용한 사실을 기억해내자. 기초정리... a, b는 정수이고 b 6= 0이다. 그러면 a = bq + r이 되는 정수 q와 0 r < b 인 정수 r이 존재하고 또 유일하다. 증명 존재성은 a와 b가 양수인 경우만 증명한다. (일반적인 경우는 독자 의 몫으로 남긴다.) Q는 a bn 0인 음수가 아닌 정수 n들의 집합이다. 그러면 0 Q이므로 Q는 공집합이 아니다. 또 a bn 0은 n a/b와 동치이므로 Q의 모든 원소는 a/b보다 작거나 같다. 그러므로 Q에서 가장 큰 정수 q를 선택할 수 있다. 이제 r = a bq라면 r < b이다. 왜냐하면 r = a bq b이면 a b(q + ) 0이 되어 q보다 큰 q + 이 Q에 속하여 모순이다. 따라서 우리가 원하는 조건을 만족하는 r, q가 존재한다. 유일성: a = bq + r = bq + r 이고 0 r < b 0 r < b 이라면 b(q q ) = r r2 (..) 이다. 만약 q 6= q 이라면 b(q q ) b 인데 b < r r2 < b 이므로 b(q q )과 r r2 이 같을 수 없다. 따라서 q = q 이다. 이를 식..에 대입하면 r r2 = 0이다. 따라서 위의 조건을 만족하는 q와 r은 유일하다. 이 책에서는 알고리듬(algorithm)은 컴퓨터 프로그램에서 입력 작업이 유효하면 반드시 결과가 나오는 특정 작업을 수행케하는 유한 개의 지시의 나열이다. 가끔은 알고리듬은 여기서 정의한 것 보다는 좀 더 느슨한 (혹은 좀 더 정확한) 의미로 쓰이기도 하지만 이 책에서는 이 정의로 충분하다.

12 . 소인수분해 5 알고리듬..2 ( 나눗셈알고리듬 (division algorithm)). a, b 는정수이고 b 0 이다. 그러면이알고리듬은 a = bq + r 이되는 q 와 0 r < b 를만족하는 r 을계산한다. 알고리듬..2 은우리가잘아는세로로길게하는긴나눗셈이므로각단계를서술하지는않을것이다. 그러나어떤경우에든 a 가음수인경우에도이알고리듬은나머지를항상양수로만든다는점에서는우리가익숙한나눗셈과는조금다를수있다. 나눗셈알고리듬을계속시용하여 gcd(226, 275) 를계산하자. 226 를 275 로나누면 226 = , 이므로 q = 이고 r = 986 이다. 자연수 d 가 226 과 275 을다나누면, d 는이두수의차인 986 을나누면서여전히 d 는 275 도나눈다. 반면에 d 기 275 와 986 을나누면, d 는두수의합도나눈다. 따라서다음과정이성립한다. gcd(226, 275) = gcd(275, 986). 이등식은보조정리..9 로부터도얻을수있다. 이과정을계속하면 275 = , 이므로 gcd(275, 986) = gcd(986, 289). 계속하면 986 = = = 을얻으므로 gcd(226, 275) = = gcd(5, 7) 이되는데, 7 5 이므로 gcd(5, 7) 은 7 이다. 따라서 gcd(226, 275) = 7. 지겨운산술계산이긴하지만이계산은상당히조직적이며또 ( 아주큰수의경우는소수의곱으로표현하는빠른방법을알지도못하지만 ) 주어진두수를소수의곱으로표현할필요도없었다. 알고리듬..3 ( 최대공약수계산 ). 정수 a, b 에대하여이알고리듬은 gcd(a, b) 를계산한다.. [a > b > 0 로가정 ] gcd(a, b) = gcd( a, b ) = gcd( b, a ) 이므로 a 와 b 를 a 의절대값과 b 의절대값으로각각바꾼다. a = b 이면 a 를출력 (outut) 하고프로그램은끝난다. 필요하다면 a 와 b 를교환하여 a > b 로가정한다. b = 0 이면 a 를출력한다. 2. [ 몫과나머지 ] 알고리듬..2 을사용하여 a = bq + r 로쓴다. 이때 0 r < b 이고 q Z 이다. 3. [ 끝?] r = 0 이면 b a 이므로 b 를출력하고끝난다.

13 6. 소수 4. [ 바꾸기와되풀이 ] a b, b r 로바꾼후단계 2 로간다. 증명보조정리 로부터 gcd(a, b) = gcd(b, r) 가성립하므로 gcd 는단계 4 에서바뀌지않는다. 또나머지는계속감소하는음수가아닌정수이므로이알고리듬은유한단계에서끝난다. 예..4. a = 5, b = 6 로놓자. 5 = gcd(5, 6) = gcd(6, 3) 6 = gcd(6, 3) = gcd(3, 0) = 3 0 배큰수들이라해도이계산법은마찬가지로쉬운데, 이관찰은아래정리..9 의증명에서중요한역할을한다. 예..5. a = 50, b = 60 으로놓자 50 = gcd(50, 60) = gcd(60, 30) 60 = gcd(60, 30) = gcd(30, 0) = 30 SAGE 예..6. Sage 에서는 gcd 가최대공약수를구하는명령어이다. 예를보자. sage: gcd(97,00) sage: gcd(97 * 0^5, 9^20 * 97^2) 97 보조정리..7. a, b, n 가정수일때 이성립한다. gcd(an, bn) = gcd(a, b) n 증명예.4 와..5 로부터짐작할수있듯이유클리드의알고리듬으로 gcd 를계산할때 gcd(an, bn) 의각단계의식은 gcd(a, b) 의해당단계의식에 n 을곱한식이다. 간단히증명하기위하여 a 와 b 모두양수라고가정하고 a + b 에관한수학적귀납법을사용한다. a + b = 2 이면 a = b = 이므로위의명제는성립한다. a, b 는 a b 인임의의자연수라고하자. a = bq + r, 0 r < b 인정수 q 와 r 이라면보조정리들 에의하여, gcd(a, b) = gcd(b, r) 이다. 식 a = bq + r 에 n 을곱하면 an = bnq + rn 이므로, gcd(an, bn) = gcd(bn, rn). 또 b + r = b + (a bq) = a b(q ) a < a + b, 이므로수학적귀납법에의하여 gcd(bn, rn) = gcd(b, r) n 이다. gcd(b, r) = gcd(a, b) 이므로, 이보조정리는성립한다. 보조정리..8. 두정수 a, b 의공약수는 gcd(a, b) 의약수이다. 즉, 정수 n 이 n a, n b 이면 n gcd(a, b) 이다.

14 . 소인수분해 7 증명 n a, n b 이므로 a = nc b = nc 2 인정수 c 과 c 2 가존재한다. 보조정리..7 로부터 gcd(a, b) = gcd(nc, nc 2 ) = n gcd(c, c 2 ) 이므로 n 은 gcd(a, b) 를나눈다. 알고리듬..3 으로어떤소수가두정수의곱을나누면그소수는두수중의하나는반드시나누어야하는사실을증명할수있다. 이는소인수분해가유일함을증명하는데핵심적인역할을한다. 정리..9 (Euclid). 는소수이고 a, b N 이다. 만약 ab 이면 a 혹은 b 이다. 산술의기본정리에이미여러분들이익숙하기때문에정리..9 가직관적으로자명하다고혹생각할수도있지만, 정리..9 는산술의기본정리 ( 정리..6) 를증명할때꼭필요하다. 증명 [ 정리..9 의증명 ] 이미 a 이면증명할필요가없다. 하고 만이 를나누므로 a 이면 gcd(, a) = 이다. 보조정리..7 로부터, gcd(b, ab) = b gcd(, b) = b 인데 b 이고또가정에의하여 ab 이므로, ( 보조정리..7) 를사용하여 가성립한다. gcd(b, ab) = b gcd(, a) = b = b..3 정수들은소수들의곱으로인수분해된다. 이절에서는모든자연수는소수들의곱으로표현할수있음을보인다. 그후실제소수들의곱으로표현하는것은얼마나어려운작업인지를논의한다. 인수분해의유일성은..4 절에서증명한다. 첫번째예는 n = 275 의소인수분해이다. n 의각자릿수의합이 3 의배수이므로 n 은 3 의배수이다. ( 기초정리 2..9 참조 ). n = 가되는데 의배수이므로 ( 왜냐하면일의자릿수가 5 의배수이므로 ) 275 = 가된다. 다시 85 는 5 의배수이므로, 275 = 임을알수있다. 3, 5, 7 이모두소수이므로 은 275 의소인수분해이다. 이과정을일반화하면다음명제를증명할수있다. 기초정리..20. 모든자연수는소수의곱이다. 증명자연수 n 에대한귀납법을사용한다. n = 이면 n 은소수의공집합의곱이다. n 이소수이면, 한개의소수의곱이다. n 이합성수이면 n 은더작은자연수 a, b 의곱이다. 귀납적가정에의하여 a 와 b 가소수의곱이므로 n 도소수의곱이다. 이제모든자연수는소수의곱임을알때다음두질문은아주자연스럽다. () 소수의곱으로표현하는방법은하나일까? (2) 얼마나빠르게자연수를소수의곱으로표현할수있을까? () 은예를들어 275 를다른

15 8. 소수 방법으로인수분해를시도했을때어떻게되는지를확인해보면된다. 시도해보면 : 275 = 이고, 255 = 5 5 이고 5 = 7 3 이므로, 정리..6 에서주장하였듯이결국같은결과를얻는다. 자연수의소인수분해의유일성은 Section..4 에서증명한다. SAGE 예..2. Sage 에서 factor 는주어진자연수를소인수분해하는명령어이다. 계산창에소수의거듭제곱의곱으로나타낸다. 예를보자. sage: factor(275) 3 * 5^2 * 7 sage: factor(2007) 3^2 * 223 sage: factor( ) 2 * 3 * 53 * 73 * 253 * 질문 (2) 와관련해서는정수의소인수분해알고리듬들이존재한다. 얼마나빠른소인수분해알고리듬이존재할수있는지는아직해결하지못한중요한문제이다. n 을인수분해하는알고리듬이다항식시간 (olynomial time) 이라는것은다항식 f(x) 가존재하여이알고리듬이자연수 n 을인수분해하는데필요한단계의수가 f(log 0 (n)) 보다작을때를의미한다. ((log 0 (0 k ) = k)) 에서짐작할수있듯이 log 0 (n) 은 n 의자릿수의근사값이다. Oen Problem..22. 정수 n 의다항식시간인수분해알고리듬이존재하는가? Peter Shor 는 [46] 에서양자컴퓨터에서의정수의다항식시간인수분해알고리듬을고안하였다. 200 년 IBM 연구원들이 Shor 의알고리듬을구현하여 5 를인수분해하긴했었지만 ([34, 24]) 이사실외에는이책에서는이알고리듬을더이상논하지는않을것이다. 훨씬큰양자컴퓨터를만드는일은굉장히어려운작업으로보인다. 어떤큰수를인수분해하면돈을벌수도있다. 어떤큰정수의인수분해가쉽다면많은암호체계 (crytosystems) 가쉽게깨질수있다. 그래서, 아무도인수분해가어렵다는것을증명하지는않았으므로인수분해가어렵다는사실에대한확신을높이기위하여어떤정수의인수분해에상금을걸기도한다. 다음은최근인수분해하는데 $0,000 의상금이걸렸던자릿수가 74 인정수이다 ([42] 참조 ) 이수는 2 진법으로자릿수가 576 이라 RSA-576 으로알려진수이다. ( 이진법수에대한더많은정보는절 을참조 ) 이수는 2003 년 2 월독일연방정보기술보안부 (German Federal Agency for Information Technology

16 . 소인수분해 9 Security) 에서인수분해하였다 ([53] 참조 ) 그전의 RSA 도전수는 55- 자릿수였다 이수는 999 년 8 월 22 일에인수분해되었는데 6 명의연구그룹이 292 개의컴퓨터를연결하여얻은결과였다. ([] 참조 ) 그들이얻은결과는 RSA-55 는다음 78- 자리의두소수의곱이라는것이다 : = q = 다음 RSA 도전은 F. Bahr, M. Boehm, J. Franke 와 T. Kleinjun 이 2005 년 월인수분해할때까지 $20,000 불의상금이걸려있었던 RSA-640 이었다. 다음은 RSA-640 과이수의인수중하나이다 , ( 이팀은 663 비트 RSA 도전수도인수분해하였다.) 현재 $30,000 불을벌기위해도전할수있는가장작은수는 RSA-704 이다 SAGE 예..23. Sage 를사용하면위의수 RSA-704 는 22 자릿수이며합성수임을확인할수있다.

17 0. 소수 sage: n = \ \ \ \ sage: len(n.str(2)) 704 sage: len(n.str(0)) 22 sage: n.is_rime() # this is instant False 이 RSA 수들은 number field sieve 로불리는알고리듬을이용하여인수분해되었는데 ([33]), 이알고리듬은일반적인목적의소인수분해에가장효율적인알고리듬으로알려져있다. number field sieve 알고리듬이어떻게작동하는지를성명하는것은이책의범위를넘어선다. 그러나 number field sieve 알고리듬은타원곡선을아주많이이용하는인수분해알고리듬이므로절 6.3 에서설명할것이다...4 산술의기본정리 우리는이제다음아이디어들을이용하여정리..6 를증명할준비가다되었다. 정수 n 을두가지방법으로인수분해하였다고가정하자. 정리..9 를이용하여두인수분해에서공통인소수들을하나씩소거한다. 그러면결국각각의인수분해는정확히같은소수들로구성되어있음을발견하는것이다. 아래에자세히설명한다. 증명 n = 이면소수의공집합의곱이므로유일하다. 따라서 n > 이라고가정한다. 기초정리..20 에의하여 인소수,..., d 이존재한다. 만약 n = 2 d n = q q 2 q m 이되는또다른소수들 q,..., q m 이존재한다고하자. 그러면 n = q (q 2 q m ) 이므로 Euclid 의정리에의해 = q 이거나 q 2 q m 인데이를계속하면 는적당한 q i 와같아진다. 이제 와 q i 를소거하고위에서한일들을 2, 그리고 3,... 등을가지고반복하면차례를바꾸는것외에는두가지인수분해가같음을알아낸다.

18 .2 소수들의열.2 소수들의열 이절에서는다음세가지질문에대한답을찾고자한다 :. 소수는무한히많은가? 2. 정수 a, b 를임의로선택했을때 ax + b 꼴의소수는얼마나많이존재할까? 3. 자연수를차례로배열할때소수들은어떻게분포할까? 먼저소수는무한히많음을보이고, gcd(a, b) = 이면 ax + b 가소수인 x 가무한히많이존재한다는 Dirichlet 의정리를소개한다. 그리고 x 보다작은소수는근사적으로 x/ log(x) 개정도존재한다는소수정리 (Prime Number Theorem), 마지막으로이소수의개수에관한공식과리만가설 (Riemann Hyothesis) 과의관계에대해논한다..2. 소수는무한히많다 아래표의왼쪽은소수이고오른쪽의식은서로유사한형태로만들어진식이다. 물론이현상은무한히계속되지는않지만유사한결과를준다. 3 = = = = = 정리.2. (Euclid). 소수는무한히많다. 증명, 2,..., n 이소수라고하자. 그러면다음방법으로항상새로운소수 n+ 를만들수있다. N = 2 3 n + (.2.) 을정의하자. 기초정리..20 에의해 N > 이므로한개이상의소수의곱으로표현하면 N = q q 2 q m. 이때 q i 는소수이고 m 이다. 만약 q = i 이면, i N 이다. 그런데 (.2.) 으로부터 i N 이므로 i = N (N ) 을얻는데이는모순이다. 따라서 i 는 N 의소인수분해에나타날수없으므로 n+ = q 는우리가처음시작한소수표인,..., n 에없던새로운소수이다. 유한개의소수를주면항상새로운소수를얻을수있으므로소수는무한하다.

19 2. 소수 처음 6 개의소수 2, 3, 5, 7,, 3 을곱한후 을더한수 = 3003 = 는그자체는소수가아니지만새로운소수에의해나누어진다. Joke.2.2 (Hendrik Lenstra). 합성수는무한히많다. Proof. 새함성수를만들기위히여처음 n 개의합성수를곱한후 을더하지않으면된다..2.2 소수세기 이절에서는정수 n 까지의모든소수를계산하기위하여 ( 합성수를 ) 체로쳐내는과정을소개한다. 먼저 을제외한 n 까지의모든수를적은후 2 가소수임을확인후 2 의배수를모두걸러낸다. 이제남은수의첫번째수인 3 은소수이므로 3 다음의모든 3 의배수를지운다. 이과정을반복하면 n 까지의모든소수들을얻는다. 다음은이과정의공식알고리듬이다. 알고리듬.2.3 ( 소수체 (Prime Sieve)). 이알고리듬은자연수 n 까지의모든소수들을계산한다.. [Initialize] X = [3, 5,...] 는 3 과 n 사이의모든홀수들이고, P = [2] 는지금까지발견한소수들이다. 2. [Finished?] 는 X 의첫번째원소이다. 만약 > n 이면, X 의모든원소를 P 에넣고끝난다. 그렇지않으면 를 P 에첨가한다. 3. [Cross Off] X 는 X 에서 의배수들을뺀집합으로바꾼후단계 2 로간다. 예를들어 40 까지의소수들을이체를이용하여구해보자. P = [2], X = [3, 5, 7, 9,, 3, 5, 7, 9, 2, 23, 25, 27, 29, 3, 33, 35, 37, 39] 로시작한다. 3 을 P 에첨가하고 3 의배수들을 X 에서지운후새로운 X 를얻는다. X = [5, 7,, 3, 7, 9, 23, 25, 29, 3, 35, 37]. 5 을 P 에첨가하고 5 의배수들을지운후새 X 는 X = [7,, 3, 7, 9, 23, 29, 3, 37]. 그런데 이므로 X 를모두 P 에첨가하면 P = [2, 3, 5, 7,, 3, 7, 9, 23, 29, 3, 37] 가된다. 따라서 40 이하의모든소수는 이다. 2, 3, 5, 7,, 3, 7, 9, 23, 29, 3, 37.

20 .2 소수들의 열 3 증명 [알고리듬.2.3의 증명] 이 알고리듬에서 분명하지 않은 것은, 단계 2에서, X의 첫 원소 a가 a > n를 만족하면 X의 모든 원소가 소수라는 부분이다. m X이면, n a Qmei n이고 m은 n인 어떤 소수로도 나누어지지 않는다. 이제 m = i 으로 쓸 수 있고, 이 때 i 는 소수이 고 < 2 <...으로 가정할 수 있다. 따라서 모든 을 포함하여 모든 i n이다. 따라서 만약 m이 인수분해에 두 개 이상의 소수가 필요하 다면, 즉 소수가 아니라면, m > n n = n이므로 모순이다..2.3 알려진 가장 큰 소수 비록 정리.2.가 소수는 무한히 많이 존재한다는 사실을 말해주기는 하 지만, 알려진 가장 큰 소수가 얼마지? 는 여전히 의미 있는 질문이다. 메르센 소수(Mersenne rime)는 2q 형태의 소수이다. [6]에 따르면 2007년 3월 기준으로 가장 큰 소수는 자릿수가 9,808,358인 44 번째 메르센 소수로 알려진 = , 이다. The Electronic Frontier Foundation은 0,000,000 자릿수의 소수를 처음으로 찾는 사람에게 $00,000의 상금을 제시하였다2. 유클리드의 정리로부터 이 보다 큰 소수가 무한히 많다는 것을 우리는 안다. 주어진 수가 소수인지 아닌지를 파악하는 것은 이론적으로도 흥미 로운 문제일 뿐만 아니라 암호론에 응용되는 문제로서도 아주 흥미롭다. 이 부분은 절 2.4과 단원 3에서 확인할 수 있다. SAGE 예.2.4. Sage에서 의 0진법 자릿수를 계산할 수 있다. 이를 계 산하기 위해서 여러분의 컴퓨터에서는 분 정도 소요되는 심각한 계산일 수도 있어 조심해야겠지만. 또 너무 긴 시간이 걸릴 수 있기 때문에 아래의 나 s를 프린트 하지는 말기 바란다. sage: = 2^ sage:.ndigits() 다음 를 0진법 숫자 열로 변환하고 특정 자릿수를 관찰한다. sage: s =.str(0) # this takes a long time sage: len(s) # s is a very long string (long time) sage: s[:20] # the first 20 digits of (long time) sage: s[-20:] # the last 20 digits (long time) 이 소수는 프린트하려면, 한 페이지에 한 줄에 80개의 수를 적은 60줄이 프린트될 때, 2000 페이지가 필요하다 년 4월 현재 알려진 가장 큰 소수는 49 번째 메르센 소수인 274,207,28 이다. 자릿수는 22, 338, 68이다. (네이버 지식백과/수학백과 메르센 소수 참조)-역자 주

21 소수 ax + b 형태의 소수 다음 주제는 ax + b 꼴의 소수이다. 단, a와 b는 a > 인 고정된 정수이고 x는 임의의 자연수 값을 취할 수 있다. gcd(a, b) = 이라고 가정하자. 왜 냐하면, 그렇지 않다면 ax + b가 소수가 될 수 있는 희망이 없기 때문이다. 예를 들어 2x + 2 = 2(x + )는 오직 x = 0일 때만 소수이다. 기초정리 x 꼴의 소수는 무한히 많다. 왜 이것이 사실일수 있을까? 4x 꼴의 수를 모두 쓰고 소수인 것에는 밑줄을 그어보자. 3, 7,, 5, 9, 23, 27, 3, 35, 39, 43, 47,... 밑줄 친 수들이 무한히 많이 나올 것 같다고 느껴질 뿐만 아니라, 실제 증명도 쉽다. 증명, 2,..., n 은 4x 꼴의 서로 다른 소수라고 하자. N = 4 2 n 이라고 놓자. 그러면 모든 i에 대하여 i - N 이다. 게다가, N 인 모든 소수가 4x + 꼴이지는 않다: 만약 그렇다면 N 도 4x + 꼴이어야만 하는데 N 은 4k 꼴이다. 또 N 은 홀수이므로, N 의 모든 소수 약수도 홀수이다. 따라서 N 인 4x 꼴의 소수 약수가 존재한다. 6= i 이므로 4x 꼴 의 새로운 소수를 찾았다. 이 과정을 무한히 되풀이 할 수 있으므로 4x 꼴의 소수는 무한히 많다. 이 증명은 4x + 꼴에는 적용할 수 없다. 왜냐하면 4x 꼴의 숫자들의 곱은 4x + 형태가 될 수 있기 때문이다. 예.2.6. = 3, 2 = 7이라 하자. 그러면 N = = 83 은 4x 꼴의 소수이다. 다음 N = = 697, 도 4x 꼴의 소수이다. 계속하면 N = = = 이 되는데 이 때 6은 4x + = 꼴의 소수이지만, 그러나 79675가 = 을 만족하는 소수이다. 이와 같이 계속 4x 꼴의 소수를 얻을 수 있다. N = = 이번에는 작은 소수 559이 4x 꼴의 소수이고 큰 소수가 4x + 꼴이다.

22 .2 소수들의 열 5 정리.2.7 (Dirichlet). a와 b가 gcd(a, b) = 를 만족하는 정수이다. 그러면 ax + b 꼴의 소수가 무한히 많이 존재한다. 이 정리의 증명은 고급 정수론의 전형적인 도구를 사용하므로 이 책의 범위를 넘어선다. (예를 들어 [8, VIII.4]를 참조.).2.5 소수의 밀도 절.2.에서 소수가 무한히 많이 있음을 알았다. 이 절에서는 많은 소수 들이 어떻게 존재하는지를 알기 위하여 몇 가지 준비운동격인 질문들을 생각해본다. 그리고 몇 가지 수치적 증거들을 소개하고, 우리의 질문에 대한 점근적인 답을 주는 소수정리(rime number theorem)를 기술한다. 그리고 이 정리와 그 유명한 리만 가설(Riemann Hyothesis)과의 연관성 을 알아본다. 이 절에서 소수를 세는 우리의 토론 방식은 아주 피상적이다: 자세한 내용은 Crandall과 Pomerance의 멋진 책 [2,..5]을 읽기 바란다. 소수의 수 (혹은 퍼센트)를 측정하는 정확한 방법을 설명하기 위하여 다음 질문들을 생각해보자. 자연수의 몇 %가 짝수인가? 그 답은 50%이 다. 자연수 중의 몇 %가 4x 의 꼴인가? 답: 자연수의 /4, 혹은 25%. 자연수 중의 몇 %가 완전제곱수인가? 답: 0 퍼센트! 전체 자연수에서 제곱 수가 차지하는 비율이 결국은 0에 수렴한다는 의미에서다. 좀 더 정확하게 설명하면, #{n N : n x and n is a erfect square} =0 x 이다. 왜냐하면 위의 식에서 분자는 대략 x이고 limx xx = 0이기 때 문이다. 비슷하게 정리.2.0으로부터 모든 자연수에서 소수는 0 퍼센트를 차지함을 알 수 있다. (see Exercise.4). 따라서 우리는 다음과 같은 다른 질문을 하게 한다: x보다 작거나 같은 수 중에서 제곱수는 모두 몇 개인가? 답: 약 x. 다음은 소수에 대한 유사한 질문이다. lim x 질문.2.8. x보다 작거나 같은 수 중에서 소수는 몇 개인가? π(x) = #{ N : x, 는 소수} 라고 하자. 그러면 π(6) = #{2, 3, 5} = 3. 이다. 표.에 π(x)의 값들이 주어져있다. 그림.과.2는 π(x)의 그래프 들이다. 이 그래프들은 직선처럼 보이지만 약간은 아래로 휘어져 있다. SAGE 예.2.9. Sage에서 rime i(x) 명령어를 사용하면 π(x)를 구할 수 있다. sage: rime_i(6) 3

23 6. 소수 TABLE.. Values of π(x) x π(x) (200, 46) (00, 25) (500, 95) (000, 68) (900, 54) sage: rime_i(00) 25 sage: rime_i( ) 2686 FIGURE.. Grah of π(x) for x < 000 lot 명령어를써서 π(x) 의대략적인모습을그릴수있다. sage: lot(rime_i,,000, rgbcolor=(0,0,)) Gauss 는거의컴푸터와같았는데, 849 년편지에 3, 000, 000 보다작은수중에는 26, 745 개의소수가존재한다고편지에쓸정도였다. (Gauss 의이계산값은비슷하기는했지만정확하지는않았다. 실제값은 26, 86 이다.) Gauss 는다음에소개할 π(x) 에대한근사공식을추론하였는데, 896 년에 Hadamard 와 Vallée Poussin 이독립적으로증명하였다. ( 물론이책에서는증명하지않는다.) 정리.2.0 ( 소수정리 ). π(x) 와 x/ log(x) 는 lim x π(x) x/ log(x) = 을만족한다. 이를우리는 π(x) 는 x/ log(x) 에점근 (asymtotic) 한다고한다. 즉 π(x) 의점근곡선이 x/ log(x) 이다. 이정리에대하여관찰을좀더해보자. 이정리는 을유도하므로, 임의의 a 에대하여 lim x π(x) lim x x = lim x log(x) = 0 π(x) x/(log(x) a) = lim x π(x) x/ log(x) aπ(x) =. x

24 .2 소수들의열 7 TABLE.2. Comarison of π(x) and x/(log(x) ) x π(x) x/(log(x) ) (arox) FIGURE.2. Grahs of π(x) for x < 0000 and x < 따라서 x/(log(x) a) 또한 π(x) 의점근식이다. 왜 a = 이최선의선택인지는 [2,..5] 를참고하기바란다. 표.2 는 x < 0000 인여러값에서 π(x) 와 x/(log(x) ) 를비교한다. 다음은이책을서술하는당시의 π(x) 의최고기록이다. π(0 23 ) = 사실이런계산들은정확한값을얻는것이아주어렵기때문에위의값이약간은틀릴수있음을지적하고싶다. 복소해석학에익숙한독자들을위하여 π(x) 와리만가설과의관계를언급한다. 리만제타함수 ζ(s) 는오른쪽반평면위에서 n= n s 로정의된함수를 C\{} 로확장한복소해석함수이다. 리만가설은실수부분이양수인복소수중에서 ζ(s) 가영이되는복소수는모두 Re(s) = /2인직선위에놓여있다는가설이다. 이가설은 Clay 수학연구소의백만불짜리새천년문제중의하나이다 [8].

25 8. 소수 [2,.4.] 에따르면, 리만가설은 Li(x) = x 2 log(t) dt 가 π(x) 의 좋은 근사값이라는가설과동치라고알려져있다. 정확하게설명하면다음과같다. 가설.2. ( 리만가설과동치인 ). x 2.0 인모든 x 에대하여, π(x) Li(x) x log(x). 만약 x = 2 이면 π(2) =, Li(2) = 0 이다. 그러나 2 log(2) = 이므로위의부등식은 x 2 에대해서는성립하지않지만 2.0 이면충분하다. 이가설은더설명은하지않고수치적예를제시하고마무리한다. 예.2.2. x = 리고하자. 그러면 π(x) = , Li(x) = , π(x) Li(x) = , x log(x) = , x/(log(x) ) = SAGE 예.2.3. Sage 을시용하여 π(x), Li(x), 그리고 x log(x) 를그려보자. sage: P = lot(li, 2,0000, rgbcolor= urle ) sage: Q = lot(rime_i, 2,0000, rgbcolor= black ) sage: R = lot(sqrt(x)*log(x),2,0000,rgbcolor= red ) sage: show(p+q+r,xmin=0, figsize=[8,3]) 가장위의선은 Li(x), 다음은 π(x), 가장아래선은 x log(x) 이다. 소수정리 (rime number theorem) 와리만가설 (Riemann hyothesis) 은 [55] 와 [38] 를참조한다.

26 .3 Exercises 9.3 Exercises. Comute the greatest common divisor gcd(455, 235) by hand..2 Use the rime enumeration sieve to make a list of all rimes u to Prove that there are infinitely many rimes of the form 6x. π(x).4 Use Theorem.2.0 to deduce that lim x x = 0..5 Let ψ(x) be the number of rimes of the form 4k that are x. Use a comuter to make a conjectural guess about lim x ψ(x)/π(x)..6 So far 44 Mersenne rimes 2 have been discovered. Give a guess, backed u by an argument, about when the next Mersenne rime might be discovered (you will have to do some online research)..7 (a) Let y = Comute π(y) = #{rimes y}. (b) The rime number theorem imlies π(x) is asymtotic to How close is π(y) to y/ log(y), where y is as in (a)?.8 Let a, b, c, n be integers. Prove that (a) if a n and b n with gcd(a, b) =, then ab n. (b) if a bc and gcd(a, b) =, then a c..9 Let a, b, c, d, and m be integers. Prove that (a) if a b and b c then a c. (b) if a b and c d then ac bd. (c) if m 0, then a b if and only if ma mb. (d) if d a and a 0, then d a. x log(x)..0 In each of the following, aly the division algorithm to find q and r such that a = bq + r and 0 r < b : a = 300, b = 7, a = 729, b = 3, a = 300, b = 7, a = 389, b = 4.. (a) (Do this art by hand.) Comute the greatest common divisor of 323 and 437 using the algorithm described in class that involves quotients and remainders (i.e., do not just factor a and b). (b) Comute by any means the greatest common divisor of and

27 20. 소수.2 (a) Suose a, b and n are ositive integers. Prove that if a n b n, then a b. (b) Suose is a rime and a and k are ositive integers. Prove that if a k, then k a k..3 (a) Prove that if a ositive integer n is a erfect square, then n cannot be written in the form 4k + 3 for k an integer. (Hint: Comute the remainder uon division by 4 of each of (4m) 2, (4m + ) 2, (4m + 2) 2, and (4m + 3) 2.) (b) Prove that no integer in the sequence,,,,,... is a erfect square. (Hint: = 08+3 = 4k +3.).4 Prove that a ositive integer n is rime if and only if n is not divisible by any rime with < n.

28 2 법 n 정수들의집합 (The ring of Integers Modulo n) This is age 2 Printer: Oaque this 정말놀라운사실은 000 자릿수의인수를실제찾아내지도못하면서그수가소수인지아닌지를판정하는데는일초도채걸리지않는다는것이다. 이와같이소수인지아닌지를판정하는알고리듬은 n 이소수냐아니냐에따라달라지는 n 을기준으로한어떤연산의성질에의존한다. 실제우리는정수들의집합 {0,,..., n } 에속하는두원소를더하거나곱해도다시이속에들어가는혁신적인덧셈과곱셈을정의하고여러재미있는연산규칙들을찾아낸다. 또다른놀라운사실은 n = 와같이어마어마하게큰수를다계산할필요없이마지막 000 자릿수를즉석에서계산할수있다. 물론이것도집합 {0,,..., n } 의연산에의존한다. 이단원은곧정의할법 n 연산으로환이라는대수적구조를갖는 Z/nZ 에관한단원으로, 이단원에서는이환의멋진구조와그구조를위에서소개한문제들과또다른문제들에어떻게응용하는지를소개한다. 이단원은이책의나머지에서기초가된다. 2. 절에서는법 n 에서의일차방정식이해를갖는지를소개한후 Euler 의 ϕ 함수를소개하고 Euler 의정리와 Wilson 의정리를증명한다. 2.2 절에서는중국인의나머지정리를증명한다. 중국인의나머지정리란각식들의법이서로소일때연립일차합동식의해에관한정리이다. 이런이론들을기초로하여 2.3 절에서는법 n 에서의거듭제곱과일차합동식의해를구하는알고리듬을포함하여강력한계산알고리듬을소개한다. 마지막으로 2.4 절에서법 n 에서의산술을이용하여소수를판정하는방법을논한다.

29 22 2. 법 n 정수들의집합 2. 법 n 합동 정의 2.. ( 군 ). 군 (grou) 은다음성질을만족하는항등원 이있는이항연산 G G G 을갖는집합이다.. 모든 a, b, c G 에대하여 (ab)c = a(bc) 가성립 ; 2. G 의각의원소 a 에대하여 a = a = a 가성립하고, ab = 인 b G 가존재. 정의 2..2 ( 아벨군 ). 아벨군 (abelian grou) G 는모든 a, b G 가 ab = ba 를만족하는군이다. 정의 2..3 ( 환 ). 환 (ring) R 은두개의이항연산 + 와 를갖는집합으로덧셈 + 에관해서는항등원 0 을갖는아벨군이고곱셈에관해서는모든 a, b, c R 에대하여 a = a = a 인 R 이존재 (ab)c = a(bc) a(b + c) = ab + ac, (a + b)c = ac + bc 을만족하는집합이다. 만약모든 a, b R 에대하여 ab = ba 를추가로만족하면 R 은가환환 (commutative ring) 이다. 이절에서는 Z/nZ 으로표현할법 n 정수들의환을정의하고, Z/nZ 의원소의곱셈위수와관련이되는 Euler ϕ- 함수를소개한다. n N 이고 a, b Z 일때, n a b 가성립하면 a 와 b 는법 n 합동이라고하고 a b (mod n) 로쓴다. a b (mod n) 는정수들의집합 Z 에서동치관계가된다. n 의배수들의집합을 nz = (n) 로쓰자. ( 집합 nz = (n) 는 n 으로생성된 Z 의아이디얼 (ideal) 이라불리는집합이다.) 정의 2..4 ( 법 n 정수 ). 법 n 정수 (integers modulo n) 들의환 Z/nZ 은법 n 합동 (congruent modulo n) 에서동치류들의집합이다. 이집합에자연스럽게다음과같이덧셈과곱셈을정의하면환이된다. 예 예를들어 (a + nz) + (b + nz) = (a + b) + nz (a + nz) (b + nz) = (a b) + nz. Z/3Z = {{..., 3, 0, 3,...}, {..., 2,, 4,...}, {...,, 2, 5,...}}. SAGE 예 Sage 에서는다음과같이 Z/nZ 의원소를다나열할수있다. 집합 X 의이항연산이란 X 의두원소를연산하여다시 X 에속하는연산이다. 정수집 합에서덧셈과뺄셈은이항연산이다.

30 2. 법 n 합동 23 sage: R = Integers(3) sage: list(r) [0,, 2] 법 n에 관한 잉여류들의 집합을 Z/nZ으로 표현하는 이유는 Z/nZ는 정수들의 환 Z를 n의 배수들의 집합인 nz로 나누어서 얻은 몫과 같은 대 상이기 때문이다. 이 때문에 Z의 덧셈과 곱셈이 Z/nZ의 덧셈과 곱셈을 자연스럽게 유도한다. 법 n에서 a의 동치류 a + nz를 간단히 a(sage 예 2..6의 출력 참조), 혹은 a (mod n)으로 표기한다. 정의 2..7 (체). 체(field) K는 K의 0이 아닌 모든 원소 a가 ab = 을 만족하는 b를 K안에 가지고 있는 가환환이다. 예를 들어 가 소수이면, Z/Z는 체이다. ( Exercise 2.2 참조). 정의 2..8 (축약 함수와 올림). 정수 a를 a + nz로 보내는 자연스러운 함 수 γ : Z Z/nZ를 법 n 축약(reduction modulo n)이라 부른다. γ(b) = a + nz인 b를 a + nz의 법 n 올림(lift)이라 한다. 따라서, 7 + 3Z = + 3Z 이므로, 7은 (mod 3)의 올림이다. 어떤 수가 n으로 나누어지는지를 확인하기 위하여도 Z/nZ에서의 연산 이 잘 정의되었다는 사실을 이용할 수 있다. (Exercise 2.8 참조) 기초정리 정수 n Z이 3으로 나누어떨어지기 위한 필요충분조건 은 n의 자릿수의 합이 3으로 나누어떨어지는 것이다. 증명 정수 n의 자릿수가 a, b, c, 등으로 계속된다면 n = a + 0b + 00c + 으로 쓸 수 있다. 0 (mod 3), 00 (mod 3), n = a + 0b + 00c + a + b + c + (mod 3), 이 성립하고 이 사실로부터 우리의 주장은 증명된다. 2.. 일차합동식 이 절에서는 일차합동식 ax b (mod n)가 법 n에서 해을 가지는지 아 닌지를 결정할 수 있는 방법을 찾으려고 한다. ax b (mod n)의 해를 계산하는 알고리듬은 2.3절의 주제이다. 먼저 양변에 같은 수가 곱해져 있는 합동식에서 언제 소거할 수 있는지를 알아본다. 기초정리 2..0 (소거). 만약 gcd(c, n) = 이고 ac bc (mod n) 이면 a b (mod n)이 성립한다.

31 24 2. 법 n 정수들의 집합 증명 정의에 의하여 n ac bc = (a b)c. gcd(n, c) = 이므로 정리..6 (혹은 연습문제.8(b))으로부터 n a b 이다. 따라서 a b (mod n) 를 얻는다. Z/nZ에서 a0 이 a의 곱셈역원이면 (즉, aa0 (mod n)이면) 합동식 ax b (mod n)는 유일한 해 x a0 b (mod n)를 갖는다. 따라서 Z/nZ 에서 곱셈역원을 갖는 모든 원소들을 다 결정할 수 있다면 아주 흥미로울 것이다. 곱셈역원을 갖는 원소를 가역원(invertible element, unit)이라 한다. 이제 법 n 완전잉여집합을 이용하여 a Z/nZ가 Z/nZ의 가역원일 조 건은 a의 임의로 잡은 올림 a 이 gcd(a, n) = 임을 보일려고 한다. 정의 2.. (완전잉여집합). 원소가 n개인 Z의 부분집합 R의 모든 원소 가 법 n에서 서로 합동이 아니면 집합 R은 법 n의 완전잉여집합(comlete set of residues)이다. 즉, Z/nZ의 각 원소에서 정확히 한 개의 대표들만을 뽑아서 구성한 집합이 완전잉여집합이다. 예를 들어 R = {0,, 2,..., n } 은 법 n의 완전잉여집합이다. n = 5이면, R = {0,,, 2, 2}, 혹은 {5, 6, 7, 8, 9} 등이 완전잉여집합이다. 보조정리 집합 R이 법 n의 완전잉여집합이다. a Z가 gcd(a, n) = 를 만족하면 ar = {ax : x R}도 법 n의 완전잉여집합이다. 증명 x, x0 R이고 ax ax0 (mod n)이면 기초정리 2..0 에 의하여 x x0 (mod n)가 성립한다. R이 완전잉여집합이므로 x = x0 이다. 따라서 ar의 모든 원소는 법 n의 다른 잉여류들의 대표이다. 그런데 #ar = n 이므로 ar은 법 n의 완전잉여집합이다. 기초정리 2..3 (가역원). gcd(a, n) = 이면 ax b (mod n) 는 해를 갖고 또 그 해는 법 n에 관하여 유일하다. 증명 법 n의 완전잉여집합을 하나 잡고 그것을 R이라고 하자. 보조정 리 2..2에 의하여 ar도 법 n의 완정잉여집합이다. 따라서 ar에는 b와 합동인 원소가 딱 하나 존재한다. 이 원소를 ax ar라고 쓰면 x는 우리가 찾는 ax b (mod n)의 해이며 유일하다. 대수적으로 이 기초정리는 gcd(a, n) = 이면, a를 왼쪽에 곱해주는 함수 Z/nZ Z/nZ는 일대일 대응이라는 주장과 동일하다.

32 2. 법 n 합동 25 예 일차합동식 2x 3 (mod 7)를 생각하고 위의 기초정리의 증 명과정을 따라가보자. R = {0,, 2, 3, 4, 5, 6}은 법 7의 완전잉여집합이고, gcd(2, 7) = 이다. 그러면 2R = {0, 2, 4, 6, 8, 0 3, 2 5} 은 다시 완전잉여집합가 된다. 또 3 2R 이므로 (mod 7)를 얻는다. 따라서 2x 3 (mod 7)의 해는 x = 5이다. gcd(a, n) 6= 이면 방정식 ax b (mod n)은 해를 가질 수도 갖지 않을 수도 있다. 예를 들어 2x (mod 4)는 해가 없지만, 2x 2 (mod 4)는 해를 가지는데 법 4에 관하여 한 개 이상의 해를 가진다. 실제 x = 과 x = 3이 모두 해이다. 기초정리 2..3을 일반화하여 일차 합동식의 해의 존재에 대한 다음 기준을 얻는다. 기초정리 2..5 (일차합동식의 해의 존재성). 일차 합동식 ax b (mod n) 이 해를 가질 필요충분조건은 gcd(a, n)이 b를 나누는 것이다. 증명 g = gcd(a, n)이라 하자. ax b (mod n)의 해 x가 존재한다고 하자. 그러면 당연히 n (ax b)이다. 그런데 g n, g a이므로 g b가 성립한다. 역으로 g b라고 하자. 그러면 n (ax b)는 n a b x g g g 와 동치이다. 따라서 ax b (mod n)가 해를 갖는다는 것과 ag x gb (mod ng )가 해를 갖는다는 것이 동치이다. gcd(a/g, n/g) = 이므로, 기 초정리 2..3에 의하여 마지막 식이 해을 가지므로 증명이 완성된다. 이제 일차합동식이 해를 갖는 판정법을 알았다. 단원 4에서는 법 n의 이 차합동식이 해를 갖는지를 판정할 수 있는 이차상호법칙을 공부할 것이다. Euler 정리 2..2 (Z/nZ) 는 gcd(x, n) = 인 [x] Z/nZ들의 집합을 의미한다. ([x]는 x+nz 이다.) 우리에게 아주 흥미로운 이 집합은 군이 되는데 이 군은 환 Z/nZ의 가역원들의 군이라고도 불린다. 이 군의 모든 원소는 (Z/nZ) 의 원소의 개수만큼 거듭제곱하면 항상 이 된다. 군론에서 나오는 Lagrange정리와 연관된 성질인데, 우리는 n이 소수인 경우는 Fermat s Little Theorem 로, 일반적인 경우는 Euler s Theorem 라는 이름으로 알려져 있는 이 정리를 군론의 이론을 쓰지 않고 이 절에 소개하는 기본 원칙으로 증명할 것이다. 정의 2..6 (위수). n N, x Z이고 gcd(x, n) = 이라 하자. x의 법 n 위수(order)는 xm (mod n) 이 되는 작은 자연수 m N이다.

33 26 2. 법 n 정수들의집합 이정의가의미가있기위해서는그런 m 이존재함을보여야한다. 법 n 에서 x, x 2, x 3,... 을계산하자. 법 n 잉여류들은오직유한개뿐이므로 x j x i (mod n). 인 i 와 j 가존재할수밖에없다. gcd(x, n) = 이므로, 기초정리 2..0 으로부터 x i 를소거할수있으므로 (i < j 를가정하면 ) x j i (mod n). 를얻는다. SAGE 예 Sage 에서 x.multilicative order() 를이용하여 Z/nZ 의원소의위수를구하자. sage: R = Integers(0) sage: a = R(3) # create an element of Z/0Z sage: a.multilicative_order() 4 원소 a 의위수가 4 라는것은 a 의거듭제곱들이주기가 4 인순환수열을이룬다는것이다. 다음은거듭제곱들을계산하라는코드이다. sage: [a^i for i in range(5)] [, 3, 9, 7,, 3, 9, 7,, 3, 9, 7,, 3, 9] 명령어 range(n) 는 0 and n 까지의정수범위에서주어진값을구하라는명령어이다. 정의 2..8 (Euler 의 ϕ- 함수 ). 자연수 n 에대하여 n 과서로소인 n 이하의자연수들의개수를 ϕ(n) 이라하고 Euler ϕ- 함수라고한다. 즉, 예를들어, ϕ(n) = #{a N : a n and gcd(a, n) = }. ϕ() = #{} =, ϕ(2) = #{} =, ϕ(5) = #{, 2, 3, 4} = 4, ϕ(2) = #{, 5, 7, } = 4. 가소수이면 ϕ() = #{, 2,..., } =. 절 2.2. 에서 gcd(m, r) = 이면 ϕ(mr) = ϕ(m)ϕ(r) 임을증명한다. 이를이용하면 n 의소인수분해로부터 ϕ(n) 을쉽게계산할수있다. SAGE 예 euler hi(n) 은 ϕ(n) 을계산하는 Sage 코드이다.

34 2. 법 n 합동 27 sage: euler_hi(2007) 332 정리 (Euler 정리 ). gcd(x, n) = 이면 이성립한다. x ϕ(n) (mod n) 증명위에서지적하였듯이 Euler 의정리는군의이론을이용하여설명할수도있다. 먼저 Z/nZ 의가역원들의집합 (Z/nZ) = {a Z/nZ : gcd(a, n) = } 은위수가 ϕ(n) 인군이다. 그러면위의정리는 (Z/nZ) 의원소들의위수는 (Z/nZ) 의위수인 ϕ(n) 을나눈다는것이다. 이는유한군에관한 Lagrange 의정리의특별한경우이다. Lagrange 의정리 : G 가유한군이고 g G 이면 g 의위수는군 G 의위수를나눈다. 여기에서는군론의성질을이용하지않고증명한다. P = {a : a n and gcd(a, n) = } 라하면보조정리 2..2를증명했던똑같은방법으로법 n에관해서비교하면 P 와 xp 는같은집합이된다. 따라서 P 의모든원소들의곱과 xp 의모든원소들의곱이법 n에서는같다. a P(xa) a (mod n). a P 양변의 a 들을모두소거하면주장한대로 을얻는다. x #P (mod n) SAGE 예 Sage 를사용하여오일러의정리를예로확인한다. 임의의정수 x 에대하여 Sage 코드 Mod(x,n) 는 Z/nZ 에속하는 x 의동치류를계산한다. sage: n = 20 sage: k = euler_hi(n); k 8 sage: [Mod(x,n)^k for x in range(n) if gcd(x,n) == ] [,,,,,,, ]

35 28 2. 법 n 정수들의집합 2..3 Wilson 의정리 다음은 770 년대부터윌슨의정리로알려진소수의특성이다. 그런데이정리를최초로증명한사람은 Lagrange 이다. 기초정리 ( 윌슨의정리 ). > 가소수일필요충분조건은 ( )! (mod ) 이다. 예를들어, = 3 이면 ( )! = 2 (mod 3). = 7 이면 그러나 = 5 이면 ( )! = (mod 7). ( )! = (mod 5) 이므로 5 는합성수이다. 따라서윌슨의정리는소수판정정리로볼수있으나계산의관점에서볼때세상에서가장비효율적인소수판정법이다. 왜냐하면 (n )! 를계산하는것은아주복잡하기때문이다. 증명 = 2 인경우는자명하므로, 지금부터는 > 2 라고가정하자. 먼저 는소수라고가정하고 ( )! (mod ) 임을증명하자. a {, 2,..., } 일때, gcd(a, ) = 이므로 ax (mod ) 은유일한해 a {, 2,..., } 를가짐을기억하자. 만약 a = a 이면 a 2 (mod ) 을만족하므로 a 2 = (a )(a + ) 이다. 따라서 (a ) 이거나 (a + ) 이므로 a {, }. 즉, {, 2,..., } 에서 고 을제외한 {2, 3,..., 2} 의모든원소들을각각자신과다른자신의역원들과짝을이루므로, 모두곱하면 2 3 ( 2) (mod ). 을얻는다. 여기에양변에 를곱하면 ( )! (mod ) 이증명된다. 다음, ( )! (mod ) 를만족하면 는소수여야만함을증명하자. 이를위해소수가아니라고가정하자. 그러면 는 4 이상의합성수이다. l 을 의소수약수라고하자. 그러면 l < 이므로당연히 l ( )!. 또가정에의하여 l (( )! + ) 이므로 l 이성립해야하는데이는모순이다. 예 윌슨의정리의증명의핵심단계인 {2, 3,..., 2} 의모든원소들이각각자신의역원들과짝을완전히이루어나갈수있음을 = 7 일때확인하자 = (2 9) (3 6) (4 3) (5 7) (8 5) (0 2) (4 ) (mod 7).

36 2.2 중국인의나머지정리 29 SAGE 예 Sage 를이용하여 n, (n )! (mod n), (mod n) 으로구성된세쌍의표를만들어보자. 아래표에서첫번째열은 n, 두번째열은 (n )! (mod n), 세번째열은 (mod n) 이다. 첫번째열이소수인경우에만두번째와세번째열이같음을확인할수있다. (Sage 에서... 은여러줄로나타나는것을표시하는것으로점들을꼭타이핑할필요는없다.) sage: for n in range(,0):... rint n, Mod(factorial(n-), n), Mod(-, n) 중국인의나머지정리 이절에서는중국인의나머지정리로알려진연립일차합동식이해를가질조건을증명한다. 4 세기에살았던중국의한수학자가다음과같은질문을하였다. 질문 개씩으로나누면 2 개가남고, 5 개씩으로나누면세개가남고, 7 개씩으로나누면두개가남는다면이양은얼마나되는것인가? 중국인의이질문을현대수학으로표현하면다음세개의일차합동식 x 2 (mod 3) x 3 (mod 5) x 2 (mod 7) 을동시에만족하는양의정수를찾는것이다. 중국인의나머지정리 (Chinese Remainder Theorem) 는해가존재한다는것이고이해를찾는한가지방법을증명에서볼수있다. ( 필요한알고리듬은절 2.3 을참조 ) 정리 ( 중국인의나머지정리 ). a, b Z 이고 n, m N 은 gcd(n, m) = 이다. 그러면 x a (mod m), x b (mod n) 을만족하는정수해 x Z 가존재하고그정수해 x 는법 mn 에관해서유일하다.

37 30 2. 법 n 정수들의집합 증명다음방정식 a + tm b (mod n) 을만족하는정수해 t 를찾을수있다면 x = a + tm 은위의두합동식을만족함은쉽게확인할수있다. 그런데위식은양쪽에 a 를빼면 tm b a (mod n) 인데기초정리 2..3 와 gcd(n, m) = 이라는정리의가정을이용하면항상해를갖는다. 유일성을보이기위하여 x 와 y 가정리의연립합동식의해라고하자. 그러면 z = x y 는 z 0 (mod m) 와 z 0 (mod n) 를만족하므로 m z and n z 이다. gcd(n, m) = 이므로 nm z 을얻고따라서 x y (mod nm) 이성립한다. 알고리듬 ( 중국인의나머지정리 ). 서로소인두정수 m, n 과정수 a 와 b 를줄때 x a (mod m), x b (mod n) 를동시에만족하는 x 를구하는알고리듬이다.. [Extended GCD] 아래의 Algorithm 을사용하여 cm + dn = 를만족하는정수 c, d 를구한다. 2. [Answer] x = a + (b a)cm 를출력하고알고리듬을끝낸다. 증명 c Z 이므로, x a (mod m) 이고, 또 cm + dn = 을사용하면 a + (b a)cm a + (b a) b (mod n) 를얻는다. 이제질문 2.2. 에대한답을할수있다. 먼저, 정리 를이용하여다음두개의합동식 x 2 (mod 3), x 3 (mod 5) 의해를찾는다. a = 2, b = 3, m = 3, n = 5 라놓자. x 2 (mod 3) 의해는 x = 2 + 3t 이므로 단계는 t (mod 5) 의해 t 를찾는다. t = 2 가해이다. (a, b, m, n 으로표현하면 t m = b a (mod n)) 그러면 x = a + tm = = 8 이다. 또, x x (mod 5) 를만족하는모든 x 는위의두합동식의해가되므로, 다음두합동식 x 8 (mod 5), x 2 (mod 7) 의공통해를구하면처음에주어진세식의공통해를구하는것이된다. ( 여기서는 a = 8, b = 2, m = 5, n = 7 이므로 ) 한번더 t (mod 7) 의해 t = 를구하고 x = a + tm = = 23 를계산한다. 임의의 x x (mod 3 5 7) 도해가되므로다른해들도존재함을확인하자. 예를들어 = 28 은또다른해이다. SAGE 예 Sage 에서 CRT(a,b,m,n) 는 x a (mod m) 와 x b (mod n) 의공통해를계산한다.

38 2.2 중국인의 나머지 정리 3 sage: CRT(2,3, 3, 5) 8 세 개 이상의 연립 합동식은 CRT list를 이용한다. 이 절을 시작 문제 2.2. 는 다음 명령어로 얻을 수 있다. sage: CRT_list([2,3,2], [3,5,7]) 곱셈 함수 정의 2..8의 Euler ϕ-함수는 다음과 같다. ϕ(n) = #{a : a n and gcd(a, n) = }. 보조정리 m, n N이고 gcd(m, n) = 이라고 가정하자. 그러면 ψ(c) = (c mod m, c mod n) 로 정의한 함수 ψ : (Z/mnZ) (Z/mZ) (Z/nZ) (2.2.) 는 일대일 대응이다. 증명 먼저 ψ가 일대일 함수임을 보이자. 만약 ψ(c) = ψ(c0 )이면, m c c0 과 n c c0 이 성립한다. 가정에 의하여 gcd(n, m) = 이므로, nm c c0 가 성립한다. 따라서 (Z/mnZ) 의 원소로서 c = c0 이다. 이제 ψ가 전사임을 보이자. 즉, (Z/mZ) (Z/nZ) 의 모든 원소는 적당 한 c가 있어 ψ(c)로 표현됨을 보이면 된다. gcd(a, m) = 이고 gcd(b, n) = 인 a와 b가 주어지면, 중국인의 나머지 정리 2.2.2로부터 c a (mod m) 와 c b (mod n)를 만족하는 c가 존재한다. c nm이라고 가정할 수 있고, 또 gcd(a, m) =, gcd(b, n) = 이므로, 반드시 gcd(c, nm) = 이어야만 한다. 따라서 ψ(c) = (a, b)이다. 정의 (곱셈함수). 함수 f : N C가 gcd(m, n) = 인 두 자연수 m, n N에 대하여, f (mn) = f (m) f (n). 를 만족하면 곱셈함수(multilicative function)라고 한다. 기초정리 (곱셈함수 ϕ). 오일러 함수 ϕ는 곱셈함수이다. 증명 보조정리 2.2.5의 함수 ψ는 전단사 함수이므로 (2.2.)의 왼쪽 집합이 나 (2.2.)의 오른쪽 집합이나 같은 크기이다. 따라서 ϕ(mn) = ϕ(m) ϕ(n) 이 성립한다.

39 32 2. 법 n 정수들의 집합 이 기초정리는, 적어도 우리가 n을 소인수분해할 수 있다면, ϕ(n)을 계산 할 때 아주 유용하다. (n을 인수분해하는 것과 ϕ(n)의 값을 구하는 것과의 관계는 절 3.4.을 참고한다.) 예를 들어 ϕ(2) = ϕ(22 ) ϕ(3) = 2 2 = 4. 또 n 일 때, ϕ(n ) = n n = n n = n ( ) (2.2.2) 이 성립한다. 왜냐하면 n 보다 작은 수 중에서 와 서로 소가 아닌 수는 의 배수뿐이기 때문이다. 그러므로, 예를 든다면, ϕ(389 2 ) = 388 (2 ) = = 역원과 아주 큰 거듭제곱의 빠른 계산법 이 절에서는 합동식 ax (mod n)이 해를 가지는 것을 아는 경우에 해 를 구하는 방법과 am (mod n)의 효율적인 계산 방법을 살펴본다. 또 am (mod n)을 빨리 계산할 수 있는 우리의 능력에 의존하는 간단한 소수 판정 법에 대해 논한다. 이 세 가지 알고리듬은 모두 단원 3의 암호 알고리듬의 기본이 되는 중요한 알고리듬들이다 ax (mod n)의 풀이법 a, n N은 gcd(a, n) = 인 정수들이다. 그러면 기초정리 2..3에 의하 여 일차 합동식 ax (mod n)은 유일한 해를 가진다. 이 해를 구하는 방법은? 기초정리 2.3. (확장된 유클리드 표현). a, b Z이고 g = gcd(a, b)라고 하자. 그러면 ax + by = g. 를 만족하는 x, y Z가 존재한다. 참조 만약 e = cg이면 cax + cby = cg = e이므로, e = (cx)a + (cy)b 와 같이 e 역시 a와 b로 표현된다. 증명 [기초정리 2.3.의 증명] g = gcd(a, b)이면 gcd(a/g, b/g) = 이므로, 기초정리 2..5에 의하여, 합동식 b a x mod (2.3.) g g 은 해 x Z를 갖는다. 식 (2.3.)에 g를 곱하면 ax g (mod b)를 만족하 므로 b ( y) = ax g를 만족하는 y가 존재한다. 따라서 ax + by = g를 만족하는 x, y가 존재한다.

40 2.3 역원과아주큰거듭제곱의빠른계산법 33 기초정리 2.3. 의증명은, 법 n 에서일차합동식을푸는알고리듬을안다고가정하면, g = gcd(a, b) 일때 ax + by = g 를만족하는정수 x, y 를구체적으로찾을수있는방법을제시한다. 아직은그런알고리듬을모르므로 x 와 y 를구체적으로찾을수있는방법에대해이제부터알아보고자한다. 이알고리듬은사실법 n 일차합동식도풀수있게한다. gcd(a, n) = 일때 ax (mod n) 을풀려면, ax + ny = 을만족하는 x 와 y 를구하는알고리듬 를사용한다. 예 a = 5, b = 7 일때 gcd(5, 7) 를계산하는알고리듬..3 의각단계는다음과같다. 어떤수에는밑줄이쳐있는데 x 와 y 를구하기위하여아래식에서부터대입할때눈에띄게하기위해서이다. 7 = 이므로 2 = = 이므로 = = 5 2(7 5) = 오른쪽식은각단계에서의나머지를 a 와 b 의일차결합으로나타내기위한계산이다. 마지막단계에서 gcd(a, b) 를우리가원하는 a 와 b 의일차결합으로나타낸다. 예 앞의예보다는약간복잡한경우를계산해보자. a = 30, b = 6 으로놓으면 30 = = = = = = = = = 2 + = 을얻는다. 따라서 x = 23, y = 49 가 30x + 6y = 의해이다. 예 이예는바로앞의예 에서오른쪽의식을벡터로간단하게정리한것이다. 30 = = (, 2) 6 = = ( 7, 5) = (0, ) 7(, 2) 8 = = (8, 7) = (, 2) ( 7, 5) 5 = = ( 5, 32) = ( 7, 5) (8, 7) 3 = 2 + = (23, 49) = (8, 7) ( 5, 32) 각단계에서오른쪽의벡터는두단계앞의벡터에서한단계앞의벡터의적당한상수배를뺀것인데이상수는각단계에서의몫이다. 각단계에서오른쪽의벡터는두단계앞의벡터에서한단계앞의벡터에이줄에서얻은몫만큼의상수배를하여뺀것이다. SAGE 예 xgcd(a,b) 명령어는 a 와 b 의최대공약수 g 와 ax + by = g 를만족하는 x, y 를계산한다.

41 34 2. 법 n 정수들의집합 sage: xgcd(5,7) (, 3, -2) sage: xgcd(30,6) (, 23, -49) 알고리듬 ( 확장된유클리드알고리듬 ). a 와 b 가정수이고 g = gcd(a, b) 라고하자. 이알고리듬은 ax + by = g 인 g, x, 그리고 y 를계산한다. 항상 a > b 0 라고가정할수있으므로이경우에서이알고리듬의각단계를설명한다.. [ 시작 ] Set x =, y = 0, r = 0, s = 로놓는다. 2. [ 끝?] If b = 0 이면 g = a 이라놓고마친다. 3. [ 몫과나머지 ] 알고리듬..2 을이용하여 0 c < b 가되도록 a = qb + c 의형태로쓴다. 4. [ 바꾸기 ] (a, b, r, s, x, y) = (b, c, x qr, y qs, r, s) 라놓고단계 2 로간다. ( 이옮기는단계는예에멋지게예시되어있다.) 증명이알고리듬은, 우리가더많은변수 x, y, r, s 의값도계속추적한다는것을제외하고는, 알고리듬..3 와같으므로 d = gcd(a, b) 를주고끝난다. 이알고리듬의귀납적증명은생략한다. 관심있는독자들은 [27,.2.] 를참고하기바란다. 알고리듬 ( 법 n 역원 ). a 와 n 은정수이고 gcd(a, n) = 이라고가정하자. 그러면이알고리듬은 ax (mod n) 을만족하는 x 를찾는다.. [ 확장된 GCD 계산 ] 알고리듬 을이용하여 ax+ny = gcd(a, n) = 를만족하는정수 x, y 를계산한다. 2. [ 마침 ] x 를출력한다. 증명 ax + ny = 를법 n 으로축약하면 x 가 ax (mod n) 을만족한다. 예 x (mod 6) 를풀어라. 먼저알고리듬 을사용하여 7x + 6y = 를만족하는 x, y 를구한다 : 6 = = = = = = = = 따라서 ( 5) = 이므로 x = 8 이 7x (mod 6) 의해이다. SAGE 예 Sage 에서는위의알고리듬을구현하여법 n 역원을찾는다. 예를들어 sage: a = Mod(7, 6) sage: a^(-) 8

42 2.3.2 a m (mod n) 의계산 2.3 역원과아주큰거듭제곱의빠른계산법 35 a 와 n은정수이고 m은음수가아닌정수이다. 이절에서는 a m (mod n) 을계산하는효율적인알고리듬을설명한다. 단원 3에서암호론에응용할때는 m은몇백자릿수이다. a m (mod n) 을계산하는단순한접근은 a를계속곱하여법 n에관한나머지를계산하는것을계속하여 a m = a a a (mod n) 을계산하는것이다. 각연산마다법 n에관한나머지만을남기므로이계산중에너무큰수는나타나지않는다. 그럼에도불구하고이방법은 m번의곱셈을해야하므로 m이큰수일때는아주비효율적이다. m을이진법으로표현하여 a m 을여러 a 2i 꼴의곱으로표현하여훨씬효율적인알고리듬을얻을수있다. a 2i 는 a부터시작하여계속제곱함으로써얻을수있다. 이똑똑한알고리듬은간단하지는않지만전자의연산수가 m 인데비하여후자의연산수는 m의이진법표현의자릿수에비례하여커지므로훨씬효율적이다. 알고리듬 2.3. ( 이진법으로수쓰기 ). 이알고리듬은음수가아닌정수 m을이진법으로표현한다. 따라서이알고리듬은 ε i {0, } 이면서 m = r i=0 ε i2 i 이되는 ε i {0, } 를찾아낸다.. [ 시작 ] i = 0 으로놓는다. 2. [ 끝?] m = 0 이면마친다. 3. [ 자릿수값계산 ] m이홀수이면 ε i =, 짝수이면 ε i = 0로놓는다. i 를올린다. 4. [2로나누기 ] m = m 2 ( m/2인가장큰정수 ) 로놓고단계 2로간다. SAGE 예 Sage 를이용하여주어진수를이진법으로표현하는명령어는 str 이다. sage: 00.str(2) 0000 위의식은올바른이진법표현임을확인하도록. sage: 0*2^0 + 0*2^ + *2^2 + 0*2^3 + 0*2^4 + *2^5 + *2^6 00 알고리듬 ( 거듭제곱계산 ). a 는정수이고 n 은영이거나양의정수일때이알로리즘은법 m 에서 a m 을계산한다.. [ 이진수로표현 ] 알고리듬 2.3. 을이용하여 m 을다음과같이 a m = ε i= a2i (mod n) 이진법으로표현. 2. [ 거듭제곱계산 ] r + 이 m 의이진법자릿수라면, a, a 2, a 22 = (a 2 ) 2, a 23 = (a 22 ) 2,..., a 2r 을계산한다. 3. [ 거듭제곱곱하기 ] ε i = 인 a 2i 들을모두곱한다. 모든계산은항상법 n 계산이다.

43 36 2. 법 n 정수들의집합 예 (mod 00) 를계산함으로써 7 9 의마지막두자릿수를알수있다. gcd(7, 00) = 이므로, 정리 로부터 7 ϕ(00) (mod 00) 이다. ϕ 는곱셈함수이므로, ϕ(00) = ϕ( ) = (2 2 2) (5 2 5) = 40. 따라서 7 40 (mod 00) 이고 (mod 00). 이제위의알고리듬을이용하여 7 (mod 00) 을다음과같이계산한다. 먼저, 을 2 로계속나눈다. = = = = 따라서, () 2 = 0, 이며, 검산하면 = 다음, a, a 2, a 4, a 8 을계산하고 a 8 a 2 a 를출력한다. 그러면 a = 7 a 2 49 a a 8 2 (49 를제곱하는가장쉬운계산은법 4 와 25 로각각계산한다음중국인의나머지정리를이용하는것임을참고하길.) 그러면우리가원하는답은다음과같다 a 8 a 2 a (mod 00). SAGE 예 Sage 에서는위의알고리듬을실행시켜거듭제곱을구한다. 예를들어, sage: Mod(7,00)^9 43 물론 Sage 에서 7 9 을바로구할수도있다. 누구도이값을손으로직접계산하려고하지는않겠지만... sage: 7^

44 2.4 소수 테스트 소수 테스트 정리 보다 큰 정수 > 가 소수이기 위한 필요충분조건은 a 6 0 (mod )인 모든 정수 a가 a (mod ). 를 만족하는 것이다. 증명 가 소수이면 기초정리 2..22으로부터 필요조건이 따라온다. 가 합 성수이면 의 약수 a가 존재하고 2 a < 이다. 만약 a (mod ) 이라면 a 을 만족한다. a 이므로 a a 가 성립하고, 따라서 (ak = a 인 정수 k가 존재한다. a ak = 이므로 a(a 2 k) = 을 얻고 이 식은) a 을 유도하므로 2 a < 인 사실에 모순이다. n N이라고 하자. 그러면 정리 2.4.와 알고리듬 2.3.3을 이용하여 n이 소수가 아닌 것을 빠르게 증명하거나, 혹은 (n이 소수라고 빠르게 증명할 수는 없지만) 소수일 것 같다고 확신할 수는 있다. 예를 들어, 2n 6 (mod n)이면 n이 소수가 아님이 증명된다. 반면에 몇 개의 a에 대하여 an (mod n)이면 n이 소수일 수도 있다고 생각할 수 있을 뿐이다. 이런 수를 유사소수(seudorime)라고 부른다. 합성수 중에서 gcd(a, n) = 을 만족하는 모든 a에 대하여 an (mod n)을 만족하는 이런 놀라운 성질을 갖는 정수 n이 존재하는데 이런 수를 Carmichael 수라고 부른다. 첫 번째 Carmichael 수는 56이며, 이런 수들이 무한히 많음이 알려져 있다 [2]. 예 = 323는 소수인가? 2322 (mod 323)를 계산한다. 다음은 이 값을 위에서 설명한대로 알고리듬2.3.3으로 계산하기 위한 표이다. i m εi i 22 mod 따라서 (mod 323) 이므로 323은 소수가 아니다. 물론 이 계산은 323의 소인수 분해에 대한 어떤 정보도 주지 못한다. 사실 323 = 7 9임을 우리는 보일 수 있다.

45 38 2. 법 n 정수들의집합 SAGE 예 큰수의약수를찾지는못하면서합성수임은쉽게보일수있다. 예를들어 n = 은 2 n (mod n) 이므로 n 은합성수이다. sage: n = sage: Mod(2,n)^(n-) n 을인수분해하는데는훨씬더긴시간이소요된다. sage: factor(n) # takes u to a few seconds * 또다른실용적인소수판정법으로 Miller-Rabin test 가있는데, 이판정법을어떤수 n 에적용하면정확히소수가아니라고알려주거나, 혹은시행횟수에의존하는확률로소수일것이다고알려준다. 만약자연수 n 에 Miller-Rabin 판정을 m 번시행하여아마도소수일수도있다고나타난다면소수일확률을 n 과 m 에따라정확히표현할수있다. 우리는 Miller-Rabin 알고리듬을정확히기술은하겠지만이알고리듬에서확률에관한내용은증명하지않는다. 알고리듬 (Miller-Rabin 의소수판정 ). 5 보다크거나같은정수 n 5 에대하여이알고리듬은 true 혹은 false 를출력한다. true 를출력하면, n 은 아마도소수 (robably rime) 이고, false 를출력하면, n 는정확히합성수이다.. [2 의거듭제곱분할 ] n = 2 k m 을 2 의거듭제곱과홀수 m 의곱으로표현하는유일한 k 와 m 을계산한다. 2. [ 밑수선택 ] < a < n 인 a 를무작위로선택한다. 3. [ 홀수거듭제곱 ] b = a m (mod n) 로놓는다. b ± (mod n) 이면 true 를출력하고끝낸다. 4. [ 짝수거듭제곱들 ] r k 인임의의 r 에서 b 2r (mod n) 이면 true 를출력하고끝낸다. 그렇지않으면 false 를출력한다. n 에대한 Miller-Rabin 이 true 를출력하면, 한번더 Miller-Rabin 테스트를하고또 true 를출력하면 n 을소수라고잘못판정하는확률은감소한다. 증명이알고리듬이참임을보인다. 그러나어떻게합성수를소수라고주장할수있는지는전혀증명하지않는다. 우리는이알고리듬이 n 을합성수라고말하면 n 은합성수임을보여야만한다. 따라서 n 이소수인데이알고리듬이 n 을합성수라고판정했다고가정하자. 그러면 a m ± (mod n) 이고, 또모든 r k 인 r 에대해서 a 2rm (mod n) 을만족한다. n 이소수이고 2 k m = (n )/2 이므로, 기초정리 4.2. 로부터 a 2k m ± (mod n) 가성립하여, 우리의가정으로부터, a 2k m

46 2.4 소수테스트 39 (mod n) 을얻는다. 그러나그러면 (a 2k 2m ) 2 (mod n) 이므로, 기초정리 에의하여, a 2k 2m ± (mod n) 이성립한다 ( 기초정리 는이알고리듬의증명바로뒤에나오긴하지만지금증명과는독립적으로증명이되는것이므로이용가능함 ). 우리의가정을한번더적용하면 a 2k 2m (mod n) 이다. 이주장을귀납적으로되풀이하면 a m ± (mod n) 을얻는데이는 a 의조건에모순이다. 최근까지정수의자릿수에관한다항식시간안에하는임의의정수의소수판정알고리듬이존재하는지는알려져있지않았다. Agrawal, Kayal, and Saxena 이최근에다항식시간소수판정법을처음으로발견하였다 ([3]). 이책에서다룰암호알고리듬에대한응용으로는 Miller-Rabin 혹은유사소수판정법으로도충분하므로이들의알고리듬을여기서는더기술하지는않는다. 이알고리듬은 [47, Ch. 2] 에자세히설명되어있으니참고하기바란다. SAGE 예 Sage 에서 is rime 함수는주어진정수가소수인지아닌지를결정한다. sage: n = sage: is_rime(n) False is rime 함수를이용하여처음몇개의메르센소수표를만들어보자. ( 절.2.3 참조 ). sage: for in rimes(00):... if is_rime(2^ - ):... rint, 2^ Mersenne 수에대한특화된소수판정법이있다. 이판정법은 Lucas-Lehmer 판정법인데 2 이소수인지아닌지를거의바르게판정하는아주간단한판정법이다. 몇줄의명령어를실행하고 Lucas-Lehmer 판정법을사용하여두메르센수의소수여부를판정한다. sage: def is_rime_lucas_lehmer():... s = Mod(4, 2^ - )... for i in range(3, +):

47 40 2. 법 n 정수들의집합... s = s^ return s == 0 sage: # Check rimality of 2^994 - sage: is_rime_lucas_lehmer(994) True sage: # Check rimality of 2^next_rime(000)- sage: is_rime_lucas_lehmer(next_rime(000)) False 메르센소수에대하여더알고싶으면, htt:// 에서 the Great Internet Mersenne Prime Search (GIMPS) 과제를참고하기바란다. 2.5 (Z/Z) 의구조 이절은 가소수일때법 곱셈으로군이되는집합 (Z/Z) 의구조를다룬다. 핵심결과는, 군의용어를빌리면, 이군은순환군 (cyclic grou) 2 이라는것이다. 이결과는뒤에단원 4 에서이차상호법칙을증명할때 사용한다. 정의 2.5. ( 원시근 ). 법 n 의원시근 (rimitive root) 은위수가 ϕ(n) 인 (Z/nZ) 의원소이다. 모든소수 는원시근을가짐을보일것이다. (Z/Z) 은 개의원소를가짐으로, 원시근의존재는 (Z/Z) 이순환군임을유도한다. 만약 n 이홀수소수이면, 법 n 은원시근을갖는다 (Exercise 2.28 참조 ). 그러나 2 3 은원시근을갖지않고, 따라서 n 3 인 2 n 도원시근을갖지않는다 (Exercise 2.27 참조 ). 절 2.5. 은 (Z/Z) 이순환군임을보이는데아주결정적역할을한다. 여기서 의모든약수 d 에대하여 (Z/Z) 의원소중에서위수가 d 의약수인원소가정확히 d 개임을보인다. 그런후절 에있는이결과를이용하여, 소수의거듭제곱인 q r 이 을나누는가장큰거듭제곱일때, 위수가 q r 인 (Z/Z) 의원소를만들어낸다. 그리고이수들을모두곱하여위수가 인 (Z/Z) 의원소를얻는다. SAGE 예 Sage 코드 rimitive root 를이용하면법 n 의가장작은원시근을계산할수있다. 다음은 < 20 인법 의원시근이다. sage: for in rimes(20):... rint, rimitive_root() (Z/Z) 의모든원소가 g 의거듭제곱으로표현되는 g (Z/Z) 가존재할때순환군이라고하고 (Z/Z) = (g) 로표현. 이 g 가원시근이다.

48 2.5 (Z/Z) 의 구조 법 에 관한 다항식 다항식 x2 은 Z/8Z에서, 3, 5, 7 네 개의 해를 갖는다. 대조적으로 다음 기초정리는 차수가 d인 다항식은 체 안에서는 많아야 d 개의 해만을 가질수 있음을 보여준다. 기초정리 (다항식의 해의 개수). k는 체이고 f k[x]는 영이 아닌 다항식이다. 그러면 f (α) = 0을 만족하는 k의 원소 α k 많아야 deg(f ) 개 존재한다. 증명 deg(f )에 관한 귀납법으로 증명하자. deg(f ) 인 경우는 자명하다. 이제 f = an xn + a x + a0 로 쓰자. 만약 f (α) = 0이면, f (x) = f (x) f (α) = an (xn αn ) + + a (x α) + a0 ( ) = (x α)(an (xn + + αn ) + + a2 (x + α) + a ) = (x α)g(x) 로 쓸 수 있다. 이 때 g(x) k[x]이다. 다음, β 6= α이면서 f (β) = 0이라고 하자. 그러면, (β α)g(β) = 0인데, β α 6= 0이고 k는 체이므로, g(β) = 0 이 된다. 귀납적 가정에 의하여, g는 많아야 n 개의 해를 가지므로, 많아야 n 개의 β가 존재할 수 있다. 따라서 f 는 많아야 n 개의 해를 갖는다. SAGE 예 Sage를 이용하여 Z/3Z에 계수를 갖는 다항식의 해를 구하자. sage: sage: sage: [(2, sage: 0 R.<x> = PolynomialRing(Integers(3)) f = x^5 + f.roots() ), (0, ), (4, )] f(2) 해를 출력할 때 각 해에 중복도를 함께 출력한다. 위의 예에서는 모든 해의 중복도가 이다. 기초정리 는 소수이고 d는 의 약수이다. 그러면 f = xd (Z/Z)[x]는 Z/Z에서 정확히 d 개의 해를 갖는다.

49 42 2. 법 n 정수들의 집합 증명 e = ( )/d라 놓자. 그러면 x = (xd )e = (xd )((xd )e + (xd )e ) = (xd )g(x) 이다. 이 때 g (Z/Z)[x]이고 deg(g) = de d = d이다. 정리 로부터, x 은, 모든 Z/Z의 원소가 해이므로, Z/Z에서 정확히 개의 해를 갖는다. 기초정리 2.5.3에 의하여, g는 많아야 d 개의 해를, xd 은 많아야 d 개의 해를 갖는다. (xd )g(x)의 해는 xd 이나 g(x) 의 해야만 하고, x 은 정확히 개의 해를 가지므로, g는 정확히 d 개의 해를, 또 xd 도 정확히 d 개의 해를 가져야만 한다. SAGE 예 Sage를 이용하여 기초정리의 성질을 예시해보자. sage: sage: sage: [(, R.<x> = PolynomialRing(Integers(3)) f = x^6 + f.roots() ), (8, ), (7, ), (6, ), (5, ), (2, )] 이제 잠시 멈추어 소수 를 합성수 n으로 바꾸면 기초정리 2.5.5는 더 이 상 참이 아니라는 사실을 확인하자. 이유는 두 수의 곱이 법 n에서 0이라 하더라도 각각이 0이 될 필요가 없기 때문이다. 예를 들어 f = x2 = (x )(x + ) Z/5Z[x]는 4 개의 해, 4,, 4를 갖는다 원시근의 존재 절 2..2로부터 유한군의 원소 x의 위수(order)는 xm = 을 만족하는 가장 작은 양의 정수였다. 이 절에서는, 절 2.5.를 이용하여 의 소수 약수 d 에 대하여 위수가 d인 (Z/Z) 의 원소를 찾아 그들을 모두 곱하여 위수가 인 원소를 발견하여, (Z/Z) 가 순환군임을 보인다. 다음 보조정리를 이용하여 위수가 의 약수인 원소들을 조립하여 위수가 인 원소를 만들려고 한다. 보조정리 a, b (Z/nZ) 의 위수가 각각 r과 s이고 gcd(r, s) = 이라고 하자. 그러면 ab의 위수는 rs이다. 증명 이것은 임의의 군에서 서로 교환이 가능한 원소들에 대해 성립하는 일반적인 사실이다. 따라서 우리의 증명도 ab = ba인 사실만을 이용하고, (Z/nZ) 에만 성립하는 어떤 성질도 이용하지 않는다. (ab)rs = ars brs = 이므로, ab의 위수는 rs의 약수이다. 이 약수를 r s 로 쓰자. 이 때 물론 r r, s s이다. ar s br s = (ab)r s =

50 2.5 (Z/Z) 의구조 43 에 r 2 = r/r 거듭제곱을취한다. a rr2s = (a rr2 ) s = 이므로, a rr2s b rr2s =. b rr2s = 이성립한다. 따라서 s r r 2 s. 그런데 gcd(s, r r 2 ) = gcd(s, r) = 이므로, s = s 이어야만한다. 같은방법으로 r = r 을얻을수있으므로, ab 의위수는 rs 이다. 정리 ( 원시근 ). 가소수이면법 의원시근이존재한다. 특히, (Z/Z) 는순환군이다. 증명 = 2이면 이원시근이므로이정리는성립한다. 따라서 > 2라고가정한다. 를서로다른소수들의멱q ni i 의곱으로표현하면 = q n qn2 2 qnr r. 기초정리 2.5.5에의하여, 다항식 x qn i i 다항식 x qn i i 소중위수가 q ni i 은정확히 q ni i 인원소들의개수는 q ni i a Z/Z가그런원소라면 a qn i i 서 i =,..., r에대하여, 위수가 q ni i 보조정리 2.5.7를계속적용하면 은정확히 q ni i 개의해를갖고, 개의해를갖는다. 따라서 Z/Z의원 q ni i = q ni i (q i ) 개이다. = 이지만 a qn i i 을만족한다. 따라인원소 a i 를선택할수있다. 이제 a = a a 2 a r 는위수가 q n qnr r = 가된다. 따라서 a 는법 의원시근이다. 예 = 3 을가지고정리 의증명을설명한다. = 2 = 다항식 x 4 의해는 {, 5, 8, 2} 이고, x 2 의해는 {, 2} 이므로 a = 5 로잡자. 다항식 x 3 의해는 {, 3, 9} 이므로 a 2 = 3 으로잡을수있다. 그러면 a = 5 3 = 5 2 가원시근이다. 확인하기위하여, 2 (mod 3) 의거듭제곱들을다계산해보면다음과같다. 2, 4, 8, 3, 6, 2,, 9, 5, 0, 7,. 예 정리 는 가 4 가아닌 2 의거듭제곱이면성립하지않는다. 예를들어, (Z/8Z) 의 이아닌모든원소의위수는 2 이지만, ϕ(8) = 4 이다. 정리 2.5. ( 법 n 의원시근 ). 홀수소수의거듭제곱 n 은원시근을갖는다.

51 2. 법 n 정수들의 집합 44 증명은 Exercise 2.28이다. 기초정리 (원시근의 개수). 법 n이 원시근을 가지면, 법 n은 정확히 ϕ(ϕ(n)) 개의 원시근을 갖는다. 증명 법 n의 원시근은 (Z/nZ) 의 생성원이다. 가정에 의하여 (Z/nZ) 은 위수가 ϕ(n)인 순환군이고, 원시근이 곧 순환군의 생성원이다. 따라서 원시근의 개수는 순환군의 생성원의 개수와 같다. 그런데 위수가 r인 순환 군 hgi의 원소 g k 의 위수가 r일 필요충분조건은 gcd(k, r) = 이므로 그런 k r의 개수는 ϕ(r)이다. 따라서, (Z/nZ) 은 위수가 ϕ(n)이므로, ϕ(ϕ(n)) 개의 원시근이 존재한다. 예 법 7은 ϕ(ϕ(7)) = ϕ(6) = = 8개의 원시근을 갖는다. 모두 찾아보면, 3, 5, 6, 7, 0,, 2, 4이다. 법 9는 ϕ(ϕ(9)) = ϕ(6) = 2개의 원시근을 갖는데, 2와 5가 법 9의 원시근이다. 앞에서 확인하였듯이 8의 원시근은 없다 Artin의 가설 가설 (Emil Artin). 정수 a Z는 도 아니고 제곱수도 아니라고 하자. 그러면 a가 원시근이 되는 소수 는 무한히 많다. Artin의 가설을 만족하는 한 개의 a도 아직까지는 알려져 있지 않다. 임의의 정수 a에 대하여 Pieter[37]는 a의 위수가 의 가장 큰 소수 약 수에 의해 나누어지는 소수 는 무한히 많이 존재한다는 것은 증명하였다. Hooley[22]는 소위 일반적인 리만 가설이라고 불리워지는 가설이 Artin의 추론 2.5.4을 유도한다는 것을 보였다. 참조 Artin의 가설을 좀 더 정확히 설명하면 a가 법 의 원시근이 되는 x 이하의 소수 들의 개수를 N (x, a)라고 하면, a에만 의존하는 양의 상수 C(a)가 존재하여 N (x, a)는 C(a)π(x)에 가까워진다는 것이다 원시근의 계산 정리 2.5.8는 원시근을 계산하는 효과적인 알고리듬을 제시하지는 않는다. 법 의 원시근을 실제 계산하기 위해서는, 가 정해지면 a = 2가 원시근이 되는지 거듭제곱을 계산해본다. 실패하면 a = 3으로 놓고 같은 계산을 반 복하는데, 위수가 인 a를 찾을 때 까지 이런 계산을 반복한다. (Z/Z) 의 원소의 위수의 계산에는 의 인수분해가 필요한데, 일반적으로 빠른 인수분해 방법은 알려져 있지않다. 따라서 큰 소수 의 원시근을 찾는 일은 어려운 문제처럼 보인다. 알고리듬 (원시근). 소수 를 주면 이 알고리듬은 가장 작은 의 원시근을 찾아준다.. [ = 2?] 만약 = 2이면 를 출력하고 끝난다. 그렇지 않으면 a = 2 로 놓는다.

52 2.6 Exercises [ 소수약수들찾기 ] 의소수약수,..., r 을계산한다. 3. [ 생성원?] 만약모든 i 에대하여, a ( )/i (mod ) 이면, a 는 (Z/Z) 를생성한다. 따라서 a 를출력하고끝난다. 4. [ 다음수확인 ] a = a + 로놓고 Ste 3 으로간다. 증명 a (Z/Z) 라고하자. 군 (Z/Z) 의위수가 이므로 a 의위수 d 는 의약수이다. d = ( )/n (n 은 의약수 ) 라쓰자. 만약 a 가 (Z/Z) 의생성원이아니라면, < n ( ) 이므로, i n 인 의소수약수 i 가존재한다. 그러면 a ( )/i = (a ( )/n ) n/i (mod ) 가성립한다. 역으로, a가생성원이라면, 의모든소수약수 i 에대해 a ( )/i (mod ) 이다. 따라서이알고리듬은 Ste 3에서끝나기위한필요충분조건은 a가원시근이다. 정리 2.5.8에의하여, 적어도한개의원시근은존재하므로이알고리듬은유한단계에서끝난다. 2.6 Exercises 2. Prove that for any ositive integer n, the set (Z/nZ) under multilication modulo n is a grou. 2.2 Comute the following gcd s using Algorithm..3: gcd(5, 35) gcd(247, 299) gcd(5, 897) gcd(36, 304) 2.3 Use Algorithm to find x, y Z such that 226x + 275y = Prove that if a and b are integers and is a rime, then (a + b) a + b (mod ). You may assume that the binomial coefficient is an integer.! r!( r)! 2.5 (a) Prove that if x, y is a solution to ax+by = d, with d = gcd(a, b), then for all c Z, x = x + c b d, is also a solution to ax + by = d. y = y c a d (b) Find two distinct solutions to 226x + 275y = 7. (c) Prove that all solutions are of the form (2.6.) for some c. (2.6.)

53 46 2. 법 n 정수들의집합 2.6 Let f(x) = x 2 + ax + b Z[x] be a quadratic olynomial with integer coefficients, for examle, f(x) = x 2 + x + 6. Formulate a conjecture about when the set {f(n) : n Z and f(n) is rime} is infinite. Give numerical evidence that suorts your conjecture. 2.7 Find four comlete sets of residues modulo 7, where the ith set satisfies the ith condition: () nonnegative, (2) odd, (3) even, (4) rime. 2.8 Find rules in the sirit of Proosition 2..9 for divisibility of an integer by 5, 9, and, and rove each of these rules using arithmetic modulo a suitable n. 2.9 (*) (The following roblem is from the 998 Putnam Cometition.) Define a sequence of decimal integers a n as follows: a = 0, a 2 =, and a n+2 is obtained by writing the digits of a n+ immediately followed by those of a n. For examle, a 3 = 0, a 4 = 0, and a 5 = 00. Determine the n such that a n is a multile of, as follows: (a) Find the smallest integer n > such that a n is divisible by. (b) Prove that a n is divisible by if and only if n (mod 6). 2.0 Find an integer x such that 37x (mod 0). 2. What is the order of 2 modulo 7? 2.2 Let be a rime. Prove that Z/Z is a field. 2.3 Find an x Z such that x 4 (mod 7) and x 3 (mod 23). 2.4 Prove that if n > 4 is comosite then (n )! 0 (mod n). 2.5 For what values of n is ϕ(n) odd? 2.6 (a) Prove that ϕ is multilicative as follows. Suose m, n are ositive integers and gcd(m, n) =. Show that the natural ma ψ : Z/mnZ Z/mZ Z/nZ is an injective homomorhism of rings, hence bijective by counting, then look at unit grous. (b) Prove conversely that if gcd(m, n) >, then the natural ma ψ : Z/mnZ Z/mZ Z/nZ is not an isomorhism.

54 2.6 Exercises Seven cometitive math students try to share a huge hoard of stolen math books equally between themselves. Unfortunately, six books are left over, and in the fight over them, one math student is exelled. The remaining six math students, still unable to share the math books equally since two are left over, again fight, and another is exelled. When the remaining five share the books, one book is left over, and it is only after yet another math student is exelled that an equal sharing is ossible. What is the minimum number of books that allows this to haen? 2.8 Show that if is a ositive integer such that both and are rime, then = Let ϕ : N N be the Euler ϕ function. (a) Find all natural numbers n such that ϕ(n) =. (b) Do there exist natural numbers m and n such that ϕ(mn) ϕ(m) ϕ(n)? 2.20 Find a formula for ϕ(n) directly in terms of the rime factorization of n. 2.2 (a) Prove that if ϕ : G H is a grou homomorhism, then ker(ϕ) is a subgrou of G. (b) Prove that ker(ϕ) is normal, i.e., if a G and b ker(ϕ), then a ba ker(ϕ) Is the set Z/5Z = {0,, 2, 3, 4} with binary oeration multilication modulo 5 a grou? 2.23 Find all four solutions to the equation x 2 0 (mod 35) Prove that for any ositive integer n the fraction (2n + )/(30n + 2) is in reduced form Suose a and b are ositive integers. (a) Prove that gcd(2 a, 2 b ) = 2 gcd(a,b). (b) Does it matter if 2 is relaced by an arbitrary rime? (c) What if 2 is relaced by an arbitrary ositive integer n? 2.26 For every ositive integer b, show that there exists a ositive integer n such that the olynomial x 2 (Z/nZ)[x] has at least b roots (a) Prove that there is no rimitive root modulo 2 n for any n 3.

55 48 2. 법 n 정수들의집합 (b) (*) Prove that (Z/2 n Z) is generated by and Let be an odd rime. (a) (*) Prove that there is a rimitive root modulo 2. (Hint: Use that if a, b have orders n, m, with gcd(n, m) =, then ab has order nm.) (b) Prove that for any n, there is a rimitive root modulo n. (c) Exlicitly find a rimitive root modulo (*) In terms of the rime factorization of n, characterize the integers n such that there is a rimitive root modulo n Comute the last two digits of Find the integer a such that 0 a < 3 and a 37 (mod 3) Find the roortion of rimes < 000 such that 2 is a rimitive root modulo Find a rime such that the smallest rimitive root modulo is 37.

56 3 공개키암호 (Public-key Crytograhy) This is age 49 Printer: Oaque this 970 년대에정수론을바탕으로개발된기술덕분에제 3 자가중간에내용을모두가로채읽는다하더라도비밀통신이가능한시대가처음으로도래하였다. 그리고이아이디어는오늘날에도여전히유효하다. 사실우리가온라인쇼핑을할때마다법 n 정수들의환에서작동하는이시스템을이용한다. 이단원은여러가지그런시스템에대한이야기이다. 3. 불놀이 나는최근에 Section One 이라고불리는음울한반테러비밀기관의첩보원이될수밖에없었던 Nikita 라는이름을가진여성에관한 La Femme Nikita 라는텔레비젼쇼를시청하였다. 이쇼에서 Nikita 는동료첩보원 Michael 에대하여강한감정을가지고있고, 폭발전문가인 Section One 의 Walter 를가장신뢰한다. 가끔은 Section One 안에있는그녀의상관과동료들이 Nikita 의최악의적이기도하다. 다음은 3 부의에피소드개요이다. 불장난 중무장한테러단체의베이스캠프로부터폭발칩을제거하기위한특명을수행중에 Nikita 는인질이된다. 적어도그렇게보인다. 사실 Michael 와 Nikita 는비밀리에만나기위하여함께시나리오를만들었다. 이계략은작동하지만 Section One 의전문해커인 Birkoff 가 Michael 과 Nikita 가 Walter 의도움으로주고받은암호통신문을우연히발견하고 Madeline 에게말할수밖에없는상황이된다. Section One 과 Madeline 은 Michael

57 50 3. 공개키 암호 FIGURE 3.. Diffie and Hellman (hotos from [?]) 와 Nikita가 배신 할 수도 있다고 의심하면서 이들의 비밀 만남 을 추적하기 위하여...필요하다면 그 들을 죽일 수도 있는... 두 번 째 팀을 만든다. Walter는 어떤 종류의 암호를 그들이 사용하도록 도왔을까? 내가 자유 롭게 상상한 후 떠 오른 것은 Nikita가 베이스 캠프에서 인질로 잡혀을 때 납치범의 전화기를 얻어 그녀에게 어떤 일이 일어났는지를 동료들이 알아 낼 수 있도록 전화기를 이용했을 것 같다는 것이다. 모두가 열심히 그녀의 전화를 듣고 있다. 참조 3... 이 책에서는 정수를 무작위로 선택하는 (난수 생성) 방법을 (여러분들이) 이용할 수 있다고 가정한다. 실제 이 방법은 존재하고 흥미 롭지만 이 책에서는 다루지 않는다. [28, Ch. 3]를 참고한다. Nikita는 엿듣는 사람이 있을 때에도 비밀키를 정할 수 있다는 DiffieHellman key exchange 라는 공개키 암호에 관한 Walter와의 대화를 기억해 낸다. 게다가 Walter는 비록 Diffie-Hellman이 최초의 공개키 암호지만 오늘 날도 여전히 사용되고 있다고 언급하였다 (예를 들어, OenSSH 프로토콜 버전 2에서, htt:// 참조). 니키타는 그녀의 휴대용 컴퓨터와 휴대 전화를 꺼내서 Michael을 호출 하고, 오류가 있는 다음 과정을 수행한다. (독자들은 읽으면서 무엇이 틀 렸는지 찾아보기 바란다.). 두 사람은 함께 큰 소수 와 < g < 를 만족하는 정수 g를 선택한다. 2. Nikita는 비밀리에 정수 n을 선택한다. 3. Michael도 비밀리에 정수 m을 선택한다. 4. Nikita는 Michael에게 ng (mod )를 말한다. 5. Michael은 Nikita에게 mg (mod )를 말한다.

58 3.2 Diffie-Hellman 의열쇠교환 5 6. 비밀키는 s = nmg (mod ) 인데이수는 Nikita 와 Michael 모두쉽게계산할수있다. 다음예는 Nikita 와 Michael 이한일들을작은수를가지고예시한것이다. ( 실제그들은훨씬더큰수를사용하였다.). = 97, g = 5 2. n = 3 3. m = ng 58 (mod 97) 5. mg 87 (mod 97) 6. s = nmg = 78 (mod 97) 그런데모두가쉽게 s 를알아낼수있어 Nikita 와 Michael 는들키고만다.. 모든사람들은, g, ng (mod ), 그리고 mg (mod ) 를알고있다. 2. gcd(g, ) = 이기때문에, 알고리듬 이용하면, 누구든지 ag + b = 인두정수 a, b Z 를찾을수있다. 3. 그러면 ang n (mod ) 이므로, a 와 ng 를알고있으면 Nikita 의비밀키인 n 을계산할수있고, 따라서두사람의공동키인 s 를구할수있다. Nikita 를조롱하려고 Nikita 의납치범은 Diffie 와 Hellman 의 976 논문인 New Directions in Crytograhy [6] 의평론의일부를보여준다 : 저자들은통신이론의최신결과를논한다. 첫번째방법의특징은불법으로정보를도청하더라도계산적으로해독이거의불가능하며이시스템을실행하기위한두세가지기술을제안하고있다. 그러나평론가들은확신을하지못한다. 3.2 Diffie-Hellman 의열쇠교환 니키타의방에도어둠이몰려올때, 니키타는어떤일들이일어났는지를다시생각한다. 그리고잘못기억한것을떠올리고미카엘에게전화를걸어두사람은다음과같은작업을한다.. Michael 과 Nikita 는함께소수일것같은 200- 자릿수의정수 를선택하고, 또 과 사이의정수 g 를선택한다. 2. Nikita 는정수 n 을선택하고혼자만기억한다.

59 52 3. 공개키암호 3. Michael 는정수 m 을선택하고혼자만기억한다. 4. Nikita 는그녀의컴퓨터에서 g n (mod ) 을계산하여그값을 Michael 에게전화로알려준다. 5. Michael 은 Nikita 에게 g m (mod ) 을알려준다. 6. 이두사람의암호키는 s (g n ) m (g m ) n g nm (mod ), 이며, 이값은두사람만이계산할수있다. 다음은두사람이한작업을상대적으로간단한계산으로보여주는예이다.. = 97, g = 5 2. n = 3 3. m = g n 7 (mod ) 5. g m 39 (mod ) 6. s (g n ) m 4 (mod ) 3.2. 이산로그문제 이제 Nikita 는 Michael 과모든대화를 ( 예를들어 AES, Arcfour, Cast28, 3DES, 혹은 Blowfish 와같은표준대칭암호를사용하여 ) 두사람의비밀키를이용하여암호화하여통신한다. 그들의대화를해독하려면도청자는 s 를알아야한다. 그러나알려진정보, g, g n 과 g m 로부터 s 를계산하는것는아주시간이많이걸리는작업이다. 한방법은 g 와 g n 으로부터 n 을구하는것인데현재로는 계산적으로실행불가능 한것으로알려져있다. 계산적으로실행불가능 하다는것은계산하는데시간이너무오래걸려실용적이지못하다는의미이다. a, b 는양의실수이고 n 은실수일때밑수가 b 인 log 함수는 log b (a) = n a = b n. 로정의되었음을기억하자. 대수학에서 log b 함수는 a = b n 을만족하는지수 n 을구하기위한함수이다. 즉, a = b n 과 b 가주어졌을때 n = log b (a) 이다.

60 3.2 Diffie-Hellman 의열쇠교환 53 SAGE 예 a = 9683 는 b = 3 의 n 번거듭제곱이다. 즉, 3 n = 그러면 n = log 3 (9683) = log(9683)/ log(3) = 9 이다. 이값은 Sage 에서쉽게구할수있다. sage: log(9683.0) sage: log(3.0) sage: log(9683.0) / log(3.0) Sage 는모든 x 에대하여 log(x) 의근사값을 ( 적어도어떤 x 범위에서는 ) 빨리수렴하는적절한무한급수를이용하여빨리구할수있다. 이산로그문제 (discrete log roblem) 는 log b (a) 를계산하는것과유사하지만여기서 b 와 a 가유한군의원소이다. 문제 ( 이산로그문제 ). 집합 G 는예를들어 (Z/Z) 와같은유한군이다. b G 이고 a 가 b 의거듭제곱일때, b n = a 을만족하는양의정수 n 을구하여라. 우리가아는한 가상당히큰소수일때 (Z/Z) 에서의이산로그문제는실제로아주어려운문제이다. 오랫동안많은사람들이큰동기를부여받아해결하려고노력하였다. 예를들어만약니키타의납치범이 문제를효율적으로풀었더라면그들은니키타와미카엘의통신내용을읽을수있었을것이다. 불행히도현재우리가사용하는컴퓨터에서이산로그문제가아주어렵다는것은증명되지는않았다. 또 Peter Shor 는 [46] 에서우리가충분히복잡한양자컴퓨터를만들수만있다면이산로그문제가 #G 의자릿수의다항식함수로주어지는시간안에풀릴수있음을보였다. 이산로그문제의비효율적인알고리듬을주는것은쉽다. 그냥 b n = a 가나올때까지 b, b 2, b 3 등을계속계산하는것이다. 예를들어 a = 8, b = 5, = 23 이라고가정하고 b = 5, b 2 = 2, b 3 = 0,..., b 2 = 8, 을계산하여 n = 2 를찾는것이다. 그러나 가아주큰경우이런방법으로이산로그문제를푸는것은실용적이지않다. 왜냐하면숫자가커지면계산하는데어마아마하게긴시간이필요하기때문이다. SAGE 예 아마도이산로그계산이어려운이유중의일부는실수에서의로그함수는연속인데법 n 에관한로그는임의로값이큰폭으로달라진다는점일수있다. 이색다른현상을그림 3.2 에서관찰하자. 다음코드는그림을연속적으로그린다. sage: lot(log, 0.,0, rgbcolor=(0,0,))

61 3. 공개키 암호 FIGURE 3.2. Grahs of the continuous log and of the discrete log modulo 53. Which icture looks easier to redict? 이번은 비연속적인 그림을 그린다. sage: sage: sage: sage: sage: sage: sage: R a v G H G = = = = = = + 53 Integers() R.multilicative_generator() sorted([(a^n, n) for n in range(-)]) lot(oint(v,ointsize=50,rgbcolor=(0,0,))) lot(line(v,rgbcolor=(0.5,0.5,0.5))) H 현실적인 Diffie-Hellman 키 교환의 예 이 절에서는 더 큰 수를 사용하는 예를 제시한다. 먼저 우리는 (Z/Z) 에서 위수가 이 되는 원소 g를 찾기 쉬운 소수 를 선택할 수 있다는 기초정 리를 증명한다. 이미 2.5절에서 모든 소수 는 법 의 원시근이 존재한다는 것을 증명하였고 그런 원시근을 찾는 알고리듬도 공부하였다. 아래 기초 정리 3.2.4의 중요성은 가 큰 수일 때, 의 인수분해를 요구하지 않기 때문에, 실제 사용하기 더 적절한 원시근을 찾아주는 방법을 제시한다는 것이다. 물론 Diffie-Hellman을 위해서라면 g가 원시근일 필요는 없으므로 임의로 선택하여도 무방하다. 기초정리 는 소수이고 또 ( )/2도 소수라고 하자. 그러면 (Z/Z) 의 각각의 원소는 위수가, 2, ( )/2, 혹은 이다. 증명 는 소수이므로 (Z/Z) 는 위수가 인 군이다. 가정에 의하여 은 2 (( )/2)로 소인수분해가 된다. a (Z/Z) 이면 정리 에 의하여 a = 이 되고, 이로부터 a의 위수는 의 약수이다. 2와 ( )/2이 의 소수 약수이므로, a의 위수는, 2, ( )/2, 혹은 이다. 법이 소수 일 때 ( )/2이 소수가 되면 위수가 인 원소를 다음과 같이 찾을 수 있다. 먼저 2의 위수를 확인한다. 2의 위수가 이면 2가

62 3.2 Diffie-Hellman 의열쇠교환 55 우리가원하는것이다. 2 가아니라면, 2 의위수는 이나 2 는결코아니므로 2 의위수는 ( )/2 이고따라서 2 의위수가 이된다. = 라놓자. 그러면 는소수이지만 ( )/2 은소수가아니다. 따라서 에 2 를계속더하면서절 2.4 에있는유사소수판정을계속하여 다음의유사소수를찾는다. q = 는유사소수이고 (q )/2 도유사소수이다. 이제, q 가진짜소수라고가정한다면, 2 의위수가 (q )/2 임을확인하여 g = 2 가법 q 에관하여위수가 q 임을안다. Nikita 와 Michae 가생성한비밀키는각각 이고 이다. 따라서 Nikita 는 n = m = g n = (Z/qZ) 을 Michael 에게보내고, 그리고 Michael 은 g m = (Z/qZ) 을 Nikita 에게각각보낸다. 그들이함께공유한비밀키는 이다. g nm = (Z/qZ) SAGE 예 Sage 를이용하여위에서설명한계산을수행한예시이다. sage: q = sage: q.is_rime() True sage: is_rime((q-)//2) True sage: g = Mod(-2, q) sage: g.multilicative_order() sage: n = sage: m = sage: g^n sage: g^m sage: (g^n)^m sage: (g^m)^n

63 56 3. 공개키암호 중간공격수 두사람의첫번째시스템이실패하였으므로전화기로통화하는대신 Michael 과 Nikita 는문자로만통신할수있다. 납치자중한사람인 The Man 이이들의문자통신을모두지켜본다. 그뿐만아니라문자를중간에가로채어다른문자를보낸다. Nikita 가 Michael 에게 g n (mod ) 을문자할때 The Man 은이문자를가로챈후자신의수인 g t (mod ) 를 Michael 에게보낸다. 결론적으로 Michael 과 The Man 은 g tm (mod ) 이라는비밀키를공유하게되고 Nikita 와 The Man 은 g tn (mod ) 이라는비밀키를공유하게된다. Nikita 가 Michael 에게문자를보낼때비밀키 g tn (mod ) 을이용하게되고, The Man 은이를가로채복호화하고내용을바꾼후 g tm (mod ) 을사용하여바꾼내용을다시암호화하여 Michael 에게보낸다. 이제 The Man 은 Michael 과 Nikita 사이의모든문자를읽을수있고심지어내용까지바꿀수있는나쁜경우가된다. 이공격을피할수있는한가지방법은 RSA 암호를바탕으로한전자서명 scheme 을사용하는것이다. 전자서명에대해서는이책에서더이상논하지는않을것이지만 RSA 는다음절에서논하려고한다. 3.3 RSA 암호 Diffie-Hellman 의키교환에는단점이있다. 절 에서논하였듯이, 중간에있는도청자에의해영향을받을수있다. 이절에서는 Diffie-Hellman 의대안으로 Rivest, Shamir, 그리고 Adleman 의 RSA 공개키암호를소개한다 [43]. RSA 공개키암호는사용하기에좀더적절하다고알려져있다. 먼저 RSA 암호를설명하고, 이암호를공격할여러방법에대해논한다. RSA 암호를사용하면서어리석은실수를하지않기위해서는이암호의여러약점들을알고있어야한다. 그러나이책에서는 RSA 나다른암호들의특정한실행에대한가능한공격들에대해서는거의다루지못하였다 RSA 작동원리 RSA 의기본아이디어는어떤집합 X 에 tra-door 혹은일방향함수 (oneway function) 을만드는것이다. 이함수 E : X X 는가역함수인데역함수 E 를 Nikita는쉽게계산할수있으나나머지사람들은계산하기가아주어려운함수이다. Nikita가법 n에관한정수들의집합에일방향함수 E를어떻게만드는지를여기에설명한다 절에암시한방법을사용하여, Nikita 는두개의큰소수 와 q 를선택하고, n = q 로놓는다.

64 3.3 RSA 암호 그러면 Nikita는 쉽게 ϕ(n)을 계산한다: ϕ(n) = ϕ() ϕ(q) = ( ) (q ). 3. 다음 Nikita는 < e < ϕ(n)와 gcd(e, ϕ(n)) = 를 만족하는 정수 e를 무작위로 선택한다. 4. Nikita는 절 2.3.2의 알고리듬을 사용하여 ex (mod ϕ(n)). 의 해 x = d를 찾는다. 5. 마지막으로 Nikita는 함수 E : Z/nZ Z/nZ를 E(x) = xe Z/nZ. 로 정의한다. 누구든 절 2.3.2의 거듭제곱알고리듬을 이용하면 E를 상당히 빨리 계 산할 수 있다. Nikita의 공개키(ublic key)는 두 정수쌍 (n, e)이며, 이는 사람들이 E를 쉽게 계산하기 위하여 꼭 필요한 정보이다. Nikita는 ed (mod ϕ(n))을 만족하는 d를 알고 있으므로, 곧 우리도 확인하겠지만, E 을 쉽게 계산할 수 있다. Nikita에게 평문을 보내기 위해서는 다음과 같이 진행한다. 평문을 법 n 에 관한 정수들의 수열 (절 참조) m,..., mr Z/nZ, 으로 코딩한 후 E(m ),..., E(mr ) 을 Nikita에게 보낸다. (E(m) = me (m Z/nZ)임을 상기하도록.) Nikita는 E(mi )를 받아 E (m) = md 와 기초정리 3.3.로 부터 유도된 사실을 이용하여 mi 를 구한다. 기초정리 3.3. (복호키(Decrytion Key)). n은 서로 다른 소수들의 곱이 고, 정수 d, e N는 n인 소수 에 대하여 de 을 만족하는 정수이다. 그러면 모든 a Z에 대하여 ade a (mod n)이 성립한다. 증명 n ade a는 n인 모든 소수 가 ade a인 것과 동치이므로 n의 모든 소수 약수 에 대하여 ade a (mod )임을 보이면 충분하다. gcd(a, ) 6= 이면 a 0 (mod )이므로 ade a = 0 (mod )가 성립한 다. gcd(a, ) = 이면 정리 2..20에 의해 a (mod )가 성립한다. de 이므로 ade (mod )도 성립한다. 양변을 a로 곱하면 ade a (mod )이다.

65 58 3. 공개키암호 따라서 E(m i ) 를복호화하기위하여 Nikita 는다음을계산한다. E(m i ) d = (m e i ) d = m i. SAGE 예 Sage 를이용하여 RSA 암호를실행한다. rsa 함수는 bit 를정해주면 ( 최대 ) 그 bit 가되는키를만든다. 즉, bits 가 20 이면 n = q 인키를생성하는데이수의크기는약 2 20 정도이다. 실제사용되는 RSA 키의크기는 52, 024, 혹은 2048 bit 이다. Sage 를이용하여큰키들을생성해보고시간이얼마나걸리는지확인해보자. ( 다음은 Sage 에 RSA 키와암호화, 복호화함수를정의하는방법을알려주고있다. 예를들어 rsa(20) 을입력후계산하면 (777, 3753, 3369) 를출력한다. 암호화연습도해보길바란다.) sage: def rsa(bits):... # only rove correctness u to 024 bits... roof = (bits <= 024)... = next_rime(zz.random_element(2**(bits//2 +)),... roof=roof)... q = next_rime(zz.random_element(2**(bits//2 +)),... roof=roof)... n = * q... hi_n = (-) * (q-)... while True:... e = ZZ.random_element(,hi_n)... if gcd(e,hi_n) == : break... d = lift(mod(e,hi_n)^(-))... return e, d, n... sage: def encryt(m,e,n):... return lift(mod(m,n)^e)... sage: def decryt(c,d,n):... return lift(mod(c,n)^d)... sage: e,d,n = rsa(20) sage: c = encryt(23, e, n) sage: decryt(c, d, n) 문장을숫자로코딩하기 RSA 암호를사용하여평문을암호문으로만들기위하여먼저평문을 n = q 보다작은수들의열로코딩 ( 부호화하는것이 ) 하는것이필요하다. 지금이방법을간단히설명하려한다. 모든실제구현에서는여분의무작위로선택한기호 ( 마치음식의소금같은역할을해서 salt 라고칭함 ) 를모든

66 3.3 RSA 암호 59 평문의각단위 (block) 의제일앞에더하여똑같은평문이라도암호화할때마다새로운암호문이나오도록한다. 이방법은선택한평문의공격을막는데도움이된다. 이제 s 가알파벳대문자와여백 (sace) 의수열이고여백으로시작하지않는다고가정하자. 그러면여백은 0, A 는, B 는 2, 그리고 Z 는 26 으로바꾸어 s 를 27 진법의수로코딩한다. 그러면 RUN NIKITA 는 27 진법의다음수로표현된다. RUN NIKITA = (in decimal). 이숫자로부터원래의문장을찾으려면 27 로계속나누어나머지에해당하는글자들로바꾸어읽으면된다 = A = T = I = K = I = N = = N 507 = U 8 = R 만약 27 k n이면 k개의글자들은위의예시한것처럼한번에코딩한다. 따라서만약 n이하인정수들을암호화할수있다면우리의평문을크기가최대 log 27 (n) 가되도록블록 (block) 들로나누어야만한다. SAGE 예 앞서 Sage 를이용하여평문과숫자사이의전환을구현하기위하여밑수를 27 로잡았다. 이는실제구현할때와비교하면마치장난감놀이같은예이다. 컴퓨터에서입력평문 s 는 ASCII 라불리는형식으로저장되고각글짜 (letter) 는 0 과 255 사이의정수와대응된다. 이정수는명령어 ord 를이용하여얻어진다. sage: def encode(s):... s = str(s) # make inut a string... return sum(ord(s[i])*256^i for i in range(len(s))) sage: def decode(n):... n = Integer(n) # make inut an integer... v = []... while n!= 0:... v.aend(chr(n % 256))... n //= 256 # this relaces n by floor(n/256).... return.join(v)

67 60 3. 공개키암호 sage: m = encode( Run Nikita! ); m sage: decode(m) Run Nikita! RSA 암호의완전한예시 계산을간단하게하기위하여작은소수 와 q 를사용하여 RSA 암호에서한글자 X 를암호화한다. 먼저 RSA 암호의매개변수들을계산한다.. 와 q 를선택 : = 7, q = 9 로선택하면 n = q = ϕ(n) 을계산 : ϕ(n) = ϕ( q) = ϕ() ϕ(q) = ( )(q ) = q q + = = 무작위로 e < 288 인수선택 : e = 95 를선택하자. 4. GCD 알고리듬을이용하여 의해 d = 9 를구한다. 95x (mod 288) 위에서 RSA 공개키암호의매개변수들을계산하였다. 공개키는 (323, 95) 이며, 따라서암호화함수는 E(x) = x 95 로정의되고, 복호화함수는 D(x) = x 9 이다. 다음 X 를암호화하는데먼저 X 를숫자 24 로코딩하고 E(24) = = 294 Z/323Z 를계산한다. 복호화하기위해서는 E 를계산 : E (294) = = 24 Z/323Z. 다음예는더큰수들로 RSA 암호과정을예시한다. = , q = 라놓고자. 그러면 n = q = , ϕ(n) = ( )(q ) =

68 3.4 RSA 공격하기 6 컴퓨터에있는난수발행기를이용하여저자는정수 e 를선택한다. e = 그러면 d = log 27 (n) 이약 이므로 38 글자를한묶음의수로코딩하고암호화할수있다. RUN NIKITA 의코드는 m = 이므로암호문은다음과같다. E(m) = m e = 참조 실제로는 e 는작은수로선택하는데, e 가작다고해도 RSA 의안전성이약해지지는않기때문이다. 예를들어 RSA 의실행에대한 OenSSL 문서에의하면 (htt:// 참조 ) The exonent is an odd number, tyically 3, 7 or 으로밝히고있다. 3.4 RSA 공격하기 Nikita s 의공개키는 (n, e) 이고그녀의복호화키는 d 라고가정하면 ed (mod ϕ(n)) 을만족한다. n 을 q 로소인수분해할수있으면 ϕ(n) = ( )(q ) 을계산할수있고, 따라서 d 도구할수있다. 따라서 n 을인수분해할수있으면 n 이공개된 RSA 암호를깰수있다 φ(n) 을알때 n 을인수분해하기 두소수의곱인수 n 의 ϕ(n) 을알면 n = q 를만족하는두소수, q 를구하는것은쉽다. ϕ(n) = ( )(q ) = q ( + q) + 이고 q = n 이므로 + q = n + ϕ(n) 이성립한다. 따라서 와 q 는이차방정식 x 2 ( + q)x + q = (x )(x q) 의해가되고근의공식에이용하여 n 으로나타낼수있다. 예 n = q = 은두소수의곱이고 ϕ(n) = 이다. 따라서 와 q 는다음식으로부터얻어진다. f = x 2 (n + ϕ(n))x + n = x x = (x )(x ).

69 62 3. 공개키암호 마지막단계의인수분해는다음근의공식으로얻는다. b + b 2 4ac 2a = = 따라서 n = 임을알수있다. SAGE 예 다음 Sage 함수는 n 과 ϕ(n) 이주어졌을때 n 을 n = q 로인수분해한다. sage: def crack_rsa(n, hi_n):... R.<x> = PolynomialRing(QQ)... f = x^2 - (n+ -hi_n)*x + n... return [b for b, _ in f.roots()] sage: crack_rsa( , ) [ , ] 와 q 가가까울때 두소수 와 q 의차가작으면페르마의인수분해법 (Fermat s factorization method) 이라불리는페르마의인수분해방법을쓰면 n 을쉽게인수분해할수있다. n = q 이고 > q 라고가정하자. 그러면 와 q 가가까운수이므로 는작은수이고 ( ) 2 ( ) 2 + q q n =. 2 2 s = q 2 t = + q 2 는 n 보다약간큰수이면서 t 2 n = s 2 으로제곱수이다. 따라서 t = n, t = n +, t = n + 2,... 등으로놓고 t 2 n 이완전제곱수 s 2 가될때까지계속계산한다. ( 여기서 x 은 x 보다같거나큰정수중가장작은정수이다. 그러면 = t + s, q = t s 가된다.

70 3.4 RSA 공격하기 63 예 n = 이다. 그러면 n = 이다. t = 이면 t 2 n = t = 이면 t 2 n = t = 이면 t 2 n = 804 Z. 따라서 s = 804 이므로 = t + s = 53649, q = t s = 5204 이다. SAGE 예 n = q 이고 와 q 중의하나는 n 에가까운경우, 위의인수분해알고리듬을실행하자. sage: def crack_when_q_close(n):... t = Integer(ceil(sqrt(n)))... while True:... k = t^2 - n... if k > 0:... s = Integer(int(round(sqrt(t^2 - n))))... if s^2 + n == t^2:... return t+s, t-s t +=... sage: crack_when_q_close( ) (53649, 5204) 예를들어사람들은무작위로소수하나를찾은후그다음소수를두번째소수로선택하면좋을꺼라고생각할수있는데그러면금방해독할수있는암호가된다. SAGE 예 sage: = next_rime(2^28); sage: q = next_rime() sage: crack_when_q_close(*q) ( , ) d 를알고 n 을인수분해하기 이절에서는 RSA 암호에서복호화키 d 가주어졌을때 n 을인수분해하는확률적알고리듬을소개한다. 이사실은 RSA 암호에서복호화키를찾아내는것은적어도실제이용하는입장에서는계산적으로 n 을인수분해하는것만큼어려운일이라는것을의미한다. 법 n 과암호화키 e 를갖는 RSA 암호를생각하자. 어떻게하여모든 a 에대해 a ed a (mod n)

71 64 3. 공개키암호 을만족하는 d 를찾았다고하자. 그러면 m = ed 는 n 과서로소인모든 a 에대하여 a m (mod n) 를만족한다. 절 3.4. 에서보았듯이, ϕ(n) 을알면바로 n 을인수분해할수있다. 그렇지만 d 를안다고해서쉽게 n 을인수분해할수있는것처럼보이지는않는다. 그러나 a m (mod n) 인 m 을아는경우에는 상당히높은확률 로 n 을인수분해할수있는확률적인과정이있다. ( 물론여기에서는그확률은분석하지않는다.) 알고리듬 (n 을인수분해하는확률적알고리듬 ). 정수 n = q 이서로다른두홀수소수의곱이라고하자. n 과서로소인모든 a 에대하여 a m (mod n) 을만족하는정수 m 을안다고가정하자. 그러면이알고리듬은 상당히높은확률 로 n 을인수분해한다. 아래각단계에서 a 는항상 n 과서로소인정수를나타낸다.. [2 의거듭제곱들로나누기 ] m 이짝수이고무작위로선택한여러 a 에대하여 a m/2 (mod n) 을만족하면 m = m/2 으로교체하여단계 로간다. 그렇지않은경우 a 는 a m/2 (mod n) 이다. 2. [GCD 계산 ] 무작위로 a 를선택하고 g = gcd(a m/2, n) 를계산한다. 3. [ 끝?] g 가 n 의진약수이면, g 를출력하고마친다. 그렇지않으면 Ste 2 로간다. 증명을하기전에대수학의용어를몇가지더소개한다. 정의 ( 군준동형사상 ). G 와 H 는군이다. 함수 ϕ : G H 가군준동형사상 (grou homomorhism) 이라는것은모든 a, b G 가 ϕ(ab) = ϕ(a)ϕ(b) 를만족하는것이다. 군준동형사상이전사 (surjective) 라고말할때는모든 c H 에대하여 ϕ(a) = c 를만족하는 a G 가항상존재하는경우이다. 군의준동형사상 ϕ : G H 의핵 (kernel) 은 ker(ϕ) 로쓰며 ϕ(a) = 를만족하는 a G 의집합이다. 군준동형사상이 ker(ϕ) = {} 를만족하면단사 (injective) 이다. 참고로군준동형사상 ϕ : G H 이 ker(ϕ) = {} 이기위한필요충분조건은 φ(a) = φ(b) 는 a = b 를유도하는것이다. 정의 ( 부분군 ). 만약 G 가군이고 H 가 G 이부분집합일때, H 가 G 의연산으로군이되면 H 를 G 의부분군 (subgrou) 이라고부른다. 예를들어, ϕ : G H 가군준동형사상이면, ker(ϕ) 는 G 의부분군이다 (Exercise 2.2 참조 ). 다시우리의관심을알고리듬 으로돌리자. 단계 에서, ( ) m (mod n) 이면 m 은짝수이다. 따라서 m/2 을생각하는것이의미가있다. a m/2 (mod n) 이모든 a 에대해서성립한다는것을확인하는것은너무나많은시간이필요하므로현실적이지않다. 대신에몇개의난수 a 에대해서만확인하고, 만약 a m/2 (mod n) 이확인되면 m 을 2 로나눈다. 만약 a m/2 (mod n) 인한개의 a 라도존재한다면, a a m/2 로정의된함수 (Z/nZ) {±} 가전사준동형사상이므로절반의 a 도같은식을만족한다. 기초정리 으로부터만약 x 2 (mod ) 이면 x = ± (mod ) 임을안다. Ste 2 에서, (a m/2 ) 2 (mod n) 이므로, (a m/2 ) 2 (mod ) 와

72 3.4 RSA 공격하기 65 (a m/2 ) 2 (mod q) 이성립하고따라서 a m/2 ± (mod ) 과 a m/2 ± (mod q) 을얻는다. a m/2 (mod n) 이므로, 세가지가능성이있고, 다음두가능성중의하나가양수의확률로나타난다 :. a m/2 + (mod ) and a m/2 (mod q) 2. a m/2 (mod ) and a m/2 + (mod q). 유일한다른가능성은모든부호가 인경우이다. 첫번째경우는 a m/2 이지만 q a m/2, 이므로 gcd(a m/2, q) = 가되고따라서 n 을인수분해할수있다. 마찬가지로두번째경우에는 gcd(a m/2, q) = q 이성립하므로역시 n 을인수분해할수있다. 예 다음매개변수 n = , e = 를갖는 RSA 암호의복호화키 d = 를알아냈다고하자. 이정보와알고리듬 을이용하여 n 을인수분해한다. m = ed = 이면 ϕ(q) m 이므로 n 과서로소인모든 a 는 a m (mod n) 을만족한다. a 20 인모든 a 가 a m/2 (mod n) 임을확인한후 m 을 m 2 = 으로바꾼다. 이새로운 m으로 a 20인모든 a가 a m/2 (mod n) 이므로, 또 m을 m 2, 즉 로바꾼다. 여전히 a 20인모든 a가 a m/2 (mod n) 을만족하므로다시 m을 으로바꾼다. 이제 2 m/ (mod n) 이되므로 m을더이상 2로나눌필요는없다. 이제 gcd(2 m/2, n) = gcd( , ) = 73753, 이므로 n 의약수 을찾았다. 따라서 n = SAGE 예 알고리듬 을 Sage 에서구현한다. sage: def crack_given_decryt(n, m):... n = Integer(n); m = Integer(m); # some tye checking... # Ste : divide out owers of 2... while True:... if is_odd(m): break

73 66 3. 공개키암호... divide_out = True... for i in range(5):... a = randrange(,n)... if gcd(a,n) == :... if Mod(a,n)^(m//2)!= :... divide_out = False... break... if divide_out:... m = m//2... else:... break... # Ste 2: Comute GCD... while True:... a = randrange(,n)... g = gcd(lift(mod(a, n)^(m//2)) -, n)... if g!= and g!= n:... return g... 다음은위에서정의한 Sage 코드로예 의계산결과를확인하는방법이다. sage: n= ; e= ; d= sage: crack_given_decryt(n, e*d - ) sage: factor(n) * 훨씬더큰수를적용하자. sage: e = sage: d = sage: n = sage: = crack_given_decryt(n, e*d - ) sage: # random outut (could be other rime divisor) sage: n % 참조추가 RSA 암호를실제로구현하려고하면기억해야할요령과아이디어들이더있다. 예를들어평문의각블록마다여분의난수들을첨가할수도있고, 또어떤 string 은암호화할때마다다르게암호화할수도있다. 이러한작업들은그전의암호문과평문을알고있는공격자라도그뒤의암호문을공격하기어렵게만들수있다. 물론어떤특정구현에서는 RSA 의

74 3.5 Exercises 67 기본구성요소 (module) 를인수분해할필요도없이실제로완벽한공격이가능할수도있다. RSA 는 OenSSH rotocol version (see htt:// 에사용되는등흔히사용되고있는암호시스템이다. ( 우리나라에서는공인인증서에서도사용되고있다.) 우리는절 에서 ElGamal 암호을알아보려고한다. 이암호는 RSA 와유사한느낌을주지만어떤면에서더유연하다. 아마도가장일반적인 RSA 의공격은수체걸르기 (the number field sieve) 인데이것은두소수의곱 q 형태의정수를인수분해하는하는가장일반적인알고리듬이다. 이알고리듬을설명하는것은이책의범위를넘어선다. 일반적으로사용되는알고리듬으로타원곡선 (ellitic curve) 방법이있는데절 6.3 에서자세히설명하려고한다. SAGE 예 수체걸르기의변형인이차걸르기 2 (quadratic sieve) 를이용하여약 92 비트의 RSA 키를인수분해하는간단한예를아래에소개한다. sage: set_random_seed(0) sage: = next_rime(randrange(2^96)) sage: q = next_rime(randrange(2^97)) sage: n = * q sage: qsieve(n) ([ , ], ) 3.5 Exercises 3. This roblem concerns encoding hrases using numbers using the encoding of Section What is the longest that an arbitrary sequence of letters (no saces) can be if it must fit in a number that is less than 0 20? 3.2 Suose Michael creates an RSA crytosystem with a very large modulus n for which the factorization of n cannot be found in a reasonable amount of time. Suose that Nikita sends messages to Michael by reresenting each alhabetic character as an integer between 0 and 26 (A corresonds to, B to 2, etc., and a sace to 0), then encryts each number searately using Michael s RSA crytosystem. Is this method secure? Exlain your answer. sieve 가우리말체이므로주로수체체라부른다. 소수가아닌것을체로걸러낸다는 의미로걸르기라번역해보았음 2 이차체

75 68 3. 공개키암호 3.3 For any n N, let σ(n) be the sum of the divisors of n; for examle, σ(6) = = 2 and σ(0) = = 8. Suose that n = qr with, q, and r distinct rimes. Devise an efficient algorithm that given n, ϕ(n) and σ(n), comutes the factorization of n. For examle, if n = 05, then = 3, q = 5, and r = 7, so the inut to the algorithm would be n = 05, ϕ(n) = 48, and σ(n) = 92, and the outut would be 3, 5, and You and Nikita wish to agree on a secret key using the Diffie-Hellman key exchange. Nikita announces that = 3793 and g = 7. Nikita secretly chooses a number n < and tells you that g n 454 (mod ). You choose the random number m = 208. What is the secret key? 3.5 You see Michael and Nikita agree on a secret key using the Diffie- Hellman key exchange. Michael and Nikita choose = 97 and g = 5. Nikita chooses a random number n and tells Michael that g n 3 (mod 97), and Michael chooses a random number m and tells Nikita that g m 7 (mod 97). Brute force crack their code: What is the secret key that Nikita and Michael agree uon? What is n? What is m? 3.6 In this roblem, you will crack an RSA crytosystem. What is the secret decoding number d for the RSA crytosystem with ublic key (n, e) = ( , )? 3.7 Nikita creates an RSA crytosystem with ublic key (n, e) = ( , ). In the following two roblems, show the stes you take to factor n. (Don t simly factor n directly using a comuter.) (a) Somehow you discover that d = Show how to use the robabilistic algorithm of Section to factor n. (b) In art (a) you found that the factors and q of n are very close. Show how to use the Fermat Factorization Method of Section to factor n.

76 4 이차상호법칙 (Quadratic Recirocity) This is age 69 Printer: Oaque this 일차합동식 ax b (mod n) 가해를갖기위한필요충분조건은 gcd(a, n) 이 b 를나누는것이다 ( 기초정리 2..5). 이단원에서는이차합동식 ax 2 + bx + c 0 (mod n) 이해를가지는지아닌지를판단할수있는기준을찾는과정에서찾아낸아주놀라운수학에대한이야기를하려고한다. 이차합동식의풀이는, 대부분의경우, 중국인의나머지정리와이차방정식의공식으로부터어떤정수 a 가법 에관하여완전제곱수인가의문제로귀결된다. Gauss 의이차상호법칙은 정수 a 가 (Z/Z) 에서완전제곱수가되는 는어떤소수들인가? 에대한정확한답을제공한다. 이단원에서우리가완벽하게증명할심오한사실은그답이 (mod 4a) 에의존한다는것이다. 따라서 a 가법 에관하여제곱수라면, 를 4a 로나눈나머지만을고려하면된다는것은굉장히놀라운발견이다. 또한이차상호법칙은 class field theory 와 Langlands rogram 과같은현대고등정수론연구의중심이되고있다. 이차상호법칙의증명은 00 가지가넘는다 ( 긴목록은 [3] 을참조 ). 이단원에서는우리는두가지증명을소개한다. 절 4.3 에서소개하는첫번째증명은아주기본적인증명으로어떤구간에서의정수인점들을추적하는방법을포함하고있다. 이증명은추상적인개념을많이쓰지않고모든세부적인증명을이해할수있는장점이있지만, 무엇을하고있는지가개념적으로잘이해가안되는경우에는만족스럽지못할수도있다. 반면에,

77 70 4. 이차상호법칙 4.4 절에서증명할두번째증명은좀더추상적이고 Gauss 합 (sum) 에관한개념과성질들을사용한다. 이절을공부하는독자들은따라서 4. 절과 4.2 절을꼭읽은후각자의취향과또추상대수학을어느정도공부했는지에따라 4.3 절이나 4.4 절중한절을공부하면된다. 4.5 절에서는다시제곱근의계산과이차합동식을푸는실질적인계산법을다룬다. 4. 이차상호법칙 이차상호법칙을이절에서기술한다. 정의 4.. ( 이차잉여 ). 소수 를고정하자. 로나누어지지않는정수 a 가법 에관하여어떤수의제곱과같아지면 a 를법 의이차잉여 (quadratic residue) 라고하고, 그렇지않으면 a 는이차비잉여 (quadratic nonresidue) 라고한다. 예를들어법 5 에관하여 2 =, 2 2 = 4, 3 2 = 4, 4 2 =, (mod 5) 이므로, 과 4 는이차잉여이고, 2 와 3 은이차비잉여이다. 이차상호법칙정리는이책에서증명하려고하는가장심오한정리이다. 이정리는정수 a 가법 의이차잉여인가에대한문제를 a 의각소수약수가법 의이차잉여인가의문제와연결시킨다. 이를정확하게기술하기위하여새로운표기법을소개한다. 정의 4..2 (Legendre 부호 ). 는홀수소수이고 a는정수이다. ( ) a 0 (gcd(a, ) 이면 ) = + (a가이차잉여이면 ) (a가이차비잉여이면 ) 라고약속하고이부호를 Legendre 부호 (Legendre Symbol) 라고부른다. 예를들어 ( ) =, 5 이성립한다. ( ) 2 =, 5 ( ) 3 =, 5 ( ) 4 =, 5 ( ) 5 = 0 5 SAGE 예 Sage 에서는 legendre symbol 를사용하여 Legendre 부호를계산한다. sage: legendre_symbol(2,3) -

78 4. 이차상호법칙 7 sage: legendre_symbol(,3) sage: legendre_symbol(3,5) - sage: legendre_symbol(mod(3,5), 5) - a a 는 오직 a (mod )에만 의존하므로, a Z/Z에 대하여 를 a의 임의의 올림 a 를 잡아 a 로 정의하여도 같은 값이어야 한다. 군 준동형사상 (정의 3.4.7참조) ϕ : G H는 임의의 a, b G가 ϕ(ab) = ϕ(a)ϕ(b)를 만족하는 함수이다. 또 임의의 c H에 대하여 ϕ(a) = c를 만족하는 a G가 존재하면 ϕ는 전사함수이다. 다음 보조정리는 이차잉 여부호가 어떻게 전사인 준동형사상을 정의하는지를 보여준다. 보조정리 함수 ψ : (Z/Z) {±}를 ψ(a) = a 로 정의하면 ψ 는 전사인 준동형사상이다. 달리 표현하면 φ는 곱셈적 함수이다. 증명 정리 2.5.8로부터 소수 의 원시근 g이 존재한다. 따라서 g, g 2,..., g ( )/2, g (+)/2,..., g = 이 (Z/Z) 의 모든 원소들이다. 이 짝수이므로, (Z/Z) 의 원소들의 제곱은 g 2, g 4,..., g ( )/2 2 =, g + = g 2,..., g 2( ) = 이다. (Z/Z) 의 원소들의 제곱들의 리스트에서 (g (+)/2 )2 = g + = g 2 부 터 시작하여 그 뒤를 이어 나타나는 모든 g의 거듭제곱들은 그 전에 나타난 것들이다. 따라서 (Z/Z) 에서의 제곱수들은 정확히 g n, n = 2, 4,..., 이고 g n, n =, 3,..., 2는 제곱수가 아니다. 그런데 홀수 더하기 홀수 는 짝수, 짝수 더하기 짝수는 짝수, 홀수 더하기 짝수는 홀수이므로 ψ는 준동형사상이다. 게다가 g가 제곱수가 아니므로 ψ(g) = 이고, 따라서 ψ 는 전사함수이다. 참조 위의 증명을 군론의 언어로 바꿔보자. 군 G = (Z/Z) 는 위수가 인 순환군이다. 가 홀수이므로 은 짝수이고 G의 제곱 수들로 이루어진 G의 부분군 H의 지표(index)는 2이다. (H가 부분군인 이유는 Exercise 4.2를 참조하기 바란다.) a = 이라는 것은 a H와 동치이므로, ψ는 두 함수 G G/H = {±}의 합성이다. 단, 두 번째 동형함수는 G/H의 H는 에, 나머지 원소는 과 대응시킨 함수이다. 참조 (Z/Z) 가 순한군이라는 사실을 이용하지 않고 다음과 같이 다른 방법으로 증명할 수 있다. 만약 a (Z/Z) 가 제곱수라면 a b2 군론의 지식이 있는 경우 참조-역주

79 72 4. 이차상호법칙 TABLE 4.. 어떤 소수 의 법에서 5가 제곱수인가? mod 5 mod (mod )라고 쓸 수 있고, 그러면 a( )/2 = b (mod )이므로, a는 f = x( )/2 의 해이다. 기초정리 2.5.3에 의하여, 다항식 f 는 많아야 ( )/2개의 해를 갖는다. 따라서 f 의 해가 되지 않는 (Z/Z) 의 원소 a 가 존재한다. 이 a는 ψ(a) = a = 를 만족하고, 또 자명하게 ψ() = 이므로, ψ는 전사함수이다. 물론 이 설명으로는 ψ가 준동형사상임은 보일 수 없다. 부호 a 는 a의 법 의 잉여류에만 의존한다. 그래서 가능한 모든 a에 대하여 a5 의 표를 만드는 건 쉽다. 많은 소수 에 대하여 5 에 대한 표 를 만드는 것도 쉬울까? 표 4.을 보면 아마도 어떤 간단한 패턴이 있는 것처럼 보인다. 5 가 (mod 5)에 의존하는 것처럼 보인다. 좀 더 자세 히 설명하면 5 = 이기 위한 필요충분조건이, 4 (mod 5)인 것 처럼 보인다. 즉, 5 = 이기 위한 필요충분조건이 가 법 5의 제곱수인 것이다. 비슷한 관찰에 근거하여, 8세기에 여러 수학자들이 표 4.가 제안하는 신비로운 현상에 대한 추론적인 설명들을 찾아내었다. 드디어 796년 4월 8일 9세의 Gauss가 다음 정리를 증명하였다. 정리 4..7 (Gauss의 이차상호법칙). 와 q는 서로 다른 홀수 소수이다. 그러면 q q = ( ) 2 2 q 이 성립한다. 또 = ( )( )/2 와 ( 2 = if ± if ±3 (mod 8) (mod 8) 도 성립한다. q q 와 를 연결하는 이 Gauss 공식의 증명을 두 가지 소개한다. 첫 번째 초보적인 증명은 4.3절에서, 좀 더 대수적인 두 번째 증명은 4.4절에서 한다.

80 우리의예에가우스정리를적용하면 ( ) 5 ( 2 ( = ( ) 2 = = 5) 5) 4.2 Euler 의기준 73 { + if, 4 (mod 5) if 2, 3 (mod 5). 응용으로서, 다음예는법 b 의나머지로서 a 가제곱수인가하는질문에정리 4..7 을어떻게적용하는지를보여준다. 예 를법으로할때 69는제곱수인가? 여기서 389는소수이다. ( ) ( ) ( ) ( ) = = 인데, ( ) 3 = 389 ( ) 389 = 3 ( ) 2 =, 3 이므로, ( ) 23 = 389 ( ) ( ) = = ( ) ( ) 2 = ( ) 2 23 ( ) 69 = ( )( ) = 389 = ( ) 23 2 = 이다. 따라서 69 는법 389 의나머지로써 ( 간단히법 389 에서 ) 제곱수이다. SAGE 예 Sage 에서의이계산은다음과같다. sage: legendre_symbol(69,389) 69 는법 389 에서제곱수이지만, x 2 69 (mod 389) 을만족하는 x 는아직알지못한다. 이는인수분해를하지도않고어떤수가합성수임을증명했던정리 2.4. 를연상시킨다. 참조 소수법에서의 Legendre 부호를합성수법까지확장한것을 Jacobi 부호라고한다. 자세한것은 Exercise 4.9 을참조하기바란다. 4.2 Euler 의기준 는홀수소수이고 a 는 로나누어지지않는정수이다. Euler 는 a ( )/2 와법 에서합동인사실을증명할때원시근의존재를이용하였다. 정리 4..7 의두가지증명모두에이사실을반복적으로사용한다. ( a ) 가

81 74 4. 이차상호법칙 기초정리 4.2. (오일러의 기준 (Euler s Criterion)). a = a( )/2 (mod ). 증명 함수 ϕ : (Z/Z) (Z/Z) 를 ϕ(a) = a( )/2 로 정의하자. 그러면 쉽게 군의 준동형사상임을 보일 수 있다(Exercise 4.2). 함수 ψ : (Z/Z) {±}는 ψ(a) = a 인 보조정리 4..4의 준동형사상이다. 만약 a ker(ψ) 이면, 적장한 b (Z/Z) 가 존재하여 a = b2 을 만족하므로, ϕ(a) = a( )/2 = (b2 )( )/2 = b = 이 성립한다. 따라서, ker(ψ) ker(ϕ)이다. 보조정리 4..4로부터, ker(ψ) 는 (Z/Z) 에서 index가 2이다. 즉, #(Z/Z) = 2 # ker(ψ)이다. 준동형사 상의 핵도 군이고 부분군의 위수는 군의 위수를 나누므로, ker(ϕ) = ker(ψ) 거나 ϕ = 의 두 경우가 가능하다. 만약 ϕ = 이면, 다항식 x( )/2 은 체 Z/Z에 개의 해를 가지므로 기초정리 2.5.3에 모순이다. 그러므로 ker(ϕ) = ker(ψ)가 같아진다. 따라서 이 기초정리가 성립한다. SAGE 예 따름정리 4.2.3로부터 a 를 편리하게 계산할 수 있다. 이를 Sage에서 예시한다. sage: def kr(a, ):... if Mod(a,)^((-)//2) == :... return... else:... return - sage: for a in range(,5):... rint a, kr(a,5) 따름정리 합동방정식 x2 a (mod )가 해를 갖지 않을 필요충 a ( )/2 분조건은 a (mod )이다. 따라서 a( )/2 (mod )가 항상 성립한다. 증명 기초정리 4.2.와 다항식 x2 은 +, 만 해로 가진다는 사실(기 초정리 2.5.5로 부터 유도되는)을 적용한다. 만약 a와 가 둘 다 매우 큰 수가 되면, 정리 4..7를 활용한 a 의 계 산은 a의 소인수분해를 요구하므로 실용적이지는 못하다. 따라서 따름정 리 4.2.3에 나오는 식을 계산하기 위한 추가적인 방법을 탐구할 필요가 있다.

82 4.3 이차상호법칙의첫번째증명 75 예 = 이라고가정하자. (Z/Z) 의모든원소를제곱함으로써, 법 에서의제곱들은 {, 3, 4, 5, 9} 임을안다. 다음은 (Z/Z) 의모든원소 a 에대하여 a ( )/2 = a 5 를계산한결과이다. 5 =, 2 5 =, 3 5 =, 4 5 =, 5 5 =, 6 5 =, 7 5 =, 8 5 =, 9 5 =, 0 5 =. 계산으로부터 a 5 = 이되는 a 는 {, 3, 4, 5, 9} 인데, 기초정리 4.2. 에서예상한결과이다. 예 소수 = 를법으로할때 3 이제곱수인지아닌지를결정하자. sage: = sage: Mod(3, )^((-)//2) 이므로 3 ( )/2 (mod ) 이다. 따라서 3은법이 일때제곱수가아니다. 이계산은어렵지는않지만손으로한다면굉장히지겨운일일것이다. 3은작은수이므로이차잉여법칙을이용하면아주간단한손계산으로도답을얻을수있다. ( ) ( ) = ( ) ((3 )/2) (( )/2) 3 ( ) = ( ) = 이차상호법칙의첫번째증명 이차상호법칙의첫번째증명은구간에서의정수들을추적하는것을포함하는등초보적이다. ( 그 ) 첫번째단계로어떤구간에포함된특별한형태의정수들의개수로를계산하는가우스의보조정리를증명한다. a 그다음구간의끝점들이바뀔때각구간안의정수점들의개수의비율을제어하는방법을보여주는보조정리 4.3.3를증명한다. 그런후구간의끝점이바뀔때마마그구간들의정수점들의개수가어떻게변하는지를 ( 조심스럽게추적하고가우스의보조정리를적용하여, a ) 는 (mod 4a) 에의존하는것을보인다. 마지막으로간단한대수를사용하여우리가막찾아낸도구들로부터이차상호법칙을끌어낸다. 이증명은 [5] 에있는증명을참조하였다. 보조정리 4.3. (Gauss의보조정리 ). 는홀수소수이고정수 a는 a 0 (mod ) 를만족한다. 2 개의정수 a, 2a, 3a,..., 2 a

83 76 4. 이차상호법칙 를각각법 에관하여구간 ( 2, 2 ) 에합동인점과대응시켰을때음수가되는수들의개수를 ν라고하자. 그러면 ( ) a = ( ) ν 가성립한다. 증명집합 S = { a, 2a,..., } 2 a 에있는수들은법 에서모두다르다. 따라서 S의원소를법 로하여구간 ( 2, 2 ) 에속하도록계산을하여얻은집합을 T 라고하면집합 T 의원소의개수는 ( )/2 개다. 또 S의임의의두수의합도 의배수가아니다. 왜냐하면 k, j ( )/2에대하여 ka + ja 0 (mod ) 이라면 k + j 0 (mod ) 가되는데이는모순이다. 그러므로 {,, 2, 2,..., 2, } 2 의부분집합인 T 에는 j와 j가동시에속하지는않는다. 따라서 k {, 2,..., 2 } 이면 k와 k중정확히하나만 T 의원소여야만한다. 즉, { T = ε, ε 2 2,..., ε ( )/2 }. 2 이때 ε i 는 + 혹은 중하나이고 ν 는 ε i = 인 i 들의개수이다. S 의모든원소들의곱과 T 의모든원소들의곱은법 에서합동이므로 ( ) (a) (2a) (3a) 2 a 을얻는다. 따라서 기초정리 4.2. 로부터 다. (ε ) (ε 2 2) ( ε ( )/2 ) 2 a ( )/2 ε ε 2 ε ( )/2 ( ) ν ( a ) (mod ). (mod ) = a ( )/2 이므로우리의보조정리가증명된 SAGE 예 Sage를이용하여가우스의보조정리를구체적인예에서확인한다. 아래의 gauss 함수는가우스의보조정리의증명에서 ( ) 엄급한집합 T 의원소들을출력한다. 아래의각경우에서, ( ) ν = 이다. a

84 4.3 이차상호법칙의첫번째증명 77 sage: def gauss(a, ):... # make the list of numbers reduced modulo... v = [(n*a)% for n in range(, (-)//2 + )]... # normalize them to be in the range -/2 to /2... v = [(x if (x < /2) else x - ) for x in v]... # sort and rint the resulting numbers... v.sort()... rint v... # count the number that are negative... num_neg = len([x for x in v if x < 0])... return (-)^num_neg sage: gauss(2, 3) [-5, -3, -, 2, 4, 6] - sage: legendre_symbol(2,3) - sage: gauss(4, 3) [-6, -5, -2, -, 3, 4] sage: legendre_symbol(4,3) sage: gauss(2,3) [-5, -3, -, -9, -7, -5, -3, -, 2, 4, 6, 8, 0, 2, 4] sage: legendre_symbol(2,3) 4.3. Euler 의기초정리 유리수 a, b Q 에대하여, (a, b) Z = {x Z : a < x < b} 는 a 와 b 사이의정수들의집합이다. 다음보조정리는어떤열린구간에있은정수들의개수를어떻게추적하는지를보여준다. 보조정리 a, b 는유리수이다. 그러면임의의정수 n 에대하여, 합동식에나타나는각구간이공집합이아니라면, 다음이성립한다. # ((a, b) Z) # ((a, b + 2n) Z) (mod 2), # ((a, b) Z) # ((a 2n, b) Z) (mod 2). 만약고려해야하는구간들중하나라도공집합이면위의명제는참이아닐수있다. 예를들어, (a, b) = ( /2, /2) 이고 n = 이면, #((a, b) Z) = 이나 #(a, b 2) Z = 0 이다.

85 78 4. 이차상호법칙 증명 dxe는 x보다 크거나 같은 정수 중 가장 작은 정수라고 하자. n > 0 이라면 (a, b + 2n) = (a, b) [b, b + 2n), 이고 (a, b)와 [b, b + 2n)는 공통부분이 없다. 그런데 구간 [b, b + 2n)에 놓인 정수는 dbe, dbe +,..., dbe + 2n 으로 2n 개이다. 따라서 n > 0인 경우 첫 번째 합동식이 성립한다. 또 (a, b 2n) = (a, b) minus [b 2n, b) 이고 [b 2n, b)도 정확히 2n 개의 정수들을 포함하므로 n이 음수인 경우에 도 첫 번째 합동식은 성립한다. # ((a 2n, b) Z)에 관한 두 번째 합동식도 비슷하게 증명할 수 있다. 일단 다음 기초정리를 증명하면, 이차상호법칙을 추론하는 것은 어렵지 않다. 기초정리 (Euler). 는 홀수 소수이고 - a인 양의 정수이다. a는 a 정수 q는 q ± (mod 4a)인 소수라면 = aq 이 성립한다. 증명 보조정리를 4.3.를 적용하여 a 를 계산한다. S= a, 2a, 3a,..., a 2 라 놓고, I= 3,, 2 b, b, 라 하자. 단, b = 2 a, 혹은 2 (a )로 정수값이다. S의 원소 중 법 에서 구간 ( 2, 0)에 있는 원소와 합동이 되는 원소들은 I에 속하고 있음을 확인하자. 먼저 b = 2 a인 경우는 b = a = a > a 이므로 S의 모든 원소는 I에 속한다. 다음 b = 2 (a )인 경우는 b + a +a = + = > a 이므로 ((b 2 ), b)가 S의 원소를 포함할 수 있는 마지막 구간이다. 참 고로 I의 각 구간의 끝점은 의 배수이거나 정수가 아니므로 S에 속하지 않는다. 이제 보조정리 4.3.를 적용하면 a = ( )#(S I)

86 4.3 이차상호법칙의첫번째증명 79 를얻는다. 먼저 #(S I) 를계산하기위해서는 S와 I의각구간을 a로나누어정수점을찾으면되는것을관찰하자. 즉, 위식에서 a I = #(S I) = # ( a S a I ) = # (Z a ) I. ( ( 2a, ) ( 3 a 2a, 2 ) ( (2b ), b )), a 2a a a S = {, 2, 3, 4,..., ( )/2} 이다. 또두번째등식은 ai (0, ( )/2+ /2] 이기대문인데, 이사실은 으로부터알수있다. = 4ac + r이라놓고 ( ( r J = 2a, r a b a a 2 a = 2 = ) ( 3r 2a, 2r ) ( (2b )r, br )) a 2a a 라하자. ai와 J의유일한다른점은, 예를들어 r 2a 2a = 2a 2c 2a = 2c. 인것처럼, 구간의각끝점들이 2의배수만큼바뀐것이다. 보조정리 로부터 ν = # (Z a ) I #(Z J) (mod 2). ( ) a 따라서 = ( ) ν 는 r과 a에만의존한다. 좀더정확하게 (mod 4a) 에 ( ) ( ) 의존한다. 따라서 q (mod 4a) 이면 = 이다. 만약 q (mod 4a) 이면위의계산에서 r을 4a r로바꾸면된다. 그러면 J는다음집합 K로바뀐다. ( K = 2 r 2a, 4 r ) ( 6 3r a 2a, 8 2r ) a ( ) 4b 2. a a q (2b )r, 4b br 2a a 그러므로 K는끝점이짝수배만큼더해진점을제외하고는 J와같다. 보조정리 4.3.3로부터 ( ) #(K Z) # a I Z (mod 2) ( ) ( ) 를얻으므로, 이번에도 = 이성립한다. a a q

87 80 4. 이차상호법칙 a = 2이면 집합을 조심스럽게 관찰함으로써 모든 가능한 경우에 보조 정리 4.3.의 ν를 구할 수 있으며, 그 결과는 종종 아주 유용하게 쓰인다. 아래 기초정리의 다른 증명은 Exercise 4.6를 참조한다. 기초정리 (Legendre Symbol of 2). 는 홀수 소수이다. 그러면 ( if ± (mod 8) 2 = if ±3 (mod 8) 이 성립한다. 증명 a = 2이면 집합 S = {a, 2a,..., 2 2 }는 {2, 4, 6,..., } 이다. 이제 S의 원소들 중 법 에서 구간 I = ( 2, )에 들어 가는 원소들의 개수를 세어야 한다. = 8c + r로 놓으면, # (I S) = # I Z =#, Z r r r r = # 2c +, 4c +, Z # Z (mod 2) 를 얻고, 위 식에서 마지막 등호는 보조정리 4.3.3덕이다. 이제 r의 가능성 은, 3, 5, 7뿐이다. r = 이면, 위 집합의 개수는 0, r = 3, 5이면, r = 7 이면 2이므로 증명이 완성된다 이차잉여 법칙의 증명 이제 간단히 이차잉여 법칙을 증명할 수 있다. 정리 4..7의 첫 번째 증명 먼저 q (mod 4)라고 가정하자. 필요하다 면 와 q를 교환하여 > q라고 가정하고, q = 4a로 표현하자. = 4a+q 이므로 4a + q 4a 4 a a = = = = q q q q q q 이고 q 4a 4a a = = = 이다. q (mod 4a)이므로 기초정리 4.3.4에 의하여 aq = a 이다. 따라서 q q = = ( ) 2 = ( ) 2 2 q 을 얻는데, 마지막 등호는 q = 4a인 경우는 이 짝수라는 사실이 같기 때문이다. 2 이 짝수라는 사실과 q 2

88 4.4 가우스합을이용한이차상호법칙의증명 8 이제 q (mod 4) 라고하자. 그러면 q (mod 4) 이므로 +q = 4a 로쓸수있다. 그러면다음이성립한다. ( ) = q ( ) 4a q = q ( ) a, q ( ) q = ( ) 4a = ( ) a. ( ) ( ) a a 또기초정리 4.3.4로부터 q (mod 4) 는 q = 를유도한다. 따라 ( ) ( ) ( ) ( ) ( ) 2 서 q a a a q = q = q = 이다. 또 q (mod 4) 는 2 와 q 2 둘중하나는짝수이고나머지는홀수임을유도하므로 ( ) 2 q 2 = 이되어증명이완성된다. 4.4 가우스합을이용한이차상호법칙의증명 이절에서는 의근 들의합들이만족하는대수적등식을이용하여정리 4..7 의멋진증명을소개한다. 이증명에서소개하는대상들은그자체로도충분히흥미롭고더높은차수에서의이차상호와유사한법칙을증명할때강력한도구가된다. ( 더높은차수의상호법칙은아래증명의모델인 [25] 의 6 절을참고한다.) 정의 4.4. ( 단위원의해 ). n 번째단위원의해 (roots of unity) 는 ζ n = 를만족하는복소수 ζ 를말한다. 단위원의해 ζ 를단위원의 n 번째원시근 (rimitive root) 이라고부를때는 n 이 ζ n = 을만족하는가장작은양의정수가될때이다. 예를들어, 는단위원의두번째원시근이고, ζ = 3 2 는단위원의세번째원시근이다. 일반적으로, 임의의 n N 에대하여, 복소수 ζ n = cos(2π/n) + i sin(2π/n) 는단위원의 n 번째원시근이다 ( 이사실은 e iθ = cos(θ) + i sin(θ) 로부터따라온다 ). 이절의나머지에서는홀수소수 와단위원의 번째원시근 ζ = ζ 을고정한다. SAGE 예 Sage 에서는 번째단위원의해들을생성하기위하여 CyclotomicField 를사용한다. ζ 에관한표현은항상 차이하의다항식꼴로출력한다. sage: K.<zeta> = CyclotomicField(5) sage: zeta^5 sage: /zeta -zeta^3 - zeta^2 - zeta -

89 82 4. 이차상호법칙 정의 (Gauss 합). 홀수 소수 를 고정하자. a가 정수일 때 ga = X n n= ζ an, 를 a와 결합된 Gauss 합이라고 한다. 단, ζ = ζ = cos(2π/)+i sin(2π/) = e2πi/ 이다. ga 의 정의에서 가 내재되어 있다. 만약 를 바꾸어야 한다면, a와 결 함된 가우스 합은 달라질 것이다. 또 ga 의 정의는 ζ의 선택에도 의존한다. 우리의 정의에서는 ζ = ζ 를 선택했지만 다른 ζ를 선택한다면 ga 의 값은 달라질 수 있다. SAGE 예 가우스 합을 계산하는 함수 gauss sum를 정의하고 = 5 일 때 가우스 합 g2 를 계산한다. sage: def gauss_sum(a,):... K.<zeta> = CyclotomicField()... return sum(legendre_symbol(n,) * zeta^(a*n)... for n in range(,)) sage: g2 = gauss_sum(2,5); g2 2*zeta^3 + 2*zeta^2 + sage: g2.comlex_embedding() e-6*I sage: g2^2 5 여기서 g2 는 ζ5 의 다항식으로 먼저 출력되므로 항상 정확하다. Sage 함수 보여주 comlex embedding은 g2 의 어떤 복소수로의 매립(embedding)을 는데 처음 5 자릿수까지만 보여준다. g22 = 5이므로 g2 = 5이다. 다음은 가우스 합 g2 를 그림으로 표현하는 Sage코드이다. (Figure 4. 참조) zeta = CDF(ex(2*i*I/5)) v = [legendre_symbol(n,5) * zeta^(2*n) for n in range(,5)] S = sum([oint(tule(z), ointsize=00) for z in v]) show(s + oint(tule(sum(v)), ointsize=00, rgbcolor= red )) Figure 4.은 = 5일 때 가우스 합 g2 를 나타내는 그림이다. 가우스 합 은 단위원 위의 점들에 정해진 부호를 주어 더하여 얻는다. 이 예는 다음 기초정리를 제안한다. 증명은 몇 가지 작업을 요구한다. 기초정리 (가우스 합). 정수 a가 의 배수가 아니면 다음 식이 성립 한다. ga2 = ( )( )/2. SAGE 예 Sage를 이용하여 = 7일 때와 = 3일 때 이 기초정리가 참임을 예로 확인한다.

90 4.4 가우스합을이용한이차상호법칙의증명 FIGURE 4.. The red dot is the Gauss sum g 2 for = 5 sage: [gauss_sum(a, 7)^2 for a in range(,7)] [-7, -7, -7, -7, -7, -7] sage: [gauss_sum(a, 3)^2 for a in range(,3)] [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3] 이기초정리를증명하기위하여보조정리가몇개필요하다. 보조정리 정수 a에대하여, 다음이성립한다. { ζ an if a 0 (mod ), = 0 otherwise. n=0 증명만약 a 0 (mod ) 이면 ζ a = 이므로합은항의개수와같다. 만약 a 0 (mod ) 이면등식 x = (x )(x + + x + ) 를이용하고 x = ζ a 로놓자. ζ a 이므로 ζ a 0 이고, 따라서 이성립한다. ζ an = ζa ζ a = ζ a = 0 n=0 보조정리 임의의정수 x, y에대하여, { ζ (x y)n if x y (mod ), = 0 otherwise. n=0

91 84 4. 이차상호법칙 증명보조정리 에서 a = x y 로놓으면된다. 보조정리 g 0 = 0 이다. 증명정의로부터 ( ) n g 0 = n=0 이다. 보조정리 4..4에의해서함수 ( ) : (Z/Z) {±} (4.4.) 는군의전사준동형사상이다 ( ). 그러므로 (Z/Z) 의반은 +로, 나머지반은 에대응한다. = 0이므로, 합 (4.4.) 은 0이다. 0 보조정리 임의의정수 a에대하여 ( ) a g a = g. 이다. 증명 a 0 (mod ) 인경우는보조정리 로부터성립하므로 a 0 (mod ) 라고가정하자. 그러면 ( ) a g a = ( a ) n=0 ( ) n ζ an = n=0 ( ) an ζ an = m=0 ( ) m ζ m = g 가성립하는데, 세번째등식에서 a를곱하는것이 Z/Z의일대일대응사 ( ) ( ) 2 a a 상임을이용하였다. 이제양변에 를곱하고 = 임을이용하면된다. 이제보조정리들을이용하여기초정리를 를증명할수있다. 기초정리 의증명두가지방법으로 a=0 g ag a 를계산한다. 보조정리 으로부터, a 0 (mod ) 이므로, 다음이성립한다. g a g a = ( ) ( ) a a g g = ( ( 이때마지막등호는기초정리 4.2.과 다. 따라서 ) ( ) 2 a g 2 = ( ) ( )/2 g 2 a ) {±} 인사실로부터얻어진 g a g a = ( )( ) ( )/2 g 2 (4.4.2) a=0

92 를얻는다. 한편, 정의로부터 4.4 가우스합을이용한이차상호법칙의증명 85 ( ) n g a g a = = = n=0 n=0 m=0 n=0 m=0 ζ an ( n ( n m=0 ) ( m ( ) m ζ am ) ζ an ζ am ) ( ) m ζ an am 이다. δ(n, m) 을 n m (mod ) 이면 그렇지않으면 0 이라고놓자. 그러면보조정리 에의해서, 다음이성립한다. g a g a = a=0 = = a=0 n=0 m=0 n=0 m=0 n=0 m=0 = n=0 ( n = ( ). ( n ( n ) 2 ( n ) ( ) m ζ an am ) ( ) m ) ( m 식 (4.4.2) 와위의식으로부터 ( ) 를소거하면 을얻는다. a 0 (mod ) 이므로, 로부터 g 2 = ( ) ( )/2 g 2 a = a=0 ζ an am ) δ(n, m) ( a ) 2 = 이되고, 또보조정리 ( ) 2 a g 2 = g 2 이므로이기초정리의 g 2 a = g 2 = ( ) ( )/2 이성립한다 이차상호의증명 이제가우스합을이용하여정리 4..7 를증명한다. 증명 q는 q 인홀수소수이다. = ( ) ( )/2, g = g = n=0 로놓으면기초정리 4.4.5는 = g 2 임을기억하자. ( n ) ζ n

93 86 4. 이차상호법칙 기초정리 4.2. 는 ( ) ( ) (q )/2 q (mod q) 를유도한다. g q = (g 2 ) (q )/2 = ( ) (q )/2 이므로양변에 g를곱하여다음식을얻는다. ( ) g q g (mod q). (4.4.3) q 그런데잠깐! g q 는정수가아닌데이합동식은( 의미하는 ) 것은무엇인가? 합동식이의미하는것은, 양변의차인 g q g 가환 Z[ζ] 에서 q의 배수라는것이다. Z[ζ] 는 Z에계수를갖는 ζ에관한다항식들의집합이다. 환 Z[ζ]/(q) 는표수가 q이다. 그래서만약 x, y Z[ζ] 이면, (x + y) q x q + y q (mod q) 이다. 이것을 (4.4.3) 에적용하면다음을얻는다. g q = ( n=0 ( ) ) q n ζ n 보조정리 에의해서, n=0 g q g q ( ) q n ζ nq n=0 ( ) q g (mod q) q ( ) n ζ nq g q (mod q). 를얻고, 이를 g q 에적용하면다음식을얻는다. ( ) ( ) q g g (mod q). q ( ) ( ) g 2 = and q이므로양변의 g를소거하면 q q (mod q) 를얻는다. 두잉여부호는 ±이고 q는홀수이므로 ( (mod q) q = 2), ( q ) 와 ( q ) 는둘다 이거나 이어야만되므로 이다. 마지막으로따름정리 4.2.3를사용하면 ( ) ( ( ) ( )/2 ) ( = = q q q 를얻으므로이차잉여가증명된다. ) ( )/2 ( q ) ( q ) = = ( ) q 2 2 ( q ( ) q ) 4.5 제곱근찾기 이절에서는제곱근을찾는문제를다시다룬다. 2 0인체 K에서는 a 0 인모든 a, b, c K에대하여이차방정식 ax 2 +bx+c = 0의두해는다음과같다. x = b ± b 2 4ac. 2a

94 4.5 제곱근찾기 87 이제 가홀수소수이고 K = Z/Z라하자. 정리 4..7를사용하면 b 2 4ac 가 Z/Z에서완전제곱인지아닌지를알수있고, 그러므로 ax 2 +bx+c = 0 가 Z/Z에서해를갖는지아닌지를알수있다. 그러나정리 4..7은해가존재한다하더라도실제해를찾는방법에대해서는어떤정보도주지않는다. 물론 Z/Z의원소가완전제곱인지아니지를확인하는실제계산에서는이차잉여법칙이다필요하지도않다. 오히려절 2.3의관점에서기초정리 4.2.를이용하는것이상당히빠르다. a Z/Z가 0이아닌이차잉여라고가정하자. 만약 3 (mod 4) 이면, b = a + 4 는 b 2 = a + 2 = a 2 + = a 2 a = ( ) a a = a 을만족하므로 b = a + 4 는 a 의제곱근이다. 따라서절 2.3 의거듭제곱알고리듬을이용하여 의자릿수의다항식시간안에 b 를계산할수있다. 다음은 (mod 4) 라고가정하자. 불행히도이경우에는 a 와 를입력했을때법 에서 a 의제곱근이존재하더라도이제곱근을출력하는결정적인 log() 의다항식시간알고리듬을알지못한다. 참조 Schoof [45] 덕분에 O(( ( a ) /2+ε log()) 9 ) 시간안에 a 의제곱근을계산하는알고리듬은존재한다. 이멋진알고리듬은 ( 타원곡선을사용하는데 ) 위에서언급한의미에서의다항식시간의알고리듬은아니다. 왜냐하면 a 가커지면 a 가작은수일때보다는지수적으로더긴시간이필요하다. 다음은법 에서 a 의제곱근을상당히빨리계산하는확률적인알고리듬을소개한다. 정의 2..3 로부터환의개념을기억하기바란다. 또환의준동형사상과동형사상의개념도필요하다. 정의 ( 환의준동형사상 ). R 과 S 가환일때함수 ϕ : R S 가모든 a, b R 에대해서 ϕ(ab) = ϕ(a)ϕ(b), ϕ(a + b) = ϕ(a) + ϕ(b), and ϕ() = 를만족하면 ϕ 를환의준동형사상 (homomorhism of rings) 이라부른다. 동형사상 (isomorhism) 은일대일대응인준동형사상 ϕ : R S 을의미한다. 환 R = (Z/Z)[x]/(x 2 a) 을다음과같이정의한다. 집합으로서는 R = {u + vα : u, v Z/Z}

95 88 4. 이차상호법칙 이고곱셈은 (u + vα)(z + wα) = (uz + awv) + (uw + vz)α 로정의한다. 여기서 α 는 R 에서 x 의잉여류이다. SAGE 예 위에서정의한환 R 은 Sage 에서는다음과같이정의하고연산을수행한다. ( = 3 인경우 ): sage: S.<x> = PolynomialRing(GF(3)) sage: R.<alha> = S.quotient(x^2-3) sage: (2+3*alha)*(+2*alha) 7*alha + 7 b 와 c 가 Z/Z 에서 a 의제곱근이라하자. ( 비록 b 와 c 를아직은쉽게계산할수는없지만, 제곱근을찾는알고리듬을유도하기위하여제곱근 b 와 c 를고려한다.) 그러면각각 f(u + vα) = u + vb 와 g(u + vα) = u + vc 로정의된두개의환준동형사상 f : R Z/Z 와 g : R Z/Z 이존재한다. 이두함수는함께환준동형사상 ϕ : R Z/Z Z/Z 를유도한다. 이때 ϕ(u + vα) = (u + vb, u + vc) 이다. 적당한방법을사용하여 (Z/Z) 의임의의원소 z를선택하여절 2.3.2의이진법거듭제곱알고리듬으로 ( + zα) 2 를재빨리계산한후 u + vα = ( + zα) 2 를만족하는 u, v Z/Z 를찾는다. 만약 v = 0 이면다른 z 를무작위로선택하여같은계산을반복한다. 만약 v 0 이면, 우리가구하고자하는제곱근 b 와 c 를다음과같이빠르게찾을수있다. u + vb 는 Z/Z 에서어떤원소의 ( )/2 거듭제곱이므로이값은 0,, 혹은 이다. 따라서각경우 b = u/v, ( u)/v, 혹은 ( u)/v 이다. 우리는 u 와 v 를알기때문에, u/v, ( u)/v, 그리고 ( u)/v 의제곱들을계산하여 a 의제곱근인지를확인하면된다. 예 예 4..8 의계속으로법 389 에서 69 의제곱근을구한다. 위에서설명한알고리듬을 (mod 4) 인경우에적용한다. 먼저무작위로 z = 24 로선택하여 ( + 24α) 94 를계산하면 ( + 24α) 94 = 를얻는다. α 의계수가 0 이므로 z = 5 로 (+5α) 94 를계산한다. 이번에는 (+5α) 94 = 239α = u + vα 로 α 의계수가 0 이아니다. Z/389Z 에서 239 의역원은 53 이므로, 69 의제곱근이될수있는세개의원소는다음과같다. u v = 0 u v = 53 u v 따라서 53 과 53 이 Z/389Z 에서 69 의제곱근이다. = 53. SAGE 예 위의제곱근을구하는알고리듬을 Sage 에서구현하고몇가지예들을보여준다.

96 4.6 Exercises 89 sage: def find_sqrt(a, ):... assert (-)%4 == 0... assert legendre_symbol(a,) ==... S.<x> = PolynomialRing(GF())... R.<alha> = S.quotient(x^2 - a)... while True:... z = GF().random_element()... w = ( + z*alha)^((-)//2)... (u, v) = (w[0], w[])... if v!= 0: break... if (-u/v)^2 == a: return -u/v... if ((-u)/v)^2 == a: return (-u)/v... if ((--u)/v)^2 == a: return (--u)/v... sage: b = find_sqrt(3,3) sage: b # random: either 9 or 3 9 sage: b^2 3 sage: b = find_sqrt(3,3) sage: b # see, it s random 4 sage: find_sqrt(5,389) # random: either 303 or sage: find_sqrt(5,389) # see, it s random Exercises 4. Calculate the following by hand: ( ) ( 3 97, ), ( 22 ) (, and 5! ) Let G be an abelian grou, and let n be a ositive integer. (a) Prove that the ma ϕ : G G given by ϕ(x) = x n is a grou homomorhism. (b) Prove that the subset H of G of squares of elements of G is a subgrou. 4.3 Use Theorem 4..7 to show that for 5 rime, ( ) { 3 if, (mod 2), = if 5, 7 (mod 2).

97 90 4. 이차상호법칙 ( ) 4.4 (*) Use that (Z/Z) 3 is cyclic to give a direct roof that = when (mod 3). (Hint: There is an element c (Z/Z) of order 3. Show that (2c + ) 2 = 3.) ( ) 4.5 (*) If (mod 5), show directly that = by the method of Exercise 4.4. (Hint: Let c (Z/Z) be an element of order 5. Show that (c + c 4 ) 2 + (c + c 4 ) = 0, etc.) ( ) 4.6 (*) Let be an odd rime. In this exercise, you will rove that = if and only if ± (mod 8). (a) Prove that 5 x = t2 + t 2, y = 2t + t 2 is a arameterization of the set of solutions to x 2 + y 2 (mod ), in the sense that the solutions (x, y) Z/Z are in bijection with the t Z/Z { } such that +t 2 0 (mod ). Here, t = corresonds to the oint (, 0). (Hint: if (x, y ) is a solution, consider the line y = t(x + ) through (x, y ) and (, 0), and solve for x, y in terms of t.) (b) Prove that the number of solutions to x 2 + y 2 (mod ) is + if 3 (mod 4) and if (mod 4). (c) Consider the set ( S) of airs ( ) (a, b) (Z/Z) (Z/Z) such that a + b = and = =. Prove that #S = ( + 4)/4 a b if 3 (mod 4) and #S = ( 4)/4 if (mod 4). Conclude that #S is odd if and only if ± (mod 8). (d) The ma σ(a, b) = (b, a) that swas coordinates is a bijection of the set S. It has exactly one fixed oint ( ) if and only if there is a an a Z/Z such that 2a = and =. Also, rove that ( ) a 2a = has a solution a Z/Z with = if and only if ( ) =. 2 (e) Finish by showing that σ has exactly one fixed oint if and only if #S is odd, i.e., if and only if ± (mod 8). Remark: The method of roof of this exercise can be generalized to give a roof of the full Quadratic Recirocity Law. 4.7 How many natural numbers x < 2 3 satisfy the equation x 2 5 (mod 2 3 )? You may assume that 2 3 is rime. 2

98 4.6 Exercises Find the natural number x < 97 such that x 4 48 (mod 97). Note that 97 is rime. 4.9 In this roblem, we ( will ) formulate an analog of quadratic recirocity for a symbol like, but without the restriction that q be a rime. a q Suose n is an odd ositive integer, which we factor as k i= ei i. We define the Jacobi symbol ( a n) as follows: ( a = n) k ( ) ei a. i= (a) Give an examle to show that ( a n) = need not imly that a is a erfect square modulo n. (b) (*) Let n be odd and a and b be integers. Prove that the following holds: i. ( ( a b ) ( n) n = ab ) ( n. (Thus a a ) n induces a homomorhism from (Z/nZ) to {±}.) ii. ( ) n n (mod 4). iii. ( 2 n) = if n ± (mod 8) and otherwise. iv. Assume a is ositive and odd. Then ( ) a ( a n = ( ) 2 n 2 n ) a 4.0 (*) Prove that for any n Z, the integer n 2 + n + does not have any divisors of the form 6k. i

99 92 4. 이차상호법칙

100 5 연분수 (Continued Fractions) This is age 93 Printer: Oaque this 황금비 는무한분수형태인 와같고, 다음분수 = 는 π 의아주멋진분수근사값이다. 이두관찰모두연분수로설명할수있다. 연분수는이론적으로아름다울뿐만아니라정수론의문제들을해결하는데필요한강력한알고리듬을만들어내는데필요한도구를제공한다. 예를들어연분수는심지어몇백자릿수가되는소수가, 두제곱수의합이되는경우, 두제곱수를합으로표현하는빠른방법을제공한다. 따라서연분수는계산면에서나개념적인면에서응용이많은정수론의멋진도구이다. 예를들어연분수는소수로표현된분수의처음몇개의소숫점자릿수들로부터원래의분수를인식하는놀랄만큼효율적인방법을제공한다. 또연분수는 e 가 π 보다덜복잡하다고감각적으로느낄수있도록한다. ( 예 와 5.4 절참조 ) 5.2 절에서우리는먼저유한연분수를공부하고앞으로의조사를위한기초를마련한다. 5.3 절에서는실수 x 에 x 로수렴하는연분수를찾는과정을알아본다. 5.5 절에서는, 순환연분수는바로이차방정식의무리수해로서

101 94 5. 연분수 특징지어지는것을확인하고, 차수가 2 보다큰기약다항식의해의연분수에관한미해결문제에대해토론한다. 마지막으로연분수를이용하여유리수의근사값을인식하고 (5.6 절 ), 정수를두제곱수의합으로쓰는것에응용하는것을소개하면서 (5.7 절 ) 이단원을마무리한다. 독자들에게는참고문헌 [23, Ch. X], [26], [5, 3.3], [39, Ch. 7] 에서연분수부분을더읽어보기를권장한다. 5. 정의 연분수 (continued fraction) 는 a 0 + a + a 2 + a 3 +. 와같이표현되는분수이다. 이책에서는 a i 는실수이고 i 일때 a i > 0 으로가정하고, 또위의분수표현은유한할수도무한할수도있다. 연분수의더일반적인개념들도광범위하게연구되었지만대부분은우리책의범위를벗어난다. 이책에서는 a i 가모두정수인경우에가장관심을가지려고한다. 우리는위의연분수를간단히 [a 0, a, a 2,...] 로표현하자. 예를들어 [, 2] = + 2 = 3 2, [3, 7, 5,, 292] = = = ,

102 5.2 유한연분수 95 [2,, 2,,, 4,,, 6] = = = 등이다. 두번째세번째예는연분수는무리수의유리수근사값을구하는데이용될수있다는것을미리짐작할수있도록선택하였다. 앞의것은 π 로, 뒤의것은 e 로접근하는유리수이다. 5.2 유한연분수 이절은 m 0 일때 [a 0, a,..., a m ] 꼴의연분수에관한절이다. 먼저모든 n m 에대하여 [a 0, a,..., a n ] = n q n (5.2.) 이성립하는 n 과 q n 을귀납적으로정의한다. 그런후부분수렴 [a 0,..., a k ] 들의수열에대한여러성질들을추론할때반복적으로사용하는 2 2 행렬 ( n n ) ( n q n q n 와 n 2 ) q n q n 2 의행렬식에관련된공식을찾아낸다. 모든유리수는, 식 5.2.에서처럼, 연분수로표현된다는것을증명하기위하여알고리듬..3을사용한다. 정의 5.2. ( 유한연분수 ). 유한연분수 (finite continued fraction) 는다음과같은분수이다. a 0 + a + a a n 이때각 a m 은실수이고, 모든 m 에대해서 a m > 0 이다. 정의 ( 단순연분수 ). 단순연분수 (simle continued fraction) 는모든 a i 가정수인유한, 혹은무한연분수이다.

103 96 5. 연분수 연분수의값에대한감을얻기위하여, 다음값들을관찰하자. [a 0 ] = a 0, [a 0, a ] = a 0 + = a 0a +, a a [a 0, a, a 2 ] = a 0 + a + = a 0a a 2 + a 0 + a 2. a a 2 + a 2 또, [a 0, a,..., a n, a n ] = [ a 0, a,..., a n 2, a n + = a 0 + [a,..., a n ] = [a 0, [a,..., a n ]]. a n ] SAGE 예 continued fraction 은연분수를계산하는 sage 함수이다. sage: continued_fraction(7/23) [0,, 2,, 5] sage: continued_fraction(e) [2,, 2,,, 4,,, 6,,, 8,,, 0,,, 2,, ] 입력한수의연분수를계산할때정확성 (in bits) 을결정하기위하여옵션으로 bits = n 을사용한다. sage: continued_fraction(e, bits=2) [2,, 2,,, 4,,, 6] sage: continued_fraction(e, bits=30) [2,, 2,,, 4,,, 6,,, 8] 또연분수의값도구할수있고, 심지어연분수를가지고계산도할수있다. sage: a = continued_fraction(7/23); a [0,, 2,, 5] sage: a.value() 7/23 sage: b = continued_fraction(6/23); b [0, 3,, 5] sage: a + b []

104 5.2. 부분수렴 5.2 유한연분수 97 유한연분수 [a 0,..., a m ] 를하나고정하자. 지금은 a i 를정수라고가정할필요는없다. 정의 ( 부분수렴 ). 0 n m 을만족하는 n 에대하여, 연분수 [a 0,..., a n ] 을연분수 [a 0,..., a m ] 의 n 번째부분수렴 (artial convergent) 이라부른다. 2 n m 을만족하는각각의 n 에대하여, 실수 n 과 q n 을다음과같이정의 : 2 = 0, =, 0 = a 0, n = a n n + n 2, q 2 =, q = 0, q 0 =, q n = a n q n + q n 2. 기초정리 ( 부분수렴 )). n m 인 n 0 에대하여, 이성립한다. [a 0,..., a n ] = n q n 증명귀납법을사용하자. n = 0, 일때는자명하다. 위의기초정리가길이가 n 인연분수에서는항상성립한다고가정하자. 그러면다음이성립한다. [a 0,..., a n ] = [a 0,..., a n 2, a n + ] a ( ) n a n + a n n 2 + n 3 = ( ) a n + a n q n 2 + q n 3 = (a n a n + ) n 2 + a n n 3 (a n a n + )q n 2 + a n q n 3 = a n(a n n 2 + n 3 ) + n 2 a n (a n q n 2 + q n 3 ) + q n 2 = a n n + n 2 a n q n + q n 2 = n q n. SAGE 예 만약 c 가연분수를나타낸다면, c 의모든부분수렴을얻으려면 c.convergents() 를사용한다. sage: c = continued_fraction(i,bits=35); c [3, 7, 5,, 292, ] sage: c.convergents() [3, 22/7, 333/06, 355/3, 03993/3302, 20834/6637]%04348/3325--tex file 오류

105 98 5. 연분수 곧정확한개념으로확인하겠지만, 연분수의부분수렴값들은연분수의최적의유리수근사값들이다. 위의예에서는연분수 [3, 7, 5,, 292, ] 의부분수렴값들은, 주어진분모의크기에서는이연분수의가장정확한분수근사값이다. 기초정리 n m 인모든 n 0 에서다음두식이성립한다. n q n q n n = ( ) n, (5.2.2) n q n 2 q n n 2 = ( ) n a n. (5.2.3) 또는, 위의두식들과동치인, 다음두식이성립한다. n n = ( ) n, q n q n q n q n n n 2 = ( ) n a n. q n q n 2 q n q n 2 증명 n = 0 인경우는정의로부터자명하다. 이제 n > 0 이라고가정하고 n 일때성립한다고가정하자. 그러면 n q n q n n = (a n n + n 2 )q n (a n q n + q n 2 ) n = n 2 q n q n 2 n = ( n q n 2 n 2 q n ) = ( ) n 2 = ( ) n. 이성립하고, (5.2.2) 이증명된다. 식 (5.2.3) 의증명하기위해서는다음을계산한다. n q n 2 n 2 q n = (a n n + n 2 )q n 2 n 2 (a n q n + q n 2 ) = a n ( n q n 2 n 2 q n ) = ( ) n a n 참조 위의기초정리의식들을행렬로표현한다면행렬 ( n n ) q n q n 의행렬식은 ( ) n, ( n n 2 ) q n q n 2 의행렬식은 ( ) n a n 이다. SAGE 예 π의연분수의처음몇개의항으로, 기초정리 5.2.7가참임을 Sage를이용하여확인하자. sage: c = continued_fraction(i); c [3, 7, 5,, 292,,,, 2,, 3,, 4] sage: for n in range(-, len(c)):... rint c.n(n)*c.qn(n-) - c.qn(n)*c.n(n-), sage: for n in range(len(c)):... rint c.n(n)*c.qn(n-2) - c.qn(n)*c.n(n-2),

106 5.2 유한연분수 99 따름정리 (기약분수로서의 부분수렴). 만약 [a0, a,..., am ]이 단순 연분수라면, n 와 qn 는 서로 소인 정수이다. 즉, n /qn 은 기약분수이다. 증명 n 과 qn 의 정의로부터 n 과 qn 이 정수임은 자명하다. d가 n 과 qn 의 공약수라면, d n qn qn n = ( )n 이므로 d = 이다. SAGE 예 따름정리 5.2.0를 Sage를 이용하여 확인한다. sage: c = continued_fraction([,2,3,4,5]) sage: c.convergents() [, 3/2, 0/7, 43/30, 225/57] sage: [c.n(n) for n in range(len(c))] [, 3, 0, 43, 225] sage: [c.qn(n) for n in range(len(c))] [, 2, 7, 30, 57] 부분수렴들의 수열 [a0,..., am ]은 연분수이고, n m인 n에 대하여, cn = [a0,..., an ] = n qn 은 n번 째 부분수렴이라 하자. 연분수의 정의로부터 n > 0일 때는 an > 0 이었음을 기억하자. 이 조건이 연분수의 부분수렴값들에 멋진 조건을 더 해준다. 예를 들어 [2,, 2,,, 4,,, 6]의 부분수렴들을 나열하면 2, 3, 8/3, /4, 9/7, 87/32, 06/39, 93/7, 264/465 이다. 이 수들의 크기가 좀 더 잘 보이게 하기 위하여 소수로 표현해보자. 또 다른 구조를 잘 볼 수 있도록, 한 숫자씩 건너 뛰면서 밑줄을 쳐 두었다. 2, 3, , , , , , 2.783, 밑줄친 수들은 밑줄을 치지 않은 모든 수들보다 작고, 밑줄 친 수들은 단 조증가수열을 이루고, 반면에 밑줄을 치지 않은 수들을 단조감소수열을 이룬다. SAGE 예 그림 5.은 Sage를 이용하여 연분수의 위의 패턴을 또 다른 연분수로 확인한 그림이다. sage: sage: sage: sage: sage:... sage: c = continued_fraction([,,,,,,,]) v = [(i, c.n(i)/c.qn(i)) for i in range(len(c))] P = oint(v, rgbcolor=(0,0,), ointsize=40) L = line(v, rgbcolor=(0.5,0.5,0.5)) L2 = line([(0,c.value()),(len(c)-,c.value())], \ thickness=0.5, rgbcolor=(0.7,0,0)) (L+L2+P).show(xmin=0,ymin=)

107 00 5. 연분수 FIGURE 5.. Grah of a Continued Fraction 다음은 지금 예들로 확인한 이 현상을 일반적으로 증명한다. 기초정리 (부분수렴은 어떻게 수렴하나). 짝수번째 부분수렴 c2n 은 단순증가수열을, 홀수번째 부분수렴 c2n+ 은 단조감소수열을 이룬다. 또 임의의 홀수번째 부분수렴 c2n+ 은 임의의 짝수번째 부분수렴 c2m 보다 크다. 증명 n 이면 an 은 양수이므로, qn 은 양수이다. 기초정리 5.2.7에 의하 여, n 2이면, an cn cn 2 = ( )n qn qn 2 이 성립하므로, 처음 주장은 성립한다. 두 번째 주장이 성립하지 않는다면, c2m+ < c2r 을 만족하는 정수 r과 m이 존재한다. 그러면 기초정리 5.2.7에 의하여, n 이면, cn cn = ( )n qn qn 은 부호가 ( )n 이므로, 모든 s 0에 대하여 c2s+ > c2s 이다. 따라 서 r = m은 불가능하다. 만약 r < m이라면, 이 기초정리의 첫 번째 주 장으로부터 c2m+ < c2r < c2m 이 되어 역시 불가능하다. r > m이면, c2r+ < c2m+ < c2r 가 되는데 역시 모순이다. 따라서 c2m+ < c2r 을 만족 하는 정수 r과 m은 존재하지 않는다 모든 유리수의 연분수 표현 기초정리 (유리수의 연분수). 모든 영이 아닌 유리수는 단순연분 수로 표현된다.

108 5.3 무한연분수 0 증명일반성을잃지않고, 유리수 a/b 에서 b 이고 gcd(a, b) = 라고가정하자. 알고리듬..3 로부터 a = b a 0 + r, 0 < r < b b = r a + r 2, 0 < r 2 < r r n 2 = r n a n + r n, r n = r n a n < r n < r n 로쓸수있다. i > 0 일 a i > 0 이고, 또 gcd(a, b) = 이므로 r n = 임을기억하다. 위의식들은분수형태로쓰면다음과같이쓸수있다. a/b = a 0 + r /b = a 0 + /(b/r ), b/r = a + r 2 /r = a + /(r /r 2 ), r /r 2 = a 2 + r 3 /r 2 = a 2 + /(r 2 /r 3 ), r n /r n = a n. 위의식들로부터 임을알수있다. a b = [a 0, a,..., a n ] 기초정리 의증명으로부터유리수의연분수를계산하는알고리듬을얻는다. 영이아닌유리수는정확히두가지형태의연분수로표현할수있다. 예를들어, 2 = [, ] = [2] (Exercise 5.2 참조 ). 5.3 무한연분수 이절은실수 x에정수들의수열 a 0, a,... 을연결하는연분수계산과정으로시작한다. 여러예를먼저관찰한후연분수의홀수번째와짝수번째부분수렴이한없이가까와짐을보임으로써 x = lim n [a 0, a,..., a n ] 임을증명한다. 또한 a 0, a,... 이양의정수들의무한수열이면 c n = [a 0, a,..., a n ] 은수렴함을확인한다. 사실, a n 이임의의양수들의수열인경우에도, n=0 a n 이발산한다면 (c n ) 은수렴한다 연분수계산과정 x R 이면 x 를정수분분과 보다작은양의소수부분으로쓸수있다. 즉, a 0 Z 이고 0 t 0 < 일때 x = a 0 + t 0.

109 02 5. 연분수 a 0 를 x의정수부분 (floor) 이라고부르고, a 0 = x 로표현하기도한다. t 0 0이면, t 0 > 이므로 = a + t t 0 으로쓸수있는데, 이때 a N 이고 0 t < 을만족! 따라서 t 0 = a +t = [0, a + t ] 로쓸수있고, 이는 t 0 의 ( 단순연분수일필요는없는 ) 연분수이다. 이방법을 t n 0 인한계속하면, t n = a n+ + t n+ ( a n+ N, 0 t n+ < ) 으로쓸수있다. 위와같은방법으로실수 x 에정수들의수열 a 0, a, a 2,... 를짝지우는과정을연분수계산과정 (continued fraction rocess) 이라고부른다. 예 x = 8 3 에연분수과정을적용하자. 그러면 x = 이므로 a 0 = 2, t 0 = 2 3 이다. 또 t 0 = 3 2 = + 2 이므로, a =, t = 2 이다. 그러면 t = 2 이므로, a 2 = 2, t 2 = 0이되어이과정은끝난다. 이연분수과정으로부터 8 3 의연분수 8 = [2,, 2] 3 를얻는다. 예 x = 이면 x = 이므로 a 0 = and t 0 = 이다. 그러므로 t 0 = = = + 5, 2 가되므로 a =, t = 를얻는다. 비슷한방법으로모든 n 에대해서 a n = 을얻어아래의멋진식을얻는다. 물론등호가성리함은 ( 만약의심된다면 ) 곧보이게된다 = SAGE 예 예 의등호는아래 Sage 계산과일치한다.

110 5.3 무한연분수 03 sage: def cf(bits):... x = ( + sqrt(realfield(bits)(5))) / 2... return continued_fraction(x) sage: cf(0) [,,,,,, ] sage: cf(30) [,,,,,,,,,,,,,,,,,,,, ] sage: cf(50) [,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ] 예 x = e = 이라고하자. 연분수과정을사용하면, a 0, a, a 2,... = 2,, 2,,, 4,,, 6,,, 8,,, 0,... 를얻는다. 예를들어 a 0 = 2 는 e 의정수부분이다. 2 를뺀후뒤집으면 ( 즉, 곱셈역수를만들면 ), / = 이되므로 a = 이다. 을뺀후또곱셈역수를만들면 / = 이므로 a 2 = 2 이다. 5.4 절에서 e 는패턴이간단한연분수를가짐을보이려고한다. e 의연분수의다섯번째부분수렴은 인데, [a 0, a, a 2, a 3, a 4, a 5 ] = = e = 인의미에서 e 의좋은유리수근사값이다 < /32 2 = 임을확인할수있는데, 이는따름정리 5.3. 의결과를보여주는한예이다. π = 로도같은연분수과정을적용해보자. 그러면 π 의연분수는 a 0, a, a 2,... = 3, 7, 5,, 292,,,, 2,, 3,, 4,... 이다. 처음몇개의부분수렴들은다음과같다. 3, 22 7, , 355 3, , 물론이들도 π 의좋은유리수근사값들인데, 예를들어, = 이성립한다. e 의연분수는 (5.4 절참조 ) 멋진패턴을나타내지만 π 의연분수에는저자가파악할수있는어떠한패턴도보이지않는다. π 의연분수는

111 04 5. 연분수 아주 광법위하게 연구되었고, 2천만개 이상의 항들이 계산되었다. 자료는 모든 정수가 π의 연분수과정에서 무한히 자주 나타나고 있음을 제시하고 있다. π나 혹은 이 책에 소개한 어떤 수열의 연분수에 대해 더 알고 싶으면 [50]안에서 각 수열의 처음 몇 항들을 타이핑해 보기 바란다 무한연분수의 수렴 보조정리 앞의 연분수과정에서 an 이 정의되는 모든 n에 대하여, x = [a0, a,..., an + tn ] 가 성립한다. 또, tn 6= 0이면 x = [a0, a,..., an, tn ]이다. 증명 귀납법을 사용한다. x = a0 + t0 = a0 + /(/t0 )이므로 n = 0이면 두 명제가 성립한다. 두번째 명제가 n 에 대해서 성립한다면, x = a0, a,..., an, tn = [a0, a,..., an, an + tn ]. = a0, a,..., an, an, tn 위 식의 두 번째와 마지막 줄이 각각 n일 때의 보조정리의 첫 번째 명제와 두 번째 명제가 성립함을 보여준다. 정리 (연분수 극한)). a0, a,...은 정수의 수열이고, n 이면 an > 0이다. n 0인 각 n에 대하여, cn = [a0, a,... an ]이라고 하면, lim cn 이 n 존재한다. 증명 정수 m보다 작은 모든 n에 대해서 cn 은 [a0,..., am ]의 부분수렴이다. 따라서 기초정리 5.2.3에 의해서, 짝수번째 부분수렴 c2n 들은 단조증가하 고, 홀수번째 부분수렴 c2n+ 들은 단조감소한다. 그뿐만 아니라 단조증가 하는 짝수번째 부분수렴값들은 모두 c 보다 작거나 같고, 단조감소하는 홀 수번째 부분수렴값들은 모두 c0 보다 크거나 같다. 따라서 α0 = limn c2n 와 α = limn c2n+ 가 모두 존재하고, α0 α 이다. 기초정리 5.2.7에 의해서 0 c2n c2n = q2n q2n 2n(2n ) 이므로, α0 = α 가 성립한다. 이제 무한연분수의 값을 [a0, a,...] = lim cn. n 으로 정의한다.

112 5.3 무한연분수 05 예 x = π로 가지고 위의 정리를 확인해보자. 정리 5.3.6의 증명에서 처럼, cn 은 π의 n번 째 부분수렴이라고 하자. n이 홀수들일 때 c = , c3 = , c5 = 등으로 cn 은 π에 아래로 수렴한다, 반면에 n 이 짝수이면 c2 = , c4 = , c6 = 과 같이 값이 점차 커지면서 π에 수렴한다. 정리 실수들의 수열 a0, a, a2,...은 n 인 모든 n에 대해서 an > 0이다. 0보다 큰 모든 정수 n에 대하여 cn = [a0,p a,... an ] 이라고 놓자. 그러면 lim cn 이 존재하기 위한 필요충분조건은 n=0 an 이 발산하는 것 n 이다. P 증명 여기서는 an 이 발산하면 limn cn 이 존재하는 것만을 보인다. 다른 방향의 증명은 [52, Ch. 2, Thm. 6.]에서 볼 수 있다. 정수 qn 은 절 5.2.에서 q 2 =, q = 0, 그리고 n 0이면 qn = an qn + qn 2 으로 정의한 부분수렴의 분모들의 수열이라고 하자. 정리 5.3.6의 증명에서 보았듯이 limn cn 은, {qn qn }이 무한대로 발산할 때, 수렴한다. P극한 따라서 n=0 an 이 발산하면 {qn qn }이 무한대로 발산함을 보이면 충분 하다. 짝수 n에 대하여 qn = an qn + qn 2 = an qn + an 2 qn 3 + qn 4 = an qn + an 2 qn 3 + an 4 qn 5 + qn 6 = an qn + an 2 qn a2 q + q0 이고, 홀수 n에 대해서는, qn = an qn + an 2 qn a q0 + q 이다. n > 0이면 an > 0이므로 {qn }은 증가수열이다. 따라서 i 0이면 qi 이다. 이 사실을 qn 에 대한 위의 식에 적용하면, 짝수인 n은 qn an + an a2 을, 홀수인 n은 qn an + an a 을 만족한다. P P P 만약 an 이 발산하면 a2n 나 a2n+ 중에 적어도 하나는 발산한다. 그러면 위의 부등식들은 {q2n }이나 {q2n+ }중 적어도 하나는 발산해야한 다. 그런데 {qn }은 증가수열이므로, {qn qn }이 무한대로 발산한다.

113 06 5. 연분수 예 n 2 일때 a n = n log(n) 이라하자. 적분판정법에의하여, a n 은발산한다. 따라서정리 에의하여, 연분수 [a 0, a, a 2,...] 은수렴한다. 이연분수는아주느리게수렴한다. 예를들어, 다음값들을참고하면 0000 항까지계산으로도이들이수렴할것인지를확신하기는어렵다. 이나 [a 0, a,..., a 9999 ] = [a 0, a,..., a 0000 ] = 정리 실수 x 는연분수과정에의하여얻은 ( 유한, 혹은무한 ) 단순연분수 [a 0, a, a 2,...] 의값과같다. 증명만약유한하면적당한 n 에서 t n = 0 이되고, 이는바로보조정리 의결과이다. 무한단순연분수라면, 보조정리 에의하여, x = [a 0, a,..., a n, t n ] 으로쓸수있고, 기초정리 에의하여다음을얻는다. x = n + n t n. q n + q n t n 따라서, 만약 c n = [a 0, a,..., a n ] 이라면, x c n = x n = q n t n n q n + n q n t n n q n n q n ( ). q n t n q n + q n = n q n n q ( n ) q n t n q n + q n ( ) n = ( ) q n t n q n + q n 이되므로, x c n = ( ) q n t n q n + q n < q n (a n+ q n + q n ) = q n q n+ n(n + ) 0

114 5.4 e의 연분수 를 얻는다. 위의 부등식에서는 an+ 이 이므로 < tn 임을 이용하였다. tn 의 07 정수부분이고, 따라서 tn < 다음 따름정리는 정리 5.3.0의 증명과정에서 확인한 것이다. 따름정리 5.3. (연분수의 수렴). a0, a,...이 단수연분수를 정의하고 x = [a0, a,...] R이라고 하자. 그러면 모든 m에 대하여, x m < qm qm qm+ 이 성립한다. 기초정리 x가 유리수이면, 연분수 과정에서 얻은 수열 a0, a,... 은 유한수열이다. 증명 [b0, b,..., bm ]는 알고리듬..3을 이용하여 얻은 유리수 x의 연분 수라고 하면, bi 는 각 단게에서의 몫이다. m = 0이면, x는 정수이므로, m > 0이라고 가정하자. 그러면 i x = b0 + /[b,..., bm ] 으로 쓸 수 있다. 만약 [b,..., bm ] = 이면, m =, b = 이 되는데, 이는 정수 b0 + 의 연분수 [b0 + ]를 주는 것이므로, 우리의 제한 조건하에서는 알고리듬..3으로부터 나타나지 않는다. 따라서 [b,..., bm ] > 이 되고, 연분수 알고리듬에서는 a0 = b0, t0 = /[b,..., bm ]을 얻는다. 이 과정을 반복하면, 모든 n에 대하여 an = bn 을 얻는다. 5.4 e의 연분수 e의 연분수는 [2,, 2,,, 4,,, 6,...]로 시작한다. 오일러가 737년 증명 하였듯이([7]참조), e는 분명한 패턴을 가지는 무한연분수로 나타난다. 오 일러는 e가 무한연분수로 나타나므로 e가 무리수임을 증명하였다. 이 책에서의 증명은 [9]에 있는 증명을 거의 그대로 설명하고 있다. [9] 의 증명 또한 Hermite의 증명을 약간 변형한 것이다 ([40]참조). e의 연분수 표현은 독일책 [4]에서도 다루고 있지만, 그 증명은 이 책에서 다루지 않은 배경을 상당히 많이 이용한다 준비 먼저 e의 연분수를 약간 다른 형태로 써 보려고 한다. [2,, 2,,, 4,...] 대신 전체적으로 같은 패턴을 가지도록 하기 위하여 수열 {an n 0}을 [, 0,,, 2,,, 4,..., 2(n ),,,..., ]

115 08 5. 연분수 로놓고시작할수있다. ( 이단원의다른절에서는 n 이면부분몫 a n 은양수로가정하지만, 이절에서는잠시이조건을잊고 a = 0 을허락해준다.) 세수열에의해주어진연분수의부분수렴의분자와분모는간단한순환성질을만족한다. i 나 q i 대신 r i 를사용하면다음과같다. r 3n = r 3n + r 3n 2 r 3n = r 3n 2 + r 3n 3 r 3n 2 = 2(n )r 3n 3 + r 3n 4. 우리의첫번째목표는위의세개의점화식을 r 3n, r 3n 3, r 3n 6 만포함하는한개의점화식으로줄이는것이다. 먼저위의세식으로부터다음식을얻는다. 따라서 r 3n = r 3n + r 3n 2 = (r 3n 2 + r 3n 3 ) + (2(n )r 3n 3 + r 3n 4 ) = (2(n )r 3n 3 + r 3n 4 + r 3n 3 ) + (2(n )r 3n 3 + r 3n 4 ) = (4n 3)r 3n 3 + 2r 3n 4. r 3n 3 = 2r 3n 7 + (4n 7)r 3n 6. 첫번째식에서 2r 3n 4 를소거하기위하여 2r 3n 4 를다시써보면다음과같다. 2r 3n 4 = 2(r 3n 5 + r 3n 6 ) = 2((2(n 2)r 3n 6 + r 3n 7 ) + r 3n 6 ) = (4n 6)r 3n 6 + 2r 3n 7 이식을첫번째식의 2r 3n 4 에, 그리고두번째식에서 2r 3n 7 를첫번째식에대입하면우리가필요로하는점화식 을얻는다. r 3n = 2(2n )r 3n 3 + r 3n 두적분수열 x n = 3n, y n = q 3n 으로정의하자. 수렴하는수열의 3n- 항들의수렴값은 n- 항들의수렴값과같으므로, x n /y n 도연분수의극한으로수렴한다. 수열 {x n }, {y n } 은 n 2 인모든 n 에대하여앞절에서얻은점화식 z n = 2(2n )z n + z n 2 (n 2) (5.4.) 을만족한다. ( 단, z n 은 x n 이나 y n 을대신한다.) 이두수열은표 5. 을참고한다. ( 첫두항 x 0 =, x = 3, y 0 = y = 의값들은원래의연분수로부터직접계산으로얻은값들이다.) 그런데각단계에서여러항들을뺐으므로, x n /y n 은 e 에아주빠르게수렴한다.

116 5.4 e 의연분수 09 TABLE 5.. Convergents n x n y n x n /y n 관련적분수열들 수열 T 0, T, T 2,... 은 n 0 에대하여 T n = 0 t n (t ) n n! e t dt 으로정의된실수들의수열이다. T 0, T 의값은다음과같다. T 0 = T = 0 = 0 e t dt = e, t(t )e t dt 0 ((t ) + t)e t dt = (t )e t te t = e + 2(e ) = e 3 e t dt (T 은 u = t(t ), dv = e t dt 으로놓고부분적분을사용한다. 그러면정적분의범위가 [0, ] 구간인데 u 가경계값 0 과 에서 0 이되어계산이간단해지는데이는 n 인 T n 의계산에서도적용된다.) 놀랍게도 T 0 = y 0 e x 0, T = y e x 임을확인할수있다. 이제 T n 이 x i 와 y i 와같은점화식 (5.4.) 을만족한다면, 귀납법에의하여 T n = y n e x n 이성립함을쉽게보일수

117 0 5. 연분수 있다. 다음은 T n 도 x i, y i 와같은점화식을만족함을보이는식이다. T n = = = t n (t ) n n! e t dt t n (t ) n + t n (t ) n ( t n 2 (t ) n (n 2)! (n )! + n tn (t ) n (n )! e t dt + n tn (t ) n + tn (t ) n 2 (n )! (n 2)! t n 2 (t ) n 2 = 2nT n + (2t 2 2t + ) e t dt (n 2)! = 2nT n t n (t ) n (n 2)! = 2nT n + 2(n )T n + T n 2 = 2(2n )T n + T n 2. ) e t dt e t t n 2 (t ) n 2 dt + 0 (n 2)! e t dt 그러므로, T n = y n e x n 이다. 한편 이므로 lim n 0 t n (t ) n n! e t dt = 0, x n lim = lim n y (e T n ) = e. n n y n 이다. 따라서 x n /y n 이 e 에점근하고, 또연분수 [2,, 2,,, 4,,,...] 는 e 에수렴한다 증명의확장 이절의증명방법을일반화하면모든자연수 n N 에대하여 e /n 의연분수가 [, (n ),,, (3n ),,, (5n ),,, (7n ),...] 임을보일수있다 (Exercise 5.6 참조 ). 5.5 이차무리수 이절에서는순환무한연분수는이차무리수임을보인다. 이차무리수란이차방정식의무리수해를의미한다. 연분수에서의이결과는소수가순환소수이기위한필요충분조건이유리수라는사실과비교된다. 이차무리수의

118 5.5 이차무리수 연분수가결국은순환한다는사실의증명은놀라울정도로어렵고흥미로운유한성논증 (finiteness argument) 을포함한다. 절 에서는의도적으로우리가관심을보이지않고있던 Q 상에서의 3 차이상의기약다항식의실근들의연분수를강조한다. 정의 5.5. ( 이차무리수 ). 이차무리수 (quadratic irrational) 는계수가유리수인이차다항식의무리수해를의미한다. 예를들어 ( + 5)/2 는이차무리수이다 = [,,,...] 였음을기억하자. 2 의연분수는 [, 2, 2, 2, 2, 2,...], 389 의연분수는 [9,, 2,,,,, 2,, 38,, 2,,,,, 2,, 38,...] 이다. [, 2,,,,, 2,, 38] 는영원히계속될까? SAGE 예 Sage 를이용하여 389 의항을더계산하면다음과같다. sage: def cf_sqrt_d(d, bits):... x = sqrt(realfield(bits)(d))... return continued_fraction(x) sage: cf_sqrt_d(389,50) [9,, 2,,,,, 2,, 38,, 2,,,,, 2,, 38, 2] sage: cf_sqrt_d(389,00) [9,, 2,,,,, 2,, 38,, 2,,,,, 2,, 38,, 2,,,,, 2,, 38,, 2,,,,, 2,, 38,, 2,, ] 5.5. 순환연분수 정의 ( 순환연분수 ). 순환연분수 (eriodic continued fraction) 는충분히큰모든 n 에대해서 a n = a n+h 을만족하는정수 h 가존재하는연분수 [a 0, a,..., a n,...] 이다. 이런 h 중가장작은정수를연분수의주기 (eriod of the continued fraction) 라고한다. 예 순환연분수 [, 2,, 2,...] = [, 2] 는어떤값에수렴할까? [, 2] = +,

119 2 5. 연분수 이므로, α = [, 2] 라놓으면, α = α = + 2α + α 가성립한다. 따라서 2α 2 2α = 0 이므로 = + α 2α + = 3α + 2α + 이다. α = 정리 ( 순환연분수의특징 ). 무한단순연분수가순환연분수이기위한필요충분조건은이차무리수를나타내는연분수이다. 증명 (= ) 연분수 [a 0, a,..., a n, a n+,..., a n+h ] 이순환한다고하자. 그러면 α = [a n+, a n+2,...] 라놓으면 α = [a n+,..., a n+h, α] 가성립하므로, 기초정리 에의하여 α = α n+h + n+h αq n+h + q n+h. 따라서 α 는계수가유리수인이차식의해로써나타난다. 그런데 [a 0, a,...] = [a 0, a,..., a n, α] = a 0 + a + a α 이고 a i 는모두정수이므로, 분모의유리화를유한번반복하면위식은 c+dα 또는 c+dα ( c, d Q, α : α 의켤레무리수 ) 꼴이되므로, [a 0, a,...] 는 Q 위에서정의된이차다항식의해이다. 기초정리 로부터무한연분수가수렴하는값은유리수는아니므로 α Q 이다. ( =) α R 가이차식 aα 2 + bα + c = 0 (5.5.) 를만족하는무리수라고하자. 단, a, b, c Z 이고 a 0 이다. [a 0, a,...] 이 α 의연분수일때, r n = [a n, a n+,...],

120 라고놓으면, α = [a 0, a,..., a n, r n ] 5.5 이차무리수 3 을만족한다. 이제 r n 들로나타날수있는수들이유한개뿐임을보이면 α 의연분수는순환한다. 왜냐하면, r n 들로나타날수있는수들이유한개뿐이면, r n = r n+h 를만족하는 n, h > 0 가존재한다. 따라서 [a 0,..., a n, r n ] = [a 0,..., a n, a n,..., a n+h, r n+h ] = [a 0,..., a n, a n,..., a n+h, r n ] = [a 0,..., a n, a n,..., a n+h, a n,..., a n+h, r n+h ] = [a 0,..., a n, a n,..., a n+h ] 를얻는다. 따라서 r n 들로나타날수있는수들이유한개뿐이라는것만보이면된다. α = n = r n n + n 2 q n r n q n + q n 2 이므로, 이를이차식 (5.5.) 에대입하면 r n 은이차식 A n r 2 n + B n r n + C n = 0 을만족한다. 이때 A n, B n, C n 은다음과같다 : A n = a 2 n + b n q n + cq 2 n, B n = 2a n n 2 + b( n q n 2 + n 2 q n ) + 2cq n q n 2, C n = a 2 n 2 + b n 2 q n 2 + cq 2 n 2. 위식에서 A n, B n, C n Z 이고, C n = A n, 그리고 B 2 n 4A n C n = (b 2 4ac)( n q n 2 q n n 2 ) 2 = b 2 4ac 이다. 정리 5.3.0의증명으로부터 α n q n < q n q n 가성립한다. 통분하면 가되고, 따라서 (αq n n = αq n n < q n < q n δ q n 라놓으면 ) δ < 이면서 n = αq n + δ q n

121 5. 연분수 4 를 만족한다. An 에 이 식을 대입하면, An = a αqn + δ 2 qn + b αqn + 2 = (aα2 + bα + c)qn + 2aαδ + a = 2aαδ + a δ2 2 qn δ qn δ2 2 qn 2 qn + cqn + bδ + bδ. 따라서 다음 부등식을 얻는다. An = 2aαδ + a δ2 2 qn + bδ < 2 aα + a + b. 이는 정수 An 이 오직 유한개의 값만을 취할 수 있음을 보여준다. 또, Cn = An, Bn = b2 4(ac An Cn ) 이므로 세 쌍의 정수 (An, Bn, Cn )이 취할 수 있는 값들도 유한개의 가능 성 밖에 없으므로, 이들을 계수로 갖는 이차 다항식의 해로 나타나는 rn 도 유한개뿐이고, 따라서 정리가 성립한다. (위의 증명은 [23, Thm. 77, g.44 45]을 많이 참고하였다.) 고차 대수적 수의 연분수 정의 (대수적 수). 대수적 수(algebraic number)는 다항식 f Q[x]의 해이다. Oen Problem 대수적 수 3 2의 연분수를 완벽하게 묘사하여라. 시작은 다음과 같다. [, 3,, 5,,, 4,,, 8,, 4,, 0, 2,, 4, 2, 2, 3, 2,, 3, 4,,, 2, 4, 3, 2,, 5, 3,, 4, 534,,, 5,,,...] 본 저자는 아직은 어떤 특정한 패턴(attern)을 찾지 못하였고, 534라는 수의 출현으로 풀 수 있으리라는 자신감마저 줄어 들었다. Lang과 Trotter 3 ([35]참조)는 2의 연분수의 많은 항들을 통계적으로 분석하였는데 그들 3 의 결과는 2는 특이한( unusual ) 연분수 형태임을 시사하는데, 그러나 그 후 [36]의 결과는 그렇지 않을 수 있음을 시사한다.

122 5.6 유리수인식하기 5 Khintchine ([26, g. 59] ) [963 년을기준으로 ] 고차대수적수의연분수표현에대하여는우리가지금까지연분수들에대해증명한사실들과유사한어떤성질들도알려져있지않다. [...] 현재까지이차이외의고차대수적수의연분수에대해알려진사실이없다는사실을지적한다는것이흥미롭다. 심지어이연분수들의각항이유계인지도모른다. 일반적으로 2 차보다큰대수적수의연분수는아주어렵다고알려져있고거의연구되지않은상태이다. Richard Guy ([9, g. 260] 참조 ) 단순연분수의부분몫이유계가아닌 3 차이상의대수적수는존재하는가? 모든그런대수적수의부분몫 (artial quotients) 은유계가아닌가? Baum 과 Sweet 는 Richard Guy 의질문에 Q 를다른체 K 위에서의대수적수로바꾼후답을주었다 [4]. ( 체 K 는원소가두개인체 F 2 위에서변수 /x 의 Laurent 급수들의체 F 2 ((/x)) 였다. 즉, K 의원소는 x 에관한다항식과 /x 에관한멱급수의합이다.) 그들은연분수의모든항들의차수가유한한 K 위에서의 3 차대수적원소도찾았고, 또연분수의항들의차수가유계하지않은 3 차이상의여러대수적원소들을찾았다. 5.6 유리수인식하기 어떤유리수의근사값을어떻게든구했다고하고, 그유리수가무엇인지알아내고싶다고하자. 아주정밀하게그값을계산하기위하여, 소수전개에서의주기를찾는것은, 주기는굉장히큰수가될수있기때문에 ( 아래참조 ), 좋은접근방법은아니다. 훨씬좋은방법은그근사값의단순연분수를계산하고, 아주큰부분몫이나오기전에잘라서그자른연분수의값을계산하는것이다. 그결과상대적으로작은분자와분모를갖는유리수를얻는데, 이수는, 연분수의꼬리부분은 /a n 을넘지않으므로, 우리가구하고자하는유리수와는상당히가까운수이다. 어떻게유리수를인식하는지약간은부자연스러운예로살펴본다. 찾고자하는유리수는 x 이다. x = 9495/3847 = 그근사값을 라고하면, 이수의연분수는다음과같다. [2, 2, 7, 2,, 5,,,,,,, , 2,,,,...] 그리고다음식을확인할수있다. [2, 2, 7, 2,, 5,,,,,, ] =

123 6 5. 연분수 유리수는반드시순환소수가됨을알고있지만위의 x 의소수표현에서어떤주기도확인할수없었다. 법 3847 에서 0 의위수가 3846 이므로, /3847 은주기가 3846 인순환소수가된다 (Exercise 5.7 참조 ). 이예보다는덜인위적인유리수값을찾는응용을보기위하여 f(x) Z[x] 는적어도한개의유리수해를가지는계수가정수인다항식이라고가정하자. 그러면뉴톤의방법으로각실수해의근사값들을구할수있고, 그근사값들의연분수들을이용하여유리수근사값을구한후식에대입하여해가되는지를확인할수있다. 다항식의유리수해 n/d 는, n, d Z 를서로소로놓으면, n 는상수항을, d 는최고차항의계수를나눈다는사실도이용할수있다. 그러나이정리를이용하려면 f 의상수항과최고차항의계수를인수분해해야하는데 ( 절..3 참조 ), 만약이수들이굉장히큰수들인경우는이방법은실용적이지는않다. 반면, 뉴턴의방법과연분수를이용하는방법은 f 의차수가너무크지않으면빠르게 n/d 을구할수밖에없다. 예를들어, f = 3847x x 라고하자. 뉴턴의방법을적용하기위하여, x 0 를 f 의해라고가정하자. 다음식 x n+ = x n f(x n) f (x n ). 을반복하면 x n 이 f 의진짜해의근사값이라는것이뉴턴의방법이다. x 0 = 0 으로잡자. 그러면 x = , x 2 = x 과 x 2 의연분수는각각다음과같다 : [2, 2, 6,, 47, 2,, 4, 3,, 5, 8, 2, 3] [2, 2, 7, 2,, 5,,,,,,, 03, 8,, 2, 3,...]. x 2 의연분수를 03 앞에서자르면, [2, 2, 7, 2,, 5,,,,,, ] 를얻는데, 계산하면 9495/3847 이고, f 에대입하여 f 의유리수해임을확인할수있다. SAGE 예 SAGE 를이용하여위의계산을한다. 먼저 Newton 의반복을구현한다. sage: def newton_root(f, iterates=2, x0=0, rec=53):... x = RealField(rec)(x0)... R = PolynomialRing(ZZ, x )... f = R(f)... g = f.derivative()

124 5.7 두제곱수의합 7... for i in range(iterates):... x = x - f(x)/g(x)... return x 다음 Newton 의반복을 run 하고, 그나온값의연분수를계산한다. sage: a = newton_root(3847*x^ *x ); a sage: cf = continued_fraction(a); cf [2, 2, 7, 2,, 5,,,,,,, 03, 8,, 2, 3] 연분수를잘라내고그값을계산한다. sage: c = cf[:2]; c [2, 2, 7, 2,, 5,,,,,, ] sage: c.value() 9495/3847 이책의범위를넘어서긴하지만연분수의또다른종류의중요한응용을소개하면, 고급정수론의어떤영역에는어떤점들에유리수값들을갖는함수들이있고오직근사값들을이용하여값을구해야할때, 위에서보여준연분수방법이이함수값을구하는데결정적역할을한다. 5.7 두제곱수의합 이절에서는연분수를응용하여다음정리를증명한다. 정리 양의정수 n 이두제곱수의합이되기위한필요충분조건은 n 의소인수분해에서 3 (mod 4) 을만족하는 n 의소수약수 의지수가짝수인것이다. 먼저몇개의예들을살펴본다. 5 = 는두제곱수의합이지만, 7 은그렇지않다. 200 은 3 으로나누어지나 9 로나누어지지않으므로정리 5.7. 로부터 200 은두제곱수의합이아니다 ( 왜냐하면 2 + 은 3 으로나누어지나 2 + 은 9 로나누어지지않으므로 ). 이정리는 는두제곱수의합임을말해준다. SAGE 예 Sage 을사용하여주어진정수 n 이두제곱수의합인지아닌지를그대로알려주고, 또그런경우 a 2 + b 2 = n 이되는정수 a, b 를계산해주는프로그램을설계한다. sage: def sum_of_two_squares_naive(n):... for i in range(int(sqrt(n))):... if is_square(n - i^2):... return i, (Integer(n-i^2)).sqrt()... return "%s is not a sum of two squares"%n

125 8 5. 연분수 다음두세경우에우리함수를사용한다. sage: sum_of_two_squares_naive(23) 23 is not a sum of two squares sage: sum_of_two_squares_naive(389) (0, 7) sage: sum_of_two_squares_naive(2007) 2007 is not a sum of two squares sage: sum_of_two_squares_naive(2008) 2008 is not a sum of two squares sage: sum_of_two_squares_naive(2009) (28, 35) sage: 28^2 + 35^ sage: sum_of_two_squares_naive(2*3^4*5*7^2*3) (89, 693) 정의 (Primitive). 정수 n 이두제곱수의합 n = x 2 + y 2 에서 x 와 y 가서로소이면서 rimitive 표현이라고한다. 보조정리 정수 n 이 3 (mod 4) 인소수 로나누어지면, n 은 rimitive 하게두제곱수의합으로표현될수없다. 증명정수 n 이 x 와 y 가서로소이면서 n = x 2 + y 2 이고, 는 n 의임의의소수약수라고하자. 그러면 x 2 + y 2, gcd(x, y) = 이므로, x와 y를만족한다. 그런데 Z/Z는체이므로, 식 x 2 + y 2 0 (mod ) 를 y 2 로나눌수있고, 그러면 (x/y) 2 (mod ( ) ) 이성립한다. 따라서 이법 에서제곱수가되므로 Legendre 부호는 +이되어야 한다. 그런데기초정리 4.2.에의하면 ( ) = ( ) ( )/2 ( ) 인데 = 은 ( )/2이짝수, 즉, (mod 4) 와동치이다. 정리 5.7. 의증명 (= ). 는 3 (mod 4) 를만족하는소수, r 은 r n 이나 r+ n 인홀수이고, n = x 2 + y 2 이라고가정하자. d = gcd(x, y) 라고하면, x = dx, y = dy, 그리고 n = d 2 n 이면서 gcd(x, y ) =, (x ) 2 + (y ) 2 = n

126 5.7 두제곱수의합 9 이된다. 즉, n 은서로소인두제곱수의합이된다. r 이홀수이므로, r 이모두 d 2 를나눌수가없으므로, n 이어야만한다. 그러면보조정리 에의하여 gcd(x, y ) > 이어야만하므로, n 이두제곱수의합으로표현된다는우리의가정은모순이다. 이제정리 5.7. 의충분조건 ( =) 을증명하기위하여이문제는 n 이소수인경우만증명하면충분함을보이자. 먼저 n 을 n = n 2 n 2 으로놓자. 이때 n 2 는 3 (mod 4) 인소수약수가없는수이다. 그러면 (x 2 + y 2 )(x y 2 2) = (x x 2 y y 2 ) 2 + (x y 2 + x 2 y ) 2 (5.7.) 이성립하여, 두제곱수의합의곱은다시두제곱수의합이므로, n 2 의모든소수약수가두제곱수의합임을보이면된다. 2 = 이므로, (mod 4) 인소수 가두제곱수의합임을보이면충분하다. 보조정리 x R, n N이면, 분모가 n이하이면서 x a b b(n + ) 를만족하는기약분수 a b 가존재한다. 증명 x의연분수 [a 0, a,...] 를생각하자. 따름정리 5.3.에의하여, 각 m 에대하여 x m q m < q m q m+ 이성립한다. q m+ q m +이고 q 0 = 이므로, q m n < q m+ 을만족하는 m이존재하거나, 혹은 x의연분수가유한하면서 n이 x의분모보다크다. 후자의경우에는 a b = x로택하면된다. 전자의경우는 x m < q m q m+ q m (n + ) q m 이성립하므로 a b = m q m 로택하면된다. 정리 5.7. 의증명 ( =). 앞에서설명한것처럼 (mod 4) 인임의의소수는두제곱수의합임을보이면된다. (mod 4) 이므로, ( ) ( )/2 = 이다. 따라서기초정리 4.2.로부터 이법 에서제곱수이다. 즉, r Z 이존재하여 r 2 (mod ) 을만족한다. n =, x = r 로놓고보조정리 5.7.5를적용하면, 기약분수 a b 가존재하여 0 < b < 와 r a b b(n + ) < b

127 20 5. 연분수 를만족한다. c = rb + a 로놓으면, c < b b = = 이므로 0 < b 2 + c 2 < 2 를얻는다. 그런데 c rb (mod ) 이므로, b 2 + c 2 b 2 + r 2 b 2 b 2 ( + r 2 ) 0 (mod ) 이되는데 2 보다작은양수중에서 의배수는 뿐이므로 b 2 + c 2 = 를얻는다. 참조 정리 5.7. 의증명으로부터임의의 (mod 4) 를두제곱수의합으로표현할수있는효율적인알고리듬을얻을수있다. SAGE 예 Sage 와정리 5.7. 를이용하면 (mod 4) 인소수 를두제곱수의합으로표현하는효율적인알고리듬을얻는다. 먼저정리의증명으로부터알고리듬을구현한다. sage: def sum_of_two_squares():... = Integer()... assert %4 ==, " must be modulo 4"... r = Mod(-,).sqrt().lift()... v = continued_fraction(-r/)... n = floor(sqrt())... for x in v.convergents():... c = r*x.denominator() + *x.numerator()... if -n <= c and c <= n:... return (abs(x.denominator()),abs(c)) 다음예는이알고리듬을이용하여 (mod 4) 인첫번째 0 자릿수소수를두제곱수의합으로쓴다. sage: = next_rime(next_rime(0^0)) sage: sum_of_two_squares() (5593, 82908) 위의계산은본질적으로순간적인계산이다. 대신먼저설명한 naive 알고리듬을이용하면 를두제곱수의합으로표현하는데수초가걸린다. sage: sum_of_two_squares_naive() (5593, 82908)

128 5.8 Exercises Exercises 5. If c n = n /q n is the nth convergent of [a 0, a,..., a n ] and a 0 > 0, show that [a n, a n,..., a, a 0 ] = n n and (Hint: In the first case, notice that [a n, a n,..., a 2, a ] = q n q n. n = a n + n 2 = a n + n n.) n n Show that every nonzero rational number can be reresented in exactly two ways by a finite simle continued fraction. (For examle, 2 can be reresented by [, ] and [2], and /3 by [0, 3] and [0, 2, ].) 5.3 Evaluate the infinite continued fraction [2,, 2, ]. 5.4 Determine the infinite continued fraction of Let a 0 R and a,..., a n and b be ositive real numbers. Prove that if and only if n is odd. [a 0, a,..., a n + b] < [a 0, a,..., a n ] 5.6 (*) Extend the method resented in the text to show that the continued fraction exansion of e /k is [, (k ),,, (3k ),,, (5k ),,, (7k ),...] for all k N. (a) Comute 0, 3, q 0, and q 3 for the above continued fraction. Your answers should be in terms of k. (b) Condense three stes of the recurrence for the numerators and denominators of the above continued fraction. That is, roduce a simle recurrence for r 3n in terms of r 3n 3 and r 3n 6 whose coefficients are olynomials in n and k. (c) Define a sequence of real numbers by T n (k) = /k (kt) n (kt ) n k n 0 n! e t dt. i. Comute T 0 (k), and verify that it equals q 0 e /k 0. ii. Comute T (k), and verify that it equals q 3 e /k 3.

129 22 5. 연분수 iii. Integrate T n (k) by arts twice in succession, as in Section 5.4, and verify that T n (k), T n (k), and T n 2 (k) satisfy the recurrence roduced in art 6b, for n 2. (d) Conclude that the continued fraction [, (k ),,, (3k ),,, (5k ),,, (7k ),...] reresents e /k. 5.7 Let d be an integer that is corime to 0. Prove that the decimal exansion of d has a eriod equal to the order of 0 modulo d. (Hint: For every ositive integer r, we have 0 = r n 0 rn.) 5.8 Find a ositive integer that has at least three different reresentations as the sum of two squares, disregarding signs and the order of the summands. 5.9 Show that if a natural number n is the sum of two rational squares it is also the sum of two integer squares. 5.0 (*) Let be an odd rime. Show that, 3 (mod 8) if and only if can be written as = x 2 +2y 2 for some choice of integers x and y. 5. Prove that of any four consecutive integers, at least one is not reresentable as a sum of two squares.

130 6 타원곡선 (Ellitic Curves) This is age 23 Printer: Oaque this 타원곡선은순수와응용정수론에서중심적인역할을하는정수론적인대상이다. 정수론에서합동수문제 - 어떤정수가모든변의길이가유리수인직각삼각형의면적인가?- 와같은심오한문제가자연스럽게타원곡선에관한문제로바뀐다. 유명한 Birch 와 Swinnerton-Dyer 가설과같은다른문제들은타원곡선이가질것이라고기대하는신비한구조를묘사한다. 또유한아벨군을타원곡선과연결시킬수가있으며, 많은경우에서이군들은적절한암호체계를만들어준다. 특히많은사람들은타원곡선이, 많은응용에서아주유용한, 크기가작은키로충분한안전성을보장해줄것으로믿고있다. 예를들어우편직인에암호화키를인쇄하려고한다면, 그키의길이가짧으면도움이된다. 그뿐만아니라타원곡선을이용하여정수를인수분해할수있는데, 앞에서언급했듯이이는 3.3 절의 RSA 의공개키암호를교묘하게공격하는데아주중요한역할을한다. 이단원에서는단원 에서단원 3 에서다룬개념을기반으로하여타원곡선을간략하게소개하고여러가지심오한정리들과개념들을증명없이소개한다. 6. 절에서는, 타원곡선을정의하고타원곡선의그림들을그려본다. 그리고나서 6.2 절에서는타원곡선들의점들의집합에군의구조를넣는방법을설명한다. 6.3 절과 6.4 절은, 공개키암호를만들고정수를인수분해하는, 두개의암호관련문제에타원곡선을적용하는방법에관한절이다. 마지막으로절 6.5 에서는유리수위에서의타원곡선을관찰하고, 000 년간미해결문제와타원곡선과의관계를설명한다.

131 24 6. 타원곡선 FIGURE 6.. The ellitic curve y 2 = x 3 5x + 4 over R 6. 정의 정의 6.. ( 타원곡선 ). 체 K 위의타원곡선 (ellitic curve) 은식 y 2 = x 3 + ax + b 으로정의된곡선이다. 단, a, b K 이고 6(4a b 2 ) 0 이다. 조건 6(4a b 2 ) 0 은타원곡선이특이점 (singular oints) 이없을조건이다. 이것은우리들이적용하고자하는문제에서는아주필수적인조건이다. (Exercise 6. 참조 ). SAGE 예 ElliticCurve 명령어로유리수체 Q 위에서타원곡선을생성하고그림 6. 을그린다. sage: E = ElliticCurve([-5, 4]) sage: E Ellitic Curve defined by y^2 = x^3-5*x + 4 over Rational Field sage: P = E.lot(thickness=4,rgbcolor=(0.,0.7,0.)) sage: P.show(figsize=[4,6]) 절 6.3 에서는정수를인수분해하기위하여, 6.4 절에서는암호계를만들기위하여유한체위에서의타원곡선을이용한다. 다음 Sage 코드는위수가 37 인유한체위에서의타원곡선을생성해주고, 그림 6.2 에서예시한것처럼점들을나타내준다.

132 6. 정의 25 sage: E = ElliticCurve(GF(37), [,0]) sage: E Ellitic Curve defined by y^2 = x^3 + x over Finite Field of size 37 sage: E.lot(ointsize=45) FIGURE 6.2. The ellitic curve y 2 = x 3 + x over Z/37Z 6.2 절에서는집합 K 위의타원곡선 E 의점들에항등원역할을하는 O 를더한집합 E(K) = {(x, y) K K : y 2 = x 3 + ax + b} {O} 위에아벨군구조를자연스럽게정의하려고한다. 여기서 O 는무한에있는점으로생각하면된다. 그림 6.2 는유한체 Z/37Z 위에서의 y 2 = x 3 + x 을만족하는점들로구성되어있는데, 무한에있는점 O 는구체적으로그리지않는다. 참조 체 K 의표수가 2 이면 ( 즉, K 에서 + = 0 이면 ), 임의의 a, b K 에대하여 6(4a b 2 ) K 는항상 0 이다. 따라서, 정의 6.. 에의하면 K 위에서의타원곡선은존재하지않는다. 표수가 3 인경우도유사한문제가발생한다. 대신, 우리가다음과같은형태의식 y 2 + a xy + a 3 y = x 3 + a 2 x 2 + a 4 x + a 6, 으로정의된방정식을더일반적인형태의타원곡선들을정의하면, 표수가 2 와 3 인경우에도바른타원곡선을얻을수있다. 이곡선들이암호론에서는더유명한타원곡선들인데, 이유는컴퓨터에효율적으로규현하는것이더쉽기때문이다. O 는 y 축과평행인모든직선들이만나는무한점으로생각하면된다

133 26 6. 타원곡선 6.2 타원곡선의 군 구조 E는 y 2 = x3 + ax + b으로 정의된 체 K위의 타원곡선이다. 먼저 E(K) 위에 이항연산 +를 정의한다. 알고리듬 6.2. (타원곡선 군 연산). P, P2 E(K)일 때, 이 알고리듬은 세 번 째 점 R = P + P2 E(K)를 계산한다.. [Is Pi = O?] 만약 P = O이면 R = P2 로 놓고, 만약 P2 = O이면 R = P 으로 놓고 마친다. 그렇지 않으면 (xi, yi ) = Pi 로 쓴다. 2. [Negatives] 만약 x = x2 이고 y = y2 이면, R = O로 놓고 마친다. ( (3x2 + a)/(2y ) if P = P2, 3. [Comute λ] λ = (y y2 )/(x x2 ) otherwise. 라 놓는다. 4. [Comute Sum] 그러면 R = λ2 x x2, λx3 ν 인데, 이 때 x3 = λ2 x x2 는 R 의 x-성분이고, ν = y λx 이다. 단계 3에서 P = P2 이면 y 6= 0이다. 그렇지 않으면 그 전 단계에서 끝났엇을 것이기 때문이다. 정리 알고리듬 6.2.에서 정의된 연산 +는 집합 E(K)에 항등원이 O인 아벨군 구조를 준다. 왜 이 정리가 참인지를 논하기 전에 +를 기하학적으로 재해석하여 쉽게 시각화하여 보자. P + P2 는 P 과 P2 를 지나는 직선 L이 E와 만나는 점 R의 x-축에 대칭인 점이다. (이 설명은 경우 과 2, 또 P = P2 일 때도 적절하게 적용될 수 있다.) 그림 6.3은 타원 곡선 y 2 = x3 5x + 4에서 덧셈 (0, 2) + (, 0) = (3, 4)을 앞에서 설명한 대로 그림으로 보여주고 있다. SAGE 예 타원곡선 y 2 = x3 5x+4을 Sage에서 생성하고 두 점 P = (, 0)와 Q = (0, 2)를 더한다. 또 P + P 를 계산하는데, 물론 이 값은 무한대 의 점 O인데, Sage에서는 (0 : : 0)로 나타낸다. 그리고 P + Q + Q + Q + Q 를 계산하는데, 그 값은 놀라울 정도로 크다. sage: E = ElliticCurve([-5,4]) sage: P = E([,0]); Q = E([0,2]) sage: P + Q (3 : 4 : ) sage: P + P (0 : : 0) sage: P + Q + Q + Q + Q (350497/35649 : / : ) 군연산의 기하적 설명을 더 분명하게 하기 위하여 다음 기초정리를 소 개한다.

134 6.2 타원곡선의 군 구조 FIGURE 6.3. The Grou Law: (, 0) + (0, 2) = (3, 4) on y 2 = x3 5x + 4 기초정리 (기하적 군연산 정의). Pi = (xi, yi ), i =, 2는 타원곡선 y 2 = x3 + ax + b위의 두 점이고 x 6= x2 라고 하자. L은 P 과 P2 를 지나는 유일한 직선이다. 그러면 L은 E와 P 과 P2 외에 정확히 한 점 Q = λ2 x x2, λx3 + ν, 에서 더 만난다. 단, λ = (y y2 )/(x x2 ), ν = y λx. 증명 P 과 P2 를 지나는 직선 L의 식은 y = y + (x x )λ이다. 이 식을 y 2 = x3 + ax + b에 대입하면 (y + (x x )λ)2 = x3 + ax + b. 간단히 하면 f (x) = x3 λ2 x2 + = 0꼴로 쓸 수 있는데, x항과 상수항은 꼭 필요하지 않으므로 생략하였다. P 과 P2 는 L E의 점이므로, x 과 x2 는 다항식 Q3 f 의 해이다. 따라서 f 는 (x x )(x x2 )로 나누어 떨어지므로, f = i= (x xi )로 쓸 수 있고, 전개하면 x + x2 + x3 = λ2 가 된다. 따 라서, 우리가 주장한대로 x3 = λ2 x x2 을 얻는다. 또 L의 식으로부터 y3 = y + (x3 x )λ = λx3 + ν을 얻는다. 정리 6.2.2를 증명한다는 것은 +가 아벨군의 네 개의 공리인 O가 항등 원임을 확인하고, 역원의 존재성과 교환과 결합법칙이 성립함을 보이는 것이다. 정의로부터 (x, y) + (x, y) = O이므로 역원은 항상 존재한다. 두 점 P 과 P2 의 순서를 바꾸더라도 이 두 점을 지나는 직선은 동일하므로 교환법칙 역시 성립한다. 증명하기 어려운 성질은 결합법칙이다. 즉, 세 점 P, P2, P3 에 대하여 (P + P2 ) + P3 = P + (P2 + P3 )

135 28 6. 타원곡선 을보이는것이다. 첫번째방법은 + 을모든경우를포함하여기하적인방법으로다시설명한후, 결합의성질을평면 ( 사영 ) 기하의문제로바꾸어증명한다. 이접근은아주고전적인접근방법인데, [5] 에적절한수준으로아주아름답게자세히설명되어있다. 또다른방법은 + 의공식을이용하여, 손으로계산하는것은아주지루한일이긴하지만, 양쪽의연산값이같음을확인하는것이다. 물론컴퓨터를이용하려계산할수는있지만이것역시지루할수있다. 세번째접근방법은 ([48] 이나 [2] 참조 ) 대수곡선의모든점들의집합으로생성되는자유아벨군 (free abelian grou) 인 divisor 군에대한일반적인이론을이용하는건데, 여기에서는연산의결합법칙은아주자연스러운따름정리일뿐이다. 이런점에서세번째접근이최선이긴하지만이를위하여는수학의새로운세상을많이소개해야하고이책의의도를많이벗어나므로생략한다. SAGE 예 다음 Sage 예에서는알고리듬 6.2. 을이용하여, 유리수체 Q 위의타원곡선상의임의의세점 P, P 2, P 3 가, P, P 2, P 3, P +P 2, P 2 +P 3 가다다르고항등원이아니라면, 결합법칙을만족함을보인다. 변수가 8 개인다항식환 R 을먼저정의함으로써이작업을수행한다. sage: R.<x,y,x2,y2,x3,y3,a,b> = QQ[] x i 가만족해야할조건를정의하고그조건들을만족하는잉여환 (factor ring) Q 를정의한다. 잉여환은정수환 Z 로부터 Z/nZ 를생성하는것과유사하다. Z/nZ 에서는 Z 에서와궁극적으로같은연산이지만 nz 의원소들을 0 으로본다는점이다른점이었다.) sage: rels = [y^2 - (x^3 + a*x + b),... y2^2 - (x2^3 + a*x2 + b),... y3^2 - (x3^3 + a*x3 + b)]... sage: Q = R.quotient(rels) 모든점이다르다고가정하고군연산을정의한다. sage: def o(p,p2):... x,y = P; x2,y2 = P2... lam = (y - y2)/(x - x2); nu = y - lam*x... x3 = lam^2 - x - x2; y3 = -lam*x3 - nu... return (x3, y3) 세점을정의하고, P + (P 2 + P 3 ) 와 (P + (P 2 + P 3 )) 를각각계산하고, 두결과의 x- 성분과 y- 성분이같음을확인한다. sage: P = (x,y); P2 = (x2,y2); P3 = (x3,y3) sage: Z = o(p, o(p2,p3)); W = o(o(p,p2),p3) sage: (Q(Z[0].numerator()*W[0].denominator() -... Z[0].denominator()*W[0].numerator())) == 0 True

136 6.3 타원곡선을이용한정수의인수분해 29 sage: (Q(Z[].numerator()*W[].denominator() -... Z[].denominator()*W[].numerator())) == 0 True 6.3 타원곡선을이용한정수의인수분해 987 년 Hendrik Lenstra 가정수를인수분해하는강력한알고리듬인타원곡선방법 ECM 을소개하는획기적인논문 [32] 을발표하였다. Lenstra 의방법은 [5, IV.4], [5, VIII.5], [0, 0.3] 에도설명되어있다. Lenstra 의알고리듬은정수 N 의 중간크기의 (medium-sized) 의인수를찾는데최적화되어있다. 오늘날중간크기란 0 에서 40 자릿수사이의수를의미한다. ECM 방법은 RSA 도전수를인수분해하는데에바로이용되지는않지만 (..3 절참조 ), 어떤수의약수를찾아내는데최선의알고리듬으로알려진 number field sieve 에서결정적인역할을하는보조적인수의인수를찾는데에사용된다. 또, ECM 을구현하는데는메모리도적게필요하다. H. Lenstra 6.3. Pollard 의 ( )- 방법 Lenstra 의발견은이절에서소개하려고하는 Pollard 의 ( )- 방법에영향을받아만들어졌다. 정의 6.3. (Power Smooth). B는양의정수이다. 양의정수 n이 n = ei i 로인수분해될때, 모든 i에대하여 ei i B를만족하면 n는 B-ower smooth라고정의한다. 예를들어, 30 = 는 B = 5, 7 로두면 B-ower smooth 이지만, 50 = 는 5-ower smooth 는아니다 (B = 25-ower smooth 는됨 ). Pollard 의 방법과타원곡선방법에다음알고리듬을이용하려고한다. 알고리듬 (Least Common Multile of First B Integers). 다음은양의정수 B 를선택하여 B 가지의모든양의정수들의최소공배수흘구하는알고리듬이다.. [Sieve] 예를들어소수만을걸러내는체의알고리듬 ( 알고리듬.2.3) 을이용하여 B 인모든소수들의목록 P 을만든다. 2. [Multily] P log (B) 를계산하고출력한다. 증명 m = lcm(, 2,..., B) 이라놓자. 그러면, ord (m) = max({ord (n) : n B}) = ord ( r )

137 30 6. 타원곡선 이라놓으면 r 은 r B 을만족하는가장큰 의거듭제곱이다. r B < r+ 이므로, r = log (B) 이다. SAGE 예 알고리듬 를 Sage 에서구현하고 B = 00 일때위의알고리듬과단순한알고리듬을이용하여최소공배수를구한다. 아래에서 log (B) 를빠르게계산하기위하여 math.log 를사용한다. sage: def lcm_uto(b):... return rod([^int(math.log(b)/math.log())... for in rime_range(b+)]) sage: lcm_uto(0^2) sage: LCM([..0^2]) 위에구현한알고리듬 은 Sage 에서 B = 0 6 일때약 초가걸린다. 이제우리가인수분해하고싶은수가 N 이라고하자. N 의의미있는약수를찾기위하여다음과같이 Pollard 의 ( )- 방법을사용한다. 먼저, 6 자릿수를넘지않는적당한양의정수 B 를선택한다. 그리고 N 의소수약수 중에 이 B-ower smooth 가되는 가존재한다고가정한다. 그러면만약 보다큰수 a 가 로나누어지지않으면, 정리 에의하여 a (mod ) 가성립해야한다. m = lcm(, 2, 3,..., B) 으로놓고, 이 B-ower smooth 라는가정은 m 을유도하므로 이성립한다. 그러므로 a m (mod ) gcd(a m, N) > 이성립한다. 만약 gcd(a m, N) < N 이면, gcd(a m, N) 도 N 의비자명약수이다. 만약 gcd(a m, N) = N 이면, 소수의멱으로표현되는 N 의모든약수 q r 이 a m (mod q r ) 를만족한다. 이경우에는위의단계를, 더작은 B 를선택하고, 가능하면 a 도다른값을선택하여, 반복한다. 또처음시작할때 N 이다른수의거듭제곱 M r 형태인지를확인하고, 그런경우에는처음부터 N 을 M 으로바꾸어시작한다. 이알고리듬을만들면다음과같다. 알고리듬 (Pollard 의 방법 ). 양의정수 N 과상한 B 를입력하였을때, 이알고리듬은 N 의비자명약수 g 를찾는시도를한다. ( g 인각각의소수 는 이 B-ower smooth 인성질을가질가능성이있다.). [Comute lcm] 알고리듬 을사용하여 m = lcm(, 2,..., B) 을계산한다.

138 2. [Initialize] a = 2 로놓느다. 6.3 타원곡선을이용한정수의인수분해 3 3. [Power and gcd] x = a m (mod N) 와 g = gcd(x, N) 를계산한다. 4. [Finished?] 만약 g 가 도 N 도아니면, g 를출력하고마친다. 5. [Try Again?] 만약 ( 예를들어 ) a < 0 이라면, a 를 a + 로바꾸고, 단계 3 으로간다. 그렇지않으면마친다. B 를고정한후, 알고리듬 은, N 이 이 B-ower smooth 인소수 로나누어지면, N 을종종인수분해한다. 대략적으로 0 5 부터 사이의구간에서약 5% 의소수 만이 이 0 6 -ower smooth 이다. 따라서이범위의수의 85% 는 B = 0 6 일때 Pollard 방법으로 5- 자릿수의소수약수를찾을수없다. (Exercise 6.0 참조 ). 여기서는타원곡선을이용한인수분해를설명하고자하므로 Pollard 방법을더이상분석하지는않는다. 다음예들은 Pollard ( )- 방법을설명한다. 예 이예에서 Pollard 방법은완벽하게작동한다. N = 597 이라놓자. B = 5 로잡은 Pollard 의 방법으로 N 을인수분해한다. 먼저 m = lcm(, 2, 3, 4, 5) = 60 를계산하고, a = 2 로잡아 (mod 597) 와 gcd(2 60, 597) = gcd(346, 597) = 6 를계산하면, 597 의약수 6 을구할수있다. 예 이예에서는 B 를더큰정수로교환한다. N = 의인수를구하기위하여, B = 5, a = 2 로잡자, 그러면 m = 6 이다 (mod 77967) 이므로 gcd(2 60, 77967) = 이다. B = 5 로잡으면 m = lcm(, 2,..., 5) = 가되고, 그리고 (mod 77967), gcd( , N) = 2003 를계산함으로써 의약수 2003 을찾는다. 예 이예에서는더작은정수 B 를사용한다. N = 433 이고 B = 7 이라면, m = lcm(, 2,..., 7) = 420 이다. 또 (mod 433),

139 32 6. 타원곡선 gcd(2 420, 433) = 433 이므로 433 의인수는얻지못한다. 그런데 B 를 5 로바꾸면, Pollard 의방법이효력을나타낸다. 즉, (mod 433), gcd(2 60, 433) = 6 이므로 433 을이제인수분해할수있다. 예 이예에서는 a = 2 로는원하는결과를얻을수없지만, a = 3 으로는가능하다. N = 87 일때, B = 5 로가정하고, m = lcm(, 2,..., 5) = 을계산한다. a = 2 로실행하면, (mod 87), gcd( , 87) = 87 이므로 87 의약수를얻지는못한다. 이제 a = 3 으로 Pollard 의방법을실행하면, (mod 87), gcd( , 87) = 이다. 따라서 87 은 로나누어진다. 즉, 87 = 7 이다. SAGE 예 Sage 에서 Pollard 의 ( )- 방법의구현하고이를이용하여위의모든계산을수행한다. sage: def ollard(n, B=0^5, sto=0):... m = rod([^int(math.log(b)/math.log())... for in rime_range(b+)])... for a in [2..sto]:... x = (Mod(a,N)^m - ).lift()... if x == 0: continue... g = gcd(x, N)... if g!= or g!= N: return g... return sage: ollard(597,5) 6 sage: ollard(77967,5) sage: ollard(77967,5) 2003 sage: ollard(433,7) sage: ollard(433,5) 6 sage: ollard(87, 5, 2) sage: ollard(87, 5)

140 6.3.2 타원곡선방법의동기 6.3 타원곡선을이용한정수의인수분해 33 양의정수 B 를고정한다. N = q 이고 와 q 는소수이고, 과 q 은둘다 B-ower smooth 가아니라고가정한다. 그러면 Pollard 의 ( )- 방법은작동하지않을가능성이크다. 예를들어, B = 20 으로잡고 N = 59 0 = 5959 이라고가정한다. 59 = 2 29 도 0 = 4 25 도 B-ower smooth 는아님을확인하자. m = lcm(, 2, 3,..., 20) = 을계산한후 2 m 5944 (mod N) 와 gcd(2 m, N) = 를계산하였지만 N 의약수를찾지는못한다. 위에서지적하였듯이, 문제는 = 59 이든 = 0 이든, 이 20-ower smooth 가아니기때문에발생한다. 그러나 2 = 3 9 는 20-ower smooth 가된다! Lenstra 의 ECM 은위수가 인 (Z/Z) 을 Z/Z 위에서의타원곡선이대신한다. 타원곡선의크기는, 적당한음수가아닌정수 s < 2 가있어, #E(Z/Z) = + ± s 임이정리로알려져있다 ([48, V.]. 또, s 가취할수있는모든값을갖는타원곡선이실제존재하는것도알려져있는데, comlex multilication theory 을사용하여확인할수있다. 예를들어, 만약 E 가 Z/59Z 위에서 y 2 = x 3 + x + 54 로정의된타원곡선이라면, 점들을나열해봄으로써 E(Z/59Z) 는위수가 57 인순환군임을보일수있다. s 5 를만족할때 59 + ± s 로주어지는정수들의집합에는 5-ower smooth 인수들이 4 개가들어있으므로, 타원곡선으로작업하는것이훨씬더유연함을알수있다. 예를들어 60 = 은 5-ower smooth 이고 70 = 은 7-ower smooth 이다 Lenstra 의타원곡선인수분해방법 알고리듬 ( 타원곡선인수분해방법 ). 인수분해할양의정수 N 과제어할정수 B 를주면, 이알고리듬은 N 의비자명인수 g 를찾는시도를하거나실패하면 Fail 을출력한다.. [Comute lcm] 알고리듬 를사용하여 m = lcm(, 2,..., B) 을계산한다. 2. [Choose Random Ellitic Curve] 4a (Z/NZ) 을만족하는적당한수 a Z/NZ 를선택한다. 그러면 P = (0, ) 은타원곡선 Z/NZ 위의 y 2 = x 3 + ax + 의한점이다. 3. [Comute Multile] 알고리듬 을타원곡선의연산에적용하여 mp 를계산하려고시도한다. 만약어떤점에서그점의합을계산할수없으면, 알고리듬 6.2. 의 Ste 3 에나타나는어떤점의분모가 N

141 34 6. 타원곡선 과서로소가아니라는것을의미하는데, 이는이분모와 N 의최대공약수가 이상이라는것을의미하므로최대공약수를계산한다. 만약 g 가비자명약수이면 g 를출력한다. 만약모든분모가 N 과서로소이면 Fail 을출력한다. 알고리듬 이선택한한타원곡선에서실패하면 Pollard 의 ( )- 방법에서는이용할수없었던다른타원곡선을선택하여같은작업을반복할수있다. Pollard 의 ( )- 방법에서는항상같은군 (Z/NZ) 에서작업을해야하는데, ECM 에서는많은타원곡선 E 의군인 E(Z/NZ) 를시도할수있다. 위에서언급했듯이 Z/Z 위의 E(Z/NZ) 의원소의개수는 + t 이고이때 t < 2 이고실제그범위의모든 t 가실제일어나므로, + t 가 B-ower smooth 가되면알고리듬 는제대로작동될기회를얻는다 예제 타원곡선의식을간단하게 y 2 = x 3 + ax + 로놓으면 P = (0, ) 은항상타원곡선의점이다. 타원곡선방법을사용하여 N = 5959 을인수분해한다. m 을계산하여 2 진법으로쓰면 m = lcm(, 2,..., 20) = = 이다. 이때 x 2 는 x 를이진법으로쓴것이다. 먼저, a = 20 을임의로선택하고, Z/5959Z 위의 y 2 = x 3 +20x+ 를고려한다. 알고리듬 6.2. 에있는 P +P 를구하는공식을이용하여 i B = {4, 5, 6, 7, 8, 3, 2, 22, 23, 24, 26, 27} 에대하여 2 i P = 2 i (0, ) 를계산한다. 결과적으로이계산의어떤단계에서도 5959 와서로소가아닌수가분모에나타나지않았기때문에 N 을인수분해하지못한다. 다음 a = 389 를시도하는데계산이어떤단계에서 P = (205, 5273) 와 Q = (637, 292) 를더하게된다. 연산과정중에 (Z/5959Z) 에서 λ = (y y 2 )/(x x 2 ) 를계산해야하는데, x x 2 = 44 이고 gcd(44, 5959) = 0 이므로더이상계산을할수가없다. 따라서덕분에우리는 5959 의약수 0 을찾아낸다. SAGE 예 Sage 에타원곡선을이용한인수분해알고리듬을구현하고이를이용하여위에서설명한예와다른예들을실행한다. sage: def ecm(n, B=0^3, trials=0):... m = rod([^int(math.log(b)/math.log())... for in rime_range(b+)])... R = Integers(N)... # Make Sage think that R is a field:... R.is_field = lambda : True... for _ in range(trials):

142 6.3 타원곡선을이용한정수의인수분해 while True:... a = R.random_element()... if gcd(4*a.lift()^3 + 27, N) == : break... try:... m * ElliticCurve([a, ])([0,])... excet ZeroDivisionError, msg:... # msg: "Inverse of <int> does not exist"... return gcd(integer(str(msg).slit()[2]), N)... return sage: set_random_seed(2) sage: ecm(5959, B=20) 0 sage: ecm(next_rime(0^20)*next_rime(0^7), B=0^3) 발견적설명 N 은양의정수이고, 상황을간단하게하기위하여, N 은서로다른소수 i 들의곱인 N = r 이라가정한다. 보조정리 로부터자연스러운동형사상 f : (Z/NZ) (Z/ Z) (Z/ r Z) 이존재한다. Pollard 의방법을사용할때, a (Z/NZ) 를선택하고, a m 을계산하고, 그런후 gcd(a m, N) 을계산한다. 이 gcd 는정확히 a m (mod i ) 을만족하는 i 에의해나누어진다. Pollard 의방법을위의동형사상을이용하여재해석하기위하여, f(a) = (a,..., a r ) 라고하자. 그러면 (a m,..., a m r ) = f(a m ) 이고, gcd(a m, N) 을나누는 i 는정확히 Z/ r Z 에서 a m i = 이되는 i 이다. 정리 로부터이 i 들은, m = lcm(,..., m) 일때, j 이 B-ower smooth 인모든소수 j 를포함한다. 우리의알고리듬에서는 N 이소수라고가정하고타원곡선을정의한후모순을찾아내는것이므로, 우리는 N 이합성수일때는 E(Z/NZ) 를정의하지않는다. 그러나이문단의나머지부분에서는, 마치 E(Z/NZ) 이의미가있는것처럼여기고, 경험으로알게된 Lenstra 와 Pollard 의방법사이의관계를설명한다. 의미있는중요한차이는동형사상 f 를동형사상 g : E(Z/NZ) E(Z/ Z) E(Z/ r Z) 가대신하는데, 이때 E 는 y 2 = x 3 + ax + 으로정의되고, Pollard 의방법에서의 a 는 P = (0, ) 가대신하는것이다. 우리가 E(Z/NZ) 를정의하지않았다는것을강조하기위하여동형사상 g 에따옴표를사용하였다. 타원곡선인수분해알고리듬을구현할때, mp 를계산하려고시도하는데, 만약우리의계산중에얻은어떤점 Q 에대하여 f(q) 의성분중하나가 O 이되면, 우리는 N 의약수를발견하게된다.

143 36 6. 타원곡선 6.4 타원곡선암호 타원곡선을암호론에이용하려는아이디어는 980 년대중반에 Neil Koblitz 와 Victor Miller 에의해서독립적으로제안되었다. 이절에서는 (Z/Z) 대신에타원곡선을사용하는 Diffie-Hellman 공개키와유사한암호를소개한다. 그런후 ElGamal 타원곡선암호를논한다 Diffie-Hellman 의타원곡선버전 Diffie-Hellman 의키교환프로토콜은큰수정없이타원곡선에적용가능하다. Michael 과 Nikita 는다음과같이비밀키에동의한다.. Michael 과 Nikita 는소수, Z/Z 위의타원곡선과곡선위의점 P E(Z/Z) 를함께선택한다. 2. Michael 는 m 을몰래선택하고 mp 를전송한다. 3. Nikita 는 n 을몰래선택하여 np 를보낸다. 4. 비밀키는 nmp 인데, 이값은 Michael 과 Nikita 만이계산할수있다. 이산로그문제를풀지못하면짐작컨데적은 nmp 를계산할수없다 ( 문제 와다음절 참조 ). E, P, 그리고 를잘선택하면, E(Z/Z) 에서의이산로그문제는 (Z/Z) 에서의이산로그문제보다훨씬더어렵다는것이경험적으로알려져있다. ( 타원곡선이산로그문제에대해더알고싶으면절 를참조 ) ElGamel 암호와디지털권한관리 이절에서는 Digital Rights Management (DRM) system 을깬컴퓨터해커 Beale Screamer 의논문을참조하여타원곡선위에서잘작동하는 El- Gamal 암호에관해설명한다. DRM 에서사용한소수와타원곡선의식은다음과같다. = y 2 = x x 소수 의 6진법으로표현하면 89ABCDEF F7. 그러면 #E(k) =

144 6.4 타원곡선암호 37 이고, 군 E(k) 는생성원이 B = ( , ) 인순환군이다. 우리의영웅인 Nikita 와 Michael 은그들이싸우는테러리스트로나가있지않을때에는디지털음악을함께감상한다. Nikita 가그녀의컴퓨터에 DRM 소프트웨어를인스톨할때, 개인키 n = , 이생성되어비트와파일조각에숨어있다. Nikita 가 Juno Reactor 의히트곡 juno.wma 를연주하기위하여, Nikita 는인터넷으로그음악을파는웹싸이트에접속한후신용카드의번호를보내면그웹싸이트는 Nikita 가사용권파일을다운로드할수있도록하여오디오가 juno.wma 의장금을해재하여음악을연주하게한다. 아래에서알게되겠지만사용권파일은군 E(k) 에서 ElGamal 공개키암호을이용하여생성된다. Nikita 는이제그녀의사용권파일을 juno.wma 의장금을해제하기위하여사용할수있다. 그러나그녀가 juno.wma 와사용권파일을 Michael 과공유할때, 실망스럽게도 Michael 의컴퓨터에서는 Nikita 의사용권파일이작동하지않아 juno.wma 를들을수가없다. 이유는 Michael 의컴퓨터는 Nikita 의컴퓨터의개인키 ( 위에서설명한정수 n) 를알지못하기때문에 Michael 의컴퓨터는사용권파일을해독할수없다. 이제 ElGamal 암호체계를자세히설명하려고하는데, 이 ElGamal 암호는군 E(Z/Z) 에서잘구현된다. ElGamal 암호를예로설명하기위하여 Nikita 가, 누구든지그녀에게보낼메세지를암호화할수있도록, ElGamal 암호체계를어떻게구성했는지예를들어설명한다. Nikita 는소수, Z/Z 위의타원곡선 E, 그리고점 B E(Z/Z) 를선택한후,, E, 그리고 B 를공개한다. 또그녀의비밀키 n 을무작위로선택하여 nb 를공개한다. 그러면그녀의공개키는 (, E, B, nb) 이다. Michael 이 Nikita 에게보낼메세지를암호화하고싶다고가정한다. 만약그메세지가타원곡선상의점 P E(Z/Z) 로코딩이되었다면 Michael 도정수 r 을무작위로선택하여 E(Z/Z) rb 와 P + r(nb) 를계산한다. 두점 (rb, P + r(nb)) 가 P 의암호문이다. 이암호문을해독하기위하여 Nikita 는그녀의비밀키 n 을가지고 rb 를 n 배하여 n(rb) = r(nb) 를계산한후 P + r(nb) 에서이값을빼서 를구한다. P = P + r(nb) r(nb) 참조 군 (Z/Z) 에서도마찬가지로 ElGamal 암호체계를만들수있다. (Z/Z). 우리이야기로다시돌아오면, Nikita 의사용권파일은암호화된파일이다. 이파일은두점 (rb, P + r(nb)) 을포함하는데, rb 와 P + r(nb) 는

145 38 6. 타원곡선다음과같다. rb = ( , ); P + r(nb) = ( , ). Nikita 의컴퓨터가 juno.wma 를재생할때, 비밀키 n = 이메모리에같이다운로드되고 n(rb) = ( , ). 를계산한다. 이값을 P + r(nb) 에서빼서 P = ( , ). 를알아낸다. x- 성분인 가 juno.wma 의잠금을해제하는키이다. 만약 Nikita 가그녀의컴퓨터에서생성되는개인키 n 을안다면 P 를계산할수있고, juno.wma 의잠금을해제하여 Michael 과함께음악을공유할수있다. Beale Screamer 는이암호체계를구현할때 Nikita 가 n 을알아낼수도있는약점을발견하였는데, 이사실은니키타의컴퓨터에 n 이저장되어있으므로너무놀랄만한일은아니다. SAGE 예 Sage 에서다음예를한다. sage: = sage: E = ElliticCurve(GF(), \... [ , ]) sage: E.cardinality() sage: E.cardinality().is_rime() True sage: B = E([ , ]) sage: n=

146 6.4 타원곡선 암호 sage: sage:... sage: sage: True r= P = E([ , ]) encryt = (r*b, P + r*(n*b)) encryt[] - n*encryt[0] == P # decryting works 타원곡선 이산로그 문제 문제 (타원곡선 이산로그 문제). E가 Z/Z위의 타원곡선이고 P E(Z/Z)는 E의 점이다. P 의 배수 Q가 주어졌을 때, 타원곡선 이산로그 문제(ellitic curve discrete log roblem)는 np = Q를 만족하는 n Z을 구하는 문제이다. 예를 들어, 체 Z/7Z위에서 방정식 y 2 = x3 + x + 으로 정의된 타원곡선 E를 생각하자. 그러면 E는 E(Z/7Z) = {O, (2, 2), (0, ), (0, 6), (2, 5)} 인 원소가 5개인 군이다. 만약 P = (2, 2), Q = (0, 6)이면, 3P = Q이므로 n = 3이 이산로그문제의 답이다. E(Z/Z)의 위수가 이거나, ± 이거나, 혹은 적당히 작은 소수들의 곱 이면, E의 이산로그문제를 공격할 수 있는 방법이 있는데, 이 책의 범위를 벗어나므로 생략한다. 그러므로 명백한 취약성이 없는 암호체계를 만들기 위하여 타원곡선을 사용하는 경우에는 #E(Z/Z)를 효율적으로 계산할 수 있는 것이 상당히 중요하다 #E(Z/Z)를 계산하는 단순한 알고리듬은 각각의 값 x Z/Z에 대하여 x3 + ax + b가 법 에서 완전수가 되는 경우 를 모두 세는 것이다. 그러나 이 방법은 가 암호에 사용할만큼 충분히 큰 경우는 쓸모없는 방법이다. 다행히도, Schoof, Elkies, 그리고 Atkin 덕분에, #E(Z/Z)를 (의 자릿수에 의존하는 다항식 시간안에)효율적으로 계산 하는 알고리듬이 존재하지만 이 알고리듬도 우리 책의 범위를 넘어선다. 절 3.2.에서, (Z/Z) 에서의 이산로그문제를 설명했다. (Z/Z) 에는 좀 느리긴 하지만, 그러나 일반적인 (추가적인 구조가 없는) 군의 경우보다는 더 빠른 index calculus attacks 라고 불리는 일반적인 공격 방법이 있다. 대부분의 타원곡선에는 index calculus attack 와 유사한 이산로그문제를 공격할 수 있는 알고리듬은 알려져 있지 않다. 현재로선 E(Z/Z)에서의 이산로그문제가 (Z/Z) 에서의 이산로그문제보다 훨씬 더 어려운 것처럼 보인다. 또 타원곡선 암호는 훨씬 작은 수로 같은 수준의 보안을 유지하 므로 (Z/Z) 에 기반을 둔 암호보다는 타원곡선에 기반을 둔 암호체계를 사용하는 것을 권고하고 있으며, 이런 사실들이 일부 암호학자들에게 타 원곡선 암호체계를 구축하는 것이 훨씬 매력적으로 보이는 이유이다. 예를 들어, 타원곡선 암호를 강하게 권고하는 회사인 Certicom의 주장이다: [타원곡선암호] 도구는 다른 암호체계보다 더 적은 메모리 공 간, 더 적은 전력, 그리고 더 적은 대역폭(bandwidth)을 요구 한다. 이 때문에 무선장치, 초소형 컴퓨터, 스마트 카드, 얇은

147 40 6. 타원곡선 FIGURE 6.4. Louis J. Mordell 장치 등과 같은 제한된 플랫폼에 암호를 구현할 수 있다. 또 효 율성이 중요한 상황에서 암호를 성공적으로 구현할 수 있도록 한다. Certicom이 지원한 타원곡선 이산로그 도전 문제의 최신 목록들은 [7] 에서 볼 수 있다. 그 중 하나는, 2004년 4월, Z/Z위의 타원곡선에 기반한 암호가 깨졌는데, 이 때 소수 는 09비트였다. 첫 번째 미해결 도전문제는 기 3 비트 소수일 때 Z/Z위의 타원곡선과 관련되어 있고, 그 다음 도전 문제에서의 소수는 63 비트이다. Certicom은 [7]에서 63-비트 도전문제는 계산상으로는 실행불가능한 문제라고 주장한다. 6.5 유리수위에서의 타원곡선 E는 Q 위의 타원곡선이다. 다음은 군 E(Q)에 관한 아주 중요한 정리이다. 정리 6.5. (Mordell). 군 E(Q)는 유한개의 원소로 생성된 군이다. 즉, 유 한개의 점 P,..., Ps E(Q)이 존재하여 E(Q)의 모든 점이 n P + + ns Ps 형태로 나타난다. 이 때 n,... ns Z이다. Mordell의 정리 덕에 E(Q)를 계산할 수 있는가를 질문하는 것이 의미 가 있다. 여기서 계산한다는 것은 아벨군 E(Q)를 생성하는 E 위의 유한 집합 P,..., Ps 를 구하는 것이다. 실제 E(Q)를 구하는 descent 라고 불리 는 체계적인 접근법이 있다. ([4, 3, 48]참조). 이 descent 방법이 항상 성공할것이라고 대부분이 믿지만 아직 아무도 증명하지는 못하였다. 이 descent 가 모든 곡선들에 대하여 잘 작동할 것임을 증명하는 것은 정수 론에서의 중요한 미해결 문제중의 하나이며 (Clay 수학 연구소의 백만달러 문제 중의 하나인) Birch와 Swinnerton-Dyer 가설과 밀접하게 연관되어 있 다. 결정적인 어려움은 어떤 구체적으로 주어진 곡선이 (이 곡선들은 R 혹은 모든 법 n에서 정의되는 점들은 항상 가지는데) 유리수 점을 가지는 지 아닌지를 알아내는 것이다.

체의원소를계수로가지는다항식환 Theorem 0.1. ( 나눗셈알고리듬 (Division Algorithm)) F 가체일때 F [x] 의두다항식 f(x) = a 0 + a 1 x + + a n x n, a n 0 F 와 g(x) = b 0 + b 1 x + + b m x

체의원소를계수로가지는다항식환 Theorem 0.1. ( 나눗셈알고리듬 (Division Algorithm)) F 가체일때 F [x] 의두다항식 f(x) = a 0 + a 1 x + + a n x n, a n 0 F 와 g(x) = b 0 + b 1 x + + b m x 체의원소를계수로가지는다항식환 Theorem 0.1. ( 나눗셈알고리듬 (Division Algorithm)) F 가체일때 F [x] 의두다항식 f(x) = a 0 + a 1 x + + a n x n, a n 0 F 와 g(x) = b 0 + b 1 x + + b m x m, b m 0 F, m > 0 에대해 f(x) = g(x)q(x) + r(x) 을만족하는

More information

정수론 - (Number Theory)

정수론 - (Number Theory) 정수론 (Number Theory) 정주희 (Jeong, Joohee) Kyungpook National University 2017 년 9 월 4 일. 자연대 101 정주희 (Jeong, Joohee) (K.N.U.) 정수론 2017 년 9 월 4 일 1 / 36 목차 1 최대공약수 2 부정방정식과합동식 3 페르마의정리와오일러의정리 4 원시근, 이산로그,

More information

제1장 군 제1절 소개와 예 제2절 이항연산 2.1 보기. 다음은 정수방정식 a + x = b를 푸는 과정이다. (1) 준식에 a를 더하여 ( a) + (a + x) = ( a) + b. (2) 결합법칙을 사용하면 (( a) + a) + x = ( a) + b. (3)

제1장 군 제1절 소개와 예 제2절 이항연산 2.1 보기. 다음은 정수방정식 a + x = b를 푸는 과정이다. (1) 준식에 a를 더하여 ( a) + (a + x) = ( a) + b. (2) 결합법칙을 사용하면 (( a) + a) + x = ( a) + b. (3) 제장 군 제절 소개와 예 제절 이항연산. 보기. 다음은 정수방정식 + x = b를 푸는 과정이다. () 준식에 를 더하여 ( ) + ( + x) = ( ) + b. () 결합법칙을 사용하면 (( ) + ) + x = ( ) + b. () ( ) + = 임을 이용하면 + x = ( ) + b. (4) + x = x 이므로 x = ( ) + b. 이를 유리수방정식

More information

제 3강 역함수의 미분과 로피탈의 정리

제 3강 역함수의 미분과 로피탈의 정리 제 3 강역함수의미분과로피탈의정리 역함수의미분 : 두실수 a b 와폐구갂 [ ab, ] 에서 -이고연속인함수 f 가 ( a, b) 미분가능하다고가정하자. 만일 f '( ) 0 이면역함수 f 은실수 f( ) 에서미분가능하고 ( f )'( f ( )) 이다. f '( ) 에서 증명 : 폐구갂 [ ab, ] 에서 -이고연속인함수 f 는증가함수이거나감소함수이다 (

More information

Microsoft PowerPoint - 26.pptx

Microsoft PowerPoint - 26.pptx 이산수학 () 관계와그특성 (Relations and Its Properties) 2011년봄학기 강원대학교컴퓨터과학전공문양세 Binary Relations ( 이진관계 ) Let A, B be any two sets. A binary relation R from A to B, written R:A B, is a subset of A B. (A 에서 B 로의이진관계

More information

1 경영학을 위한 수학 Final Exam 2015/12/12(토) 13:00-15:00 풀이과정을 모두 명시하시오. 정리를 사용할 경우 명시하시오. 1. (각 6점) 다음 적분을 구하시오 Z 1 4 Z 1 (x + 1) dx (a) 1 (x 1)4 dx 1 Solut

1 경영학을 위한 수학 Final Exam 2015/12/12(토) 13:00-15:00 풀이과정을 모두 명시하시오. 정리를 사용할 경우 명시하시오. 1. (각 6점) 다음 적분을 구하시오 Z 1 4 Z 1 (x + 1) dx (a) 1 (x 1)4 dx 1 Solut 경영학을 위한 수학 Fial Eam 5//(토) :-5: 풀이과정을 모두 명시하시오. 정리를 사용할 경우 명시하시오.. (각 6점) 다음 적분을 구하시오 4 ( ) (a) ( )4 8 8 (b) d이 성립한다. d C C log log (c) 이다. 양변에 적분을 취하면 log C (d) 라 하자. 그러면 d 4이다. 9 9 4 / si (e) cos si

More information

<B4EBC7D0BCF6C7D02DBBEFB0A2C7D4BCF62E687770>

<B4EBC7D0BCF6C7D02DBBEFB0A2C7D4BCF62E687770> 삼각함수. 삼각함수의덧셈정리 삼각함수의덧셈정리 삼각함수 sin (α + β ), cos (α + β ), tan (α + β ) 등을 α 또는 β 의삼각함수로나 타낼수있다. 각 α 와각 β 에대하여 α >0, β >0이고 0 α - β < β 를만족한다고가정하 자. 다른경우에도같은방법으로증명할수있다. 각 α 와각 β 에대하여 θ = α - β 라고놓자. 위의그림에서원점에서거리가

More information

3.2 함수의정의 Theorem 6 함수 f : X Y 와 Y W 인집합 W 에대하여 f : X W 는함수이다. Proof. f : X Y 가함수이므로 f X Y 이고, Y W 이므로 f X W 이므로 F0이만족된다. 함수의정의 F1, F2은 f : X Y 가함수이므로

3.2 함수의정의 Theorem 6 함수 f : X Y 와 Y W 인집합 W 에대하여 f : X W 는함수이다. Proof. f : X Y 가함수이므로 f X Y 이고, Y W 이므로 f X W 이므로 F0이만족된다. 함수의정의 F1, F2은 f : X Y 가함수이므로 3.2 함수의정의 Theorem 6 함수 f : X Y 와 Y W 인집합 W 에대하여 f : X W 는함수이다. Proof. f : X Y 가함수이므로 f X Y 이고, Y W 이므로 f X W 이므로 F0이만족된다. 함수의정의 F1, F2은 f : X Y 가함수이므로성립한다. Theorem 7 두함수 f : X Y 와 g : X Y 에대하여, f = g f(x)

More information

Microsoft PowerPoint Relations.pptx

Microsoft PowerPoint Relations.pptx 이산수학 () 관계와그특성 (Relations and Its Properties) 2010년봄학기강원대학교컴퓨터과학전공문양세 Binary Relations ( 이진관계 ) Let A, B be any two sets. A binary relation R from A to B, written R:A B, is a subset of A B. (A 에서 B 로의이진관계

More information

제 12강 함수수열의 평등수렴

제 12강 함수수열의 평등수렴 제 강함수수열의평등수렴 함수의수열과극한 정의 ( 점별수렴 ): 주어진집합 과각각의자연수 에대하여함수 f : 이있다고가정하자. 이때 을집합 에서로가는함수의수열이라고한다. 모든 x 에대하여 f 수열 f ( x) lim f ( x) 가성립할때함수수열 { f } 이집합 에서함수 f 로수렴한다고한다. 또 함수 f 을집합 에서의함수수열 { f } 의극한 ( 함수 ) 이라고한다.

More information

<3235B0AD20BCF6BFADC0C720B1D8C7D120C2FC20B0C5C1FE20322E687770>

<3235B0AD20BCF6BFADC0C720B1D8C7D120C2FC20B0C5C1FE20322E687770> 25 강. 수열의극한참거짓 2 두수열 { }, {b n } 의극한에대한 < 보기 > 의설명중옳은것을모두고르면? Ⅰ. < b n 이고 lim = 이면 lim b n =이다. Ⅱ. 두수열 { }, {b n } 이수렴할때 < b n 이면 lim < lim b n 이다. Ⅲ. lim b n =0이면 lim =0또는 lim b n =0이다. Ⅰ 2Ⅱ 3Ⅲ 4Ⅰ,Ⅱ 5Ⅰ,Ⅲ

More information

Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 (제 2 장. 복소수 기초)

Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산      (제 2 장. 복소수 기초) 제 5 강. 복소수연산및 을이용한복소수연산 ( 제 2 장. 복소수기초 ) 한림대학교전자공학과 한림대학교 제 5 강. 복소수연산및 을이용한복소수연산 1 배울내용 복소수의기본개념복소수의표현오일러 (Euler) 공식복소수의대수연산 1의 N 승근 한림대학교 제 5 강. 복소수연산및 을이용한복소수연산 2 복소수의 4 칙연산 복소수의덧셈과뺄셈에는직각좌표계표현을사용하고,

More information

FGB-P 학번수학과권혁준 2008 년 5 월 19 일 Lemma 1 p 를 C([0, 1]) 에속하는음수가되지않는함수라하자. 이때 y C 2 (0, 1) C([0, 1]) 가미분방정식 y (t) + p(t)y(t) = 0, t (0, 1), y(0)

FGB-P 학번수학과권혁준 2008 년 5 월 19 일 Lemma 1 p 를 C([0, 1]) 에속하는음수가되지않는함수라하자. 이때 y C 2 (0, 1) C([0, 1]) 가미분방정식 y (t) + p(t)y(t) = 0, t (0, 1), y(0) FGB-P8-3 8 학번수학과권혁준 8 년 5 월 9 일 Lemma p 를 C[, ] 에속하는음수가되지않는함수라하자. 이때 y C, C[, ] 가미분방정식 y t + ptyt, t,, y y 을만족하는해라고하면, y 는, 에서연속적인이계도함수를가지게확 장될수있다. Proof y 은 y 의도함수이므로미적분학의기본정리에의하여, y 은 y 의어떤원시 함수와적분상수의합으로표시될수있다.

More information

제 5강 리만적분

제 5강 리만적분 제 5 강리만적분 리만적분 정의 : 두실수, 가 을만족핚다고가정하자.. 만일 P [, ] 이고 P 가두끝점, 을모두포함하는유핚집합일때, P 을 [, ] 의분핛 (prtitio) 이라고핚다. 주로 P { x x x } 로나타낸다.. 분핛 P { x x x } 의노름을다음과같이정의핚다. P x x x. 3. [, ] 의두분핛 P 와 Q 에대하여만일 P Q이면 Q

More information

Vector Differential: 벡터 미분 Yonghee Lee October 17, 벡터미분의 표기 스칼라미분 벡터미분(Vector diffrential) 또는 행렬미분(Matrix differential)은 벡터와 행렬의 미분식에 대 한 표

Vector Differential: 벡터 미분 Yonghee Lee October 17, 벡터미분의 표기 스칼라미분 벡터미분(Vector diffrential) 또는 행렬미분(Matrix differential)은 벡터와 행렬의 미분식에 대 한 표 Vector Differential: 벡터 미분 Yonhee Lee October 7, 08 벡터미분의 표기 스칼라미분 벡터미분(Vector diffrential) 또는 행렬미분(Matrix differential)은 벡터와 행렬의 미분식에 대 한 표기법을 정의하는 방법이다 보통 스칼라(scalar)에 대한 미분은 일분수 함수 f : < < 또는 다변수 함수(function

More information

31. 을전개한식에서 의계수는? 를전개한식이 일 때, 의값은? 을전개했을때, 의계수와상수항의합을구하면? 을전개했을때, 의 계수는? 를전개했을때, 상수항을 구하여라. 37

31. 을전개한식에서 의계수는? 를전개한식이 일 때, 의값은? 을전개했을때, 의계수와상수항의합을구하면? 을전개했을때, 의 계수는? 를전개했을때, 상수항을 구하여라. 37 21. 다음식의값이유리수가되도록유리수 의값을 정하면? 1 4 2 5 3 26. 을전개하면상수항을 제외한각항의계수의총합이 이다. 이때, 의값은? 1 2 3 4 5 22. 일때, 의값은? 1 2 3 4 5 27. 를전개하여간단히 하였을때, 의계수는? 1 2 3 4 5 23. 를전개하여 간단히하였을때, 상수항은? 1 2 3 4 5 28. 두자연수 와 를 로나누면나머지가각각

More information

완벽한개념정립 _ 행렬의참, 거짓 수학전문가 NAMU 선생 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에

완벽한개념정립 _ 행렬의참, 거짓 수학전문가 NAMU 선생 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에대하여 AB=BA 1 가성립한다 2 3 (4) 이면 1 곱셈공식및변형공식성립 ± ± ( 복호동순 ), 2 지수법칙성립 (은자연수 ) < 거짓인명제 >

More information

public key private key Encryption Algorithm Decryption Algorithm 1

public key private key Encryption Algorithm Decryption Algorithm 1 public key private key Encryption Algorithm Decryption Algorithm 1 One-Way Function ( ) A function which is easy to compute in one direction, but difficult to invert - given x, y = f(x) is easy - given

More information

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - Java7.pptx HPC & OT Lab. 1 HPC & OT Lab. 2 실습 7 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com HPC & OT Lab. 3 Component Structure 객체 (object) 생성개념을이해한다. 외부클래스에대한접근방법을이해한다. 접근제어자 (public & private)

More information

2018 년수학임용고시기출풀이 ( 대수학, 해석학, 복소해석, 위상수학, 정수론, 선형대수, 미적분학 ) - 하이어에듀 - 구준모강사 1

2018 년수학임용고시기출풀이 ( 대수학, 해석학, 복소해석, 위상수학, 정수론, 선형대수, 미적분학 ) - 하이어에듀 - 구준모강사 1 8 년수학임용고시기출풀이 ( 대수학 해석학 복소해석 위상수학 정수론 선형대수 미적분학 ) - 하이어에듀 - 구준모강사 8년 수학 임용고시 기출풀이 (안내) 제가 작성한 8년 수학 임용시험 기출 풀이 참고 답안입니다. 8년 임용 시험을 치르신 분들과 앞으로 준비 하시는 분들께 참고가 되었으면 좋겠습니다. 혹시 풀이에 오류가 있다면 제 이메일(junmomath8@gmail.com)

More information

함수공간 함수공간, 점열린위상 Definition 0.1. X와 Y 는임의의집합이고 F(X, Y ) 를 X에서 Y 로의모든함수족이라하자. 집합 F(X, Y ) 에위상을정의할때이것을함수공간 (function space) 이라한다. F(X, Y ) 는다음과같이적당한적집합과

함수공간 함수공간, 점열린위상 Definition 0.1. X와 Y 는임의의집합이고 F(X, Y ) 를 X에서 Y 로의모든함수족이라하자. 집합 F(X, Y ) 에위상을정의할때이것을함수공간 (function space) 이라한다. F(X, Y ) 는다음과같이적당한적집합과 함수공간 함수공간, 점열린위상 Definition.1. X와 Y 는임의의집합이고 F(X, Y ) 를 X에서 Y 로의모든함수족이라하자. 집합 F(X, Y ) 에위상을정의할때이것을함수공간 (function spce) 이라한다. F(X, Y ) 는다음과같이적당한적집합과같음을볼수있다. 각 x X에대해 Y x = Y 라하자. 그리고 F := Y x x X 이라하자.

More information

암호이론과 보안 고전적 암호시스템

암호이론과 보안                               고전적 암호시스템 6장 : 공개키 암호시스템 정보보호이론 Fall 2014 Mid-Term 10월 21일 2014. 19:00 pm ~ 21:00 pm 10월 14일 수업내용까지 Need to fully understand various concepts on cryptographic primitives. Write down all your works to obtain full

More information

TOPOLOGY-WEEK 6 & 7 KI-HEON YUN 1. Quotient space( 상공간 ) X 가위상공간이고 Y 가집합이며 f : X Y 가전사함수일때, X 의위상을사용하여 Y 에위상을정의할수있는방법은? Definition 1.1. X 가위상공간, f : X

TOPOLOGY-WEEK 6 & 7 KI-HEON YUN 1. Quotient space( 상공간 ) X 가위상공간이고 Y 가집합이며 f : X Y 가전사함수일때, X 의위상을사용하여 Y 에위상을정의할수있는방법은? Definition 1.1. X 가위상공간, f : X TOPOLOGY-WEEK 6 & 7 KI-HEON YUN 1. Quotient space( 상공간 ) X 가위상공간이고 Y 가집합이며 f : X Y 가전사함수일때, X 의위상을사용하여 Y 에위상을정의할수있는방법은? Definition 1.1. X 가위상공간, f : X Y 가전사함수일때, T Y = {U Y f 1 (U) is open set in X} 로정의하면

More information

와플-4년-2호-본문-15.ps

와플-4년-2호-본문-15.ps 1 2 1+2 + = = 1 1 1 +2 =(1+2)+& + *=+ = + 8 2 + = = =1 6 6 6 6 6 2 2 1 1 1 + =(1+)+& + *=+ =+1 = 2 6 1 21 1 + = + = = 1 1 1 + 1-1 1 1 + 6 6 0 1 + 1 + = = + 7 7 2 1 2 1 + =(+ )+& + *= + = 2-1 2 +2 9 9 2

More information

미분기하학 II-16 복소평면의선형분수변환과쌍곡평면의등장사상 김영욱 (ÑñÁ) 강의양성덕 (zû ) 의강의록 Ø 'x! xxñ 2007 년 김영욱 (ÑñÁ) 강의양성덕 (zû ) 의강의록 (Ø 'x!) 미분기하 II 2007 년 1 / 26

미분기하학 II-16 복소평면의선형분수변환과쌍곡평면의등장사상 김영욱 (ÑñÁ) 강의양성덕 (zû ) 의강의록 Ø 'x! xxñ 2007 년 김영욱 (ÑñÁ) 강의양성덕 (zû ) 의강의록 (Ø 'x!) 미분기하 II 2007 년 1 / 26 미분기하학 II-16 복소평면의 김영욱 (ÑñÁ) 강의양성덕 (zû ) 의강의록 Ø 'x! xxñ 2007 년 김영욱 (ÑñÁ) 강의양성덕 (zû ) 의강의록 (Ø 'x!) 미분기하 II 2007 년 1 / 26 자, 이제 H 2 의등장사상에대해좀더자세히알아보자. Definition 선형분수변환이란다음형식의사상을뜻한다. Example f (z) = az +

More information

4.2 합동연산 합동연산, 이른바 모듈로연산은 제 3장: 군론편에서 이미 한번 소개되었다. 하지만, 다소 설명이 부족했던 관계로, 모듈로연산이 진정 무엇을 의미하는지 조금 더 살펴보 도록 하겠다. 필자는 합동연산의 예제로 5 (mod 4)임을 보였다. 왜냐하면 과 5는

4.2 합동연산 합동연산, 이른바 모듈로연산은 제 3장: 군론편에서 이미 한번 소개되었다. 하지만, 다소 설명이 부족했던 관계로, 모듈로연산이 진정 무엇을 의미하는지 조금 더 살펴보 도록 하겠다. 필자는 합동연산의 예제로 5 (mod 4)임을 보였다. 왜냐하면 과 5는 Chapter 4 정수론 4. 여는 글 2500여년 전, 피타고라스는 만물의 근원을 수라고 주장했다. 수는 단순히 숫자들의 연속이 아니다. 수를 살펴보면 특이한 법칙들로 조화로운 구조를 이룬다. 심지어 그것 이 모두 수 라는 하나의 집합에 포함되어 있지만 실수냐, 유리수냐, 혹자는 정수냐에 따라서 그 성질들은 모두 다르다. 예컨데, 정수집합과 유리수집합의 크기는

More information

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음 프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음 CHAPTER 9 둘중하나선택하기 관계연산자 두개의피연산자를비교하는연산자 결과값은참 (1) 아니면거짓 (0) x == y x 와 y 의값이같은지비교한다. 관계연산자 연산자 의미 x == y x와 y가같은가? x!= y

More information

1 1 장. 함수와극한 1.1 함수를표현하는네가지방법 1.2 수학적모형 : 필수함수의목록 1.3 기존함수로부터새로운함수구하기 1.4 접선문제와속도문제 1.5 함수의극한 1.6 극한법칙을이용한극한계산 1.7 극한의엄밀한정의 1.8 연속

1 1 장. 함수와극한 1.1 함수를표현하는네가지방법 1.2 수학적모형 : 필수함수의목록 1.3 기존함수로부터새로운함수구하기 1.4 접선문제와속도문제 1.5 함수의극한 1.6 극한법칙을이용한극한계산 1.7 극한의엄밀한정의 1.8 연속 1 1 장. 함수와극한 1.1 함수를표현하는네가지방법 1.2 수학적모형 : 필수함수의목록 1.3 기존함수로부터새로운함수구하기 1.4 접선문제와속도문제 1.5 함수의극한 1.6 극한법칙을이용한극한계산 1.7 극한의엄밀한정의 1.8 연속 2 1.1 함수를표현하는네가지방법 함수 f : D E 는집합 D 의각원소 x 에집합 E 에속하는단하나의원소 f(x) 를 대응시키는규칙이다.

More information

완비거리공간 완비거리공간 Definition 0.1. (X, d) 는거리공간일때 X의점렬 < a n > 이모든 ɛ > 0에대해 n o N such that n, m > n o = d(a n, a m ) < ɛ 을만족하면이점렬을코시열 (Cauchy sequence) 이라

완비거리공간 완비거리공간 Definition 0.1. (X, d) 는거리공간일때 X의점렬 < a n > 이모든 ɛ > 0에대해 n o N such that n, m > n o = d(a n, a m ) < ɛ 을만족하면이점렬을코시열 (Cauchy sequence) 이라 완비거리공간 완비거리공간 Definition 0.1. (X, d) 는거리공간일때 X의점렬 < a n > 이모든 ɛ > 0에대해 n o N such that n, m > n o = d(a n, a m ) < ɛ 을만족하면이점렬을코시열 (Cauchy sequence) 이라한다. Example 0.2. < a n > 이 p에수렴하는점렬이면모든 ɛ > 0에대해 n

More information

PowerPoint Presentation

PowerPoint Presentation 5 불대수 IT CookBook, 디지털논리회로 - 2 - 학습목표 기본논리식의표현방법을알아본다. 불대수의법칙을알아본다. 논리회로를논리식으로논리식을논리회로로표현하는방법을알아본다. 곱의합 (SOP) 과합의곱 (POS), 최소항 (minterm) 과최대항 (mxterm) 에대해알아본다. 01. 기본논리식의표현 02. 불대수법칙 03. 논리회로의논리식변환 04.

More information

이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다

이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다 이장에서사용되는 MATLAB 명령어들은비교적복잡하므로 MATLAB 창에서명령어를직접입력하지않고확장자가 m 인 text 파일을작성하여실행을한다. 즉, test.m 과같은 text 파일을만들어서 MATLAB 프로그램을작성한후실행을한다. 이와같이하면길고복잡한 MATLAB 프로그램을작성하여실행할수있고, 오류가발생하거나수정이필요한경우손쉽게수정하여실행할수있는장점이있으며,

More information

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 비트연산자 1 1 비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 진수법! 2, 10, 16, 8! 2 : 0~1 ( )! 10 : 0~9 ( )! 16 : 0~9, 9 a, b,

More information

<C1DF29BCF6C7D020315FB1B3BBE7BFEB20C1F6B5B5BCAD2E706466>

<C1DF29BCF6C7D020315FB1B3BBE7BFEB20C1F6B5B5BCAD2E706466> 84 85 86 87 88 89 1 12 1 1 2 + + + 11=60 9 19 21 + + + 19 17 13 11=60 + 5 7 + 5 + 10 + 8 + 4+ 6 + 3=48 1 2 90 1 13 1 91 2 3 14 1 2 92 4 1 2 15 2 3 4 93 1 5 2 6 1 2 1 16 6 5 94 1 1 22 33 55 1 2 3 4 5 6

More information

<B3EDB4DC28B1E8BCAEC7F6292E687770>

<B3EDB4DC28B1E8BCAEC7F6292E687770> 1) 초고를읽고소중한조언을주신여러분들게감사드린다. 소중한조언들에도불구하고이글이포함하는오류는전적으로저자개인의것임을밝혀둔다. 2) 대표적인학자가 Asia's Next Giant: South Korea and Late Industrialization, 1990 을저술한 MIT 의 A. Amsden 교수이다. - 1 - - 2 - 3) 계량방법론은회귀분석 (regression)

More information

제 2 교시 2019 학년도 3 월고 1 전국연합학력평가문제지수학영역 1 5 지선다형 1. 의값은? [2점] 일차방정식 의해는? [2 점 ] 두수, 의최대공약수는? [2 점 ] 일차함수 의그래프에서

제 2 교시 2019 학년도 3 월고 1 전국연합학력평가문제지수학영역 1 5 지선다형 1. 의값은? [2점] 일차방정식 의해는? [2 점 ] 두수, 의최대공약수는? [2 점 ] 일차함수 의그래프에서 제 2 교시 2019 학년도 3 월고 1 전국연합학력평가문제지 1 5 지선다형 1. 의값은? [2점] 1 2 3 4 5 3. 일차방정식 의해는? [2 점 ] 1 2 3 4 5 2. 두수, 의최대공약수는? [2 점 ] 1 2 3 4 5 4. 일차함수 의그래프에서 절편과 절편의합은? [3 점 ] 1 2 3 4 5 1 12 2 5. 함수 의그래프가두점, 를지날때,

More information

Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint - chap04-연산자.pptx int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); } 1 학습목표 수식의 개념과 연산자, 피연산자에 대해서 알아본다. C의 를 알아본다. 연산자의 우선 순위와 결합 방향에

More information

01

01 2019 학년도대학수학능력시험 9 월모의평가문제및정답 2019 학년도대학수학능력시험 9 월모의평가문제지 1 제 2 교시 5 지선다형 1. 두벡터, 모든성분의합은? [2 점 ] 에대하여벡터 의 3. 좌표공간의두점 A, B 에대하여선분 AB 를 로외분하는점의좌표가 일때, 의값은? [2점] 1 2 3 4 5 1 2 3 4 5 2. lim 의값은? [2점] 4. 두사건,

More information

Microsoft PowerPoint Predicates and Quantifiers.ppt

Microsoft PowerPoint Predicates and Quantifiers.ppt 이산수학 () 1.3 술어와한정기호 (Predicates and Quantifiers) 2006 년봄학기 문양세강원대학교컴퓨터과학과 술어 (Predicate), 명제함수 (Propositional Function) x is greater than 3. 변수 (variable) = x 술어 (predicate) = P 명제함수 (propositional function)

More information

정수론의 기반 수학적 귀납법의 원리 Nottion 1.1 N = {1,, 3,...} = 자연수 전체의 집합 Z = {...,, 1, 0, 1,,...} = 정수 전체의 집합 Q = { b, b Z, b 6= 0} = 유리수 전체의 집합 R = {limn n

정수론의 기반 수학적 귀납법의 원리 Nottion 1.1 N = {1,, 3,...} = 자연수 전체의 집합 Z = {...,, 1, 0, 1,,...} = 정수 전체의 집합 Q = { b, b Z, b 6= 0} = 유리수 전체의 집합 R = {limn n 정수론 정주희경북대학교수학교육과 018년 11월 3일 차례 1 정수론의기반 1.1 수학적귀납법의원리................................. 1. 약수와배수....................................... 3 1.3 최대공약수와최소공배수............................... 7 1.4 소수와소인수분해...................................

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

2018년 수학성취도 측정시험 모범답안/채점기준/채점소감 (2018학년도 수시모집, 정시모집 및 외국인특별전형 합격자 대상) 2018년 2월 13일, 고사시간 90분 2018년 1번 x3 + x2 + x 3 = x 1 x2 1 lim. [풀이] x3 + x2 + x 3

2018년 수학성취도 측정시험 모범답안/채점기준/채점소감 (2018학년도 수시모집, 정시모집 및 외국인특별전형 합격자 대상) 2018년 2월 13일, 고사시간 90분 2018년 1번 x3 + x2 + x 3 = x 1 x2 1 lim. [풀이] x3 + x2 + x 3 8년 수학성취도 측정시험 모범답안/채점기준/채점소감 (8학년도 수시모집, 정시모집 및 외국인특별전형 합격자 대상) 8년 월 일, 고사시간 9분 8년 번 x + x + x x x lim. [풀이] x + x + x (x )(x + x + ) lim x x x (x )(x + ) x + x + lim x x+ limx x + x + limx x + 6 lim 8년

More information

PowerPoint Presentation

PowerPoint Presentation 논리회로기초요약 IT CookBook, 디지털논리회로 4-6 장, 한빛미디어 Setion 진수 진수표현법 기수가 인수, 사용. () = +. = 3 () () + + () +. () + + + () +. + () + - () +. + - () + -3 + -4 Setion 3 8 진수와 6 진수 8진수표현법 에서 7까지 8개의수로표현 67.36 (8) = 6

More information

[Real Analysis]4.1

[Real Analysis]4.1 정동명해석학 4.1 수열의수렴성 1. 다음의수열 중에서어느것이수렴하는가를조사하여라. 또, 그이유를밝혀라. (1) 수렴한다. 임의의 에대하여 아르키메데스성질에의하여 을만족하는 을택하면 일때, 이성립한다. 여기서 이므로 이성립한다. 따라서 은 1 로수렴한다. (2) 수렴한다. 임의의 에대하여 아르키메데스성질에의하여 을만족하는 을택하면 일때, 이성립한다. 따라서

More information

(001~006)개념RPM3-2(부속)

(001~006)개념RPM3-2(부속) www.imth.tv - (~9)개념RPM-(본문).. : PM RPM - 대푯값 페이지 다민 PI LPI 알피엠 대푯값과산포도 유형 ⑴ 대푯값 자료 전체의 중심적인 경향이나 특징을 하나의 수로 나타낸 값 ⑵ 평균 (평균)= Ⅰ 통계 (변량)의 총합 (변량의 개수) 개념플러스 대푯값에는 평균, 중앙값, 최 빈값 등이 있다. ⑶ 중앙값 자료를 작은 값부터 크기순으로

More information

statistics

statistics 수치를이용한자료요약 statistics hmkang@hallym.ac.kr 한림대학교 통계학 강희모 ( 한림대학교 ) 수치를이용한자료요약 1 / 26 수치를 통한 자료의 요약 요약 방대한 자료를 몇 개의 의미있는 수치로 요약 자료의 분포상태를 알 수 있는 통계기법 사용 중심위치의 측도(measure of center) : 어떤 값을 중심으로 분포되어 있는지

More information

Microsoft PowerPoint - 27.pptx

Microsoft PowerPoint - 27.pptx 이산수학 () n-항관계 (n-ary Relations) 2011년봄학기 강원대학교컴퓨터과학전공문양세 n-ary Relations (n-항관계 ) An n-ary relation R on sets A 1,,A n, written R:A 1,,A n, is a subset R A 1 A n. (A 1,,A n 에대한 n- 항관계 R 은 A 1 A n 의부분집합이다.)

More information

3 권 정답

3 권 정답 3 권 정답 엄마표학습생활기록부 엄마가선생님이되어아이의학업성취도를평가해주세요. 021 계획준수 학습기간 월일 ~ 월일 원리이해 시간단축 정확성 종합의견 022 계획준수 학습기간 월일 ~ 월일 원리이해 시간단축 정확성 종합의견 023 계획준수 학습기간 월일 ~ 월일 원리이해 시간단축 정확성 종합의견 024 계획준수 학습기간 월일 ~ 월일 원리이해 시간단속 정확성

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향

More information

초4-1쌩큐기본(정답)본지

초4-1쌩큐기본(정답)본지 초4-1쌩큐기본(정답)본지 2014.10.20 06:4 PM 페이지1 다민 2540DPI 175LPI 3~4학년군 수학 진도교재 1. 큰 수 3 4-1 2 2. 곱셈과 나눗셈 12 3. 각도와 삼각형 21 4. 분수의 덧셈과 뺄셈 34 5. 혼합 계산 43 6. 막대그래프 54 단원 성취도평가 61 쌩큐 익힘책 67 1 6000 7000 8000 9000 10000

More information

집합 집합 오른쪽 l 3. (1) 집합 X 의각원소에대응하는집합 Y 의원소가단하나만인대응을 라할때, 이대응 를 X 에서 Y 로의라고하고이것을기호로 X Y 와같이나타낸다. (2) 정의역과공역정의역 : X Y 에서집합 X, 공역 : X Y 에서집합 Y (3) 의개수 X Y

집합 집합 오른쪽 l 3. (1) 집합 X 의각원소에대응하는집합 Y 의원소가단하나만인대응을 라할때, 이대응 를 X 에서 Y 로의라고하고이것을기호로 X Y 와같이나타낸다. (2) 정의역과공역정의역 : X Y 에서집합 X, 공역 : X Y 에서집합 Y (3) 의개수 X Y 어떤 다음 X 대응 1. 대응 (1) 어떤주어진관계에의하여집합 X 의원소에집합 Y 의원소를짝지어주는것을집합 X 에서집합 Y 로의대응이라고한다. l (2) 집합 X 의원소 에집합 Y 의원소 가짝지어지면 에 가대응한다고하며이것을기호로 와같이나타낸다. 2. 일대일대응 (1) 집합 A 의모든원소와집합 B 의모든원소가하나도빠짐없이꼭한개씩서로대응되는것을집합 A 에서집합

More information

1.1) 등비수열 전체집합 제 2 교시 나 형 2016 년 3 월고 3 모의고사문제지 수리영역 성명수험번호 3 1 먼저수험생이선택한응시유형의문제지인지확인하시오. 문제지에성명과수험번호를정확히기입하시오. 답안지에수험번호, 응시유형및답을표기할때는반드시 수험생이지켜야할일 에따

1.1) 등비수열 전체집합 제 2 교시 나 형 2016 년 3 월고 3 모의고사문제지 수리영역 성명수험번호 3 1 먼저수험생이선택한응시유형의문제지인지확인하시오. 문제지에성명과수험번호를정확히기입하시오. 답안지에수험번호, 응시유형및답을표기할때는반드시 수험생이지켜야할일 에따 1.1) 등비수열 전체집합 제 2 교시 2016 년 3 월고 3 모의고사문제지 성명수험번호 3 1 먼저수험생이선택한응시유형의문제지인지확인하시오. 문제지에성명과수험번호를정확히기입하시오. 답안지에수험번호, 응시유형및답을표기할때는반드시 수험생이지켜야할일 에따라표기하시오. 단답형답의숫자에 0 이포함된경우, 0 을 OMR 답안지에반드시표기해야합니다. 문항에따라배점이다르니,

More information

= Fisher, I. (1930), ``The Theory of Interest,'' Macmillan ,

= Fisher, I. (1930), ``The Theory of Interest,'' Macmillan , Finance Lecture Note Series 학습목표 제4강 소유와 경영의 분리 효용함수(utility function): 효용함수, 한계효용(marginal utility), 한계대체율(marginal rate of substitution) 의 개념에 대해 알아본다 조 승 모2 (production possibility curve): 생산가능곡선과 한계변환율(marginal

More information

문제지 제시문 2 보이지 않는 영역에 대한 정보를 얻기 위하여 관측된 다른 정보를 분석하여 역으로 미 관측 영역 에 대한 정보를 얻을 수 있다. 가령 주어진 영역에 장애물이 있는 경우 한 끝 점에서 출발하여 다른 끝 점에 도달하는 최단 경로의 개수를 분석하여 장애물의

문제지 제시문 2 보이지 않는 영역에 대한 정보를 얻기 위하여 관측된 다른 정보를 분석하여 역으로 미 관측 영역 에 대한 정보를 얻을 수 있다. 가령 주어진 영역에 장애물이 있는 경우 한 끝 점에서 출발하여 다른 끝 점에 도달하는 최단 경로의 개수를 분석하여 장애물의 제시문 문제지 2015학년도 대학 신입학생 수시모집 일반전형 면접 및 구술고사 수학 제시문 1 하나의 동전을 던질 때, 앞면이나 뒷면이 나온다. 번째 던지기 전까지 뒷면이 나온 횟수를 라 하자( ). 처음 던지기 전 가진 점수를 점이라 하고, 번째 던졌을 때, 동전의 뒷면이 나오면 가지고 있던 점수를 그대로 두고, 동전의 앞면이 나오면 가지고 있던 점수를 배

More information

2 장수의체계 1. 10진수 2. 2진수 3. 8진수와 16진수 4. 진법변환 5. 2진정수연산과보수 6. 2진부동소수점수의표현 한국기술교육대학교전기전자통신공학부전자전공 1

2 장수의체계 1. 10진수 2. 2진수 3. 8진수와 16진수 4. 진법변환 5. 2진정수연산과보수 6. 2진부동소수점수의표현 한국기술교육대학교전기전자통신공학부전자전공 1 장수의체계. 진수. 진수 3. 8진수와 6진수 4. 진법변환 5. 진정수연산과보수 6. 진부동소수점수의표현 진수 진수표현법 v 기수가 인수 v,,, 3, 4, 5, 6, 7, 8, 9 사용 9345.35 = 9 3 4 5 3. 5. = 9 3 3 4 5 3-5 - v 고대로마의기수법에는 5 진법을사용 v 진법의아라비아숫자는인도에서기원전 세기에발명 진법을나타내는기본수를기수

More information

생존분석의 추정과 비교 : 보충자료 이용희 December 12, 2018 Contents 1 생존함수와 위험함수 생존함수와 위험함수 예제: 지수분포

생존분석의 추정과 비교 : 보충자료 이용희 December 12, 2018 Contents 1 생존함수와 위험함수 생존함수와 위험함수 예제: 지수분포 생존분석의 추정과 비교 : 보충자료 이용희 December, 8 Cotets 생존함수와 위험함수. 생존함수와 위험함수....................................... 예제: 지수분포.......................................... 예제: 와이블분포.........................................

More information

윈도우즈프로그래밍(1)

윈도우즈프로그래밍(1) 제어문 (2) For~Next 문 윈도우즈프로그래밍 (1) ( 신흥대학교컴퓨터정보계열 ) 2/17 Contents 학습목표 프로그램에서주어진특정문장을부분을일정횟수만큼반복해서실행하는문장으로 For~Next 문등의구조를이해하고활용할수있다. 내용 For~Next 문 다중 For 문 3/17 제어문 - FOR 문 반복문 : 프로그램에서주어진특정문장들을일정한횟수만큼반복해서실행하는문장

More information

슬라이드 1

슬라이드 1 9. 소규모의방정식을풀기 9. 순수 Guss 소거법 9. 피봇팅 9.4 삼중대각시스템 어떤원리에의해다음과같은 MATLAB 명령어가수행되는가? >> =A\ >> =iva)* 9. 소규모의방정식을풀기 /6) 컴퓨터를필요로하지않고소규모연립방정식 ) 에적합한방법 - 도식적방법, Crmer 공식, 미지수소거법 도식적인방법 8 9 두연립선형대수방정식의도식적인해 교점이해를나타냄

More information

(Hyunoo Shim) 1 / 24 (Discrete-time Markov Chain) * 그림 이산시간이다연쇄 (chain) 이다왜 Markov? (See below) ➀ 이산시간연쇄 (Discrete-time chain): : Y Y 의상태공간 = {0, 1, 2,..., n} Y n Y 의 n 시점상태 {Y n = j} Y 가 n 시점에상태 j 에있는사건

More information

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A 예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = 1 2 3 4 5 6 7 8 9 B = 8 7 6 5 4 3 2 1 0 >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = 0 0 0 0 1 1 1 1 1 >> tf = (A==B) % A 의원소와 B 의원소가똑같은경우를찾을때 tf = 0 0 0 0 0 0 0 0 0 >> tf

More information

Infinity(∞) Strategy

Infinity(∞) Strategy 반복제어 표월성 passwd74@cherub.sungkyul.edu 개요 for() 문 break문과 continue문 while문 do-while문 for() 문 for() 문형식 for( 표현식1; 표현식2; 표현식3) 여러문장들 ; 표현식 1 : 초기화 (1 번만수행 ) 표현식 2 : 반복문수행조건 ( 없으면무한반복 ) 표현식 3 : 반복문수행횟수 for()

More information

1 peaieslvfp3 1. 두점사이의거리 수직선위의두점사이의거리를구할수있다. 좌표평면위의두점사이의거리를구할수있다. 수직선위의두점사이의거리 todrkrgo qhqtlek 오른쪽그림은충무로역을중심으로한서울시지하철 3`호선노선도의일부분이다. 충무로역을` 0, 을지로 3`

1 peaieslvfp3 1. 두점사이의거리 수직선위의두점사이의거리를구할수있다. 좌표평면위의두점사이의거리를구할수있다. 수직선위의두점사이의거리 todrkrgo qhqtlek 오른쪽그림은충무로역을중심으로한서울시지하철 3`호선노선도의일부분이다. 충무로역을` 0, 을지로 3` peaieslvfp. 두점사이의거리 수직선위의두점사이의거리를구할수있다. 좌표평면위의두점사이의거리를구할수있다. 수직선위의두점사이의거리 todrkrgo qhqtlek 오른쪽그림은충무로역을중심으로한서울시지하철 `호선노선도의일부분이다. 충무로역을` 0, 을지로 `가역을 ``로나타낼때, 다음물음에답하여라. 독립문 경복궁 안국종로 가을지로 가충무로동대입구약수금호옥수압구정잠원신사

More information

(Microsoft PowerPoint - Ch19_NumAnalysis.ppt [\310\243\310\257 \270\360\265\345])

(Microsoft PowerPoint - Ch19_NumAnalysis.ppt [\310\243\310\257 \270\360\265\345]) 수치해석 6009 Ch9. Numerical Itegratio Formulas Part 5. 소개 / 미적분 미분 : 독립변수에대한종속변수의변화율 d vt yt dt yt 임의의물체의시간에따른위치, vt 속도 함수의구배 적분 : 미분의역, 어떤구간내에서시간 / 공간에따라변화하는정보를합하여전체결과를구함. t yt vt dt 0 에서 t 까지의구간에서곡선 vt

More information

수리영역 5. 서로다른두개의주사위를동시에던져서나온두눈의수의곱 이짝수일때, 나온두눈의수의합이 또는 일확률은? 5) 의전개식에서상수항이존재하도록하는모든자 연수 의값의합은? 7) 다음순서도에서인쇄되는 의값은? 6) 8. 어떤특산

수리영역 5. 서로다른두개의주사위를동시에던져서나온두눈의수의곱 이짝수일때, 나온두눈의수의합이 또는 일확률은? 5) 의전개식에서상수항이존재하도록하는모든자 연수 의값의합은? 7) 다음순서도에서인쇄되는 의값은? 6) 8. 어떤특산 제 2 교시 2008 학년도 10 월고 3 전국연합학력평가문제지 수리영역 성명수험번호 3 1 먼저수험생이선택한응시유형의문제지인지확인하시오. 문제지에성명과수험번호를정확히기입하시오. 답안지에수험번호, 응시유형및답을표기할때는반드시 수험생이지켜야할일 에따라표기하시오. 단답형답의숫자에 0 이포함된경우, 0 을 OMR 답안지에반드시표기해야합니다. 문항에따라배점이다르니,

More information

슬라이드 1

슬라이드 1 CHAP 2: 순환 (Recursion) 순환 (recursion) 이란? 알고리즘이나함수가수행도중에자기자신을다시호출하여문제를해결하는기법 정의자체가순환적으로 되어있는경우에적합한방법 순환 (recursion) 의예 팩토리얼값구하기 피보나치수열 1 n! n*( n 1)! fib( n) 0 1 fib( n 2) n n 0 ` 1 fib( n 1) if n 0 if

More information

0 cm (++x)=0 x= R QR Q =R =Q = cm =Q =-=(cm) =R =x cm (x+) = +(x+) x= x= (cm) =+=0 (cm) =+=8 (cm) + =0+_8= (cm) cm + = + = _= (cm) 7+x= x= +y= y=8,, Q

0 cm (++x)=0 x= R QR Q =R =Q = cm =Q =-=(cm) =R =x cm (x+) = +(x+) x= x= (cm) =+=0 (cm) =+=8 (cm) + =0+_8= (cm) cm + = + = _= (cm) 7+x= x= +y= y=8,, Q . 09~ cm 7 0 8 9 8'-p 0 cm x=, y=8 cm 0' 7 cm 8 cm 9 'åcm 90 'åcm T T=90 T T =" 8 - =' (cm) T= T= _T _T _'_ T=8' (cm ) 7 = == =80 -_ =0 = = _=(cm) M = = _0= (cm) M M =" - = (cm) r cm rcm (r-)cm H 8cm cm

More information

고 학년도 9월고수학 1 전국연합학력평가영역문제지 1 1 제 2 교시 수학영역 5 지선다형 3. 두다항식, 에대하여 는? [ 점 ] 1. 의값은? ( 단, ) [ 점 ] 다항식 이 로인수분해될때, 의값은? ( 단,,

고 학년도 9월고수학 1 전국연합학력평가영역문제지 1 1 제 2 교시 수학영역 5 지선다형 3. 두다항식, 에대하여 는? [ 점 ] 1. 의값은? ( 단, ) [ 점 ] 다항식 이 로인수분해될때, 의값은? ( 단,, 고 208학년도 9월고수학 전국연합학력평가영역문제지 제 2 교시 수학영역 5 지선다형 3. 두다항식, 에대하여 는? [ 점 ]. 의값은? ( 단, ) [ 점 ] 2 3 2 3 4 5 4 5 2. 다항식 이 로인수분해될때, 의값은? ( 단,, 는상수이다.) [ 점 ] 4. 좌표평면위의두점 A, B 사이의거리가 일때, 양수 의값은? [ 점 ] 2 3 4 5 2

More information

2 KAIST 1988,,KAIST MathLetter, 3,,, 3,, 3, 3,

2 KAIST 1988,,KAIST MathLetter, 3,,, 3,, 3, 3, (M 2 ) 2 KAIST 1988,,KAIST MathLetter, 3,,, 3,, 3, 3, 3,,, 2003 8, 4 1 7 11 8 12 26 2 39 21 40 22 54 23 67 24 80 3 93 31 n! 94 32 101 33 115 4 131 41 132 6 42 146 5 163 51 164 52 180 1 8 11 4 4?!,? 2??,?

More information

04 Çмú_±â¼ú±â»ç

04 Çмú_±â¼ú±â»ç 42 s p x f p (x) f (x) VOL. 46 NO. 12 2013. 12 43 p j (x) r j n c f max f min v max, j j c j (x) j f (x) v j (x) f (x) v(x) f d (x) f (x) f (x) v(x) v(x) r f 44 r f X(x) Y (x) (x, y) (x, y) f (x, y) VOL.

More information

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770> IT OOKOOK 87 이론, 실습, 시뮬레이션 디지털논리회로 ( 개정 3 판 ) (Problem Solutions of hapter 7) . 반감산기와전감산기를설계 반감산기반감산기는한비트의 2진수 에서 를빼는회로이며, 두수의차 (difference, ) 와빌림수 (barrow, ) 를계산하는뺄셈회로이다. 에서 를뺄수없으면윗자리에서빌려와빼야하며, 이때빌려오는수는윗자리에서가져오므로

More information

C 언어 프로그래밊 과제 풀이

C 언어 프로그래밊 과제 풀이 과제풀이 (1) 홀수 / 짝수판정 (1) /* 20094123 홍길동 20100324 */ /* even_or_odd.c */ /* 정수를입력받아홀수인지짝수인지판정하는프로그램 */ int number; printf(" 정수를입력하시오 => "); scanf("%d", &number); 확인 주석문 가필요한이유 printf 와 scanf 쌍

More information

<B1B9BEEE412E687770>

<B1B9BEEE412E687770> 201 학년도대학수학능력시험 6 월모의평가문제및정답 2016 학년도대학수학능력시험 6 월모의평가문제지 1 제 2 교시 5 지선다형 1. 두행렬 성분은? [2 점 ] 에대하여행렬 의 3. lim 의값은? [2점] 1 2 3 4 5 1 2 3 4 5 2. 의값은? [2점] 1 2 3 4 5 4. 공차가 인등차수열 에대하여 의값은? [3 점 ] 1 2 3 4 5

More information

= ``...(2011), , (.)''

= ``...(2011), , (.)'' Finance Lecture Note Series 사회과학과 수학 제2강. 미분 조 승 모2 영남대학교 경제금융학부 학습목표. 미분의 개념: 미분과 도함수의 개념에 대해 알아본다. : 실제로 미분을 어떻게 하는지 알아본다. : 극값의 개념을 알아보고 미분을 통해 어떻게 구하는지 알아본다. 4. 미분과 극한: 미분을 이용하여 극한값을 구하는 방법에 대해 알아본다.

More information

벡터(0.6)-----.hwp

벡터(0.6)-----.hwp 만점을위한 수학전문가남언우 - 벡터 1강 _ 분점의위치벡터 2강 _ 벡터의일차결합 3강 _ 벡터의연산 4강 _ 내적의도형적의미 5강 _ 좌표를잡아라 6강 _ 내적의활용 7강 _ 공간도형의방정식 8강 _ 구의방정식 9강 _2014년수능최고난도문제 좌표공간에 orbi.kr 1 강 _ 분점의위치벡터 01. 1) 두점 A B 이있다. 평면 에있는점 P 에대하여 PA

More information

소성해석

소성해석 3 강유한요소법 3 강목차 3. 미분방정식의근사해법-Ritz법 3. 미분방정식의근사해법 가중오차법 3.3 유한요소법개념 3.4 편미분방정식의유한요소법 . CAD 전처리프로그램 (Preprocessor) DXF, STL 파일 입력데이타 유한요소솔버 (Finite Element Solver) 자연법칙지배방정식유한요소방정식파생변수의계산 질량보존법칙 연속방정식 뉴톤의운동법칙평형방정식대수방정식

More information

Chapter 연습문제답안. y *sin-*cos*^ep-*/sqrt. y [ ; sinpi/ ; sin*pi ; ] 혹은 [ sinpi/ sin*pi ]. a ais[- ] b et.,., sin. c.. a A는주어진행렬 M의 번째열만을표시하는새로운행렬을나타낸다.

Chapter 연습문제답안. y *sin-*cos*^ep-*/sqrt. y [ ; sinpi/ ; sin*pi ; ] 혹은 [ sinpi/ sin*pi ]. a ais[- ] b et.,., sin. c.. a A는주어진행렬 M의 번째열만을표시하는새로운행렬을나타낸다. IT CookBook, MATLAB 으로배우는공학수치해석 ] : 핵심개념부터응용까지 [ 연습문제답안이용안내 ] 본연습문제답안의저작권은한빛아카데미 주 에있습니다. 이자료를무단으로전제하거나배포할경우저작권법 조에의거하여최고 년이하의징역또는 천만원이하의벌금에처할수있고이를병과 倂科 할수도있습니다. - - Chapter 연습문제답안. y *sin-*cos*^ep-*/sqrt.

More information

2013unihangulchar {45380} 2unihangulchar {54617}unihangulchar {44592} unihangulchar {49328}unihangulchar {50629}unihangulchar {51312}unihangulchar {51

2013unihangulchar {45380} 2unihangulchar {54617}unihangulchar {44592} unihangulchar {49328}unihangulchar {50629}unihangulchar {51312}unihangulchar {51 Proem Se 4 산업조직론 (ECM004N) Fall 03. 독점기업이 다음과 같은 수요함수를 각각 가지고 있는 두 개의 소비자 그룹에게 제품을 공급한다고 하자. 한 단위 제품을 생산하는 데 드는 비용은 상수 이다. 다음 질문에 답하시오. P = A B Q P = A B Q () 두 그룹에 대하여 가격차별을 하고자 할 때 각 그룹의 균형생산량(Q, Q )과

More information

8장 조합논리 회로의 응용

8장 조합논리 회로의 응용 8 장연산논리회로 가산기 반가산기와전가산기 반가산기 (Half Adder, HA) 8. 기본가 / 감산기 비트의 개 진수를더하는논리회로. 개의입력과출력으로구성. 개입력은피연산수 와연산수 y 이고, 출력은두수를합한결과인합 S(sum) 과올림수 C(carry) 를발생하는회로. : 피연산수 : 연산수 : 합 y C S y S C 올림수 올림수 전가산기 : 연산수

More information

untitled

untitled 2 xy x y x x x x x n n x x n 3 3 4 4 x 1 1+x x x x 1.025 x x 1.025 x 1+.025 x x 1+x 1+y x y x y 101.5 1.021 101.5 100 (1 + 0.015 ) 1.021 1+.021 98.5 1 0.035 98.5 0.965 98.5 100 (1 0.015 ) 1 0.035 1.035

More information

<30325FBCF6C7D05FB9AEC7D7C1F62E687770>

<30325FBCF6C7D05FB9AEC7D7C1F62E687770> 고1 2015학년도 9월고수학 1 전국연합학력평가영역문제지 1 1 제 2 교시 수학영역 1. 두복소수, 에대하여 의값은? ( 단, ) [2 점 ] 1 2 3 4 5 3. 좌표평면위의두점 P, Q 사이의거리는? [2 점 ] 1 2 3 4 5 2. 두다항식, 에대하여 를간단히하면? [2점] 4. 에서이차함수 의최댓값을, 최솟값을 이라할때, 의값은? [3점] 1

More information

중간고사

중간고사 중간고사 예제 1 사용자로부터받은두개의숫자 x, y 중에서큰수를찾는알고리즘을의사코드로작성하시오. Step 1: Input x, y Step 2: if (x > y) then MAX

More information

Microsoft PowerPoint - 강의자료8_Chap9 [호환 모드]

Microsoft PowerPoint - 강의자료8_Chap9 [호환 모드] 컴퓨터구조 강의노트 #8: Chapter 9: 컴퓨터산술 2008. 5. 8. 담당교수 : 조재수 E-mail: jaesoo27@kut.ac.kr 1 컴퓨터시스템구조론 제9장컴퓨터산술 (Computer Arithmetic) 2 1 핵심요점들 컴퓨터산술에있어서두가지주요관심사는수가표현되는방법 (2진수형식 ) 과기본적인산술연산들 ( 더하기, 빼기, 곱하기, 나누기

More information

= Fisher, I. (1930), ``The Theory of Interest,'' Macmillan ,

= Fisher, I. (1930), ``The Theory of Interest,'' Macmillan , Finance Lecture Note Series 금융시장과 투자분석 연구 제4강. 소유와 경영의 분리1 조 승 모2 영남대학교 대학원 경제학과 2015학년도 2학기 Copyright 2015 Cho, Seung Mo 1 기본적으로 Fisher, I. (1930), The Theory of Interest, Macmillan의 내용을 바탕으로 작성되었으며,

More information

Computer Architecture

Computer Architecture 정수의산술연산과부동소수점연산 정수의산술연산부동소수점수의표현부동소수점산술연산 이자료는김종현저 - 컴퓨터구조론 ( 생능출판사 ) 의내용을편집한것입니다. 3.5 정수의산술연산 기본적인산술연산들 2 2 3.5.1 덧셈 2 의보수로표현된수들의덧셈방법 두수를더하고, 만약올림수가발생하면버림 3 3 병렬가산기 (parallel adder) 덧셈을수행하는하드웨어모듈 4- 비트병렬가산기와상태비트제어회로

More information

152*220

152*220 152*220 2011.2.16 5:53 PM ` 3 여는 글 교육주체들을 위한 교육 교양지 신경림 잠시 휴간했던 우리교육 을 비록 계간으로이지만 다시 내게 되었다는 소식을 들으니 우 선 반갑다. 하지만 월간으로 계속할 수 없다는 현실이 못내 아쉽다. 솔직히 나는 우리교 육 의 부지런한 독자는 못 되었다. 하지만 비록 어깨너머로 읽으면서도 이런 잡지는 우 리

More information

강의 개요

강의 개요 정규화와 SELECT (II) 웹데이터베이스 학과 학생 과목 학과 지도교수 학과학번성명 수강과목 담당교수 A 김수정 A 0001 고길동 성질이론 김수정 B 허영만 A 0002 둘리 한식의멋 허영만 C 강풀 B 0003 희동이 심리학의이해 강풀 과목 _ 성적 학번 수강과목 성적 0001 성질이론 A 0001 한식의멋 C 0002 성질이론 A 0002 한식의멋

More information

Microsoft PowerPoint - hw8.ppt [호환 모드]

Microsoft PowerPoint - hw8.ppt [호환 모드] 8.1 데이터경로와제어장치 Chapter 8 데이터경로와제어장치 많은순차회로의설계는다음의두부분으로구성 datapath: data의이동및연산을위한장치 control unit에상태신호제공 control ol unit: datapath th 에서적절한순서로 data 이동및연산을수행할수있도록제어신호제공. 먼저, datapath를설계 다음에, control unit

More information

슬라이드 1

슬라이드 1 장연립방정식을 풀기위한반복법. 선형시스템 : Guss-Sedel. 비선형시스템 . 선형시스템 : Guss-Sedel (/0) 반복법은초기근을가정한후에더좋은근의값을추정하는체계적인절차를이용한다. G-S 방법은선형대수방정식을푸는반복법중에서 가장보편적으로사용되는방법이다. 개의방정식에서 인 ( 대각원소들이모두 0 이아닌 ) 경우를다루자. j j b j b j j j

More information

8. 수직선위에다음수들이대응할때, 원점에서가장멀리 위치한수는? 12. Å + 7 ã Å + 5 ã Å 16 ã + 3 을계산하여라 다음에서그결과가다른하나는? 1 3 보다 5 만큼큰수 9. 두정수 a, b

8. 수직선위에다음수들이대응할때, 원점에서가장멀리 위치한수는? 12. Å + 7 ã Å + 5 ã Å 16 ã + 3 을계산하여라 다음에서그결과가다른하나는? 1 3 보다 5 만큼큰수 9. 두정수 a, b 범위 : 소인수분해 정수와유리수 50 문항 / 중반 : 이름 : 중 1-1 수학중간고사대비 1. 다음중 81 의약수는? 1 2 2 4 3 5 4 6 5 9 6. 다음수들에대한설명으로옳은것은? 1 10, 1.2, 2, 2 5, 0, 4, 10 2 1 양수는 4 개이다. 2. 세수 2 7 2, 2 2 7 11, 5 11 2 의최소공배수는? 1 2 5 7 11 2

More information

2

2 rev 2004/1/12 KAIST 2 6 7 1 13 11 13 111 13 112 18 113 19 114 21 12 24 121 24 122 26 13 28 131 28 132 30 133 (recurrence) 34 134 35 4 2 39 21 39 211 39 212 40 22 42 221, 42 222 43 223, 45 224 46 225, 48

More information

<5BB0EDB3ADB5B55D32303131B3E2B4EBBAF12DB0ED312D312DC1DFB0A32DC0B6C7D5B0FAC7D02D28312E28322920BAF2B9F0B0FA20BFF8C0DAC0C720C7FCBCBA2D3031292D3135B9AEC7D72E687770>

<5BB0EDB3ADB5B55D32303131B3E2B4EBBAF12DB0ED312D312DC1DFB0A32DC0B6C7D5B0FAC7D02D28312E28322920BAF2B9F0B0FA20BFF8C0DAC0C720C7FCBCBA2D3031292D3135B9AEC7D72E687770> 고1 융합 과학 2011년도 1학기 중간고사 대비 다음 글을 읽고 물음에 답하시오. 1 빅뱅 우주론에서 수소와 헬륨 의 형성에 대한 설명으로 옳은 것을 보기에서 모두 고른 것은? 4 서술형 다음 그림은 수소와 헬륨의 동위 원 소의 을 모형으로 나타낸 것이. 우주에서 생성된 수소와 헬륨 의 질량비 는 약 3:1 이. (+)전하를 띠는 양성자와 전기적 중성인 중성자

More information

= " (2014), `` ,'' .." " (2011), `` ,'' (.)"

=  (2014), `` ,'' ..  (2011), `` ,'' (.) 학습목표 Finance Lectue Note Seies 파생금융상품의 이해 화폐의 시간가치(time value of money): 화폐의 시간가치에 대해 알아본다 제강 화폐의 시간가치 연금의 시간가치(time value of annuity): 일정기간 매년 동일금액을 지급하는 연금의 시간가치에 대해 알아본다 조 승 모 3 영구연금의 시간가치(time value

More information

Introduction to Computer Science

Introduction to Computer Science 컴퓨터공학개론 4 장수체계와데이터표현 학습목표 수체계를이해하는것이왜중요한지배운다. 수의거듭제곱에대해복습한다. 사물을세는데수체계가어떻게사용되는지배운다. 수체계에서자리값의중요성에대해배운다. 수체계에서사용되는여러진수사이의차이점과유사점에대해배운다. 2 학습목표 ( 계속 ) 진수사이에수를변환하는방법에대해배운다. 이진법및십육진법을사용하는수학의계산법을배운다. 컴퓨터에서이진수를사용하여데이터를표현하는방법에대해배운다.

More information

(Microsoft PowerPoint - Ch21_NumAnalysis.ppt [\310\243\310\257 \270\360\265\345])

(Microsoft PowerPoint - Ch21_NumAnalysis.ppt [\310\243\310\257 \270\360\265\345]) 수치해석 161009 Ch21. Numerical Differentiation 21.1 소개및배경 (1/2) 미분 도함수 : 독립변수에대한종속변수의변화율 y = x f ( xi + x) f ( xi ) x dy dx f ( xi + x) f ( xi ) = lim = y = f ( xi ) x 0 x 차분근사 도함수 1 차도함수 : 곡선의한점에서접선의구배 21.1

More information

PowerPoint Presentation

PowerPoint Presentation 5 불대수 Http://RAIC.kunsn..kr 2 학습목표 마스터제목스타일편집 기본논리식의표현방법을알아본다. 불대수의법칙을알아본다. 논리회로를논리식으로논리식을논리회로로표현하는방법을알아본다. 곱의합 (SOP) 과합의곱 (POS), 최소항 (minterm) 과최대항 (mxterm) 에대해알아본다. 01. 기본논리식의표현 02. 불대수법칙 03. 논리회로의논리식변환

More information

연구노트

연구노트 #2. 종이 질 - 일단은 OK. 하지만 만년필은 조금 비침. 종이질은 일단 합격점. 앞으로 종이질은 선택옵션으로 둘 수 있으리라 믿는다. 종이가 너무 두꺼우면, 뒤에 비치지 는 않지만, 무겁고 유연성이 떨어진다. 하지만 두꺼우면 고의적 망실의 위험도 적고 적당한 심리적 부담도 줄 것이 다. 이점은 호불호가 있을 것으로 생각되지만, 일단은 괜찮아 보인다. 필자의

More information

10-2 삼각형의닮음조건 p270 AD BE C ABC DE ABC 중 2 비상 10, 11 단원도형의닮음 (& 활용 ) - 2 -

10-2 삼각형의닮음조건 p270 AD BE C ABC DE ABC 중 2 비상 10, 11 단원도형의닮음 (& 활용 ) - 2 - 10 단원 : 도형의닮음 10-1 닮음도형 p265 ABC DEF ABC DEF EF B ABCD EFGH ABCD EFGH EF A AB GH ADFC CF KL 중 2 비상 10, 11 단원도형의닮음 (& 활용 ) - 1 - 10-2 삼각형의닮음조건 p270 AD BE C ABC DE ABC 중 2 비상 10, 11 단원도형의닮음 (& 활용 ) - 2 -

More information

Microsoft PowerPoint - chap-05.pptx

Microsoft PowerPoint - chap-05.pptx 쉽게풀어쓴 C 언어 Express 제 5 장수식과연산자 컴퓨터프로그래밍기초 이번장에서학습할내용 * 수식과연산자란? * 대입연산 * 산술연산 * 논리연산 * 관계연산 * 우선순위와결합법칙 이번장에서는수식과연산자를살벼봅니다. 컴퓨터프로그래밍기초 2 수식 수식 (expression) x + y x*x + 5*x + 6 (principal * interest_rate

More information

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770> 연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.

More information

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint - chap03-변수와데이터형.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num %d\n", num); return 0; } 1 학습목표 의 개념에 대해 알아본다.

More information