网络课程教学设计 网络课程设计方案4篇

网友 分享 时间:

【请您参阅】下面供您参考的“网络课程教学设计 网络课程设计方案4篇”是由阿拉网友精心整理分享的,供您阅读参考之用,希望此例范文对您有所帮助,喜欢就复制下载支持一下小编了!

网络课程教学设计 网络课程设计方案篇1

网络课程教学设计方案

课程主题:平台的信息化课程设计

一、前期分析

(一)学习目标

1、了解学习科学的课程理念;

2、的主要功能;

3、理解信息化课程设计的主要模式、原则、步骤、评价方法;

4、平台的信息化课程;

5、参与网络协作学习与商讨,具备信息化课程设计理念与技能的持续化发展能力。

(二)学习者

1、希望运用网络开展信息化教学的高校教师;

2、具有某一科目的教学背景;

3、具备基本的计算机操作技能。

(三)学习内容(主题)

平台的信息化课程设计

1、关于学习科学的理论

2、平台的架构

3、创建学生中心、知识中心、评价中心、共同体中心的信息化学习环境  信息化课程设计的模式  信息化课程设计的主要原则  信息化课程设计的基本步骤  信息化课程设计的评价方法

4、平台设计信息化课程

 平台的信息化课程设计案例探讨(已有案例、学习者提交案例)注:在课程实施过程中依据学习者需求动态添加主题

(四)学习策略

1、以问题为中心的小组协作学习。将每个学习内容分解为学习者的具体问题,问题之间相互关联,程度由简到难,学习者围绕问题解决进行学习。问题分类可基于某一学习主题,或细分到某一学科的个别化问题,学习者依据自身感兴趣的问题或学科加入学习小组,参与协作学习。

2、任务驱动。依据学习主题设计学习任务促进学习者运用信息化课程设计的理念与方法,而非仅仅进行知识记忆。

3、建立学习共同体。由于学习者为某一科目的大学教师,每个人都有自身独特的教学经验及对信息化课程设计的理解。以主题或学科为单位建立学习小组,在个体间知识的社会协商中,激发内含在团体或共同体中的知识建构。

4、情境学习。以“资源+活动”为课程内容主线创设学习情境,使学习者在与实际教学相似的复杂情境中完成对资源的选择、理解、互动,完成学习活动。

5、建立互动评价中心(体现在案例探讨环节的动态添加、评价)。

6、自主选择学习。学习者自主选择学习主题、任务、科目组别。

(五)学习评价

1、诊断性评价。问卷、投票。

2、形成性评价。主题讨论参与、作品提交、参与作品评价。

3、

总结

性评价(基于作品的评价)

二、模块内容设计与实施(体现学习活动过程)

(一)课程介绍

(二)学习需求调查(用于动态产生新的学习主题)

(三)任务-问题(问题设计、任务设计、情境设计)

(四)小组-社区(发起主题相关投票、问卷、相关主题探讨)

(五)内容-资源(各种信息化资源的搜集、整理、归纳,word、ppt、powerpoint、flash、视频、音频、著名文章、书籍)

(六)活动-评价(作品提交、对他人作品的建议与评价、参与主题讨论的图表信息搜集、个人初始需求与相关主题成果比较)

本文地址:http:///zuowen/

网络课程教学设计 网络课程设计方案篇2

南 华 大 学

络 安

题目:rsa加解密算法 姓名: 学号:

导师: 全 网

1.实验目的通过c#语言编程实现rsa加密算法,加深对公开密码体制的了解。

原理

rsa概述

当前最著名、应用最广泛的公钥系统rsa是在1978年,由美国麻省理工学院(mit)的rivest、shamir和adleman在题为《获得数字签名和公开钥密码系统的方法》的论文中提出的。它是一个基于数论的非对称(公开钥)密码体制,是一种分组密码体制。其名称来自于三个发明者的姓名首字母。它的安全性是基于大整数素因子分解的困难性,而大整数因子分解问题是数学上的著名难题,至今没有有效的方法予以解决,因此可以确保rsa算法的安全性。rsa系统是公钥系统的最具有典型意义的方法,大多数使用公钥密码进行加密和数字签名的产品和标准使用的都是rsa算法。

rsa算法是第一个既能用于数据加密也能用于数字签名的算法,因此它为公用网络上信息的加密和鉴别提供了一种基本的方法。它通常是先生成一对rsa 密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册,人们用公钥加密文件发送给个人,个人就可以用私钥解密接受。为提高保密强度,rsa密钥至少为500位长,一般推荐使用1024位。

该算法基于下面的两个事实,这些事实保证了rsa算法的安全有效性: 1)已有确定一个数是不是质数的快速算法; 2)尚未找到确定一个合数的质因子的快速算法。

目前,日益激增的电子商务和其它因特网应用需求使公钥体系得以普及,这些需求量主要包括对服务器资源的访问控制和对电子商务交易的保护,以及权利保护、个人隐私、无线交易和内容完整性(如保证新闻报道或股票行情的真实性)等方面。公钥技术发展到今天,在市场上明显的发展趋势就是pki与操作系统的集成,pki是“public key infrastructure”的缩写,意为“公钥基础设施”。公钥体制广泛地用于ca认证、数字签名和密钥交换等领域。

公钥加密算法中使用最广的是rsa。rsa算法研制的最初理念与目标是努力使互联网安全可靠,旨在解决des算法秘密密钥的利用公开信道传输分发的难题。而实际结果不但很好地解决了这个难题;还可利用rsa来完成对电文的数字签名以抗对电文的否认与抵赖;同时还可以利用数字签名较容易地发现攻击者对电文的非法篡改,以保护数据信息的完整性。目前为止,很多种加密技术采用了rsa算法,该算法也已经在互联网的许多方面得以广泛应用,包括在安全接口层(ssl)标准(该标准是网络浏览器建立安全的互联网连接时必须用到的)方面的应用。此外,rsa加密系统还可应用于智能ic卡和网络安全产品。

rsa算法的编程思路

1)确定密钥的宽度。

2)随机选择两个不同的素数p处q,它们的宽度是密钥宽度的二分之一。3)计算出p和q的乘积n。

4)在2和φ(n)之间随机选择一个数e , e 必须和φ(n)互素,整数e用做加密密钥(其中φ(n)=(p-1)*(q-1))。

5)从公式ed ≡ 1 mod φ(n)中求出解密密钥d。6)得公钥(e,n), 私钥(d , n)。7)公开公钥,但不公开私钥。

8)将明文p(假设p是一个小于n的整数)加密为密文c,计算方法为: c = pe mod n 9)将密文c解密为明文p,计算方法为:

p = cd mod n 然而只根据n和e(不是p和q)要计算出d是不可能的。因此,任何人都可对明文进行加密,但只有授权用户(知道d)才可对密文解密

3.程序实现

本实验本采用c#语言,用visual studio下编程得到以下结果:

源程序如下:

using system;using c;using entmodel;using ;using g;using ;using ;

using ;using ;

namespace windowsformsapplication1 { public partial cla form1 : form { public form1(){ initializecomponent();}

private void button1_click(object sender, eventargs e){ form2 form = new form2();();} private void form1_load(object sender, eventargs e){ d = true;}

private void radiobutton1_checkedchanged(object sender, eventargs e){ if(d == true){ = "加密"; = "e"; = "请选择加密文件"; = "加密";} else { = "解密"; = "d"; = "请选择解密文件"; = "解密";}

}

private void button3_click(object sender, eventargs e){ alog(); = me;} private void button2_click(object sender, eventargs e){ if(d == true){

if(!= ""){ string pathstring = , s1 = @"d:";if((pathstring)){ filestream filestream = ad(pathstring);

try { streamreader reader = new streamreader(filestream, t);

while(!tream){ string s = ne();int i, j;int m = 32();int n = 32();char[] a = new char[];for(i = 0;i

else

{ ("你要读的文件不存在");} }

} if(d == true){ = me;if(!= ""){ string pathstring = , s1 = @"d:";if((pathstring)){ filestream filestream = ad(pathstring);

try { streamreader reader = new streamreader(filestream, t);

while(!tream){ string s = ne();int i, j;int m = 32();int n = 32();char[] a = new char[];for(i = 0;i

}}} ();} catch(exception ex){ ();}}}}}}} 点击

源代码:

using system;using c;using entmodel;using ;using g;using ;using ;using ;

namespace windowsformsapplication1 { public partial cla form2 : form { public form2(){ initializecomponent();}

private void form2_load(object sender, eventargs e)

{

}

private void label10_click(object sender, eventargs e){

}

private void textbox2_textchanged(object sender, eventargs e){ = "";if(!= ""){ int m = 32();int i, j;for(i = 2;i

private void button1_click(object sender, eventargs e){ int p = 32();int q= 32();int n = p * q;int r =(p-1)*(q-1);int d = 32();int i, e=0;for(i=2;i

private void textbox1_textchanged(object sender, eventargs e){ = "";if(!= ""){ int m = 32();int i, j;for(i = 2;i

}

} } 加密过程:

选择 为要加密的文件, 为密文, 为经过解密的文件如图:

原文:

密文:

经过解密可得:

由上知该实验已顺利完成!

4.心得和体会

以上这些是我根据rsa的加密原理,自已通过编程,亲自体会而来。rsa算法本身比较简单,做一个实验的时候,遇到的困难主要是在编程,由于c#语言为面向对象的语言,具有良好的与用户接口,故采用这种语言。编程中在输入输出流这个地方出了一点问题,花了比较长的时候才把原因找到,并最终将程序完成.由于条件所限,在选取加密钥的时候,取数都比较小,实际应用中,数字会很大,但基本原理算法是一样的。

本实验仍有些不足,比如说,加密比较大的文件时,比较吃力,花费时间较多。

虽然有以上困难和问题,最终还是成功的将这个实验做成,在一定的程度上加强了编程能力和对rsa算法的认识。

网络课程教学设计 网络课程设计方案篇3

湖南第一师范学院信息科学与工程系

题 目

学生姓名学 号专业班级指导教师 课程设计报告

中小型企业网络搭建 王欢 计网(1)班 王建军、李科峰

2010 年 6 月 8 日

03080130822 08

中小型企业网络搭建

一.需求分析 1.二.网络结构设计

1.网络技术选型

根据需求,采用以太网技术(快速以太网、交换式以太网、千兆位以太网)进行组网。

以太网技术:以太网的技术成熟、成本较低、互操作性强、易于使用和管理、可扩充性强.设计中利用到的其他技术如下:

vlan技术:控制广播风暴、提高网络整体安全性、网络管理简单、提高性能等优点。

第三层交换技术:一方面支持vlan之间通信;另一方面交换技术减少了数据包的碰撞问题。支持vlan的交换机配合第三层功能不但具有很高的性能,而且具有充分的弹性,因此,是最好的选择 网络的冗余技术:提高网络的可靠性;链路冗余既可提高可靠性,又能均衡负载; 缺点:不适应重负荷应用环境,实时性差,存在冲突域; 动态路由协议ospf技术: stp技术:

以太网通道技术:

广域网技术(ppp协议):

2.网络拓扑设计

3.命令配置

1.基本信息配置

sw1的基本信息配置(sw

2、rt

1、rt3的基本配置与sw1相同)switch>enable //进入特权模式

switch#config terminal //进入全局配置模式 switch(config)#hostname sw3 //配置主机名

sw1(config)#no ip domain-lookup //禁用域名查找

sw1(config)#line console 0 //进入console线路模式

sw1(config-line)#logging synchronous //配置console信息显示自动换行 sw1(config-line)#no login //配置口console登录不认证 sw1(config-line)#privilege level 15 //配置为最高特权级别 sw1(config-line)#line vty 0 4 // 进入vty线路模式 sw1(config-line)#no login //配置telnet登录不认证

sw1(config-line)#privilege level 15 //配置为最高特权级别,enable不需要密码

//企业总部网络

2.二层网络全局配置 (1)sw1的vlan配置

sw1(config)#vtp mode transparent//配置为透明模式 sw1(config)#vlan 8-12 sw1(config-vlan)#exit sw1#show vlan //查看vlan信息

(2)stp根网桥配置

sw1(config)#spanning-tree vlan 8 priority 0 sw1(config)#spanning-tree vlan 10 priority 0 sw2(config)#spanning-tree vlan 11 priority 0

(3)stp备份根网桥配置

sw1(config)#spanning-tree vlan 8 priority 4096 sw1(config)#spanning-tree vlan 11 priority 4096 sw2(config)#spanning-tree vlan 10 priority 4096 //按vlan编号来部署stp实现负载分担:sw1为vlan 8和vlan10的根网桥,vlan 11的备份根网桥;sw2则为vlan8和vlan10的备份根网桥,vlan 11的根网桥。

3.二层网络接口配置

(1)交换机sw1-sw2间链路捆绑

sw1(config)#interface range fa0/1-2 //以太网接口1和2,注意1后面要空格 sw1(config-if-range)#switchport trunk encapsulation dot1q sw1(config-if-range)#switchport mode trunk sw1(config-if-range)#switchport trunk allowed vlan all sw1(config-if-range)#channel-group 2 mode on//手动捆绑:组2 sw2(config)#interface range fa0/1-2 //以太网接口1和2,注意1后面要空格 sw2(config-if-range)#switchport trunk encapsulation dot1q sw2(config-if-range)#switchport mode trunk sw2(config-if-range)#switchport trunk allowed vlan all sw2(config-if-range)#channel-group 2 mode on//手动捆绑:组2

sw1#show etherchannel summary//查看以太网通道信息

(2)sw1的二层接口配置

sw1(config)#interface fa0/2 sw1(config-if)#switchport mode acce sw1(config-if)#switchport acce vlan 12 sw1(config-if)#spanning-tree portfast //配置成portfast端口,加快收敛速度。

(3)sw2的二层接口配置

sw2(config)#interface fa0/10 sw2(config-if)#switchport mode acce sw2(config-if)#switchport acce vlan 10 sw2(config-if)#spanning-tree portfast //配置成portfast端口,加快收敛速度。

sw2(config)#interface fa0/11 sw2(config-if)#switchport mode acce sw2(config-if)#switchport acce vlan 11 sw2(config-if)#spanning-tree portfast //配置成portfast端口,加快收敛速度。

sw2(config)#interface fa0/12 sw2(config-if)#switchport mode acce sw2(config-if)#switchport acce vlan 11 sw2(config-if)#spanning-tree portfast //配置成portfast端口,加快收敛速度。

(4)sw2的网管配置

sw2(config)#interface vlan 8 sw2(config-if)#ip addre sw2(config-if)#no shutdown sw2(config-if)#exit sw2(config)#ip default-gateway

sw1#show spanning-tree brief//查看stp简要信息

4.三层网络接口配置

(1)sw1的三层网络接口配置

sw1(config)#ip routing //启动三层交换机的路由功能 sw1(config)#interface vlan 8 //vlan 8 的路由点

sw1(config-if)#ip addre sw1(config-if)#no shutdown sw1(config-if)#exit sw1(config)#interface vlan 10 //vlan 10 的路由点 sw1(config-if)#ip addre sw1(config-if)#no shutdown sw1(config-if)#exit sw1(config)#interface vlan 11 //vlan 11的路由点 sw1(config-if)#ip addre sw1(config-if)#no shutdown sw1(config-if)#exit sw1(config)#interface vlan 12 //vlan 12的路由点

sw1(config-if)#ip addre sw1(config-if)#no shutdown sw1(config-if)#exit

sw1#show ip int brief //查看接口简要信息

(2)sw1-rt1的三层链路配置

sw1(config)#interface fa0/3 //上连接口:上连rt的e0/0 sw1(config-if)#no switchport //配置接口为三层接口 sw1(config-if)#ip addre sw1(config-if)#no shutdown

rt1(config)#interface ethernet 1/1 rt1(config-if)#ip addre

rt1(config-if)#no shutdown

sw1#show ip interface brief //查看接口简要信息,查看接口是否配置成功。rt1#show ip interface brief //查看接口简要信息,查看接口是否配置成功。sw1#ping //ping 对端,检测链路是否连通。rt1#ping //ping 对端,检测链路是否连通。

5.边界网络对接(静态路由配置)

sw1(config)#ip route rt1(config)#ip route

//企业分部网络

1的loopback0配置、局域网接口配置及测试

rt1(config)#interface loopback 0 //配置回环接口 0 rt1(config-if)#ip addre //配置回环接口的ip地址

rt1(config)#interface ethernet 1/2//配置局域网接口 rt1(config-if)#ip addre rt1(config-if)#no shutdown//开启端口 rt1(config-if)#exit

rt1#show ip int brief //查看所有接口的信息

3的loopback0配置、局域网接口配置及测试

rt3(config)#interface loopback 0 //配置回环接口 0 rt3(config-if)#ip addre //配置回环接口的ip地址

rt3(config)#interface ethernet 1/3//配置局域网接口 rt3(config-if)#ip addre rt3(config-if)#no shutdown//开启端口 rt3(config-if)#exit

rt3show ip int brief //查看所有接口的信息

1-rt3的广域网链路配置及测试 rt1(config)#interface serial 0/0 rt1(config-if)#clock rate 1000000 //dce端配置时钟速率,1mbps rt1(config-if)#bandwith 1000 //接口逻辑带宽,用于计算接口的开销值,单位kbps;在实际项目中,接口逻辑带 宽应配置成与接口物理带宽一致且两端的bandwith 必须一致。rt1(config-if)#encapsulation ppp //配置数据链路层封装 rt1(config-if)#ip addre rt1(config-if)#no shutdown //打开接口

rt1(config-if)#end

rt3(config)#interface serial 0/0 rt3(config-if)#bandwith 1000 //接口逻辑带宽,用于计算接口的开销值,单位kbps;在实际项目中,接口逻辑带 宽应配置成与接口物理带宽一致且两端的bandwith 必须一致。rt3(config-if)#encapsulation ppp//配置数据链路层封装 rt3(config-if)#ip addre rt3(config-if)#no shutdown rt3(config-if)#end

rt1#show ip interface brief //查看接口简要信息 rt3#show ip interface brief //查看接口简要信息

路由配置

(1)rt1的ospf配置

rt1(config)#router ospf 1 //开启ospf进程1,标识不同的ospf的进程。rt1(config-router)#router-id //手动配置ospf router-id

rt1(config-router)#network area 0//发布loopback 0。这里的是采用的反掩码形式表是,area 0表示骨干区域。rt1(config-router)#network area 0 rt1(config-router)#network area 0 rt1(config-router)#network area 0 rt1(config-router)#paive-interface e2/1 //为业务网段配置被动接口 rt1(config-router)#paive-interface e1/1

(2)rt3的ospf配置

rt3(config)#router ospf 1 //开启ospf进程1,标识不同的ospf的进程。rt3(config-router)#router-id //手动配置ospf router-id

rt3(config-router)#network area 0//发布loopback 0。这里的是采用的反掩码形式表是,area 0表示骨干区域。rt3(config-router)#network area 0 rt3(config-router)#network area 0 rt3(config-router)#paive-interface e3/1 //为业务网段配置被动接口

3.子网划分及ip分配方案

4.网络服务器规划

三.网络设备选型 四.网络软件选型

网络课程教学设计 网络课程设计方案篇4

网 络 安

题目:rsa加解密算法 姓名 学号:

导师: 全

非对称加密算法的实现

非对称密码系统即公钥密码系统,主流分为基于大整数分解难度,基于离散

一、设计内容、算法原理

对数计算难度和椭圆曲线公钥密码三类。本次实验主要介绍rsa、elg加密。

二、rsa 1).rsa公钥密码算法原理和过程:

alice要求bob将信息m用rsa方法加密传送回来,alice找到大素数p,q, 令n=pq, 取a>1满足(a,(n))1,再找d使得da1(mod(n)),然后

alice将n、a作为加密密钥(公钥)发送给bob, 这里p,q,d,(n)都是私钥,要求保密,用作解密。

bob 将原文m

这里大素数要求足够大,通常要求是大于100位的十进制数。有资料表明,几十位的素数构造的rsa公钥密码系统是不安全的。因为位数较多,加密效率就不

dd并将密文m(modn),aadadea传送给 alice。

得到原文

da(ea)ea(m)mm(n)k1m(modn)够高,因此,通常用来加密对称密码的密钥,例如,加密序列密码的密钥。

maple简介:maple是一个具有强大符号运算能力、图形处理能力的交互式计算机代数系统,它可以进行各种科学计算和数学推理,它的高精度数值计算能力对于处理大数的计算和素性判定有其独特的功能。它适合于所有需要科学计算的人.。

rsa算法可以实现数字签名。b向a进行签名,则

1、b不能否认进行了签名

2、a不能篡改b的签名

设a(如网站)的公钥为ea,私钥为da

b(签名者)的公钥为 eb,私钥为db,b的原文m, b用db作用m , 得到db(m),再用a提供的ea作用,得到 ea(db(m))c,b将c和eb发给a, a收到后,先用da作用于c再用eb作用

eb(da(c))b不能否认进行了签名,因为aeb(da(ea(db(m))。)这时,m用b提供的eb算出;a不能篡改b的签名,因为b可以用a提供的ea和db算出,而a不知道db,改动后算不出上面等式。2)、rsa公钥密码算法程序流程

1、a的准备工作

(1)产生两个u到v位的随机数,如果是偶数,则加1,然后判别是否是素数,如果是,赋值给p,q(2)令n=pq, t=(p-1)(q-1);(3)找1amin{p1,q1} 满足(a,t)1,找一个不能整除t的素数,依次试除。

(4)解ax1(modt)相当于求解

tyax1,将 t,a辗转相除,得到

n利用p01,p1q1,pkqkpk1pk2,x(1)pn,再除以q1,q2,,qn,给d(5)将公钥 n,a发送给b

2、b的加密过程

t,再赋值(1)

原文m长度设为56位,远小于n,保证了(m, n)=1, 加密得到密文sm(modn),分am为十进制数字和字符串两种情况

(2)将密文s传送给 a。

3、a的解密过程

a收到s后,计算 先分别求解 dms(modn)dd得到原文m。直接计算速度太慢,且溢出,b1s(modp,)b2s(modq),然后利用孙子定理解同余式组 xb1(modp),xb2(modq),它的解xm1m1b1m2m2b2(modn)就是原文。

2反复利用 d[d]r来计算 m(modp)可以大大加快运行速度。

d3)、基于rsa算法的数字签名程序流程

b向阿a进行数字签名。只需a和b都拥有密钥生成、加密和解密程序。a运行密钥生成程序,将公钥ea ={n,a}发给b, 将私钥da密。

b运行密钥生成程序,将公钥eb ={n1,a1}发给a, 将私钥db保密。

b计算 签名m

a收到后,先计算da(c)(c)d(db)(ma1d1{p,q,d,(n)}保

{p1,q1,d1,(n1)}再计算c(db)(modn)并m(modn1),d1a((db))dbadaddb(n)k1再计算 db(modn),)ma1a1d1m(n1k)得到签名m(modn1)1m。

三、

elg

四、设计过程、设计的特点和结果、心得

1)、密钥生成选出一个大素数 p

选出 d 作为群g  中的一个成员,使得 1 d p 2 选出 e1作为群 g  中的一个本原根 e2  e1d mod p c

2p  e2r)mod p // c1和c2是密文

public_key (e1, e2, p)// 公开宣布 private_key  d //保密

2)、解密

p c2(c1d)1] mod p // p 是明文

3)、证明

c2(c1d)1] mod p =p  e2r)(e1dr)1 mod p = p

五、实现环境

windows xp maple13 + mapletoolbox+matlab 混合编程

六、编写的源程序代码

1、rsa_system rsa_ function varargout = rsa_system(varargin)

gui_singleton = 1;

gui_state = struct(gui_name, mfilename,...gui_singleton, gui_singleton,...gui_opening, @rsa_system_opening,...gui_output, @rsa_system_output,...gui_layout, [] ,...gui_callback, []);if nargin && ischar(varargin{1})

_callback = str2func(varargin{1});end

if nargout

[varargout{1:nargout}] = gui_main(gui_state, varargin{:});else

gui_main(gui_state, varargin{:});end

function rsa_system_opening(hobject, eventdata, handles, varargin)

= hobject;x = imread();

subplot(position,[-,-,,]);imagesc(x);colormap(gray);axis image off;

guidata(hobject, handles);

function varargout = rsa_system_output(hobject, eventdata, handles)varargout{1} = ;

function primep_callback(hobject, eventdata, handles)

function primep_create(hobject, eventdata, handles)if ispc && isequal(get(hobject,backgroundcolor), get(0,defaultuicontrolbackgroundcolor))set(hobject,backgroundcolor,white);end

function primeq_callback(hobject, eventdata, handles)

function primeq_create(hobject, eventdata, handles)if ispc && isequal(get(hobject,backgroundcolor), get(0,defaultuicontrolbackgroundcolor))set(hobject,backgroundcolor,white);end

function phn_callback(hobject, eventdata, handles)

function phn_create(hobject, eventdata, handles)if ispc && isequal(get(hobject,backgroundcolor), get(0,defaultuicontrolbackgroundcolor))set(hobject,backgroundcolor,white);end

function publ_callback(hobject, eventdata, handles)

function publ_create(hobject, eventdata, handles)if ispc && isequal(get(hobject,backgroundcolor), get(0,defaultuicontrolbackgroundcolor))set(hobject,backgroundcolor,white);end

function pruducprime_callback(hobject, eventdata, handles)

p=maple(nextprime(rand(10^120)()));q=maple(nextprime(rand(10^120)()));n=p*q;

phn=(q-1)*(p-1);

set(,string,char(p))set(,string,char(q))set(n,string,char(n))set(,string,char(phn))set(e_key,enable,on);set(e_string,enable,on);set(enum,enable,on);%计算私钥d global d e e=2^16+1;format rat e=1/e;setmaple(e,e);setmaple(e,e);setmaple(n2,phn);setmaple(n,n);

d=maple(convert(e,rational)mod n2);setmaple(d,d);

function selectenum_callback(hobject, eventdata, handles)

[filename,pathname,filterindex] = uigetfile;if filterindex~=0 global m

im=importdata(strcat(pathname,filename));is=isa(im,cell);if is==0

m=csvread(strcat(pathname,filename));set(_secret,enable,on);end if is==1

msgbox(请选择数字型文件!,警告:);end end

function num_secret_callback(hobject, eventdata, handles)

fidout=fopen(,w);global m

for i=1:length(m)m=m(i);

setmaple(m,m);

c=maple(power(m,e)mod n);

fprintf(fidout,%snn,char(c));

end

msgbox(恭喜!你已成功加密,产生文件为"",温馨提示:);set(_codebreak,enable,on);

function num_codebreak_callback(hobject, eventdata, handles)

%以下是解密过程

fidin=fopen();fidout=fopen(,w);

while ~feof(fidin)

% 判断是否为文件末尾

tline=fgetl(fidin);

% 从文件读行

if isempty(tline)==0

%若该行非空

midvar=canf(tline,%f);

setmaple(c,tline);

m=maple(power(c,d)mod n)

fprintf(fidout,%snn,char(m));

end

continue

% 如果是非数字继续下一次循环 end

fclose(fidout);

msgbox(恭喜!你已成功解密,产生文件为"",温馨提示:);set(_codebreak,enable,off);set(_secret,enable,off);

function selecte_string_callback(hobject, eventdata, handles)

[filename,pathname,filterindex] = uigetfile;if filterindex~=0 global path

path=strcat(pathname,filename);

set(_secret,enable,on);end

function string_secret_callback(hobject, eventdata, handles)

global path

a=importdata(path,%s);is=isa(a,double);if is ~= 1 b=cell2mat(a);mm=double(b);

fidout1=fopen(,w);for i=1:length(mm)m=mm(i);

setmaple(m,m);

c=maple(convert((power(m,e)mod n),binary));fprintf(fidout1,%snn,char(c));

end

msgbox(恭喜!你已成功加密,产生文件为"",温馨提示:);set(_codebreak,enable,on);end if is==1 msgbox(请选择字符型文件!,警告:);set(_secret,enable,off);end

function string_codebreak_callback(hobject, eventdata, handles)

fidin=fopen();fidout=fopen(,w);

while ~feof(fidin)

% 判断是否为文件末尾

tline=fgetl(fidin);

% 从文件读行

if isempty(tline)==0

%若该行非空

midvar=canf(tline,%f);

setmaple(c,tline);

m=maple(power(convert(c,decimal,binary),d)mod n);

m=double(m);

m=char(m);

fprintf(fidout,%s,m);

end

continue

% 如果是非数字继续下一次循环 end

fclose(fidout);

msgbox(恭喜!你已成功解密,产生文件为"",温馨提示:);set(_codebreak,enable,off);set(_secret,enable,off);

function private_key_callback(hobject, eventdata, handles)global d

set(ekey,string,char(d));

function privatekey_callback(hobject, eventdata, handles)

function privatekey_create(hobject, eventdata, handles)if ispc && isequal(get(hobject,backgroundcolor), get(0,defaultuicontrolbackgroundcolor))set(hobject,backgroundcolor,white);end

%------function open_callback(hobject, eventdata, handles)uiopen;

%------function close_callback(hobject, eventdata, handles)close(gcf);

%------function elg_callback(hobject, eventdata, handles)elg_system

delete(_system);

2、elg_system elg_ function varargout = elg_system(varargin)

gui_singleton = 1;

gui_state = struct(gui_name, mfilename,...gui_singleton, gui_singleton,...gui_opening, @elg_system_opening,...gui_output, @elg_system_output,...gui_layout, [] ,...gui_callback, []);if nargin && ischar(varargin{1})

_callback = str2func(varargin{1});end

if nargout

[varargout{1:nargout}] = gui_main(gui_state, varargin{:});else

gui_main(gui_state, varargin{:});end

function elg_system_opening(hobject, eventdata, handles, varargin)

= hobject;x = imread();

subplot(position,[-,-,,]);imagesc(x);colormap(gray);axis image off;

guidata(hobject, handles);

function varargout = elg_system_output(hobject, eventdata, handles)

varargout{1} = ;

%------function open_callback(hobject, eventdata, handles)

uiopen;

%------function close_callback(hobject, eventdata, handles)

close(gcf);

%------function rsa_callback(hobject, eventdata, handles)

rsa_system

delete(_system);

function primep_callback(hobject, eventdata, handles)

function primep_create(hobject, eventdata, handles)

if ispc && isequal(get(hobject,backgroundcolor), get(0,defaultuicontrolbackgroundcolor))set(hobject,backgroundcolor,white);end

function public_ha_callback(hobject, eventdata, handles)

function public_ha_create(hobject, eventdata, handles)

if ispc && isequal(get(hobject,backgroundcolor), get(0,defaultuicontrolbackgroundcolor))set(hobject,backgroundcolor,white);end

function produce_publickey_callback(hobject, eventdata, handles)

function produecpublickey_callback(hobject, eventdata, handles)

global xa p ha

p=maple(m := proc(n)global a, q;for a do q := nextprime((rand(10^n))());if isprime(4*q+1)= true then break end if end do;4*q+1 end proc;m(150));setmaple(p,p);

set(,string,char(p));xa=maple(rand(10^100)());setmaple(xa,xa);

ha=maple(2 &^ xa mod p);setmaple(ha,ha);

set(_ha,string,char(ha));set(eout,enable,on);set(_string,enable,on);set(_num,enable,on);

function select_num_callback(hobject, eventdata, handles)

[filename,pathname,filterindex] = uigetfile;if filterindex~=0 global m

im=importdata(strcat(pathname,filename));is=isa(im,cell);if is==0

m=csvread(strcat(pathname,filename));set(_num,enable,on);end if is==1

msgbox(请选择数字型文件!,警告:);end end

function code_num_callback(hobject, eventdata, handles)

fidout=fopen(,w);global m

for i=1:length(m)m=m(i);

setmaple(m,m);

k=maple(rand(10^150)());setmaple(k,k);u=maple(2 &^ k mod p);v=maple(ha &^ k mod p);setmaple(v,v);v=maple(m*v mod p);

fprintf(fidout,%sn,char(u));fprintf(fidout,%snn,char(v));end

msgbox(恭喜!你已成功加密,产生文件为"",温馨提示:);set(_num,enable,on);

function break_num_callback(hobject, eventdata, handles)

%以下是解密过程

fidin=fopen();fidout=fopen(,w);

while ~feof(fidin)

% 判断是否为文件末尾

tline=fgetl(fidin);

% 从文件读行

if isempty(tline)==0

%若该行非空

t1line=;

midvar=canf(tline,%f);

t1line=tline;

tline=fgetl(fidin);

midvar=canf(tline,%f);

setmaple(c1,t1line);

setmaple(c2,tline);

m=maple(convert(c2/c1 &^ xa, rational)mod p);

fprintf(fidout,%snn,char(m));

end

continue

% 如果是非数字继续下一次循环 end

fclose(fidout);

msgbox(恭喜!你已成功解密,产生文件为"",温馨提示:);set(_num,enable,off);set(_num,enable,off);

%---executes on button pre in on select_string_callback(hobject, eventdata, handles)

[filename,pathname,filterindex] = uigetfile;if filterindex~=0 global path

path=strcat(pathname,filename);

set(_string,enable,on);end

%---executes on button pre in on code_string_callback(hobject, eventdata, handles)

global path

a=importdata(path,%s);is=isa(a,double);if is ~= 1 b=cell2mat(a);mm=double(b);

fidout1=fopen(,w);for i=1:length(mm)m=mm(i);

setmaple(m,m);

k=maple(rand(10^150)());setmaple(k,k);

u=maple(convert(2 &^ k mod p,binary));v=maple(ha &^ k mod p);setmaple(v,v);

v=maple(convert(m*v mod p,binary));fprintf(fidout1,%sn,char(u));

fprintf(fidout1,%snn,char(v));

end

msgbox(恭喜!你已成功加密,产生文件为"",温馨提示:);set(_string,enable,on);end if is==1

msgbox(请选择字符型文件!,警告:);

set(_string,enable,off);end

%---executes on button pre in on break_string_callback(hobject, eventdata, handles)

fidin=fopen();fidout=fopen(,w);

while ~feof(fidin)

% 判断是否为文件末尾

tline=fgetl(fidin);

% 从文件读行

if isempty(tline)==0

%若该行非空

t1line=;

midvar=canf(tline,%f);

t1line=tline;

tline=fgetl(fidin);

midvar=canf(tline,%f);

setmaple(c1,t1line);

setmaple(c2,tline);

% m=maple(power(convert(c2,decimal,binary),d)mod n);

m=maple(convert(convert(c2,decimal,binary)/convert(c1,decimal,binary)&^ xa, rational)mod p);

m=double(m);

m=char(m);

fprintf(fidout,%s,m);

end

continue

% 如果是非数字继续下一次循环 end

fclose(fidout);

msgbox(恭喜!你已成功解密,产生文件为"",温馨提示:);set(_string,enable,off);set(_string,enable,off);

%---executes on button pre in on privateout_callback(hobject, eventdata, handles)

global xa

set(e_key,string,char(xa));

function private_key_callback(hobject, eventdata, handles)

function private_key_create(hobject, eventdata, handles)

if ispc && isequal(get(hobject,backgroundcolor), get(0,defaultuicontrolbackgroundcolor))set(hobject,backgroundcolor,white);end

附:rsa运行演示(elg类似)

48 1820042
");