|
Givaro 4.2.1
|
RSA domain. More...
#include <givintrsa.h>
Inheritance diagram for IntRSADom< MyRandIter >:
Collaboration diagram for IntRSADom< MyRandIter >:Public Member Functions | |
| IntRSADom (bool fi=false, MyRandIter g=MyRandIter()) | |
| Constructors. | |
| const Element & | getn () const |
| Accesses. | |
| std::ostream & | encipher (std::ostream &, std::istream &) const |
| Text conversions. | |
| Element & | strong_prime (random_generator &g, int64_t psize, Element &p) const |
| Strong Primes. | |
| void | keys_gen (random_generator &g, int64_t psize, int64_t qsize, Element &n, Element &e, Element &d, Element &p, Element &q) const |
| Key gen. | |
| int64_t | log (const Element &n, const int64_t=10) const |
| log[10] | |
| std::ostream & | ecriture_str (std::ostream &, const Element &) const |
| Text conversions. | |
| Element & | point_break (Element &u) |
| Breaking codes : finding u knowing only m an k ... | |
| bool | set (Container1 &setint, Container2 &setpwd, const Rep &a, unsigned long loops=0) const |
| Factors with primes. | |
| Rep & | Erathostene (Rep &, const Rep &p) const |
| returns a small factor | |
| bool | isUnit (const Rep &x) const |
| isUnit | |
| bool | isDivisor (const Element &a, const Element &b) const |
| isDivisor (a, b) Test if b | a. | |
Input/Output Operations | |
| std::ostream & | write (std::ostream &os, const Element &x) const |
| Print field element. | |
| std::istream & | read (std::istream &is) const |
| Read field. | |
| virtual std::istream & | read (std::istream &is, Element &x) const |
| Read field element. | |
Arithmetic Operations | |
The first argument is set and is also the return value. | |
| Element & | mul (Element &x, const Element &y, const Element &z) const |
| x := y*z | |
| Element & | div (Element &x, const Element &y, const Element &z) const |
| x := y/z | |
| Element & | div (Element &x, const Element &y, const Element &z) const |
| x := y/z | |
| Element & | mod (Element &x, const Element &y, const Element &z) const |
| x := y mod z | |
| Element & | mod (Element &x, const Element &y, const Element &z) const |
| x := y mod z | |
| Element & | add (Element &x, const Element &y, const Element &z) const |
| x := y + z | |
| Element & | sub (Element &x, const Element &y, const Element &z) const |
| x := y - z | |
| Element & | axpy (Element &z, const Element &a, const Element &x, const Element &y) const |
| z := a*x + y | |
| Element & | maxpy (Element &z, const Element &a, const Element &x, const Element &y) const |
| z := y - a*x | |
| Element & | maxpyin (Element &z, const Element &a, const Element &x) const |
| z := z - a*x | |
| Element & | axmy (Element &z, const Element &a, const Element &x, const Element &y) const |
| z := a*x - y | |
| Element & | axpyin (Element &z, const Element &a, const Element &x) const |
| z := a*x + z | |
| Element & | axmyin (Element &z, const Element &a, const Element &x) const |
| z := a*x - z | |
| Element & | neg (Element &x, const Element &y) const |
| x := -y | |
| Element & | inv (Element &x, const Element &y) const |
| x := 1/y | |
| Element & | inv (Element &x, const Element &y) const |
| x := 1/y | |
Inplace Arithmetic Operations | |
The first argument is modified and the result is the return value. | |
| Element & | mulin (Element &x, const Element &y) const |
| x := x*y | |
| Element & | divin (Element &x, const Element &y) const |
| x := x/y | |
| Element & | divin (Element &x, const Element &y) const |
| x := x/y | |
| Element & | modin (Element &x, const Element &y) const |
| x := x mod y | |
| Element & | modin (Element &x, const Element &y) const |
| x := x mod y | |
| Element & | addin (Element &x, const Element &y) const |
| x := x + y | |
| Element & | subin (Element &x, const Element &y) const |
| x := x - y | |
| Element & | negin (Element &x) const |
| x := -x | |
| Element & | invin (Element &x) const |
| x := 1/x | |
Comparison Predicates | |
| bool | areEqual (const Element &x, const Element &y) const |
| x == y | |
Data Object Management. | |
first argument is set and the value is also returned. | |
Protected Attributes | |
| bool | _fast_impl |
| Fast implementation. | |
RSA domain.
| IntRSADom< MyRandIter >::Element & strong_prime | ( | random_generator & | g, |
| int64_t | psize, | ||
| Element & | p ) const |
Strong Primes.
| void keys_gen | ( | random_generator & | g, |
| int64_t | psize, | ||
| int64_t | qsize, | ||
| Element & | n, | ||
| Element & | e, | ||
| Element & | d, | ||
| Element & | p, | ||
| Element & | q ) const |
Key gen.
Here m = p*q p and q are prime numbers of respective sizes psize, qsize Moreover p-1 and q-1 have one prime factor of respective size 2/3 since k.u = 1 mod (p-1)(q-1)
|
inlineinherited |
Read field.
| is | input stream from which field is read. |
|
inlineinherited |
Print field element.
| os | output stream to which field element is written. |
| x | field element. |
|
inlineinherited |
Read field.
| is | input stream from which field is read. |
|
inlinevirtualinherited |
Read field element.
| is | input stream from which field element is read. |
| x | field element. |
|
protected |
Fast implementation.
Means simple enciphering key, and deciphering via chinese remaindering.