나는 그룹 이론에 깊이 빠져 들었고, 나는 암호화 클래스에 대해 약간 분실되었다. 기본적으로 실제 내가정수 내의 그룹 순서에 관한 암호 이론의 그룹 이론 Z * p
이것은에서의 순서를 반환해야합니다 (모든 A, 소수, P-1의 요소 목록), 자바에
순서를 구현해야 그룹 Z * p, 여기서 f는 p-1의 소수 요소 목록입니다. f가 중복을 포함 할 때 당신의 방법이 작동하는지 확인하십시오. 예를 들어, p는 = 17 여기
내가 지금까지 (내 노트 내에서 단계에서 촬영) 한 어떤 경우
public static BigInteger order(BigInteger p, List<BigInteger> f, BigInteger a){ //Algorithm starts like this //Start by setting t equal to p-1 i.e t= p1 p2...pn BigInteger t = p.subtract(BigInteger.ONE); for(BigInteger pi : f){ //test if a^t1 = 1 mod p where t1 = t/pi BigInteger t1 = t.divide(pi); if(Practical5ExponentiationModMSquareAndMultiply.expm(p, a, t1).equals(BigInteger.ONE)){ t = t1; System.out.println("t after mod = "+t); System.out.println("pi after mod = "+pi); } } return t; }
가 주요 요인 (F)의 목록이 다른 방법에 의해 생성 된 후 전달을 고려 in
내가 가지고있는 메모는 이해하기가 어렵고 어떤 것이 실제로 돌아와야 하는지를 말할 수 있는지 궁금해하고 있습니다. 그것은 당신이 가장 적은 수의
o
등이a^o == 1 (mod p)
, 즉p
이a^o - 1
을 나누는 작은o
같은 것을 찾고있는
이 대답을 건네지 만,이 알고리즘에서 어떻게하면 p가 소수인지'Z * p'의 요소 인 생성기 알파를 찾는 것일까 요? 그래서 우리는'euler (p) = p-1'을 알기 때문에, 'ord (alpha) = p-1'이면 aplha는 생성자입니다. – molleman
순환 그룹의 생성자는 그룹의 크기와 같은 차수를 갖는 원소입니다. 당신은 순서 p-1을 찾아야합니다. 그들 중 상당수가 있음을 주목하십시오. 따라서 길 찾기가 오래 걸리지 않습니다. –
따라서 간단한 루프만으로 충분합니다. 루프를 찾으면 바로 루프를 탈출하십시오. –