#11565: RSA Cryptosystem
----------------------------+-----------------------------------------------
Reporter: ajeeshr | Owner: mvngu
Type: enhancement | Status: new
Priority: major | Milestone: sage-4.7.1
Component: cryptography | Keywords: RSA, crypto, public key
encryption
Work_issues: | Upstream: N/A
Reviewer: | Author: Ajeesh Ravindran
Merged: | Dependencies:
----------------------------+-----------------------------------------------
Comment(by nbruin):
Just a few quick observations:
- What is the intended use of the code one included in Sage? If it's for
teaching you would probably want to expose more of the details. In fact,
for educational purposes it's probably better to do the whole construction
"in the open" instead of wrapping it in a class, unless the educational
part is wrapping things in classes. For actual cryptographic use, one
would probably prefer a whole protocol library. The algorithm is a very
small part of deploying cryptography in a secure manner.
- In your code you call {{{euler_phi(n)}}} to compute the private key d
from e. Since the public key is (n,e), anyone could do that same
calculation. That means that if it is doable for you to compute the
private part of the key, then it is also doable for anyone. You don't have
an advantage. (HINT: the key is that euler_phi computes the factorisation
of n. If you would make sure that 2**p-1 and 2**q-1 are actually prime,
you would know the factorization of n and hence euler_phi(n). But you
should not call euler_phi(n), because that throws away your advantage).
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/11565#comment:5>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.