資源簡介
支持最大2048位RSA計算,主要是生成公私鑰對、公鑰加密、私鑰解密功能。每次重新生成公私鑰對,隨機產生一定長度的隨機數作為輸入數據,公鑰加密后再私鑰解密。每一項結果都清晰打印。

代碼片段和文件信息
/*
?*/
#include?“stdafx.h“
#include?“global_rsa.h“
#include?“rsaref.h“
#include?“nn.h“
#include?“digit.h“
/*?Computes?a?=?b?*?c?where?b?and?c?are?digits.
???Lengths:?a[2].
?*/
void?NN_DigitMult?(NN_DIGIT?a[2]NN_DIGIT?bNN_DIGIT?c)
{
??NN_DIGIT?t?u;
??NN_HALF_DIGIT?bHigh?bLow?cHigh?cLow;
??bHigh?=?(NN_HALF_DIGIT)HIGH_HALF?(b);
??bLow?=?(NN_HALF_DIGIT)LOW_HALF?(b);
??cHigh?=?(NN_HALF_DIGIT)HIGH_HALF?(c);
??cLow?=?(NN_HALF_DIGIT)LOW_HALF?(c);
??a[0]?=?(NN_DIGIT)bLow?*?(NN_DIGIT)cLow;
??t?=?(NN_DIGIT)bLow?*?(NN_DIGIT)cHigh;
??u?=?(NN_DIGIT)bHigh?*?(NN_DIGIT)cLow;
??a[1]?=?(NN_DIGIT)bHigh?*?(NN_DIGIT)cHigh;
??
??if?((t?+=?u)?????a[1]?+=?TO_HIGH_HALF?(1);
??u?=?TO_HIGH_HALF?(t);
??
??if?((a[0]?+=?u)?????a[1]++;
??a[1]?+=?HIGH_HALF?(t);
}
/*?Sets?a?=?b?/?c?where?a?and?c?are?digits.
???Lengths:?b[2].
???Assumes?b[1]??0.?For?efficiency?c?should?be
???normalized.
?*/
void?NN_DigitDiv?(NN_DIGIT?*aNN_DIGIT?b[2]NN_DIGIT?c)
{
??NN_DIGIT?t[2]?u?v;
??NN_HALF_DIGIT?aHigh?aLow?cHigh?cLow;
??cHigh?=?(NN_HALF_DIGIT)HIGH_HALF?(c);
??cLow?=?(NN_HALF_DIGIT)LOW_HALF?(c);
??t[0]?=?b[0];
??t[1]?=?b[1];
??/*?Underestimate?high?half?of?quotient?and?subtract.
???*/
??if?(cHigh?==?MAX_NN_HALF_DIGIT)
????aHigh?=?(NN_HALF_DIGIT)HIGH_HALF?(t[1]);
??else
????aHigh?=?(NN_HALF_DIGIT)(t[1]?/?(cHigh?+?1));
??u?=?(NN_DIGIT)aHigh?*?(NN_DIGIT)cLow;
??v?=?(NN_DIGIT)aHigh?*?(NN_DIGIT)cHigh;
??if?((t[0]?-=?TO_HIGH_HALF?(u))?>?(MAX_NN_DIGIT?-?TO_HIGH_HALF?(u)))
????t[1]--;
??t[1]?-=?HIGH_HALF?(u);
??t[1]?-=?v;
??/*?Correct?estimate.
???*/
??while?((t[1]?>?cHigh)?||
?????????((t[1]?==?cHigh)?&&?(t[0]?>=?TO_HIGH_HALF?(cLow))))?{
????if?((t[0]?-=?TO_HIGH_HALF?(cLow))?>?MAX_NN_DIGIT?-?TO_HIGH_HALF?(cLow))
??????t[1]--;
????t[1]?-=?cHigh;
????aHigh++;
??}
??/*?Underestimate?low?half?of?quotient?and?subtract.
???*/
??if?(cHigh?==?MAX_NN_HALF_DIGIT)
????aLow?=?(NN_HALF_DIGIT)LOW_HALF?(t[1]);
??else
????aLow?=?
??????(NN_HALF_DIGIT)((TO_HIGH_HALF?(t[1])?+?HIGH_HALF?(t[0]))?/?(cHigh?+?1));
??u?=?(NN_DIGIT)aLow?*?(NN_DIGIT)cLow;
??v?=?(NN_DIGIT)aLow?*?(NN_DIGIT)cHigh;
??if?((t[0]?-=?u)?>?(MAX_NN_DIGIT?-?u))
????t[1]--;
??if?((t[0]?-=?TO_HIGH_HALF?(v))?>?(MAX_NN_DIGIT?-?TO_HIGH_HALF?(v)))
????t[1]--;
??t[1]?-=?HIGH_HALF?(v);
??/*?Correct?estimate.
???*/
??while?((t[1]?>?0)?||?((t[1]?==?0)?&&?t[0]?>=?c))?{
????if?((t[0]?-=?c)?>?(MAX_NN_DIGIT?-?c))
??????t[1]--;
????aLow++;
??}
??
??*a?=?TO_HIGH_HALF?(aHigh)?+?aLow;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3923??2014-05-29?10:18??myrsa\Debug\digit.obj
?????文件??????????0??2014-05-29?10:18??myrsa\Debug\digit.sbr
?????文件???????8399??2014-05-29?10:43??myrsa\Debug\main.obj
?????文件??????????0??2014-05-29?10:43??myrsa\Debug\main.sbr
?????文件??????11425??2014-05-29?10:18??myrsa\Debug\md5c.obj
?????文件??????????0??2014-05-29?10:18??myrsa\Debug\md5c.sbr
?????文件?????140288??2014-05-29?10:43??myrsa\Debug\myrsa.bsc
?????文件?????196674??2014-05-29?10:43??myrsa\Debug\myrsa.exe
?????文件?????225460??2014-05-29?10:43??myrsa\Debug\myrsa.ilk
????I.A....????217124??2014-05-29?10:41??myrsa\Debug\myrsa.pch
?????文件?????517120??2014-05-29?10:43??myrsa\Debug\myrsa.pdb
?????文件??????21076??2014-05-29?10:18??myrsa\Debug\nn.obj
?????文件??????????0??2014-05-29?10:18??myrsa\Debug\nn.sbr
?????文件???????5768??2014-05-29?10:18??myrsa\Debug\prime.obj
?????文件??????????0??2014-05-29?10:18??myrsa\Debug\prime.sbr
?????文件??????19210??2014-05-29?10:18??myrsa\Debug\rsa.obj
?????文件??????????0??2014-05-29?10:18??myrsa\Debug\rsa.sbr
?????文件???????7288??2014-05-29?10:18??myrsa\Debug\r_keygen.obj
?????文件??????????0??2014-05-29?10:18??myrsa\Debug\r_keygen.sbr
?????文件???????5409??2014-05-29?10:18??myrsa\Debug\r_random.obj
?????文件??????????0??2014-05-29?10:18??myrsa\Debug\r_random.sbr
?????文件???????3301??2014-05-29?10:18??myrsa\Debug\r_stdlib.obj
?????文件??????????0??2014-05-29?10:18??myrsa\Debug\r_stdlib.sbr
?????文件??????41984??2014-05-29?10:43??myrsa\Debug\vc60.idb
?????文件??????53248??2014-05-29?10:43??myrsa\Debug\vc60.pdb
?????文件???????2543??2014-05-29?09:07??myrsa\digit.c
?????文件????????365??2014-05-29?09:07??myrsa\digit.h
?????文件???????1154??2014-05-29?09:07??myrsa\global_rsa.h
?????文件???????3318??2014-05-29?10:43??myrsa\main.c
?????文件???????3465??2014-05-29?09:07??myrsa\main.cpp
............此處省略25個文件信息
- 上一篇:西門子V90伺服選型計算軟件
- 下一篇:屏蔽迅雷7自動升級
評論
共有 條評論