본문 바로가기

multiplicative

[대학원 과제] 모듈러(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.. 더보기