백인감자
Sage 이용한 Euclidean 알고리즘 본문
Euclidean 알고리즘 이란
유클리드 호제법(- 互除法, Euclidean algorithm)은 2개의 자연수 또는 정식(整式)의 최대공약수를 구하는 알고리즘의 하나이다. 호제법이란 말은 두 수가 서로(互) 상대방 수를 나누어(除)서 결국 원하는 수를 얻는 알고리즘을 나타낸다. 2개의 자연수(또는 정식) a, b에 대해서 a를 b로 나눈 나머지를 r이라 하면(단, a>b), a와 b의 최대공약수는 b와 r의 최대공약수와 같다. 이 성질에 따라, b를 r로 나눈 나머지 r'를 구하고, 다시 r을 r'로 나눈 나머지를 구하는 과정을 반복하여 나머지가 0이 되었을 때 나누는 수가 a와 b의 최대공약수이다. ---출처 : 위키백과
Sage 에서의 구현
Euclidean 알고리즘은 워낙 유명해서 구글링을 통해서 손쉽게 코드를 얻을 수 있다.
Sage 를 실행하고 SageMath 를 눌러서 코드를 작성한다.
먼저 Euclidean 알고리즘을 함수로 정의한 다음 아래의 화면처럼 재생아이콘(빨간표시부분) 을 누르면 다음 코드를 작성할 cell 이 나오게 된다.
30과 16 의 gcd(최대공약수) 를 얻기 위해 코드를 작성하고 재생 아이콘을 누르면 아래의 화면과 같이 결과가 나온다.
gcd 가 2 가 된다는 것을 확인 할 수 있다.
'컴퓨터보안' 카테고리의 다른 글
[컴퓨터보안] X.509 인증서 (0) | 2017.06.08 |
---|---|
[컴퓨터보안] MAC_Hash (0) | 2017.05.23 |
[컴퓨터보안]Key management & Other PKC (0) | 2017.04.26 |
[컴퓨터보안/암호학] 고전암호기법 종류 (0) | 2017.03.10 |
Sage 환경구축 for Windows (0) | 2017.03.06 |
Comments