基于fpga的身份认证智能卡设计

上传人:kms****20 文档编号:40566658 上传时间:2018-05-26 格式:DOC 页数:6 大小:73KB
返回 下载 相关 举报
基于fpga的身份认证智能卡设计_第1页
第1页 / 共6页
基于fpga的身份认证智能卡设计_第2页
第2页 / 共6页
基于fpga的身份认证智能卡设计_第3页
第3页 / 共6页
基于fpga的身份认证智能卡设计_第4页
第4页 / 共6页
基于fpga的身份认证智能卡设计_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《基于fpga的身份认证智能卡设计》由会员分享,可在线阅读,更多相关《基于fpga的身份认证智能卡设计(6页珍藏版)》请在金锄头文库上搜索。

1、基于 FPGA 的身份认证智能卡设计身份认证是保密通信和信息安全的基础。通过身份认证机制可以鉴别网络事务中涉及到的 各种身份,防止身份欺诈,保证通信参与各方身份的真实性,从而确保网络活动的正常进 行。因此,身份认证一直是网络安全研究领域的前沿技术。目前使用的身份认证技术可以分为三种类型:基于所知、所有以及基于个人生物特征 的认证。认证方式包括口令认证、智能卡认证以及指纹、虹膜等生物认证方式。口令认证是最为广泛的一种认证方式,从普通的计算机登录系统到网络邮件系统都采 用这种方式。但是,口令认证的安全性比较低,容易被他人盗用。基于指纹、虹膜的生物 身份认证方式是生物技术在信息安全领域的应用,具有普

2、遍性和唯一性的特点,但基于生 物识别设备成本和识别技术水平的考虑,目前还难以得到大规模普及。基于智能卡的身份 认证方式结合了硬件技术和身份认证技术的优点,提供安全可靠的认证手段,是目前迅速 发展的一种认证方式。本文提出了一种基于 FPGA 的身份认证智能卡的设计方案。在 FPGA 内部实现身份认证相关的数据加密运算,加密算法采用128 bit Rijndael 算法。相关的身份信息和加密运算所需要的常量数据均存放在 FLASH 存储器中,加密后的数据通过 PCI 总线传给计算机系统。1 身份认证系统概述身份认证是指通信双方可靠地验证对方的身份。参与身份认证的双方根据功能的不同 分别被称为认证方

3、和被认证方。被认证方向认证方发起认证请求,同时提交自己的身份信 息。认证方响应认证请求,检验被认证方提交的身份信息,并将认证结果返回被认证方。 在这个过程中身份信息一般是通过网络传递。由于网络开放性的特点,使得身份信息可能 在传递的过程中被泄露。因此一般不直接传递被认证方的身份信息,而将身份信息加密后 再传递,这样即使加密信息被攻击者截获,攻击者也无法解密信息获得被认证方的身份信 息。这就要求在身份认证中所使用的密码算法具有足够高的安全强度。Rijndael 算法是美国国家标准和技术研究所(NIST)推荐的高级数据加密标准(Advanced Encryption Standard),是一种分组

4、密码算法,可以根据加密等级的不同采用128 bit、192 bit 和256 bit 三种不同的分组长度,具有易于软硬件实现、安全性能好、效率高和灵活等优点。Rijndael 算法中主要运算模块都是规则的逻辑运算,如置换,循环移位,多轮迭代和模2加等,适合在逻辑资源丰富的 FPGA 中实现。以 ByteSub 置换为例,该模块是Rijndael 算法中唯一的非线性变换部件,是决定算法安全性的关键。利用软件实现要进行大量矩阵运算,而在 FPGA 中可以用地址线译码直接在 FPGA 内部的 LUT(Look Up Table)逻辑中查表完成。基于智能卡的身份认证系统认证主要流程均在智能卡内部完成。

5、相关的身份信息和中 间运算结果均不会出现在计算机系统中。为了防止智能卡被他人盗用,智能卡一般提供使用者个人身份信息验证功能,只有输入正确的身份信息码(PIN),才能使用智能卡。这样即使智能卡被盗,由于盗用者不知道正确的身份信息码仍将无法使用智能卡。智能卡和口令 技术相结合提高了基于智能卡的身份认证系统安全性。基于智能卡的身份认证系统中采用共享密钥的身份认证协议。假设认证方和被认证方共享一个密钥 K。身份认证流程如下:(1) 被认证方向认证方发起认证请求,并提供自己的 IDi。(2) 认证方首先查找合法用户列表中是否存在 IDi,如果不存在则停止下面的操作,返回被认证方一个错误信息。如果存在 I

6、Di,则认证方随机产生一个128 bit 的随机数 N,将N 传给被认证方。(3) 被认证方接收到128 bit 的随机数 N 后,将 N 送入智能卡输入数据寄存器中,发出身份信息加密命令,智能卡利用存储在硬件中的共享密钥 K 采用 Rijndael 算法对随机数N 进行加密,加密后的结果存放在输出数据寄存器中。(4) 被认证方从智能卡输出数据寄存器中取得加密后的数据,传给认证方。认证方同样通过智能卡完成共享密钥 K 对随机数 N 的加密,如果加密结果和被认证方传来的数据一致则认可被认证方的身份,否则不认可被认证方的身份。这个过程实现了认证方对被认证方的单向认证。在某些需要通信双方相互认证的情

7、况下,通信双方互换角色再经过一遍同样操作流程就可完成双向认证。由于每次认证选择的 随机数都不相同,因此可以防止攻击者利用截获的加密身份信息进行重放攻击。2 智能卡硬件结构身份认证智能卡主要包括 FPGA、PCI 9054接口芯片和 FLASH 存储器三部分,以及电源管理、时钟和配置芯片等外围设备。基于 FPGA 的 PCI 接口身份认证智能卡的硬件结构如图1所示。图1身份认证智能卡硬件结构图FPGA 主要实现 Rijndael 算法中置换、循环移位,多轮迭代和模2加等运算模块,同时提供 PCI9054和 FLASH 存储器的数据接口控制逻辑以及用户身份信息码验证模块。PCI 9054主要实现

8、PCI 总线和 FPGA 之间数据交换。FLASH 存储器芯片 MX29LV800B 用于存放身份认证过程中所使用的加密密钥以及用户身份特征信息如 ID 值。E2PROM 93CS56为 PCI 9054的配置芯片,EPCS4为 Altera 公司的 Cyclone 系列 FPGA EP1C12的配置芯片,分别存放对应芯片的配置信息。FPGA 通过 PCI 接口实现数据收发以及命令解释执行。3 智能卡软件结构身份认证智能卡的软件结构主要包括顶层身份认证系统应用程序、PCI 接口驱动程序和 FPGA 内部加密算法模块三部份。其结构如图2所示:3.1 认证系统顶层应用程序系统顶层的应用程序主要是提

9、供给用户一个 GUI 界面接口,以便用户直接通过 GUI接口进行身份认证相关操作,避免用户直接调用底层驱动函数,方便用户使用智能卡。顶 层应用程序调用相应的智能卡驱动程序接口,发送相应的指令并从底层硬件获得加密后数 据,同时按照通信协议规定的数据格式和发送顺序通过网络传送到远程计算机系统。3.2 PCI 接口驱动程序在 windows 操作系统下,执行于用户态的应用程序不能直接访问硬件,而必须通过调用执行于核心态的设备驱动程序提供的各种服务间接地对硬件资源进行访问,从而确保 系统的安全。设备驱动程序是提供给硬件设备连接到计算机系统的软件接口,它使用户应用程序可以用一种规范的方式访问硬件,而不必

10、考虑如何控制硬件。WDM 设备驱动程序模型就是 windows 环境下设备驱动程序模型。目前常见的驱动开发软件如 NuMega 公司的 DriverStudio 提供了封装各种通用操作的驱动程序类库以及大量参考代码,方便用户进行 WDM 驱动程序的设计,有效缩短了驱动程序开发周期。3.3 FPGA 加密模块FPGA 是身份认证智能卡的核心部件,身份认证系统的数据加密、用户身份信息码验证以及数据接口控制逻辑均在 FPGA 中完成。FPGA 内部模块结构如图3所示:认证方提供的128 bit 随机数 N 经过 State 矩阵产生模块分解为一个44的矩阵。当数据读写模块从 FLASH 存储器中读出

11、128 bit 的共享加密密钥 K 和 S 盒变换矩阵后,密钥扩展模块首先将128 bit 的加密密钥 K 按密钥扩展算法产生一个扩展密钥,再从扩展密钥中选择每轮运算的轮密钥。在迭代控制模块管理下,128 bit 随机数 N 经过 ByteSub 模块、ShiftRow 模块、MixColumn 模块、AddRoundKey 模块多轮迭代运算,并在最后一轮运算结束后从 AddRoundKey 模块输出加密后的密文数据。PCI 9054接口模块主要实现FPGA 芯片和 PCI9054本地总线之间的数据交换。FLASH 接口模块将用户读写操作转换为FLASH 存储器的读写操作时序。数据读写模块负责

12、向 FLASH 接口模块发送数据读写和擦除信息。命令解释模块和其他所有模块相连,完成用户命令译码工作。所有模块均在Verilog HDL 语言设计的有限状态机(FSM)控制下运行。4 总结基于 FPGA 的智能卡提供了一种新的身份认证方式,本文作者创新点如下:(1) 设计了一种基于 FPGA 的身份认证智能卡。身份信息加密运算均在智能卡内部完成,除加密结果外其他所有运算的中间状态值均不会出现在计算机系统中,有效地提高了 认证系统的安全性。(2) 利用 Verilog HDL 语言设计有限状态机在 FPGA 中实现128 bit Rijndael 算法。在系统时钟频率为50 MHz 时测得智能卡

13、加密速度达962.03 Mbits/s,在效率和速度上均优于软件加密方式,并且可以方便地扩展到192 bit 或256 bit 密钥,使用灵活。(3) 利用 PCI 9054 实现 FPGA 与 PCI 总线之间的高速数据传输,降低了 PCI 接口设计的复杂性,保证大量并发认证请求服务下系统的性能。在基于智能卡的身份认证系统中,认证方和被认证方均采用同样硬件结构的身份认证智能卡6,FLASH 内部存放相同的一组密钥,可以根据需要灵活地选择密钥。在需要多方进行身份认证的系统中,可以在 FLASH 内部同时存放多组密钥,对于不同的认证操作选择与之对应的加密密钥,利用一块智能卡完成多方身份认证,具有广阔的应用前景。基于 FPGA 的身份认证智能卡已在物流防伪系统中得到了应用,测试结果表明,该身份认证智能卡安全、可靠、高效。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号