与传统考试模式相比,网络考试渗入了更多的技术环节,对实现安全性的途径方法提出了更高的技术要求。所谓网络考试系统的安全性,是指通过必要的组织环节和技术手段,保障考试过程的流畅性,保证考试成绩的客观性和公正性。本文通过对基于校园网考试系统的深入分析,提出了一种安全模式,采用身份鉴别,动态密钥分配以及运用最新的高级加密标准(AES),全方位的保证了各个终端机与WEB服务器之间数据传输的机密性、完整性、一致性和不可抵赖性。

一、网络考试系统加密技术

基于校园网网络考试的大体网络拓扑结构如图1所示。

网络考试系统加密技术

它可以进一步抽象为图2所示。其中终端机可以是学生机,教师机或管理员机。

网络考试系统加密技术

1、各终端机的身份鉴别及密钥分配

各终端机通过TCP/IP协议,经校园网与Web服务器交互。在这里采用公钥认证技术来对终端机进行身份鉴别,用KDC(Key Distribution Center)密钥分发中心来分配会话密钥。把Web服务器分割成身份认证服务器和考试系统服务器。身份认证服务器主要进行消费终端的身份鉴别和密钥分配;考试服务器进行考试相关数据处理,它与终端机传输的数据文件采用AES加密。其结构如图3所示。

网络考试系统加密技术

2、考试系统通信协议

考试系统所基于的环境假设为:校园网上的通信包可被渎取,修改以及任意插入。在终端机和身份认证服务器之间采用公开密钥加密体制(这里使用椭圆曲线加密)来进行身份认证和密
钥分配。—个基本的流程为:终端机在重新启动时到身份认证服务器签到(进行认证,确定其为学生机,教师机还是管理员机,并重新分配会话密钥)。身份认证服务器与它进行两次交互
后确定其身份,并为其分配与考试服务器通信的会话密钥。具体步骤描述为:

(1)终端机用身份认证服务器的公钥加密自己的ID(iden-tity身份)号,发送给身份认证服务器,请求认证。

(2)身份认证服务器用自己的私钥解密,并在其数据库中查找终端机,确认为合法的ID号后,生成一个票据(包括终端机的标识,—个时间戳及其它信息),然后分别用自己的公钥和
终端机的公钥加密,并把这两条消息发送给终端机。

(3)终端机收到后,用自己的私钥解密其中—个,并加上一个标识,再用身份认证服务器的公钥加密,然后,把这两份票据发送给身份认证服务器。

(4)身份认证服务器分别解密这两份票据并对照,若相同,则通过验证,并在数据库中查询确定出这台终端机为学生机,教师机还是管理员机。并使用随机密钥生成器产生终端机与考试服务器通信的密钥,存入本地数据库供考试服务器查用,然后用终端机的公钥』JU密此密钥后发送给终端机。

(5)考试服务器和终端机就在此会话密钥下,用AES加密算法进行数据文件加密和解密。

3、公开密钥加密算法

在进行终端机的身份认证和密钥分配时,使用了公开密钥加密算法,公开密钥是这样设计的:用作加密的密钥不同于用作解密的密钥,而且解密密钥不能根据加密密钥计算出来(至少在
合理假定的长时间内)。之所以叫做公开密钥算法,是因为加密密钥(公钥)能够公开,即陌生者能用加密密钥加密信息,但只有相应的解密密钥(私钥)才能解密信息文件。在设计的系统中采用椭圆曲线加密算法(EEC)。椭圆曲线跟RSA加密算法比起来有短的密钥长度和计算时间开销少等特点,所以非常适合考试系统这种对时实性要求较高的系统。它基于的原理为:椭圆曲线可以定义在任意的有限域上,主要在有限域Zp(p为素数)和特征为2的有限域上。

椭圆曲线加密体制的加密原理基于有限域上椭圆曲线离散对数问题(ECDLP)的困难性。下面以定义在奇特征域上的椭圆曲线为例,说明椭圆曲线加密体制的加密原理。设GF(p)是一个P≠2,3的奇特征有限域,定义在GF(p)上的椭圆曲线是指满足Weierstrass方程:y2+x3+ax+b(a,b∈GF(p),且满足4a3+27b2≠0)的所有解,(x,y)∈GF(p)*GF(p)与无穷远点O构成的非空集合。设尺是椭阋曲线E(x,b)(GF(p))上的一个点,则E上的椭圆曲线离散对数问题为:

给定一点Q∈E(a,b)(GF(p)),求解整数X(x∈GF(p)),使x*R=Q。如果这样的数存在,就是椭圆曲线离散对数。也就是说选取该椭圆曲线上的一个点R作为基点,给定一个整数x,求解x*R=Q是容易的。但是要从p点和R点推导出整数茁,则是非常困难的。基于椭圆曲线的加密体制操作都包含由一些椭圆曲线域参数所确定的有限域上椭圆曲线的算术运算。通常,将有限域上椭圆曲线域参数r定义为一个六元组:T=(p,a,b,G,n,h)。其中p,a,b的意义同上;G是椭圆曲线上的一个基点,G≠D,使n*G=D的最小正整数,l称为点G的阶,记为n=ord(G)。整数h是余因子,h=#E( GF(p)//n。由以上参数可以唯一地确定一个椭圆曲线。在[1,n-1]之间随机地确定一个整数d,计算Q=d*G,由此就确定了密钥对(d,Q),其中d是私钥,需要保密,(1是公钥,可以公开。而六元组T也要完全公开。利用椭恻曲线进行加密通信的过程如下。

(1)用户A选定一条椭凼曲线Ep(a,b),并取椭圆曲线上一点,作为基点G。

(2)用户A选择一个私有密钥d,并生成公开密钥Q=d*G。

(3)用户A将Ep(a,b)和点Q,G传给用户B。

(4)用户B接到信息后,将待传输的明文编码到Ep(a,b)上一点M,并产生一个随机整数(r<n)。

(5)用户B计算点C1=M+r*Q,C2=r*G。

(6)用户B将C1、C2传给用户A。

(7)用户A接到信息后,计算C1-d*C2,结果就是M,因为C1一D*C2=M+r*Q一d(r*G)=M+r*Q-R(d*G)=M。在这个加密通信中,如果有一个偷窥者H,他只能看到E(a,b)、Q、G、C1、C2而通过Q、C求d或通过C1、C2、G求r都是相当困难的。因此,H无法得到A、B间传送的明文信息。

4、高级加密标准(AES)

20世纪70年代中期由美国人开创的数据文件加密标准(DES)成为一个世界范围内的标准已经20多年了。由于科学技术的不断飞速发展,由于在密码分析学领域出现了差分密码分析,线性密码分析等一系列方法,DES以及它的替代算法3-DES的安全性正面临严峻的挑战。美国国家标准和技术研究所(NISrr)于1997年初发起并组织了在全世界广泛征集新的加密标准算法的活动,200 1年最终Rijndael算法成为21世纪新的高级加密算法AES。但许多企业似乎并没有引起高度的重视,在他们的新产品中还在使用DES或3-DES。对Rijndael算法进行了深入的研究,并把这种全新的算法应用到考试系统的数据IJU密中来。PLijndael是具有可变分组长度和可变密钥长度的密钥迭代分组密码,包含了轮变换对状态的重复作用。其中迭代轮数依赖于分组长度和密钥长度。为了实现方便和安全性的考虑,选取分组长度和密钥长度都为固定的128 bit,轮数为10轮。它加密的伪代码如下:

Cipher( State, CiplierKey)

KeyExpunsion( CipherKey, ExpandecIKey);

AddRounkey( state ,ExpandedKey[0]);

For( i=1;i<10;i++)

{

Round(State,ExpandedKey[il);

FinaIRound( State, ExpandedKey[16]);

State是明文分组128 byte通常把它表示成4×4的表格形式,称作状态字节(16 byte),如表1所示。

网络考试系统加密技术

CiperKey是通信密钥也为128 bit,它经过一个密钥扩展函数KeyExpansion生成轮密钥。AdcIRounKey就是初始密钥加法即明文state与0轮密钥ExpandedKey[0]进行异或。接下来就是进行10轮的轮变换。轮变换由4个变换组成,其伪代码如下:

Round( State, LxpandeclKey[i])

SubBytes( State);

ShiftRows( State);

MixColumns( State);

AddRoundKey( State, ExpandedKey[i]);

步骤SubBytes是Rijnclael密码中唯一的非线性变换。它是一个作用在状态字节上的砖匠函数,其定义如下:

S[a]=f(g(a)),其中g(a)是伽罗华域GPr( 2s)上的映射:g:→a,a-1是一个仿射映射。其定义如下式,a是状态字节上的一个8 bit字节:

网络考试系统加密技术

步骤ShiftRows是一个字节换位,它将明文字节按照不同的偏移量进行循环移位,按以下函数变换。A(r,c)=A(r,c+4-r mod 4)。步骤MixColumns是作用在状态字节列(4 byte)上
的一个线性变换:A(O,C)=((02}A(O,C))+((03}*A(1,C))+A(2,C)+A(3,C);A(1,C)-A(0,C)+({02}*A(1,C))+({03}*A(2,C))“(3,C);A(2,c)*(O,C)(1,C)+((02)M(2,C))+{03}*A(3,C));A(3,C)=({03}*A(0,C))+A(1,C)十A(2,C)十((02)M(3,∞)。其中运算+和术分别为有限域GF(28)中的加法运算和乘法运算。在GF( 2g)中加法运算等同于异或运算,乘
法运算为既约多项式XS+X4+X3+X+1下的模乘法。

步骤AddRoundKey是密钥加法,及明文分组字节与轮密钥进行异或运算。1 0轮的轮变换之后,就是FinaIRound,它如下定义:

FinclulRouncl( State.ExpandedKey[10])

{

SubByte(States);

ShiftRows( States);

AdcIRoundKey(State, ExpandedKey[10])

}

它其实与轮变换几乎是相l司的,只是少了MixCohunns(State)操作。Rijndael与DES -样,是对称密码算法,其解密形式与加密形式具有很大的相似。

二、网络考试系统加密技术安全评估

可以从以下几个方面来分析这个系统的安全性。

(1)在密钥分配方案中采用公开密钥算法椭圆曲线算法EEC(Elliptic CLlrves Cryptography),它的安全性能相当高。当前流行的公钥密码系统的数学基础主要有以下3类:

①因数分角牟问题(IFP),如RSA,Rabin-Williams算法等。

②普通离散对数问题(DLP),如DSA算法。

③椭恻曲线离散对数问题(ECDIP),如ECC算法。

在相同条件下RSA和DSA大致相当,但ECC算法所需的密钥长度远比RSA和DSA算法低(见表2和图4)。

网络考试系统加密技术

由表2可以看出,106 bit ECC与512 bit RSA、DSA有相同的安全强度;160 bit ECC与1 024 bit RSA、DSA有相同的安全强度;而600 bit ECC则与21 000 bit RSA、DSA具有相同的安全强度。所以ECC和其它几种公钥系统相比,其抗攻击陛具有绝对的优势,具有单位比特最高强度的安全性。这就有效地解决了为了提高安全强度必须增加密钥长度所带来的工程实现难度的问题。

(2)由于每当终端机重新启动时会到身份认证服务器签到,从而变换数据通信密钥(此密钥为数据文件加密算法AES中使用的密钥),使密码攻击变得更加困难。

小知识之网络考试系统

网络考试是延伸了传统考试考场的涵义,它利用网络的无限广阔空间,把考场从学校延伸到了家中、计算机房、办公室及其它任何网络所覆盖的区域,并可随时对考生进行考试,加上数据库技术的利用,使考试变得更公平公正、更具权威性和可靠性。网络考试实现了传统考试与现代科技的完美结合,符合现代教育体制的要求,代表着现代教育考试的发展方向。