安全芯片加密模块的研究与设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通过以上两级保护,使数据的安全性得到 保障。
本论文中主要研究数据加密部分——主 要由公钥密码算法 RSA 实现。 2.1 RSA 简介[4]
RSA 密码是 1977 年由 Rivest、Shamir、 Adleman 研究出的一种利用大数因子分解的 困难性而设计的一种公钥密码算法。其基础 是欧拉定理,安全性依赖于大数因子分解的困 难性, 至今没有很好的破解方法。
图 2 模乘仿真结果部分图
2 结语 本文首先介绍了一种安全芯片及其安全
模块的模型,并对其中的公钥算法的实现进行 了论述与实现。对 R S A 算法的改进, 并在硬 件实现过程中, 跟据具体情况做了不断的调 整, 使改进后的 R S A 的速度及存储得到一定 的改进。
参考文献 [1] 王新成.可信计算与系统安全芯片[J].计算
这三个方面恰恰说明人们对信息安全问 题仍然存在着一个大盲区。究其根源,都是终 端保护不足所引起的。随之人们又把注意力 转移到另一类加密技术——硬件加密上。
但硬件加密仍然存在一定的不足。来自 硬件的威胁主要有:芯片的克隆、反工程、黑 盒攻击三种[2]。
目前,硬件加密技术主要应用在信息安全 芯片中。其应用领域亦十分广泛[3]。但其技 术仍有待进一步完善。
行硬件的特点有效进行。对于加密卡的模型 有几下几点分析:
首先,对于存取访问敏感数据设备(硬件设 备、网络、板卡……) 应当进行加密的身份 验证。这样可以保证内部数据安全性。
其次, 对于数据的本身, 其存储及访问应 该进行加密。这样, 非法读取数据时得到的 数据具有不可读性,以及密钥错误的不可更改 性, 以达到数据的安全不被读取、更改。
RSA 算法的硬件实现可以分成密钥生成、 加密(验证)、解密(签名)三部分。RSA 的加解 密运算是大数运算,最基本的运算包括大数加 法、大数减法、大数乘法、大数除法。具体可 参见文献 4。 2.2 RSA 的硬件实现
对于 R S A 算法的实现, 我们应该注意以 下几个方面:密钥长度方面:1024 位;参数方 面:强的素数,大的私钥 d 等。对于 1024 位密 钥,私钥指数 d 应不小于 300位长;实现细节方 面: 防止信息泄漏和出错处理。[ 5 ]
2 FPGA 内部加密模块的说明 根据当前的数字信息的安全情况,在必要
的硬件设备或网络设备中添加硬件加密模块是 十分重要的。本模块主要针对一些敏感数据安 全性需要的部门或对硬件设备的安全性进行配 置。模块可以对身份进行验证或对数据进行加 密, 以确保数据不被盗取及非法访问。
本模块的具体设计及实施上,紧密结合现
高 新 技 术
科技咨询导报 2007 NO.29
Science and Technology Consulting Herald
安全芯片加密模块的研究与设计
姜艳杰 胡宝霞 (哈尔滨理工大学计算机学院 黑龙江哈尔滨 150080)
摘 要: 随着计算机和信息技术的飞速发展, 信息的安全性越来越受到人们的重视。本文介绍了安全芯片的基本结构及一种设计方案,
以几上三点作为基础, 在 R S A 算法实现 过程中,RSA 加密最主要的运算就是模幂,而 模幂又是通过模乘来实现的。
模幂运算的计算量在 RSA 加解密运算中 是最大的,因此如何实现和改进模乘运算是实 现模幂运算的关键。这里我们采用大数模乘 算法—— Montgomery 算法。
首先,先写出 Montgomery 算法的基本步骤: Mon_1(x, y) (1) n'=-n-1 mod r (2) T=x y (3) m=T n' mod r (4) T=(T+ m n) r-1 ,if T>=n, T=T-n (5) return T 通过一定的预运算和后运算,可消除因子 项 r,得到真正的模乘积 R=a·b mod n。 下面我们对其进行优化。 Mon_2(x, y) (1) n0'=(b-n0)-1 mod b; (2) A=0; (3) T=x y; (4) For i =0 to l-1;
信息安全采用的主要方式是对信息进行 加密。信息系统可以从服务器、网络、终 端三个层面[1]上来看,人们往往把过多的注意 力放在对服务器和网络的保护上(较有代表性 的是软件加密),而忽略了对终端的保护,这显 然是不合理的。主要原因有三: 终端往往是 创建和存放重要数据的源头;绝大多数的攻击 事件都是从终端发起的; 数据泄密和蠕虫病毒 感染都由终端脆弱性引起。
1 安全芯片的内部结构 加密芯片一般由微处理器、存储器以及
与读写器进行通信的输入输出接口组成,如图 1 所示:
图 1 硬件安全(加密)芯片简单结构
一旦加密芯片被启动后, 主机 C P U 必须 立刻跳入公共 RAM 区去执行由加密卡事先装 入的程序,用户也可把应用程序的关键部分保 留在加密卡内,由卡内的 CPU 运行。
并对其中的数据加解密部分( 主要由 R S A 算法实现) 进行设计实现。
关键词: 安全芯片 硬件加密 R S A
中图分类号: G 6 2 3 . 5 8
文献标识码: A
文章编号:1673-0534(2007)10(b)-0015-01
随着社会的信息化发展,目前全国范围内 的许多城市都正在积极筹备或正在实施城市 建设综合管理信息系统的开发工作,信息的安 全性日益受到重视。
机安全,2005,10:2-6. [2] 王勋,毕笃彦.基于 FPGA 的军用龙芯计算
机硬件加密方法[J].Computer Engine- ering, 2006,9,32(18):181-183. [3] 曾晓洋,吴敏,韩军,吴永一,林一帆,陈俊, 闵昊,章傅苓.信息安全芯片 SoC 平台及 其应用[J].信息安全与通信保密,2005(7): 358-360. [4] 杨义先,钮心忻编著.应用密码学.2005:66. [5] 谢朝海.RSA密码攻击进展[J].技术研究与 应用,2007,1:49-51.
a) mi=(a0+ti)n0' mod b; b) A=A+ ti + ti + l bl + mi N; c) A=A/b; (5) if A>=N,A=A-N; (6) return A. 其中:no' 是 n' 的最低字,x、y、n 表示 为 b 进制,T 以逐步增长方式计算。 经过重写后,与 Mon_1 相比,Mon_2 有以 下优势: 只需计算 n0',大大减少了计算量、存储 空间及 C P U 的读写次数; Mi 只对本次循环有效,不必保存结果,减 少了存储空间、读写操作及相当数量的乘加 及移位运算; 计算过程中, A 的最大长度为 l + 1 个字, 直接计算的 21 位相比,大大节省了存储空间 以及读写操作; 下一步进行的是硬件语言的具体实现。 模乘的测试部分结果如图 2 所示。
ቤተ መጻሕፍቲ ባይዱ
科技咨询导报 Science and Technology Consulting Herald
15
本论文中主要研究数据加密部分——主 要由公钥密码算法 RSA 实现。 2.1 RSA 简介[4]
RSA 密码是 1977 年由 Rivest、Shamir、 Adleman 研究出的一种利用大数因子分解的 困难性而设计的一种公钥密码算法。其基础 是欧拉定理,安全性依赖于大数因子分解的困 难性, 至今没有很好的破解方法。
图 2 模乘仿真结果部分图
2 结语 本文首先介绍了一种安全芯片及其安全
模块的模型,并对其中的公钥算法的实现进行 了论述与实现。对 R S A 算法的改进, 并在硬 件实现过程中, 跟据具体情况做了不断的调 整, 使改进后的 R S A 的速度及存储得到一定 的改进。
参考文献 [1] 王新成.可信计算与系统安全芯片[J].计算
这三个方面恰恰说明人们对信息安全问 题仍然存在着一个大盲区。究其根源,都是终 端保护不足所引起的。随之人们又把注意力 转移到另一类加密技术——硬件加密上。
但硬件加密仍然存在一定的不足。来自 硬件的威胁主要有:芯片的克隆、反工程、黑 盒攻击三种[2]。
目前,硬件加密技术主要应用在信息安全 芯片中。其应用领域亦十分广泛[3]。但其技 术仍有待进一步完善。
行硬件的特点有效进行。对于加密卡的模型 有几下几点分析:
首先,对于存取访问敏感数据设备(硬件设 备、网络、板卡……) 应当进行加密的身份 验证。这样可以保证内部数据安全性。
其次, 对于数据的本身, 其存储及访问应 该进行加密。这样, 非法读取数据时得到的 数据具有不可读性,以及密钥错误的不可更改 性, 以达到数据的安全不被读取、更改。
RSA 算法的硬件实现可以分成密钥生成、 加密(验证)、解密(签名)三部分。RSA 的加解 密运算是大数运算,最基本的运算包括大数加 法、大数减法、大数乘法、大数除法。具体可 参见文献 4。 2.2 RSA 的硬件实现
对于 R S A 算法的实现, 我们应该注意以 下几个方面:密钥长度方面:1024 位;参数方 面:强的素数,大的私钥 d 等。对于 1024 位密 钥,私钥指数 d 应不小于 300位长;实现细节方 面: 防止信息泄漏和出错处理。[ 5 ]
2 FPGA 内部加密模块的说明 根据当前的数字信息的安全情况,在必要
的硬件设备或网络设备中添加硬件加密模块是 十分重要的。本模块主要针对一些敏感数据安 全性需要的部门或对硬件设备的安全性进行配 置。模块可以对身份进行验证或对数据进行加 密, 以确保数据不被盗取及非法访问。
本模块的具体设计及实施上,紧密结合现
高 新 技 术
科技咨询导报 2007 NO.29
Science and Technology Consulting Herald
安全芯片加密模块的研究与设计
姜艳杰 胡宝霞 (哈尔滨理工大学计算机学院 黑龙江哈尔滨 150080)
摘 要: 随着计算机和信息技术的飞速发展, 信息的安全性越来越受到人们的重视。本文介绍了安全芯片的基本结构及一种设计方案,
以几上三点作为基础, 在 R S A 算法实现 过程中,RSA 加密最主要的运算就是模幂,而 模幂又是通过模乘来实现的。
模幂运算的计算量在 RSA 加解密运算中 是最大的,因此如何实现和改进模乘运算是实 现模幂运算的关键。这里我们采用大数模乘 算法—— Montgomery 算法。
首先,先写出 Montgomery 算法的基本步骤: Mon_1(x, y) (1) n'=-n-1 mod r (2) T=x y (3) m=T n' mod r (4) T=(T+ m n) r-1 ,if T>=n, T=T-n (5) return T 通过一定的预运算和后运算,可消除因子 项 r,得到真正的模乘积 R=a·b mod n。 下面我们对其进行优化。 Mon_2(x, y) (1) n0'=(b-n0)-1 mod b; (2) A=0; (3) T=x y; (4) For i =0 to l-1;
信息安全采用的主要方式是对信息进行 加密。信息系统可以从服务器、网络、终 端三个层面[1]上来看,人们往往把过多的注意 力放在对服务器和网络的保护上(较有代表性 的是软件加密),而忽略了对终端的保护,这显 然是不合理的。主要原因有三: 终端往往是 创建和存放重要数据的源头;绝大多数的攻击 事件都是从终端发起的; 数据泄密和蠕虫病毒 感染都由终端脆弱性引起。
1 安全芯片的内部结构 加密芯片一般由微处理器、存储器以及
与读写器进行通信的输入输出接口组成,如图 1 所示:
图 1 硬件安全(加密)芯片简单结构
一旦加密芯片被启动后, 主机 C P U 必须 立刻跳入公共 RAM 区去执行由加密卡事先装 入的程序,用户也可把应用程序的关键部分保 留在加密卡内,由卡内的 CPU 运行。
并对其中的数据加解密部分( 主要由 R S A 算法实现) 进行设计实现。
关键词: 安全芯片 硬件加密 R S A
中图分类号: G 6 2 3 . 5 8
文献标识码: A
文章编号:1673-0534(2007)10(b)-0015-01
随着社会的信息化发展,目前全国范围内 的许多城市都正在积极筹备或正在实施城市 建设综合管理信息系统的开发工作,信息的安 全性日益受到重视。
机安全,2005,10:2-6. [2] 王勋,毕笃彦.基于 FPGA 的军用龙芯计算
机硬件加密方法[J].Computer Engine- ering, 2006,9,32(18):181-183. [3] 曾晓洋,吴敏,韩军,吴永一,林一帆,陈俊, 闵昊,章傅苓.信息安全芯片 SoC 平台及 其应用[J].信息安全与通信保密,2005(7): 358-360. [4] 杨义先,钮心忻编著.应用密码学.2005:66. [5] 谢朝海.RSA密码攻击进展[J].技术研究与 应用,2007,1:49-51.
a) mi=(a0+ti)n0' mod b; b) A=A+ ti + ti + l bl + mi N; c) A=A/b; (5) if A>=N,A=A-N; (6) return A. 其中:no' 是 n' 的最低字,x、y、n 表示 为 b 进制,T 以逐步增长方式计算。 经过重写后,与 Mon_1 相比,Mon_2 有以 下优势: 只需计算 n0',大大减少了计算量、存储 空间及 C P U 的读写次数; Mi 只对本次循环有效,不必保存结果,减 少了存储空间、读写操作及相当数量的乘加 及移位运算; 计算过程中, A 的最大长度为 l + 1 个字, 直接计算的 21 位相比,大大节省了存储空间 以及读写操作; 下一步进行的是硬件语言的具体实现。 模乘的测试部分结果如图 2 所示。
ቤተ መጻሕፍቲ ባይዱ
科技咨询导报 Science and Technology Consulting Herald
15