第二周~

RSA公钥加密算法RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥

数字签名又称公钥数字签名 以电子形式存在于数据信息之中的,或作为其附件的或逻辑上与之有联系的数据,可用于辨别数据签署人的身份,并表明签署人对数据信息中包含的信息的认可。

公钥:与公钥算法一起使用的密钥,非秘密一半。

DES:也叫数据加密算法DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位(每组的第8位作为奇偶校验位),产生最大 64 位的分组大小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半。使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。DES 使用 16 轮循环,使用异或置换代换移位操作四种基本运算。

公钥加密 与 数字签名 之间的联系与区别

公钥加密,私钥解开,,私钥私有。有私钥才能解密。数字签名 。私钥加密,公钥解密。保证有私钥方才能加密

2.1判断一个正整数是否为质数的算法
int isPrime (long b)
{
cin>>b;
for (long i=2; i {
if (b % i == 0)
{
return 0;
}
}

return 1;
}



2.2: 随机生成一个n bit位的长整数。
long createRndInteger (int n)
{
       cin>>n;
       long c;
       long d;
for (int j = 0; j < n; j++)
{
       d = 1;
for (int k = 0; k < j; k++)
{
       d *= 10;
}
      c += rand(0, 9) * d;
}
      return c;
}





2.3:随机生成一个n bit位的长质数
long createRandPrime (int m)
{
cin>>m;
long e;
long f
do
{


for (int p = 0; p < m - 1; m++)
{
long f = 1;
for (int q = 0; q < p; q++)
{
f *= 10;
}
e += rand(0, 9) * f;
}


int r;
for (long l = 2; l < e; l++)
{
r = 1;
if (e % l == 0)
{
r = 0;
}
}


}
while (r=1);
return e;
}

你可能感兴趣的:(第二周~)