杨环-信息安全导论实验报告_第1页
杨环-信息安全导论实验报告_第2页
杨环-信息安全导论实验报告_第3页
杨环-信息安全导论实验报告_第4页
杨环-信息安全导论实验报告_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

姓名:杨环目录TOC\o"1-3"\h\u3779实验三对称加密算法实验115135实验四公钥算法实验65597实验五微软CA组件安装和配置95790实验八平安电子邮件的配置和使用164120实验九平安WEB访问的配置和使用22实验三对称加密算法实验1.1实验目的〔1〕了解对称算法的根本工作流程。〔2〕掌握对称算法的使用方法。1.2实验内容〔1〕认识OpenSSL工具包。〔2〕用简短的程序代码演示:分组加密算法〔DES、AES〕和流密码算法〔RC4〕的使用,其中包括分组算法的四种应用模式ECB、CBCCFB、OFB。〔3〕编写一个简单但是平安的文件加密程序。1.3软件准备Windows7操作系统Vc++OpenSSL1.0JDK1.7+MyEclipseEnterprizeWorkbench20131.4实验过程1.了解对称加密算法对称加密指加密和解密使用相同密钥的加密算法。它要求发送方和接收方在平安通信之前,商定一个密钥。对称算法的平安性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密,所以密钥的保密性对通信性至关重要。对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。缺乏之处是,交易双方都使用同样钥匙,平安性得不到保证。此外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量呈几何级数增长,密钥管理成为用户的负担。DES算法:DES算法把64位的明文输入块变为数据长度为64位的密文输出块,其中8位为奇偶校验位,另外56位作为密码的长度。首先,DES把输入的64位数据块按位重新组合,并把输出分为L0、R0两局部,每局部各长32位,并进行前后置换,最终由L0输出左32位,R0输出右32位,根据这个法那么经过16次迭代运算后,得到L16、R16,将此作为输入,进行与初始置换相反的逆置换,即得到密文输出。RC4算法:RC4算法的原理是“搅乱”,它包括初始化算法和伪随机子密码生成算法两大局部,在初始化的过程中,密钥的主要功能是将一个256字节的初始数簇进行随机搅乱,不同的数簇在经过伪随机子密码生成算法的处理后可以得到不同的子密钥序列,将得到的子密钥序列和明文进行异或运算〔XOR〕后,得到密文。AES算法:AES加密过程是在一个4×4的字节矩阵上运作,这个矩阵又称为“体〔state〕”,其初值就是一个明文区块〔矩阵中一个元素大小就是明文区块中的一个Byte〕。〔Rijndael加密法因支持更大的区块,其矩阵行数可视情况增加〕加密时,各轮AES加密循环〔除最后一轮外〕均包含4个步骤:1. AddRoundKey—矩阵中的每一个字节都与该次回合金钥〔roundkey〕做XOR运算;每个子密钥由密钥生成方案产生。2. SubBytes—通过个非线性的替换函数,用查找表的方式把每个字节替换成对应的字节。3. ShiftRows—将矩阵中的每个横列进行循环式移位。4. MixColumns—为了充分混合矩阵中各个直行的操作。这个步骤使用线性转换来混合每列的四个字节。最后一个加密循环中省略MixColumns步骤,而以另一个AddRoundKey取代。2认识openssl工具包Openssl下载地址::///注意:下载完成后,以管理员身份运行winrar进行解压,否者会出错。Openssl的根本功能:OpenSSL整个软件包大概可以分成三个主要的功能局部:密码算法库、SSL协议库以及应用程序。OpenSSL的目录结构自然也是围绕这三个功能局部进行规划的。作为一个基于密码学的平安开发包,OpenSSL提供的功能相当强大和全面,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用2〕使用openssl编译安装Openssl的编译安装是一件十分不容易的事情安装openssl之前要先安装perlPerl的下载地址:选择相应的版本进行下载当然还要有vc或者是vs等工具,我使用的是vc20122.下载使用编译好的openssl安装步骤:1、安装perl如同正常的软件安装过程一样2,安装vc++3,运行cmd命令使用cd命令指向perl安装目录的eg文件,执行“perlexample.pl”假设显示“HellofromActivePerl!”,那么说明Perl安装成功,可以开始使用Perl的相关命令来进行OpenSSL的安装了。初始化VC++6.0环境变量,cd命令转到vc++6.0的安装目录下的\VC98\Bin\,执行vavars32.bat4,转回到,执行perlConfigureVC-WIN325,运行ms\do_ms命令6,运行“nmake-fms\ntdll.mak”命令进行代码编译7,使用nmake-fms\ntdll.maktest进行测试,测试时间较长,如果通过会有passalltest提示配置VC++6.0下的相关参数3手编写一个简单的加密程序DES算法intmain(void){intdocontinue=1;char*data="helloworld!";/*明文*/intdata_len;intdata_rest;unsignedcharch;unsignedchar*src=NULL;/*补齐后的明文*/unsignedchar*dst=NULL;/*解密后的明文*/intlen;unsignedchartmp[8];unsignedcharin[8];unsignedcharout[8];原始密钥*/intkey_len;#defineLEN_OF_KEY24unsignedcharkey[LEN_OF_KEY];/*补齐后的密钥*/unsignedcharblock_key[9];DES_key_scheduleks,ks2,ks3;/*构造补齐后的密钥*/key_len=strlen(k);memcpy(key,k,key_len);memset(key+key_len,0x00,LEN_OF_KEY-key_len);/*分析补齐明文所需空间及补齐填充数据*/data_len=strlen(data);data_rest=data_len%8;len=data_len+(8-data_rest);ch=8-data_rest;src=(unsignedchar*)malloc(len);dst=(unsignedchar*)malloc(len);if(NULL==src||NULL==dst){docontinue=0;}if(docontinue){intcount;inti;/*构造补齐后的加密内容*/memset(src,0,len);memcpy(src,data,data_len);memset(src+data_len,ch,8-data_rest);/*密钥置换*/memset(block_key,0,sizeof(block_key));memcpy(block_key,key+0,8);DES_set_key_unchecked((const_DES_cblock*)block_key,&ks);memcpy(block_key,key+8,8);DES_set_key_unchecked((const_DES_cblock*)block_key,&ks2);memcpy(block_key,key+16,8);DES_set_key_unchecked((const_DES_cblock*)block_key,&ks3);printf("beforeencrypt:\n");for(i=0;i<len;i++){printf("0x%.2X",*(src+i));}printf("\n");/*循环加密/解密,每8字节一次*/count=len/8;for(i=0;i<count;i++){memset(tmp,0,8);memset(in,0,8);memset(out,0,8);memcpy(tmp,src+8*i,8);/*加密*/DES_ecb3_encrypt((const_DES_cblock*)tmp,(DES_cblock*)in,&ks,&ks2,&ks3,DES_ENCRYPT);/*解密*/DES_ecb3_encrypt((const_DES_cblock*)in,(DES_cblock*)out,&ks,&ks2,&ks3,DES_DECRYPT);/*将解密的内容拷贝到解密后的明文*/memcpy(dst+8*i,out,8);}printf("afterdecrypt:\n");for(i=0;i<len;i++){printf("0x%.2X",*(dst+i));}printf("\n");}if(NULL!=src){free(src);src=NULL;}if(NULL!=dst){free(dst);dst=NULL;}return0;}结论分析:在使用openssl的时候可能遇到点困难,但是在同学的帮助下,很快的了如何在vc中导入和编程。其实主要还是对三种对称加密算法的了解,尤其是自己编写des算法,对密钥程度和分组长度有了深刻的了解,以及其正确性和平安性的了解。后面的2des和3des的后续学习,数据加密标准和feistel结构。顺便网上查了一下,现在主流的用于商业的是AES算法,因为其密钥长度大,不用考虑穷举攻击,比拟平安,而des主要用于个人了。Des分组和密钥空间小,但是速度快,从代码中就可以看出一二、关键是feistel结构。刚上课的时候对轮函数还不太懂,现在明白其输入输出过程,就是分组后一轮轮加密。但aes不是feistel结构。体会:密码学博大精深,我还没有入门。。通过这次实验对openssl有初步认识,也与openssl中一些函数见了面,实话说对加密解密并未完全搞懂.班级:12级软件八班学号:201100300268姓名:杨环实验四公钥算法实验实验目的〔1〕掌握公钥算法的使用方法〔2〕掌握混合密码体制的工作原理实验内容〔1〕使用RSA算法加解密和签名验证〔2〕使用混合密码体制的文件加密软件准备操作系统Windows7旗舰版64位VS2012实验过程实验原理:公钥密码算法是指一个加密系统的加密密钥和解密密钥是不同的,或者说不能用其中一个推导出另一个。在公钥密码算法的两个密钥中,一个是用于加密的密钥,它是可以公开的,称为公钥;另一个是用于解密的密钥,是保密的,称为私钥。公钥密码算法解决了对称密码体制中密钥管理的难题,并提供了对信息发送人的身份进行验证的手段,是现代密码学最重要的创造。RSA密码体制是目前为止最成功的公钥密码算法,虽然它的平安性还未能得到理论证明,但经过20多年的密码分析和攻击,迄今仍然被实践证明是平安的。RSA算法描述如下:1.公钥选择两个互异的大素数p和q,n是二者的乘积,即n二pq使D(n)=(p-1)(q-1),D(n)为欧拉函数。随机选取正整数e,使其满足gcd(e,(D(n))=1,即e和D(n)互质,那么将(n,e)作为公钥。私钥求出正数d,使其满足ed=1modD(n),那么将(p,q,d)作为私钥。加密算法对于明文M,由C=Memodn,得到密文C。解密算法对于密文C,由M=Cdmodn,得到明文M如果窃密者获得了n,e和密文C,为了破解密文必须计算出私钥d,为此需要先分解n为了提高破解难度,到达更高的平安性,一般商业应用要求n的长度不小于1024位,更重要的场合不小于2048位。实验内容(1)编程实现模n的大数幂乘的快速算法〔gongyue.c〕,随机输入3个较大的数x,e,n,输出计算xemodn(2)编程实现模n求逆的算法(moni.c),计算私钥。(3)编写RSA解密程序(jiemi.c),完成文件data.txt中内容的解密,以字符形式输出明文。系统公开参数为n=18923,e=1261。一、实验准备:1、对RSA公钥密码体制进行分析,它是基于大整数素分解问题,且包含参数:n公开参数,e公钥,以及解密参数p,q,n其中p,q是两个大素数,n是关于p,q的参数,d是解密密钥,由n,e计算所得。2、根据参数分析以及必要的数学根底分析,需要两根本算法:模n的大数幂乘的快速算法;模n求逆的算法。算法实现需要参数导入。二、算法的分步实现根据算法首先对密文数据进行文件导入并存入相应的数组:if((fp=fopen("data.txt","r"))==NULL){printf("cannotopenthefile\n");exit(0);}while(!feof(fp)){fscanf(fp,"%d",&c[i]);i++;}sl=i-1;printf(“openfiledata/n”);for(j=0;j<i-1;j++){printf("%d",c[j]);if(j>0&&j%10==0)printf("\n");}}2、整数的素因子分解①

输入数据n=18923,利用遍历算法寻找n的因子;②

对n的因子数据p,q进行素数检验;for(i=n-1;i>1;i--)if(n%i==0){p1=i;q1=n/i;for(i=2;i<=p1;i++)if(p1%i==0)break;if(i==p1)p=p1;elsecontinue;for(j=2;j<=q1;j++)if(q1%j==0)break;if(j==q1)q=q1;elsecontinue;}③

根据以上算法,可以得数据:p=127,q=149;3、模n求逆算法①根据2所得的p,q进行求解)1(*)1(n=qp求得n=18648;②输入数据e=1261,并根据))((mod1den,并对算法进行分析利用辗转相除的原理实现算法求逆;n1=nn;n2=e;q=n1/n2;r=n1-q*n2;while(r!=0){n1=n2;n2=r;t=b2;b2=b1-q*b2;b1=t;q=n1/n2;r=n1-q*n2;}if(n2==1){d=(b2+nn)%nn;printf("请输出逆元:%d\n",d);}elseprintf("逆元不存在:");}③根据以上算法,可以得数据:d=5797;4、大数幂乘算法①根据导入数据的参数密文c:1242311524724374591430361271096416399927213629调用,以及)(modmncd进行求解m:for(i=0;i<sl;i++){charm1[100];c1=1;j=0;a=c[i];b=d;while(b>0){if(b%2==0){b=b/2;a=(a*a)%n;}else{b=b-1;c1=(c1*a)%n;}}②根据算法可得明文数据:5438136429251457114303574688054588114440三、数字转化为字符①

将所得的数字数据转化为字符数据:for(i=0;i<sl;i++){intj=0;charm1[100];while(m[i]!=0){m1[j]=m[i]%26+'a';m[i]=m[i]/26;j++;}②

将所得的字符数据的方向输出:for(k=j-1;k>=0;k--)printf("%c",m1[k]);printf("%c",'');}③

输出的数据:ibecameinvolvedinanargumbsabo翻开文件密文数据:1242311524724374591430361271096416399927213629请输出n的值:18923请输出p、q的值:127149请输出nn的值:18648请输出e的值:1261请输出逆元:5797请输出明文:5438136429251457114303574688054588114440请输出明文:ibecameinvolvedinanargumbsaboPressanykeytocontinue结果:回忆并掌握了根底知识:使用公钥密码算法可以克服协商对称密钥的困难,也可以用来认证和签名。为了防止公钥算法的速度缺陷,当前普遍使用混合密码体制,即使用公钥算法做鉴别和协商会话密钥,使用对称算法加密批量数据。并了解了公钥密码算法当前仍是RSA算法占统治地位。OpenSSL加密函数库中提供了对RSA等算法的支持。体会:通过本次实验加深了对公钥密码算法的理解,学习了混合密码体制的工作原理、使用RSA算法加解密和签名验证、使用混合密码体制的文件加密。要透彻的理解公钥算法并应用于实际的加解密是一间非常不容易的事,还要在以后不断的学习和实践中提高自己的能力。班级:12级软件八班学号:201100300268姓名:杨环实验五微软CA组件安装和配置实验目的验通过安装和配置虚拟机的WINDOWS2000SERVER操作系统中集成的CA组件,实现浏览器证书和WEB证书的签发,进一步了解微软公司的PKI技术框架,并能够使用该模块,在实际系统中进一步应用(也可以在安装WINDOWS2000SERVER的时候一并选择安装).实验内容1.安装CA组件。2.配置CA组件。3.申请证书、签发证书、下载证书等。软件准备Windows7,Vmwareworkstation10,在虚拟机安装的MicrosoftWindows2000Server系统。实验过程指导书:1.单击“开始”,指向“设置”,然后单击“控制面板”。2.双击“添加/删除程序”。3.单击“添加/删除Windows组件”。4.单击“下一步”。5.单击“证书效劳”复选框,将其选中,然后单击“下一步”。6.单击相应的CA类型。可用选项右侧显示每个颁发机构的说明。7.如果要更改默认密码设置,请单击“高级选项”复选框,将其选中。只有在您知道确实需要这么做时,才选中此复选框。8.单击“下一步”。9.如果选中了“高级选项”复选框,系统将提示您更改“公钥和私钥对”选项。如果未选中“高级选项”复选框,那么继续执行下一步。10.显示证书颁发机构标识信息窗口。填入相应的站点和组织信息。请注意,CA信-29-29息非常重要,因为要用它来标识所创立的CA对象。完成后单击“下一步”。11.系统会提示您定义证书数据库的位置、配置信息和“证书撤消列表”(CRL)。企业CA始终将其信息〔包括CRL〕存储在ActiveDirectory中。Microsoft建议您选中“共享文件夹”复选框。这样就指定了存储CA配置信息的文件夹位置。所有CA配置信息都应该存储在一个文件夹中。12.单击“下一步”。13.如果IIS处于运行状态,请将其关闭。单击“确定”以停止IIS。安装Web组件之前必须先停止IIS。如果没有安装IIS,那么继续执行下一步。14.安装次级CA时,您需要:单击“浏览”,找到联机CA,或者,如果您的请求是定向到专用CA或无法从网络访问的CA,那么需要单击“将申请保存到一个文件”。15.等待安装完成。16.单击完成。验证“证书效劳器”安装:要验证安装,您可以使用以下任一方法:〔1〕在命令提示下键入netstart,确认“证书”效劳正在运行。〔2〕申请证书,方法是单击“开始”,指向“运行”,键入mmc,单击“确定”,在“控制台”菜单上单击“添加/删除管理单元”,添加证书管理单元,单击要管理的我的用户帐户,右键单击个人文件夹,单击所有任务,然后单击“申请新证书”。“证书申请向导”应该启动。〔3〕对于独立CA,您可以使用InternetExplorer5连接到“://效劳器名/CertSrv”〔其中效劳器名是效劳器的名称〕,以此来申请新证书。步骤:1.添加证书效劳2.验证证书安装:3.在宿主机的Windows2000系统下使用ie浏览器访问证书效劳器申请证书4.提交后可以查看CA效劳器管理员对于证书请求的管理情况CA效劳器管理员可以管理CA请求5.查看证书信息6.管理员同意申请,那么可以下载证书和证书链7.在IE中导入证书到受信任的根证书中心8.查看下载的证书内容实验结束。实验结果按照实验指导书过程完成了CA组件的安装,第一次实验微软证书的申请和安装整个流程,了解微软PKI技术的框架,对SSL功能有更多了解。以及证书拥有的信息。实验体会Windows2000这个系统太古老了,对操作不太熟悉,证书是我们经常使用的东西,比方12306网站,它就要求我们必须下载它的证书并安装才可以购票,第一次自己给自己颁发了证书,证书原来是这么小一个文件啊,感觉学以致用。步骤与要求班级:12级软件八班学号:201100300268姓名:杨环实验八平安电子邮件的配置和使用实验目的验利用前面实验中的CA系统,颁发平安电子邮件证书,并在一个支持电子邮件证书的邮件客户端系统中安装配置,实现加密和签名电子邮件系统。实验内容1.在浏览器中加载电子邮件证书。2.配置OUTLOOK邮件客户端系统,实现签名电子邮件和加密签名电子邮件的发送与接收。软件准备Windows7,Vmwareworkstation10,在虚拟机安装的MicrosoftWindows2000Server系统。实验过程指导书:1.在OutlookExpress中设定邮件,首先,翻开OutlookExpress,然后选择菜单中的“工具”菜单中的“帐户”选项,出现“Internet帐户”对话框,我们点击右边的“添加”按钮,选择“邮件”选项。2.OutlookExpress中设置邮箱与数字证书的绑定在OutlookExpress6.0单击菜单中的“工具”,选择“账号”,选取“邮件”选项卡中的用于发送平安电子邮件的邮件账号,然后单击“属性”。3.在“签名证书”项后,点击“选择”按钮,可以看到我们在EJBCA系统中申请的证书。选择读者的数字证书,点击“确定”完成邮箱与证书的绑定,读者也可以点击“查看证书”,了解自己证书的详细信息。4.发送签名的电子邮件,发送加密邮件前必须先获得接收方的数字证书,读者可以首先让接收方给读者发一份签名邮件来获取对方的数字证书实验步骤:1.申请电子邮件证书2.颁发证书3.导出电子邮件证书并安装在outlookexpress中设置邮件5.OutlookExpress中设置邮箱与数字证书的绑定6.编写测试邮件,发送带有数字签名的电子邮件,如下列图在接受方翻开邮件实验结束。1.5实验结果邮件签名是指:利用PKI的私钥签名技术,以电子邮件证书作为私钥的载体,邮件发送者使用自己数字证书的私钥对电子邮件进行数字签名,邮件接收者通过验证邮件的数字签名以及签名者的证书,来验证邮件是否被篡改,并判断发送者的真实身份,确保电子邮件的真实性和完整性。1.6实验体会比ca实验难一些,需要的操作多了许多,总的来说顺利完成了,也深刻了解了邮件数字签名的意义。实验九平安WEB访问的配置和使用1.1实验目的利用前面实验中的CA系统,颁发浏览器SSL客户端证书以及WEBSERVER证书,并在一个支SSL平安连接的系统中安装配置,实现基于数字证书平安访问的WEB系统。1.2实验内容1.申请并获取安装浏览器SSL-CLIENT证书。2.申请并获取安装IISWEB效劳器证书。3.配置WEB效劳器,实现SSL单向认证WEB登录和SSL双向认证WEB登录。1.3软件准备Windows7,Vmwareworkstation10,在虚拟机安装的MicrosoftWindows2000Server系统。1.4实验过程〔1〕web证书申请浏览器里输入:///certsrv,再出现的界面里依次点击“申请一个证书”——“web浏览器证书”填写信息,然后点击“提交”〔2〕证书颁发翻开“证书颁发机构”——“挂起的申请”可以查看已经申请的证书,如下列图:然后,右键——“所有任务”——“颁发”,并查看“颁发的证书”确认颁发成功。〔3〕下载与安装浏览器里输入

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论