RSA에 대한 일반적인 공격 중 하나는 알고리즘을 완전히 무시합니다. 컴퓨터는 유클리드 알고리즘을 사용하여 두 숫자의 가장 큰 공통 제수를 신속하게 계산할 수 있으므로 공격자는 두 개의 공개 키에서 이 알고리즘을 실행할 수 있습니다. 가장 큰 공통 제수가 1이 아닌 경우 공격자는 두 키를 나누는 소수를 발견하여 동시에 두 키를 끊습니다. 예를 들어 두 개의 공개 키가 239149 및 166381이라고 가정합니다. 이 두 숫자 중 하나를 손으로 팩터링하는 것은 어렵지만 유클리드 알고리즘은 수작업으로 수행 할 수 있으며 두 숫자가 379의 가장 큰 공통 제수를 가지고 있음을 알 수 있습니다. RSA 알고리즘은 공개 키 암호화 및 디지털 서명모두에 사용할 수 있습니다. 보안은 큰 정수를 팩터링하는 데 어려움을 기반으로 합니다. 암호화에 대한 출력은 사용되는 임의의 패딩으로 인해 매번 다를 수 있습니다(또는 사용해야 합니다!). 원래 RSA 종이에서,[2]오일러 토티언 트런트 함수 φ(n) = (p − 1)(q −1)은 전용 지수 d를 계산하기 위한 λ(n) 대신에 사용된다. φ(n)은 항상 λ(n)로 나눌 수 있기 때문에 알고리즘도 작동합니다. 오일러 토티언트 함수가 사용될 수 있다는 것은 또한 정수 조절pq의 곱셈 그룹에 적용된 라그랑주 정리의 결과로 볼 수 있다. 따라서 임의의 d 만족 d-에 -1 (모드 φ(n)))도 d를 만족시켜 1 (모드 λ(n))) 그러나 컴퓨팅 d modulo φ(n)는 때때로 필요한 것보다 큰 결과를 생성합니다(즉, d > λ(n))). RSA의 구현의 대부분은 두 방법 중 하나를 사용하여 생성 된 지수를 받아 들일 것입니다 (그들은 아래에 설명 된 중국어 나머지 정리에 따라 최적화 된 암호 해독 방법을 사용하는 대신, 전혀 개인 지수 d를 사용하는 경우), 하지만 FIPS와 같은 몇 가지 표준 도 186-4는 그 d <λ(n)를 요구할 수 있다.

기준을 충족하지 않는 “대형” 개인 지수는 더 작은 동등한 지수를 얻기 위해 항상 조절λ(n)를 줄일 수 있습니다. 이번에는 간단한 시저 대체 코드를 해독할 수 있는 사람들의 삶을 약간 덜 쉽게 만들기 위해 문자를 3블록으로 그룹화하고 각 블록에 대한 메시지 대표 정수를 계산합니다. 이 방법은 어떤 식으로든 안전하지 않습니다. 그것은 단지 작은 숫자와 RSA의 메커니즘의 또 다른 예를 보여줍니다. BigInteger.js를 사용하는 자바 스크립트의 작업 예제입니다. 이 코드는 프로덕션 환경에서 사용할 수 없습니다.[21]이 예제는 매우 안전하지 않은 암호화 방법이며 실제로 사용해서는 안 됩니다. 우리는 쉽게 계수를 고려하여 암호를 깰 수 있습니다. 공개 키는 계수 n과 퍼블릭(또는 암호화) 지수 e로 구성됩니다. 개인 키는 비밀로 유지되어야 하는 개인(또는 암호 해독) 지수 d로 구성됩니다. p, q 및 λ(n)도 d를 계산하는 데 사용할 수 있으므로 비밀로 유지해야 합니다. 실제로 d를 계산한 후에 모두 폐기할 수 있습니다.[15]† e=3이 이 예의 이전 버전에서 작동하지 않았다는 점을 지적한 “닥터제이”에 감사드립니다.