From 7975d02c6c1ee679a236087e86955c086f1a9a8e Mon Sep 17 00:00:00 2001 From: Ummon Date: Mon, 15 Dec 2014 13:35:31 +0100 Subject: [PATCH] First commit. --- .gitignore | 27 ++++++++++++++++++++ icr14_lab_03.pdf | Bin 0 -> 154135 bytes rapport/main.tex | 40 +++++++++++++++++++++++++++++ src/Rand.cpp | 65 +++++++++++++++++++++++++++++++++++++++++++++++ src/Rand.h | 36 ++++++++++++++++++++++++++ src/Rsa.cpp | 47 ++++++++++++++++++++++++++++++++++ src/Rsa.h | 27 ++++++++++++++++++++ src/RsaCrt.cpp | 1 + src/RsaCrt.h | 20 +++++++++++++++ src/Utils.cpp | 24 +++++++++++++++++ src/Utils.h | 29 +++++++++++++++++++++ src/lab3.qbs | 27 ++++++++++++++++++++ src/main.cpp | 40 +++++++++++++++++++++++++++++ 13 files changed, 383 insertions(+) create mode 100644 .gitignore create mode 100644 icr14_lab_03.pdf create mode 100644 rapport/main.tex create mode 100644 src/Rand.cpp create mode 100644 src/Rand.h create mode 100644 src/Rsa.cpp create mode 100644 src/Rsa.h create mode 100644 src/RsaCrt.cpp create mode 100644 src/RsaCrt.h create mode 100644 src/Utils.cpp create mode 100644 src/Utils.h create mode 100644 src/lab3.qbs create mode 100644 src/main.cpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bc14d9e --- /dev/null +++ b/.gitignore @@ -0,0 +1,27 @@ +lab3-build/ +*.aux +*.log +*.[oa] +moc_*.cpp +*.moc +*.pb.cc +*.pb.h +*.pb.cpp +*.user +*.user.* +*.session +*.Release +*.Debug +*.exe +*.qm +*.dll +Makefile* +output/ +Installations/ +.tmp/ +/doc/doxygen/html +qrc_*.cpp +TODO +*.session +*.DS_STORE +Thumbs.db diff --git a/icr14_lab_03.pdf b/icr14_lab_03.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5dd5a2a76eb70858d367a4339aa757a663907ed6 GIT binary patch literal 154135 zcma&N1C%B~(kS}1Ic?jvd)l^b+t##g+qP}n_Oy*@8+Uf^{_oy*cHem$c}|_Ih^)-0 zsL05uj7U;>VNqH}I#y`XxuxMXXeM?71_C=nO9F0gXnJWATQg^K0!Bu5R)T*5G`*;W zwX=yM0llcTfwPIQiIJVL2{bP+w3D-=iGdBY`$n>=hTQ=hg3oiU{5(38IwQABmrE?k zm?2D2xj*m~8jMJRjf=@VwF1X9@e_(4bbSD4-J9nx|HqT{4-lrQDGlQ*NJfT%ofNfA-=@vh4& z`Q?`C${DMV6ci%1LABmDg*>7*8abU3OwyziDK51#b(w51nY3;hcSJ3%Wj(R2IEUuy z4IkK2x85EZLeVwd!ocMt&tU=qtokt21p8s)a*}ajyyf@hR#ZyIVkUA2CKoa7WZlN3 z`{Uv191;AfbM%*K)5UdLPs6o-N`S0H&=kjU%DwnuLJ||d2fGUv^Vr>*wf&S~=c3O+ z$Hs*p{90a-v%Yno-UMpeSXcOC4H!&9>g`@wGpIWra*kJ(gNj;rYKNSnx@E7|O{9TQ zNVo0BZ=Q1=T)X4b^u;Lg7=Dh~O+p0?>k^Q+S*cW@m?uVqdQNmt*>I#^E50E65kg^R z-VQ_!hG;hLCEn(lP);DZ+l!nR6(ro~jnEPc+Vc7llWz{@)yv(p_H(>;%<8k+`OpQD zc{tk1S^nF^qhyCD^iB|3F?D+d^E&Tw9EZ*z7LZhXzp2PGhGT73J=!-OV#@ktd>?|O zn16h=osWvynLLcHynu`XZN0Fa&9{``2PRHv&6q+t?*Us4FmXWo!;XY}&MGUQ6CO(m z6`Y$C2>yN<%$V=@`{yCAGdWfxCXI~j|?Jx+^?13=s~4BJ-) zr;ljFSq+|UOy#{}EpBw*dain|snI$5Pfy0CezsVRY7CtOhE(A{s|({Tnqce)abxr` zh#|o$8)0RSHEi#S;+i(s44T+o6r9$b-2l8TELS5vWY;2Tod00;)mS2S~Hxu2A(I)l^E& z#bZOle0$ry!$Us!%qb+H73e@7&6i5%^>_(!z6bXIJlUhcq$9dq$^*fau@YH)L8GBH zI+5DR-edH_Ooxd;dK>TtB$C$_ap?$sKHA`hsWoTw)gSlz1JBy@rvTwsAm$+6tuAGP zGrn4sZrZ%f#d*5HMK~J}*U=2Y(?|Ny!nK42IwSz)MDqKvc`K0ybXvop`34PyEC)po z*f7}Y{1`yt6COxH<&yk-_&mzUiha%Mb?dll%^OqU#{CH6(XfZ2m45#LImQ!b+gfS8 z_N0Sv*6iR0*?3|b6=?>tnQuApu$$3p@p)zVz#YjRxZW!-koz?uN2J+sM#0*H7bo)( zDzLY6lIrag1M80RW@Ub3bn3LRvKB$gQX;EnRMtmU*Us*rXMd(;lWTGM&TkcH@f@}{ zf6MBO6RL5gxz}brk&n8v%NWMnx;dD4;R*+m;anSvk7gbC2U1oNd<*4<5C+BGqahgf z7v2|0pkntSw27_pzbw?>+F$Di&BXkFnK@+-dlLeBbvZ*z6C-D6dLpdT|pAGjnGGMot!JdO-_kCwUV`Av+s;J6jW5X9AA@$6&H?{-c4A zowc2#lD&b^-_C_iTrG@D6vYJpj|CMLQvNsl`MvhN3qX(*l@J900RaF&e+%Gy6A%P| z0tZJzLO?}9LPA49K}AJH`3rw9@F;(A|0pOZ=-6a<=$OQq=qUK~1jOW&G&D4*c+9K} zRIFswG?YM4(9m$Oa9Hs0STr~|B!7vNlr;Y+e=GmI{uA*J>Z@C@2UdFfhnJ zUkDfx1e6eo5lleA036xDpNJ_wAEo~Wf>=<|uzr5e@s>HjDWQSn@57it0FeJz&wqyk z1_1^8OQJvo0RIIbP+%aie~kz;{G0C$0PNpE|56YEe1H+g zqC%Uharuqz?$No}aUJz-ffsvDeYs_s#%-y>{iz4NY;;{# z`3AuHWZ0GCBTEU%30^6RxnrC*IzY@_R2;SsB}m_I!#*xkTacF#7|GZxh(@{)(D!70D(Nt=njq2d$5YjpIov^D>T{@asP-KhZ zB3iXduuV)Y$gsqXlS{T)HY?=_$u^7il{(hp-d%oOICEXj8&cp42&hJMRhtG>T4%>Z zgepnfi!K-Bu}lJO zxs`|s;^ul_zEeZ9O%ZAFUNDR9KB}p*r(xo*Bzan-sy>|`=PwFoiq52Rb#Cm>L0uB# zFICW5RX#WU%x2^bUz{U8iPpQWN29;ZB&ljyO(c!<|vy2{o&LbfVC(^rY;C_M}CHAw#j)iwaUm zYAj3hOhOS2SlPB;30874M>1bvR-~X_ps=IWRxJwjCMEUbj9`|)I0g*_#sFbUNYcs) zD^Y^nG>x$YRa2_ZUZqm^Ykp!=&R(>bFgfbxl@H`eo)4`wBey2Bvfpi5b-isU>o7Pk znKsX>9UQ2s<^K`T*$xK$+?l7GPKxSDcj{k;mQm>f$(5ZfVx?Uvoe~k+%>QQj=jI0& zhn%4PtgU3veila9<3PSVkYV ?qzR0c-EB}sq;rV6%=E*z?oBw6IDWq1=4v&KM; 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

7SGFnO|w6<{pHdgRUr0 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 z

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�CE1hQ?!!j}HiRD>86u=)TYYev9NXZ{z`|yV~%E%5`iBc2VJN8+p|4~#p z-*5KN>%d%T6WcFnpJg+Z??13N8Ce*nFZzXw<@j&qz_@cwA&&II0|q&dm+TSFcdZ6?|O^#)}M1 zLZk!mO)*plxRYpNNZ`PVzf{%kr<9$fhq8=)3j%UmvLlTBw=}b?7Vpsd_4rq0V#veK$njuwW6B)sA76@49XL+f|=#FRdw-Dl$NW6 zx}|CzHyl^K(#_+9|Gr~}eu8jeO}esui-sS#VztFJW>wORaBJ;TKD#QjUK}#WNtRf% zqtt+Y&!D7MY2|lb?dQs(%{ZU6-c0i+ZE^^lc&WU?4bri~rbh>181DVvT*1r`Dn;+P)wo7y=eO~HI*@?TTD$SzPg59bM} zLD8!sea!u`AS*#uSNc!#v9~LgAuAgH_OW1XuwIY&9jrv$}?Awy@CgV>1M~6DhQM1V#b)v8&u&r*C7t; z0qN%af72)co)T;4x|M(%4d7U6k89Ts~n zjHIrD;IRIQdq;Yw?S966uY~V$8}D$Q;Pn)j4uErMN_UVwFx^&WPaDWV^{*O{=^O5f zM^EIh#WXudOLJMG(a3?aAbtzWm5m*f=ZZBA5I+{NsFrFqN^R?X7Q1jr2eJshTI>@ucGiX=HG_Jf zfvZFlyqogPf~;}U|0@Ta_O&{I)j9661@LHwfHd(y-xp?4pQTwzQH|MbWbL?GF| zvI7EJ_Ca>KSaYBQZO7x|`M`k)k}LCKyPz`b5%(ZBwNN+fveFyVrBjd#MCD?=1GrX) zoI3WNw1r)gTlm>Gm#$6YbP)|}0?L~9LNM7A-v*7`v5La~XcKIaFkco*u>`$)b-=T~ zz`a$3w3SF$meP9*IrSJC6v5)nv$Om;qP;->*8o12+}z`^D3s{C4*syg#Y&K*o}`qQ zI~ud+)_3(DA9BE&0}qbJb=alGMMiJY+zmYYU1!=rgpqEL`ifYE`qQ4=VqT9@TFl

CJ@8N-ag?~y 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 Gz<&W$eB(9% literal 0 HcmV?d00001 diff --git a/rapport/main.tex b/rapport/main.tex new file mode 100644 index 0000000..19a579f --- /dev/null +++ b/rapport/main.tex @@ -0,0 +1,40 @@ +\documentclass[a4paper,10pt]{article} + +\usepackage[francais]{babel} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{lmodern} + +\usepackage{graphicx} +\usepackage{listings} +\usepackage{url} +\usepackage{upquote} +\usepackage{color} +\usepackage[usenames,dvipsnames]{xcolor} + +\title{ICR - Labo \#3 : \textit{Attaque par faute contre RSA-CRT}} +\author{G.Burri} + + +\begin{document} + +\nocite{*} + +\maketitle + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Introduction} + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Conclusion} + + +%\bibliographystyle{plain} +%\bibliography{main} + +\end{document} diff --git a/src/Rand.cpp b/src/Rand.cpp new file mode 100644 index 0000000..c82b83f --- /dev/null +++ b/src/Rand.cpp @@ -0,0 +1,65 @@ +#include "Rand.h" + +#include +#include +#include +using namespace std; + +mpz_class Rand::randSize(int sizeBits, bool forceSize) +{ + const int nbBitsFirstByte = ((sizeBits - 1) % 8) + 1; // >= 1 and <= 8 + const int nbBytes = sizeBits / 8 + (nbBitsFirstByte != 8 ? 1 : 0); + + // A fixed rand value used during benchmark tests. + // char randBytes[] {(char)0x3d, (char)0x3f, (char)0x74, (char)0xa3, (char)0xcb, (char)0xba, (char)0x2e, (char)0x26, (char)0xf4, (char)0x5a, (char)0x05, (char)0xb0, (char)0x91, (char)0x2d, (char)0x13, (char)0x4c, (char)0x81, (char)0xa4, (char)0x4e, (char)0x8d, (char)0x50, (char)0xc6, (char)0xa5, (char)0x6e, (char)0x69, (char)0x3b, (char)0x1d, (char)0xa1, (char)0x68, (char)0x79, (char)0x87, (char)0xbe, (char)0xbf, (char)0xc0, (char)0x3d, (char)0x06, (char)0x4a, (char)0x74, (char)0xc8, (char)0x36, (char)0xa0, (char)0x92, (char)0x0c, (char)0xb4, (char)0x99, (char)0x6e, (char)0x64, (char)0x27, (char)0x61, (char)0x18, (char)0xe5, (char)0x07, (char)0xf1, (char)0xcb, (char)0x45, (char)0x57, (char)0x84, (char)0xa8, (char)0xbc, (char)0x25, (char)0x00, (char)0x1c, (char)0x7f, (char)0x1c, (char)0xf7, (char)0x40, (char)0xc5, (char)0x09, (char)0x73, (char)0xbf, (char)0xde, (char)0xb2, (char)0x65, (char)0x15, (char)0x64, (char)0xb4, (char)0x94, (char)0x8f, (char)0x1c, (char)0x6b, (char)0x84, (char)0x4b, (char)0x69, (char)0x6f, (char)0xc7, (char)0x71, (char)0x26, (char)0x3c, (char)0x58, (char)0x5f, (char)0x08, (char)0x34, (char)0x29, (char)0x9a, (char)0xfb, (char)0x95, (char)0x9d, (char)0x4f, (char)0x27, (char)0x49, (char)0x94, (char)0xc4, (char)0x26, (char)0x76, (char)0xc1, (char)0x8e, (char)0x30, (char)0x7f, (char)0x93, (char)0x63, (char)0x68, (char)0x3c, (char)0x0b, (char)0x8f, (char)0x5d, (char)0xff, (char)0x09, (char)0x68, (char)0x1b, (char)0x41, (char)0xea, (char)0xfd, (char)0xe1, (char)0xd5, (char)0x77, (char)0x1d, (char)0x3b, (char)0xda, (char)0x6f, (char)0xb8, (char)0xbe, (char)0x86, (char)0x25, (char)0x8a, (char)0xc1, (char)0x2c, (char)0x87, (char)0xd0, (char)0x24, (char)0xe9, (char)0x0d, (char)0xb3, (char)0x23, (char)0xcb, (char)0x40, (char)0xa3, (char)0x40, (char)0xc7, (char)0x2c, (char)0x3e, (char)0x08, (char)0xdf, (char)0xdc, (char)0xaa, (char)0x7a, (char)0x4a, (char)0x02, (char)0x23, (char)0x73, (char)0xb3, (char)0xc9, (char)0xe5, (char)0x2a, (char)0x36, (char)0xf3, (char)0xd1, (char)0x59, (char)0xfd, (char)0x74, (char)0x63, (char)0x46, (char)0x92, (char)0x47, (char)0x48, (char)0xf0, (char)0x05, (char)0x4c, (char)0xf9, (char)0x92, (char)0xe2, (char)0xe8, (char)0x7e, (char)0x52, (char)0x1a, (char)0x84, (char)0x47, (char)0x9a, (char)0xb5, (char)0x25, (char)0xdc, (char)0xb2, (char)0xed, (char)0x02, (char)0x65, (char)0x76, (char)0x3e, (char)0xad, (char)0xc0, (char)0x3c, (char)0xa0, (char)0x30, (char)0x83, (char)0x0c, (char)0xbe, (char)0x09, (char)0x63, (char)0x36, (char)0x3c, (char)0xc4, (char)0x94, (char)0x79, (char)0x74, (char)0x30, (char)0x71, (char)0x1b, (char)0xac, (char)0x0c, (char)0x2f, (char)0xcf, (char)0xf4, (char)0x68, (char)0x26, (char)0xd9, (char)0xb4, (char)0xb5, (char)0x3c, (char)0x07, (char)0x41, (char)0xa4, (char)0xde, (char)0x80, (char)0x00, (char)0x70, (char)0x06, (char)0x8c, (char)0xa7, (char)0x1b, (char)0x81, (char)0xcb, (char)0x6b, (char)0xc7, (char)0x20, (char)0x45, (char)0x0e, (char)0x23, (char)0x19, (char)0xb8, (char)0xa3, (char)0x29, (char)0x29, (char)0xf4, (char)0x99, (char)0xde, (char)0xfb, (char)0xad, (char)0xa5 }; + + char randBytes[nbBytes]; + readRand(randBytes, nbBytes); + + // We discard the n most significant bits where n >= 0 && n <= 7. + if (nbBitsFirstByte != 8) + randBytes[0] &= 0xFF >> (8 - nbBitsFirstByte); + + // If asked we set the most significant bit to 1. + if (forceSize) + randBytes[0] |= 0x01 << (nbBitsFirstByte - 1); + + mpz_class n; + mpz_import(n.get_mpz_t(), nbBytes, 1, sizeof(char), 1, 0, randBytes); // Big-endian -> most significant byte first. + return n; +} + +mpz_class Rand::randLimits(const mpz_class& from, const mpz_class& to) +{ + const mpz_class nbValues = to - from + 1; + const size_t nbBits = mpz_sizeinbase(mpz_class(nbValues - 1).get_mpz_t(), 2); + + // A 'nbBytes' size random number is generated, if it matches the given limits we return it. + for (;;) + { + mpz_class n = randSize(nbBits, false) + from; + if (n >= from && n <= to) + return n; + } +} + +mpz_class Rand::randPrime(const int size_bits) +{ + mpz_class r = randSize(size_bits); + mpz_nextprime(r.get_mpz_t(), r.get_mpz_t()); + return r; +} + +void Rand::readRand(char* to, int size) +{ + const string RANDOM_SOURCE("/dev/urandom"); + + static fstream ifs(RANDOM_SOURCE, ios_base::in); + if (!ifs) + { + cerr << "Unable to read the random source: " << RANDOM_SOURCE << endl; + throw 1; + } + + ifs.read(to, size); +} diff --git a/src/Rand.h b/src/Rand.h new file mode 100644 index 0000000..2ee12a1 --- /dev/null +++ b/src/Rand.h @@ -0,0 +1,36 @@ +#ifndef RAND_H +#define RAND_H + +#include + +class Rand +{ +public: + /** + * Returns a random number with a maximum size of 'sizeBits'. + * If 'forceSize' is true the size is exactly 'sizeBits', so the highest bit will always be 1. + * + * For example, for 'sizeBits' = 12 and 'forceSize' = true, the returned number will be in the following range: + * [2^11, 2^12-1] + * + * For 'sizeBits' = 12 and 'forceSize' = false, the returned number will be in the following range: + * [0, 2^12-1] + */ + static mpz_class randSize(int sizeBits, bool forceSize = true); + + /** + * Return a random number n such as: + * 'from' <= n <= 'to' + */ + static mpz_class randLimits(const mpz_class& from, const mpz_class& to); + + static mpz_class randPrime(const int size_bits); + +private: + /** + * Read a rand from "/dev/urandom" of size 'size' in byte to the given array 'to'. + */ + static void readRand(char* to, int size); +}; + +#endif diff --git a/src/Rsa.cpp b/src/Rsa.cpp new file mode 100644 index 0000000..be21998 --- /dev/null +++ b/src/Rsa.cpp @@ -0,0 +1,47 @@ +#include "Rsa.h" + +using namespace std; + +#include "Rand.h" +#include "Utils.h" + +pair Rsa::generateRSAKeys(uint exponent, uint keySizeBits) +{ + mpz_class p, q, phi; + KeyPub kPub; + KeyPriv kPriv; + + do + { + kPub.e = exponent; + p = Rand::randPrime(keySizeBits / 2); + q = Rand::randPrime(keySizeBits / 2); + + kPriv.n = kPub.n = p * q; + phi = (p - 1) * (q - 1); + + } while (mpz_invert(kPriv.d.get_mpz_t(), kPub.e.get_mpz_t(), phi.get_mpz_t()) == 0); + +// For debugging purpose. +// print("p", p); +// print("q", q); +// print("n", kPub.n); +// print("phi", phi); +// print("d", kPriv.d); + + return make_pair(kPub, kPriv); +} + +mpz_class Rsa::sign(const mpz_class& m, const KeyPriv& kPriv) +{ + mpz_class result; + mpz_powm_sec(result.get_mpz_t(), m.get_mpz_t(), kPriv.d.get_mpz_t(), kPriv.n.get_mpz_t()); + return result; +} + +bool Rsa::verifySignature(const mpz_class& m, const mpz_class& sig, const KeyPub& kPub) +{ + mpz_class mPrime; + mpz_powm_sec(mPrime.get_mpz_t(), sig.get_mpz_t(), kPub.e.get_mpz_t(), kPub.n.get_mpz_t()); + return m == mPrime; +} diff --git a/src/Rsa.h b/src/Rsa.h new file mode 100644 index 0000000..cbc3676 --- /dev/null +++ b/src/Rsa.h @@ -0,0 +1,27 @@ +#ifndef RSA_H +#define RSA_H + +#include +#include + +class Rsa +{ +public: + struct KeyPub { + mpz_class n; + mpz_class e; + }; + + struct KeyPriv { + mpz_class n; + mpz_class d; + }; + + static std::pair generateRSAKeys(uint exponent, uint keySizeBits); + + static mpz_class sign(const mpz_class& m, const KeyPriv& kPriv); + + static bool verifySignature(const mpz_class& m, const mpz_class& sig, const KeyPub& kPub); +}; + +#endif diff --git a/src/RsaCrt.cpp b/src/RsaCrt.cpp new file mode 100644 index 0000000..43f0b97 --- /dev/null +++ b/src/RsaCrt.cpp @@ -0,0 +1 @@ +#include "RsaCrt.h" diff --git a/src/RsaCrt.h b/src/RsaCrt.h new file mode 100644 index 0000000..29bc4b9 --- /dev/null +++ b/src/RsaCrt.h @@ -0,0 +1,20 @@ +#ifndef RSACRT_H +#define RSACRT_H + +#include + +class RsaCrt +{ +public: + RsaCrt(); + + struct KeyPrivCRT { + mpz_class p; + mpz_class q; + mpz_class dp; + mpz_class dq; + mpz_class qInv; + }; +}; + +#endif diff --git a/src/Utils.cpp b/src/Utils.cpp new file mode 100644 index 0000000..b60be50 --- /dev/null +++ b/src/Utils.cpp @@ -0,0 +1,24 @@ +#include "Utils.h" + +#include +using namespace std; + +void Utils::print(string name, mpz_class value) +{ + cout << name << ": " << value << endl; +} + +Timer::Timer() : + time(chrono::high_resolution_clock::now()) +{} + +int Timer::ms() const +{ + return chrono::duration_cast(chrono::high_resolution_clock::now() - this->time).count(); +} + +ostream& operator<<(ostream& os, const Timer& t) +{ + os << t.ms() << " ms"; + return os; +} diff --git a/src/Utils.h b/src/Utils.h new file mode 100644 index 0000000..d765da0 --- /dev/null +++ b/src/Utils.h @@ -0,0 +1,29 @@ +#ifndef UTILS_H +#define UTILS_H + +#include +#include +#include + +#include + +class Utils +{ +public: + static void print(std::string name, mpz_class value); +}; + +class Timer +{ +public: + Timer(); + int ms() const; + friend std::ostream& operator<<(std::ostream& os, const Timer& t); + +private: + std::chrono::time_point time; +}; + +std::ostream& operator<<(std::ostream& os, const Timer& t); + +#endif diff --git a/src/lab3.qbs b/src/lab3.qbs new file mode 100644 index 0000000..2117c09 --- /dev/null +++ b/src/lab3.qbs @@ -0,0 +1,27 @@ +import qbs 1.0 + +Product { + name: "lab3" + type: "application" + + files: ["main.cpp", "Rand.h", "Rand.cpp", "Rsa.h", "Rsa.cpp", "RsaCrt.h", "RsaCrt.cpp", "Utils.h", "Utils.cpp"] + + cpp.commonCompilerFlags: ["-std=c++11"] + cpp.staticLibraries: ["gmp", "gmpxx"] + + Properties { + condition: qbs.buildVariant == "release" + + //cpp.commonCompilerFlags: outer.concat("") + + // Override the default optimization (-02). + cpp.optimization: "none" + cpp.cxxFlags: "-O3" + } + Properties { + condition: qbs.buildVariant == "debug" + cpp.debugInformation: true + } + + Depends { name: "cpp" } +} diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..ac75df1 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,40 @@ +/** + * ICR - Labo 3. + * It uses GMPxx lib and C++11. + * It needs the RNG file "/dev/urandom". + * + * Author: Grégory Burri + */ + +#include +using namespace std; + +#include + +#include "Rsa.h" +#include "RsaCrt.h" + +const uint KEY_SIZE_BITS = 1024; +const uint RSA_PUBLIC_EXPONENT = 65537; + +int main(int argc, char** argv) +{ + vector args; + for (int i = 0; i < argc; i++) + args.push_back(string(argv[i])); + + const auto& keys = Rsa::generateRSAKeys(RSA_PUBLIC_EXPONENT, KEY_SIZE_BITS); + const auto& kPub = keys.first; + const auto& kPriv = keys.second; + + mpz_class message(42); + mpz_class signature = Rsa::sign(message, kPriv); + + mpz_class message2(42); + cout << "verify: " << Rsa::verifySignature(message2, signature, kPub) << endl; + + mpz_class message3(43); + cout << "verify: " << Rsa::verifySignature(message3, signature, kPub) << endl; + + return 0; +} -- 2.43.0