信息安全实践二之密码与隐藏技术2【数字水印&RSA加密算法实现】

信息安全实践二之密码与隐藏技术2【数字水印&RSA加密算法实现】


叮嘟!这里是小啊呜的学习课程资料整理。好记性不如烂笔头,今天也是努力进步的一天。一起加油进阶吧!
在这里插入图片描述

一、RSA演示实验

通过《RSA》演示软件,了解 RSA 的加密、解密过程和性能,掌握其工作原理。

二、数字水印演示实验

解压缩文件“数字水印(密码与编码软件包与JRE环境).rar”,运行其中的“Cryptography.exe”(需要jre环境支持,如果无法运行exe,请先安装jre环境)。

相关压缩文件在我的资源中查找。

运行其中的“数字水印”程序,打开一张图片,进行水印信息嵌入操作和提取操作。截取嵌入水印信息成功后的截图和提取水印信息成功后的截图。

在这里插入图片描述
在这里插入图片描述

三、RSA加密算法的实现

完成RSA演示实验之后,对RSA算法应该有了一些了解,下面要进行简单的编码:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意:
上述代码中的平方乘运算 power(p,e)%n 代码有些问题(自己可以想想是什么问题?),所以运行结果会不正确
请使用后面给出的平方乘函数代码,对程序稍作修改,可以得出正确结果。
说明:除了用C语言改正上述程序外,也可以选择用Java、Python等语言改写上述程序。

//平方乘函数
//m的a次方模r

int pfcheng(int m,int a,int r)
{
   int b[100],length=0;
   int c=1;
   do
   {
      b[length++]=a%2;
      a=a/2;
   }
   while(a!=0);
   while(length>=0)
   {
      c=(c*c)%r;
      if(b[length]==1)
      {
            c=(c*m)%r;
      }
      length--;
   }
   return c;
}

修改后程序实践运行:

课本实例运行结果如图:

在这里插入图片描述

相关源代码在我的资源中查找。

三、请用教材41页介绍的平方-乘算法计算下列各式的值,并编程实现平方-乘算法来进行验证。编程语言不限,将算法实现为1个函数,接收输入,给出输出,请将完整的函数代码粘贴在下方,代码中注释输入输出参数的意义及代码编译环境。
(1) 34^60 mod 51的结果是:34
(2) 345^89 mod 101的结果是:34
(3) 请注明所用编程语言,并将函数代码粘贴在下方(字体五号):

所用编程语言:c++

教材实例代码验证如图:
在这里插入图片描述

源代码如下:

#include<iostream>
using namespace std;

//递归快速幂
unsigned recur_pow_mod(unsigned a, unsigned b, unsigned mod)
{
	unsigned long long  result = 1; 
	unsigned array[64] = { 0 };  //用来存储b的二进制形式的每一位数
	unsigned length = 0;
	while (b)
	{
		array[length++] = b & 1;
		b >>= 1;
	}
	for (int j = length - 1; j >= 0; j--)
	{
		if (array[j] == 1)
			result = (result * result*a) % mod;
		else
			result = (result * result) % mod;
	}
	return result;
}

int main()
{
	unsigned a, b, mod;
	unsigned result = 0;
	cout << "请输入数字(a,b,mod): " << endl;
	cin >> a >> b >> mod;
	result = recur_pow_mod(a, b, mod);
	cout << "平方-乘结果为: " << result << endl;

	return 0;
}

Ending!
更多课程知识学习记录随后再来吧!

就酱,嘎啦!

在这里插入图片描述

注:
1、人生在勤,不索何获。
2、信息安全实践一之密码与隐藏技术2【数字水印&RSA加密算法实现】相关文件在我的资源中查找。

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发芽ing的小啊呜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值