信息安全概论课程设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

电子科技大学电子工程学院

课程设计

(一次性口令设计)

课程名称:信息安全概论

任课老师:熊万安

专业:信息对抗技术

小组成员:

张基恒学号: 800 14

一、【实验目的】

(1)了解口令机制在系统安全中的重要意义。

(2)掌握动态生成一次性口令的程序设计方法。

二、【实验要求】

(1)编写一个一次性口令程序

(2)运行该口令程序,屏幕上弹出一个仿Windows窗口,提示用户输入口令,

并给出提示模式。

(3)用户输入口令,按照一次性算法计算比较,符合,给出合法用户提示;否

则给出非法用户提示。

(4)再一次运行口令程序,如果输入与第一次同样的口令,系统应当拒绝,提

示非法用户。每次提示和输入的口令都是不一样的。

(5)写出设计说明(含公式、算法,随机数产生法,函数调用和参数传递方式)。

三、【实验设备与环境】

(1)MSWindows系统平台

(2)设计语言:C语言

四、【实验方法步骤】

(1)选择一个一次性口令的算法

(2)选择随机数产生器

(3)给出口令输入(密码)提示

(4)用户输入口令(密码)

(5)给出用户确认提示信息

(6)调试、运行、验证。

五、【程序流程和功能】

密码系统设计为两个部分:一个服务器上的密码系统和一个用户手持的密码器。

程序使用两重认证,分别在于认证密码系统用户的真伪和认证密码生成器的真

伪。

使用方法为:a )用户分别登陆服务器和密码器,这分别需要两个用户自己掌握

的密码。b )登陆服务器后,服务器自动生成一个 9位数随机码。 c) 用户将随机码输入手持的密码器,由密码器生成一次性密码;同时,服务器用相同的算法

生成该一次性密码。 d) 用户在服务器上输入一次性密码,如果密码吻合,则可

以进入功能性页面操作。

系统的优点在于:a )将两种密码按网络和物理分开,两者由相同的一次性密码

算法相关,但是密码器本身没有能力生成关键的 9位随机码。b )用户只能通过

密码器获得最终的一次性密码,而密码器本身和密码器的密码由用户自己掌握,

从物理上隔绝了密码攻击的风险。

由于能力问题和演示方便,我将系统简化,并且把两个密码部分放在一个程序

里模拟。

设计流程为:

程序流程为:

六、【实验结果截图】

1 、用户登录

2 、密码验证

3 、生成 9 9 位随机码

4 、随机码输入验证

5 、生成一次性密码

七、【心得体会】

通过本次课程设计,我对密码算法特别是一次性密码有了更深的理解,对密码安全的实现有了新的体会。通过结合课上知识和生活实际设计密码系统并用 C C 程序实现,我对这么课的理解有了进一步加深。同时通过课程设计加强了我运用用C 语言编写程序解决实际问题的思维能力。

由于个人能力问题,我设计的系统不能真正实现,我编写的程序和密码算法也相对简单,密码的保密性还不够。但相信随着能力提高,我最终可以实现这一设计。

附源程序:

#include<>

#include<>

#include<>

#include <>

#include <>

void INI()

{

inta;

intp=920323;

printf("USERNAM:LNJLNJ\n");

printf("PASSWORD:");

scanf("%d",&a);

if (a==p)

{

printf("验证正确\n");

printf("\n");

}

else

{

printf("输入错误,还有两次机会\n"); printf("PASSWORD:");

scanf("%d",&a);

if(a==p)

{

printf("验证正确\n");

printf("\n");

}

else

{

printf("输入错误,还有一次机会\n"); printf("PASSWORD: ");

scanf("%d",&a);

if(a==p)

{

printf("验证正确\n");

printf("\n");

}

else

{

printf("输入错误");

exit(0);

}

}

}

return 0;

}

randam1(unsigned int r )

{

srand((unsigned)time(NULL));

r = rand()%0+0;

printf("随机码为:%d\n",r); printf("\n");

returnr;

}

randam2(unsigned int q )

{

time_t nowtime;

struct tm*timeinfo;

time(&nowtime );

timeinfo = localtime(&nowtime ); inta, b,c,d,ra;

a=timeinfo->tm_sec;

b=timeinfo->tm_min;

c=timeinfo->tm_hour;

相关文档
最新文档