Exemplo n.º 1
0
/*
* 产生密钥,公钥和私钥
* @param[in] 随机产生大数密钥
* @param[in] 利用自定义的大数运算规则进行计算
* @return 返回产生成功与否
* – false 表示产生密钥失败
* @pre \e 产生的密钥存储在定义的类中变量中
* @see e,d,n
*/
bool RSA::RSAKey()
{
	for (i = 0; i<MAX; i++)
		m[i] = p[i] = q[i] = n[i] = d[i] = e[i] = 0;/*/简单初始化一下*/
	prime_random(p, q);/*/随机产生两个大素数*/
	mul(p, q, n);
	mov(p, p1);
	p1[0]--;
	mov(q, q1);
	q1[0]--;      /*/q-1;*/
	mul(p1, q1, m);//m=(p-1)*(q-1)  
	erand(e, m);
	rsad(e, m, d);
	return true;
}
Exemplo n.º 2
0
inline SimulatedFailure::RandomPrimeGuard::RandomPrimeGuard(FailureType failure_type, int n, int m,
                                                            uint_fast64_t seed)
    : m_type(failure_type)
{
    prime_random(m_type, n, m, seed);
}