IT/Homework 썸네일형 리스트형 [대학원 과제] Extended Euclidean Algorithm(확장 유클리드 호제법)을 이용한 모듈러 역원 구하기 with Java 앞의 포스팅에 앞서서 확장 유클리드 호제법을 이용한 모듈러 역원 구하는 방법을 코드화하였습니다. 해당 방법을 코드화 하여 구현하였으며 과제로 나온 문제 예시는 다음과 같습니다. 이를 Java로 코드화하였을 때, 결과가 올바르게 나온 것을 확인할 수 있습니다. 코드는 아래 Repository에 담아 두었습니다. https://github.com/ahrizwell/myRepository/blob/java/extendedEuclideanInverse.java ahrizwell/myRepository Everything I did. Contribute to ahrizwell/myRepository development by creating an account on GitHub. github.com 물론 연산속도.. 더보기 [대학원 과제] 모듈러(Modulo, %)의 역원 구하는 프로그램 with Java 이번에는 모듈러의 역원을 구하는 문제가 과제로 나왔습니다. 원래 모듈로의 역원을 구하기 위해서는 1) 유클리드 호제법, 그리고 이를 확장한 2) Extended 유클리드 호제법, 그 후 3) Multiplicative Inverse 를 배우고 구하는 방식을 권고(?)하고 있습니다. 하지만 생각해보니 단순히 모듈러의 역원을 구하는 것이라면, 위 방식을 응용한 방법을 사용하는 것이 좋다고 생각하여 알고리즘들을 찾아보았습니다. 원래 네트워크 암호학 배울 때 다 그렇지만 시험기간이 다가올수록 꼼수(?)를 사용하여 한방에 구할 수 있는 공식 혹은 알고리즘을 만들어 시험장에 가는게 정석(?)이기 때문이죠. 참고로, 구하는 속도 측면에서는 확장된 유클리드 호제법을 이용한 Multiplicative Inverse를 이.. 더보기 [대학원과제]Finite Field Program with Java Finite Field에서 p(x)(Primitive Polynomial)의 계수와 차수가 주어지면 Finite Field의 원소를 벡터의 형태로 출력하는 프로그램입니다. 간단하게 예를 들자면 p(x) = x^3 + x + 1이 주어지면 차수는 3이 되고 계수는 1 0 1 1이 입력됩니다. 그렇게 되면 결과 값으로, 0 = 000 / 1 = 100 / a = 010 / a^2 = 001 / a^3 = 110 / a^4 = 011 / a^5 = 111 / a^6 = 101 이 출력되게 됩니다. 즉, 사용자가 3과 1 0 1 1 을 입력하면 해당 Finite Field의 원소를 벡터의 형태로 출력하게 되어있습니다. 더불어 2번문제 Multiplicative Representation과 3번문제 Additiv.. 더보기 이전 1 다음