📄 test.cpp
字号:
///////////////////////////////////////////////////////////////////////////////
//
// Test de mini_rsa
//
// Hadrien Flammang - dec 2008
///////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include "mini_rsa.h"
using namespace std ;
// ici, pas de using namespace mini_rsa" pour mieux identifier les types et fonctions
// Cette fonction teste le chiffrement/d閏hiffrement avec une clef sur 'nb_bit' bits.
// 1 - Une bi-clef (paire clef publique + clef priv閑) est g閚閞閑 sur 'nb_bit' bits.
// 2 - Une donn閑 al閍toire est g閚閞閑 (sur 'nb_bit' - 1 bits)
// 3 - Elle est chiffr閑 avec la clef priv閑 et d閏hiffr閑 avec la clef publique.
// 4 - Elle est chiffr閑 avec la clef publique et d閏hiffr閑 avec la clef priv閑.
// 5 - On v閞ifie que dans les 2 cas, la donn閑 d閏hiffr閑 est correcte.
static bool test_encrypt_decrypt ( int nb_bit )
{
mini_rsa::big_int pub,pri,mod ;
// g閚閞ation de la bi-clef
mini_rsa::compute_keys( nb_bit,&pub,&pri,&mod ) ;
// g閚閞ation d'une donn閑 al閍toire
mini_rsa::big_int v = mini_rsa::random( nb_bit-1 ) ;
// chiffrement avec la clef priv閑
mini_rsa::big_int w = mini_rsa::encrypt( pri,mod,v ) ;
// d閏hiffrement avec la clef publique
mini_rsa::big_int x = mini_rsa::encrypt( pub,mod,w ) ;
// chiffrement avec la clef publique
mini_rsa::big_int y = mini_rsa::encrypt( pub,mod,x ) ;
// d閏hiffrement avec la clef priv閑
mini_rsa::big_int z = mini_rsa::encrypt( pri,mod,y ) ;
// v閞ifications
return( (v == x) && (v == z) ) ;
}
///////////////////////////////////////////////////////////////////////////////
// le nb d'iterations d閜end du nombre de bits
static int nb_loop ( int nb_bit )
{
return( nb_bit*nb_bit*nb_bit*nb_bit*nb_bit/1000 ) ;
}
void main ()
{
int tot,n,nb_bit ;
// calcul du nb total d'iteration qu'on aurra
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -