电子商务安全导论实践试题及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子商务安全导论实践试题及答案
1.简单的加密算法的代码编写(凯撒密码)
2.电子商务安全认证证书的网上申请以及使用说明
3.你使用的机器上本地安全设置中的密码策略如何
4.说明你所使用的机器上的公钥策略基本情况
5.本机IP安全策略中的安全服务器(要求安全设置)属性以及基本情况
6.本机IP安全策略中的客户端(只响应)属性的基本情况
7.本机IP安全策略中的服务器(请求安全设置)属性和基本情况如何(编辑规则常规高级方法)
8.说明智能卡是是如何进行用户鉴别的
9.本机上证书的使用情况
10.上网查询江苏省电子商务安全证书的基本情况
11.说明木马在win.ini条件下的症状如何
12.举例说明你所使用的个人防火墙的功能项目以及使用方法
13.介绍一种你所熟悉的黑客攻击技术
14.你的手头没有什么专用安全软件工具如何手动检查系统出现的安全问题
15.查阅有关资料分析极速波I-WORM/ZOBOT 的技术方法
解答
《一》简单的加密算法的代码编写(凯撒密码)
凯撒密文的破解编程实现
凯撒密文的破解编程实现
近来安全的发展,对密码学的研究越来越重要,虽然我们现在大多采用的是
非对称密码体制,但是同时由于处理及其它的一些重要原因,对传统密码仍然
是在大量的使用,如移位,替代的基本思想仍然没有改变,我个人认为,将来
的很长时间内,我们必将会花大量的时间对密码学进行研究,从而才能促进我
们的电子政务,电子商务的健康发展,下面我要谈的是对一个古典密码-----
凯撒(kaiser)密码的的解密,也就是找出它的加密密钥,从而进行解密,由于
它是一种对称密码体制,加解密的密钥是一样的,下边简单说明一下加解密
加密过程:
密文:C=M+K (mod 26)
解密过程:
明文:M=C-K (mod 26)
详细过程请参考相关资料
破解时主要利用了概率统计的特性,E字母出现的概率最大。
加密的程序实现我就不说了,
下面重点说一下解密的程序实现:我是用C写的,在VC6.0下调试运行正确
#include"stdio.h"
#include"ctype.h"
#include"stdlib.h"
main(int argc ,char *argv[])
{
FILE *fp_ciper,*fp_plain; //密文与明文的文件指针
char ch_ciper,ch_plain;
int i,temp=0; //i用来存最多次数的下标
//temp用在求最多次数时用
int key; //密钥
int j;
int num[26]; //保存密文中字母出现次数
for(i = 0;i < 26; i++)
num = 0; //进行对num[]数组的初始化
printf("======================================================\n"); printf("------------------BY 安美洪design--------------------\n");
printf("======================================================\n");
if(argc!=3)
{
printf("此为KAISER解密用法:[文件名] [密文路径] [明文路径]\n");
printf("如:decryption F:\ciper_2_1.txt F:\plain.txt\n");
} //判断程序输入参数是否正确
if((fp_ciper=fopen(argv[1],"r"))==NULL)
{
printf("打开密文出错!解密失败\n");
exit(0);
}
while((ch_ciper=fgetc(fp_ciper))!=EOF)
switch(ch_ciper)
{
case 'A':num[0]=num[0]+1; break; //统计密文各字母出现次数 case 'B':num[1]=num[1]+1; break; //与上同,下边一样
case 'C':num[2]=num[2]+1; break;
case 'D':num[3]=num[3]+1; break;
case 'E':num[4]=num[4]+1; break;
case 'F':num[5]=num[5]+1; break;
case 'G':num[6]=num[6]+1; break;
case 'H':num[7]=num[7]+1; break;
case 'I':num[8]=num[8]+1; break;
case 'J':num[9]=num[9]+1; break;
case 'K':num[10]=num[10]+1;break;
case 'L':num[11]=num[11]+1;break;
case 'M':num[12]=num[12]+1;break;
case 'N':num[13]=num[13]+1;break;
case '0':num[14]=num[14]+1;break;
case 'P':num[15]=num[15]+1;break;
case 'Q':num[16]=num[16]+1;break;
case 'R':num[17]=num[17]+1;break;
case 'S':num[18]=num[18]+1;break;
case 'T':num[19]=num[19]+1;break;
case 'U':num[20]=num[20]+1;break;
case 'V':num[21]=num[21]+1;break;
case 'W':num[22]=num[22]+1;break;
case 'X':num[23]=num[23]+1;break;
case 'Y':num[24]=num[24]+1;break;
case 'Z':num[25]=num[25]+1;break;
}
fclose(fp_ciper);
for(i=0;i<26;i++)
if(num>temp)
{
j=i; // 求出最大次数的下下标
temp=num;