* PC버전으로 보지 않으면 MathJax 플러그인이 실행되지 않아 expression이 표현되지 않습니다.
이 글은 PKC 2010 ; 13th International Conference on Practice and Theory in Public Key Cryptography 에서 발표된 Jean-Charles Faugère, Raphaël Marinier, Guénaël Renault 의 연구를 번역정리한 것이다.
RSA를 공략하기 위한 방법 중 하나는 을 소인수분해하는 것이다.
일반적으로 큰 수를 소인수분해하기는 어렵지만, 특정 조건이 맞으면 짧은 시간 내에 소인수분해를 할 수 있다.
1. Factoring 2 RSA Moduli with Shared MSBs
다음과 같이 2개의 -bit RSA moduli 이 있다고 가정하자. 는 -bit 소수이고, 는 개의 MSB (최상위 비트) 를 공유한다.
이면, 을 시간 내에 소인수분해할 수 있다.
Proof
Lemma 1에서 정의한 lattice 의 reduced basis를 구하는 데 의 시간이 걸리고, Lemma 2에서 이면 임을 증명하였다.
Lemma 1 아래의 설명을 따라 의 인수를 구할 수 있다.
Lemma 1.
행렬 을 아래와 같이 정의하고, 의 row vector를 각각 , 라고 하자.
행렬 의 row vector의 span으로 구성되는 lattice 을 가정하고, 의 벡터 을 다음과 같이 정의한다.
과 는 개의 최상위 비트를 공유하기 때문에 은 대략 bit의 정수가 된다. 가 충분히 크다면 은 의 shortest vector가 될 수 있고, 이 경우 을 로 나눠 과 를 다항 시간 () 내에 구할 수 있다.
의 Gramian matrix는 이고, 의 volume은 Gramian matrix의 행렬식으로 이다. 은 에 비해 상대적으로 작기 때문에, 으로 근사시킬 수 있다.
이 의 shortest vector라면, 이 vector의 norm 는 의 Minkowski's bound보다 작다. 따라서 아래 식이 성립한다.
위 식은 인 경우 성립한다.
Lemma 2.
Lagrange method를 통해 찾은 의 basis를 라고 하자. 이며 Hadamard's inequality에 의해 가 성립한다. 이 부등식을 풀어 아래의 두 관계를 얻을 수 있다.
만약 라면, 가 의 local minimum이기 때문에 다음 식이 성립한다.
는 소수이기 때문에 이 되고, 따라서 이다. 이를 다시 위의 부등호에 대입하면 아래의 결과가 나온다.
이제 의 upper bound와 의 lower bound를 구해 의 범위를 구할 것이다.
이므로, 의 정의에 의해 이다. 와 를 풀어주면 아래의 bound를 얻는다.
는 과 를 이용해서 아래의 boundary를 찾을 수 있다.
부등식 (2)와 (3)에서, (1)이 성립하기 위한 의 범위는 다음과 같다.
한편 과 의 범위를 더 tight하게 구해서 의 범위를 확장시킬 수 있다.
는 -bit 소수이므로 이다. 로 을 정의한다. 이며, 의 정의를 사용해서 의 upper bound를 구할 수 있다.
의 성질을 사용해 아래 부등식을 만들 수 있다.
을 와 로 풀어서 쓴 식에 (5), (6)의 부등식을 대입해서 다음과 같이 boundary를 설정할 수 있다.
를 만족하는 를 정의한다. 이고 이므로 의 lower bound는 다음과 같이 표현된다.
(7)과 (8)의 부등식으로 (1)이 성립하기 위한 의 범위를 좁힐 수 있다. 를 풀면 이 된다.
, 이고 이므로, 이고 이 된다.
Reference
https://hal.archives-ouvertes.fr/hal-01288914/document
https://en.wikipedia.org/wiki/Minkowski%27s_theorem
https://en.wikipedia.org/wiki/Minkowski%27s_bound
https://en.wikipedia.org/wiki/Hadamard%27s_inequality