随着近年来开始逐渐成熟的生物特征识别技术的发展,将其应用在信息安全上,利用生物特征的惟一性、稳定性等特点与加密算法融合,为网络信息安全提供保障。那么我们利用加密技术中著名的ECC加密算法,设计了指纹信息加密方案,在使用指纹信息作为身份认证密码的系统中,可使指纹信息的传输更安全可靠。
一、ECC加密算法
目前常用的公钥密码体制根据其所依据的难题,一般分为两大类:大整数分解问题类和离散对数问题类。ECC加密算法可归为离散对数类。ECC加密算法来源于对椭圆曲线的研究,在椭圆曲线加密(ECC)中,利用即定义在有限域上的椭圆曲线。其方程如下:
y2=x3+b(mod p)
这里p是素数,a和b为两个小于p的非负整数,它们满足:
4a3+27b2(mod p)≠0, x,y,a,b∈Fp
则满足y2=x3+ax+b(mod p)的点(x,y)和一个无穷点O就组成了椭圆曲线E。
椭圆曲线离散对数问题ECDLP定义如下:在给定椭圆曲线E,选取椭圆上一个点P,在给定整数k的情况下,进行如下的点积运算。
Q=kp=p*p*p...*p_(k个p)
其中:点P1(x1,y1)和点P2(x2,y2)的点积运算R(x,y)=p1*p2定义如下:
x=t2-x1-x2 _ y=t(x1-x)-y1
当P1≠P2时,t=(y1-y2)/(x1-x2) ,当P1=P2时 t=3(x12+a)/2y
可以证明,已知k和P计算Q比较容易,而由Q和P计算k则比较困难,至今没有有效的方法来解决这个问题,这就是椭圆曲线加密算法原理之所在。我们把点P称为基点(base point),k(k<n, n为基点P的阶)称为私有密钥(private key), Q称为公开密钥(public key)。
ECC加密算法的安全性基于椭圆曲线离散对数问题的难解性。从目前的研究成果来看,椭圆曲线上的离散对数问题比有限域上的离散对数似乎更难处理。迄今还没有出现类似于解有限域上离散对数问题的index-calculus算法来解一般椭圆曲线上的离散对数问题。这就意味着可以在ECC加密算法中采用较小的数以达到与使用更大的有限域同样的安全性。
二、ECC加密算法在指纹加密技术中的应用
1、采集端与认证端相分离的系统设计方案
用户指纹采集端与认证端分离、两者之间利用Internet进行特征传输是基于指纹识别系统的最大特点。在用户端首先通过指纹提取仪将用户活体指纹采集下来,以数字图像的形式传输给用户端计算机,再进行相应的预处理及特征提取操作,将指纹图像转换成特征序列,最后经数字加密后通过企业Internet传输给认证端,进而完成相应的解密、特征检索及对比,并将比对结果返回给用户端,从而实现网络认证功能。
采集端与认证端相分离的系统设计方案用户指纹采集端与认证端分离、两者之间利用Internet进行特征传输是基于指纹识别系统的最大特点。在用户端首先通过指纹提取仪将用户活体指纹采集下来,以数字图像的形式传输给用户端计算机,再进行相应的预处理及特征提取操作,将指纹图像转换成特征序列,最后经数字加密后通过企业Internet传输给认证端,进而完成相应的解密、特征检索及对比,并将比对结果返回给用户端,从而实现网络认证功能。
2、系统通信过程中的指纹信息加密通信过程
应用服务器端的应用程序和客户端的客户程序利用椭圆曲线进行加密通信的过程。
(1)应用程序选定一条椭圆曲线Ep(a,b),并取椭圆曲线上一点,作为基点P。
(2)应用程序选择一个私有密钥k,利用点积运算生成公开密钥Q=kP。
(3)应用程序将Ep(a,b)和点Q,P传给用户。
(4)客户程序接到信息后,将待传输的指纹特征信息编码到Ep(a,b)上一点M,并产生一个随机整数r (r<n)。
(5)客户程序计算加密信息C1=M+rQ;C2=rP。(K=Q) 。
(6)客户程序将C1、C2传给应用程序。
(7)应用程序接到信息后,计算C1-kC2,结果就是点M。因为C1-kC2=M+rQ-k(rP)=M+rQ-r(kP)=M。再对点M进行解码就可以得到指纹特征信息。
3、指纹加密的安全性
加密的强度主要依赖于密钥长度和保密性,但黑客破解加密信息,一般是针对所设的密码,而不是去穷举密钥。
一般的加密功能是通过密码来实现的,而密码的设置一般不超过八位数字,于是存在密码易被窃取、破译和遗忘的问题。因此,加密的安全性往往取决于密码的安全性,而并不是加密算法的复杂性。但是,如果我们用的密码难以穷举,密钥长度又足够长,则其安全性就可得到保障。
这里,指纹加密信息采用256bit的指纹特征值作为加密信息,则其可能的所有组合就有2256种。加上指纹的惟一性,对涉密数据访问的用户身份也进行了控制,达到了双重保险。
ECC加密算法在指纹加密技术中的应用,适合使用指纹信息作为身份认证密码的通信系统中,它简单、方便、安全、快捷。随着计算机技术和信息处理与指纹识别技术的不断进步,指纹识别技术得到了广泛的应用,保障指纹信息传输过程安全可靠的指纹信息加密技术必将成为信息加密技术的重要应用领域。
小知识之加密算法:
数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。 该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。