아벨 군
및
및 집합의 분할
에 대하여, 함수
와
를 다음과 같이 정의하자.



(대략, 이는 만약
이라면
이도록 정의한 것이다.)
이제, 임의의 유한군
에 대하여, 적절한
의 분할
를 잡자. 이는 크기가 대략 같은 세 집합으로 구성되어야 하며, 임의의 군 원소가 어떤 집합에 속하는지 쉽게 알 수 있어야 한다. 보통 다음과 같은 분할
를 사용한다.
를 나타내는 비트 문자열을 이진법 전개로 하는 정수를 3으로 나눈 나머지가
라면,
이다.
만을 고려하는 경우, 다음과 같은 분할을 사용할 수 있다.
- 만약
이라면,
의 합동류는
에 속한다.
폴라드 보행과 소박한(naive) 순환 탐지 알고리즘을 사용하는 폴라드 로 이산 로그 알고리즘는 크기가
인 순환군
와 그 생성 원소
와 임의의 원소
가 주어졌을 때, 이산 로그
을 다음과 같이 계산한다.
- 다음을 반복한다.
- 무작위 원소
을 고르고,
으로 놓는다.
에 대하여,
,
,
로 놓는다.
- 만약
인
가 존재한다면, 다음 단계로 넘어간다.
- 만약
가
의 가역원이라면
을 반환한다.
반복 함수의 개선
임의의 아벨 군
및
및
및 양의 정수
및 함수
에 대하여, 함수
와
를 다음과 같이 정의하자.



(그렇다면, 만약
라면
이다.)
이 경우, 임의의
에 대하여, 열
을 테스케 r-더하기 보행(영어: Teske’s r-adding walk)이라고 한다.
이제, 임의의 유한군
및 양의 정수
에 대하여, 적절한 해시 함수
를 잡자. 보통, 다음과 같이 정의한다.
는
를 나타내는 비트 문자열을 이진법 전개로 하는 정수를
로 나눈 나머지이다.
이제, 적절한 양의 정수
를 잡자. 만약
가 너무 작다면, 이는 무작위성을 잘 모의하지 못한다. 폴라드가 사용한 보행은
에 해당하며, 이는 너무 작다. 경험적으로
이 잘 작동한다.
테스케 r-더하기 보행과 소박한 순환 탐지 알고리즘을 사용하는 폴라드 로 이산 로그 알고리즘은 크기가
인 순환군
와 그 생성 원소
와 임의의 원소
가 주어졌을 때, 이산 로그
을 다음과 같이 계산한다.
- 다음을 반복한다.
- 무작위 원소
을 고르고, 각
에 대하여
로 놓는다.
- 무작위 원소
을 고르고,
으로 놓는다.
에 대하여,
,
,
로 놓는다.
- 만약
인
가 존재한다면, 다음 단계로 넘어간다.
- 만약
가
의 가역원이라면
을 반환한다.
순환 탐지 알고리즘의 개선
플로이드 순환 탐지 알고리즘
테스케 r-더하기 보행과 플로이드 순환 탐지 알고리즘을 사용하는 폴라드 로 이산 로그 알고리즘은 크기가
인 순환군
와 그 생성 원소
와 임의의 원소
가 주어졌을 때, 이산 로그
을 다음과 같이 계산한다.
- 다음을 반복한다.
- 무작위 원소
을 고르고, 각
에 대하여
로 놓는다.
- 무작위 원소
을 고르고,
,
,
,
로 놓는다.
- 다음을 반복한다.
,
,
로 놓는다.
,
,
로 놓는다.
,
,
로 놓는다.
- 만약
라면, 다음 단계로 넘어간다.
- 만약
가
의 가역원이라면
을 반환한다.
구별점 방법
크기가
인 임의의 유한군
및 함수
및 양의 정수
에 대하여, 적절한 함수
를 잡자. 이는 흔히 다음과 같이 정의한다.
- 만약
의
개 최하위 비트가 모두 0이라면,
이다.
이 경우,
의 원소를 구별점(영어: distinguished point)이라고 부른다.
이제, 적절한 함수
를 잡자. 예를 들어,

으로 놓을 수 있다. 여기서
는 적절한 양의 실수(예를 들어,
)이다.
가 클수록 기대 시간은 줄고 기대 공간은 는다.
테스케 r-더하기 보행과 구별점 방법을 사용하는 폴라드 로 이산 로그 알고리즘은 크기가
인 순환군
와 그 생성 원소
와 임의의 원소
가 주어졌을 때, 이산 로그
을 다음과 같이 계산한다.
- 다음을 반복한다.
- 무작위 함수
을 고른다.
,
으로 놓는다.
- 다음을 반복한다.
- 만약
이라면, 이 순환을 빠져나온다.
- 만약
라면,
,
으로 놓는다.
로 놓는다.
- 무작위 원소
을 고르고, 각
에 대하여
로 놓는다.
- 무작위 원소
을 고르고,
으로 놓는다.
으로 놓는다.
에 대하여,
,
,
로 놓는다.
- 만약
이라면,
- 만약
인
가 존재한다면,
- 만약
가
의 가역원이라면,
을 반환한다.
- 만약
가
의 가역원이 아니라면, 이 순환(“7.
에 대하여”)를 빠져나온다.
- 만약
인
가 존재하지 않는다면,
로 놓는다.