Core Concepts
낮은 엔트로피로 인해 일부 RSA 키가 공통 소인수를 공유하는 경우, 모든-대-모든 GCD 연산을 통해 이를 효율적으로 찾아낼 수 있는 새로운 알고리즘이 제안되었다.
Abstract
이 연구에서는 기존의 모든-대-모든 GCD 알고리즘보다 효율적인 새로운 알고리즘인 이진 트리 배치 GCD 알고리즘을 제안한다. 이 알고리즘은 RSA 공개 키 모듈러스 집합에서 공유된 소인수를 찾는 데 사용될 수 있다.
알고리즘의 핵심 아이디어는 GCD 연산의 특성을 활용하는 것이다. 즉, 입력 정수 집합을 반으로 나누어 GCD를 계산하고, 이를 재귀적으로 반복하여 모든 쌍의 GCD를 찾는다. 이렇게 얻은 GCD 결과의 곱은 모든 공통 인수의 곱이 된다. 마지막으로 각 정수와 이 곱을 다시 GCD 연산하여 공유된 인수를 찾아낸다.
제안된 이진 트리 배치 GCD 알고리즘은 기존의 나머지 트리 배치 GCD 알고리즘보다 실행 시간이 더 빠르다. 이는 나머지 트리 계산 단계가 필요 없기 때문이다. 다만 비대칭적으로 공유된 소인수가 많은 경우 성능 차이가 줄어든다.
실험 결과, 제안된 알고리즘은 기존 알고리즘에 비해 약 6배 더 빠른 것으로 나타났다. 이는 Python 구현 수준에서의 측정 결과이며, 최적화된 구현을 통해 더 큰 성능 향상을 기대할 수 있다.
Stats
RSA 모듈러스 집합의 크기가 증가할수록 제안된 이진 트리 배치 GCD 알고리즘의 계산 시간이 기존 나머지 트리 배치 GCD 알고리즘보다 약 6배 더 빠르다.
Quotes
"낮은 엔트로피로 인해 일부 RSA 키가 공통 소인수를 공유하는 경우, 모든-대-모든 GCD 연산을 통해 이를 효율적으로 찾아낼 수 있다."
"제안된 이진 트리 배치 GCD 알고리즘은 기존의 나머지 트리 배치 GCD 알고리즘보다 실행 시간이 더 빠르다."