Givaro
Public Member Functions | Protected Attributes
IntRSADom< MyRandIter > Class Template Reference

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 Elementgetn () const
 Accesses.
 
std::ostream & encipher (std::ostream &, std::istream &) const
 Text conversions.
 
Elementstrong_prime (random_generator &g, int64_t psize, Element &p) const
 Strong Primes. More...
 
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. More...
 
int64_t log (const Element &n, const int64_t=10) const
 log[10]
 
std::ostream & ecriture_str (std::ostream &, const Element &) const
 Text conversions.
 
Elementpoint_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.
 
RepErathostene (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, std::string F) const
 Read field. More...
 
std::istream & read (std::istream &is) const
 Read field. More...
 
Arithmetic Operations

The first argument is set and is also the return value.

Elementmul (Element &x, const Element &y, const Element &z) const
 x := y*z
 
Elementdiv (Element &x, const Element &y, const Element &z) const
 x := y/z
 
Elementmod (Element &x, const Element &y, const Element &z) const
 x := y mod z
 
Elementadd (Element &x, const Element &y, const Element &z) const
 x := y + z
 
Elementsub (Element &x, const Element &y, const Element &z) const
 x := y - z
 
Elementaxpy (Element &z, const Element &a, const Element &x, const Element &y) const
 z := a*x + y
 
Elementmaxpy (Element &z, const Element &a, const Element &x, const Element &y) const
 z := y - a*x
 
Elementmaxpyin (Element &z, const Element &a, const Element &x) const
 z := z - a*x
 
Elementaxmy (Element &z, const Element &a, const Element &x, const Element &y) const
 z := a*x - y
 
Elementaxpyin (Element &z, const Element &a, const Element &x) const
 z := a*x + z
 
Elementaxmyin (Element &z, const Element &a, const Element &x) const
 z := a*x - z
 
Elementneg (Element &x, const Element &y) const
 x := -y
 
Elementinv (Element &x, const Element &y) const
 x := 1/y
 
Inplace Arithmetic Operations

The first argument is modified and the result is the return value.

Elementmulin (Element &x, const Element &y) const
 x := x*y
 
Elementdivin (Element &x, const Element &y) const
 x := x/y
 
Elementmodin (Element &x, const Element &y) const
 x := x mod y
 
Elementaddin (Element &x, const Element &y) const
 x := x + y
 
Elementsubin (Element &x, const Element &y) const
 x := x - y
 
Elementnegin (Element &x) const
 x := -x
 
Elementinvin (Element &x) const
 x := 1/x
 
Comparison Predicates
bool areEqual (const Element &x, const Element &y) const
 x == y
 

Protected Attributes

bool _fast_impl
 Fast implementation. More...
 

Detailed Description

template<class MyRandIter = GivRandom>
class Givaro::IntRSADom< MyRandIter >

RSA domain.

Member Function Documentation

◆ strong_prime()

IntRSADom< MyRandIter >::Element & strong_prime ( random_generator &  g,
int64_t  psize,
Element p 
) const

Strong Primes.

Bibliography:
  • J. Gordon, Strong Primes Are Easy to Find, EUROCRYPT'84, LNCS 209.

◆ keys_gen()

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)

◆ write()

std::ostream& write ( std::ostream &  os,
std::string  F 
) const
inlineinherited

Read field.

Returns
input stream from which field is read.
Parameters
isinput stream from which field is read.

◆ read()

std::istream& read ( std::istream &  is) const
inlineinherited

Read field.

Returns
input stream from which field is read.
Parameters
isinput stream from which field is read.

Field Documentation

◆ _fast_impl

bool _fast_impl
protected

Fast implementation.

Means simple enciphering key, and deciphering via chinese remaindering.

Warning
this means less security !

The documentation for this class was generated from the following files: