RSA 암호화 컨텍스트에서 숫자의 모듈 곱셈 역함수를 계산하는 방법은 무엇입니까?RSA 암호화 컨텍스트에서 숫자의 모듈 곱셈 역함수를 계산하는 방법은 무엇입니까?
4
A
답변
3
직접 누승 잉여 다음
직접 멱승 잉여에있어서, 상기 확장 된 유클리드 알고리즘의 대안으로된다 같이
자료 : http://en.wikipedia.org/wiki/Modular_multiplicative_inverse
2
두 알고리즘을 상세히 설명있다 Modular multiplicative inverse 위키 백과 문서.
3
실제로 직접 모듈화 지수보다 훨씬 빠른 Extended Euclidean Algorithm을 사용하십시오. 당신은 DSA의 alghoritm에 대한 w
을 계산해야하는 경우
0
, 당신은이를 사용할 수 있습니다
w = s^-1 mod q
은 실제로
w = s^(q-2) mod q
참조 : 나는 간단한 역 기능을했다 http://en.wikipedia.org/wiki/Modular_multiplicative_inverse#Using_Euler.27s_theorem
0
def privateExponent(p,q,e):
totient=(p-1)*(q-1)
for k in range(1,e):
if (totient*k+1) % e==0:
return (totient*k+1)/e
return -1 # shouldnt get here
방정식 d * e = 1 (mod totient)은 d * e = 1 + k * totient (k의 일부 값)로 재 작성 될 수 있으며 프로그램은 e로 나눌 수있는 방정식을 만드는 k의 첫 번째 값을 검색합니다 (공개 지수). e가 작은 경우 (보통 권장 됨) 작동합니다.
성능 향상을 위해 모든 bignum 연산을 루프 밖으로 이동할 수 있습니다.
def privateExponent(p,q,e):
totient=(p-1)*(q-1)
t_mod_e=totient % e
k=0
total=1
while total!=0:
k+=1
total=(total+t_mod_e) % e
return (k*totient+1)/e
그것은 전자 = 3, 우리가 정말 답으로 검색하지 않아도 밝혀 항상 2 * ((P-1) * (Q-1) +1)/3
입니다관련 문제
- 1. 다항식의 역함수를 계산하는 알고리즘
- 2. Erlang 암호화 모듈 - ECDSA, RSA, SHA256 등
- 3. .Net 간단한 RSA 암호화
- 4. C# RSA 암호화 알고리즘
- 5. RSA 암호화 - 암호 해독
- 6. RSA 암호화 문제
- 7. iPhone에서의 RSA 암호화
- 8. 간단한 RSA 암호화 (자바)
- 9. 파이썬 - 숫자의 모든 n 번째 뿌리를 계산하는 방법은 무엇입니까?
- 10. 공개 및 비공개 지수로 RSA 모듈러스를 계산하는 방법은 무엇입니까?
- 11. 암호로 암호화 된 개인 키로 RSA keyPair를 생성하는 방법은 무엇입니까?
- 12. C++ 용 RSA 암호화 라이브러리
- 13. iPhone/Objective-c RSA 암호화
- 14. RSA 암호화 : Java to PHP
- 15. BlackBerry 용 BouncyCastle RSA 암호화
- 16. 포트 노킹 및 RSA 암호화
- 17. RSA 암호화 라이브러리 또는 클래스
- 18. 암호화 - 자바에서 RSA 알고리즘은 1.4
- 19. 자바 RSA 암호화 - 암호 해독
- 20. Java에서 RSA 비공개 키로 암호화
- 21. 숫자의 k 번째 표현에서 i 번째 숫자의 값을 계산하는 방법은 무엇입니까?
- 22. 역 색을 계산하는 알고리즘
- 23. WAS RSA 선택적 배포 모듈
- 24. 문자열을 암호화/해독하는 방법은 무엇입니까?
- 25. C++에서 주어진 숫자의 자릿수를 계산하는 방법
- 26. Java의 RSA 암호화 : 플랫폼 간 문제가 있습니까?
- 27. 곱셈
- 28. RSA 암호화 (RSACryptoServiceProvider)를 사용하여 암호화 된 데이터 크기
- 29. 숫자의 기준을 결정하는 방법은 무엇입니까?
- 30. 계수와 공개 지수를 사용하는 C# RSA 암호화
이 방법을 사용하려면 역순으로 그룹을 정렬해야합니다. RSA의 경우에는 대개 이것을 모른다. – abc
모듈러스가 소수라면 P-1입니다. 키 생성시 RSA 키의 경우 (P-1) * (Q-1)도 알 수 있습니다. 키 쌍이 작성되면 그룹의 순서가 개인 키를 찾는 것과 동일하므로 키 쌍을 생성하면 계수의 인수 분해가 취소됩니다. – phkahler
RSA에서 'e (mod φ (n))'의 역함을 발견 할 필요가있는 개인 키를 찾으려면이 방법을 사용하여 'φ (φ (n))'를 계산해야합니다. 'φ (n)'. 그래서 @abc가 옳다.이 방법은 사용할 수 없다. 나는 이것에 대해서조차 생각조차하지 않았다. –