openssl里的fips是什么意思?

ocean1002 2014-07-08 08:20:01
先引用两段:

openssl-fips是符合FIPS标准的Openssl。
联邦信息处理标准(Federal Information Processing Standards,FIPS)是一套描述文件处理、加密算法和其他信息技术标准(在非军用政府机构和与这些机构合作的政府承包商和供应商中应用的标准)的标准。


编译过openssl的同学应该知道一个叫OPENSSL_FIPS的宏。这个宏有什么作用呢。
Intel AES指令(AES-NI)是Intel32纳米微架构上的一组新指令。这些指令对于使用 AES(Advancde Encryption Standard)算法进行数据加解密的操作能够起到加速的作用。AES标准由FIPS定义,如今广泛 应用在贸易安全,数据库的加密等各个方面。
Intel AES-NI包括七条指令。其中六条是硬件对AES的支持(四条关于AES加解密,另两条指令有关AES key的扩展)。第七条指令有助于进位乘法。
AES-NI可以灵活地支持AES的各种使用方式,包括各种标准密钥的长度,各种模式的操作,甚至是一些非标准或是未来可能的各种方式。对比现在一些纯软件的实现,它对性能的提升非常显著。
如果打开该宏,直接调用Intel AES指令,轻松获得5倍左右的性能提升(这个摘抄网上的说法,没有真正测试过)。


我的问题是:
1、openssl-1.0.1h.tar.gz、openssl-fips-2.0.6.tar.gz有什么不同。
1.0.1h版本加OPENSSL_FIPS宏编译出支持fips的库?fips加不加OPENSSL_FIPS都编译出支持fips的库?

加密算法不都是一样的吗,怎么还会分符合不符合fips的标准。比如:普通的des和fips-des哪里会不一样?

2、openssl-fips-ecp-2.0.6.tar.gz、 openssl-fips-2.0.6.tar.gz有什么不同。
ecp【The Elliptic Curve Public-Key Crypto Library (ECC Code)】,从代码管理角度来说,为什么这个要分开两个工程?我对比了下目录,ECP多出10个文件,而且没有其他文件不一致的情况。

3、加了OPENSSL_FIPS宏,效率提升5倍。
openssl-fips编译出来的库跑在不支持AES-NI指令集的CPU上,会怎样?是否和1.0.1h版本不加OPENSSL_FIPS宏的效果一样?
还是说openssl-fips.gz的存在,是因为用1.0.1h.gz的代码是编译不出支持fips标准的库的?所以分开了两个工程
...全文
18474 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yty20082486 2016-01-07
  • 打赏
  • 举报
回复
最近在弄openssl,发现openssl-fips-2.0.6.tar.gz其实是编译出来一个fips的模块,编译出来的东西指定安装在/usr/local/ssl/fips-2.0/目录,然后编译openssl-1.0.1h.tar.gz时config时指定OPENSSL_FIPS,就可以把fips模块编进来,如果报头文件错误可以把/usr/local/ssl/fips-2.0/include/openssl替换系统的/usr/include/openssl,如果找不到相关库可以用--with-fipslibdir=/usr/local/ssl/fips-2.0/lib指定,我测试龙芯的机器加入fips模块后比直接编译openssl-1.0.1h.tar.gz,openssl speed rsa512测试能提高20倍
MagicFuzzX 2015-11-10
  • 打赏
  • 举报
回复
我也一直像搞明白
ocean1002 2014-08-19
  • 打赏
  • 举报
回复
引用 7 楼 LeoChan_ 的回复:
有答案了么?分享,分享呗
没答案。。。
LeoChan 2014-08-13
  • 打赏
  • 举报
回复
有答案了么?分享,分享呗
ocean1002 2014-07-24
  • 打赏
  • 举报
回复
是不是连续三次就不能回复了?那不是成了死贴?
ocean1002 2014-07-16
  • 打赏
  • 举报
回复
“回复次数:3” 为什么回复一个没看到?
内容概要:本文档是一份关于开发经典小游戏“贪吃蛇”的保姆级毕业设计指导文档,涵盖从游戏规则、功能设计、技术选型到核心代码实现的完整流程。文档以Python + Pygame为技术栈,详细讲解了游戏初始化、蛇的移动逻辑、食物生成、碰撞检测、计分与等级系统、键盘控制及主循环渲染等核心模块,并提供了完整的项目结构和源码示例。采用状态机管理游戏状态,使用列表模拟链表结构存储蛇身,结合方向缓冲机制优化操作体验,同时引入难度递增机制提升可玩性。文末还列举了飞机大战、扫雷、五子棋等同类课题作为拓展参考。; 适合人群:具备一定编程基础、正在进行毕业设计或课程设计的学生,尤其是对游戏开发感兴趣的初级开发者。; 使用场景及目标:①帮助学生独立完成一个功能完整、结构清晰的小游戏项目,用于毕业答辩或课程展示;②深入理解事件驱动编程、状态管理、碰撞检测、定时刷新等基础编程概念;③掌握Python + Pygame开发2D小游戏的核心技能,并具备二次开发与功能拓展能力。; 阅读建议:建议读者按照“规则→设计→代码→运行”的顺序逐步学习,动手实践每个模块并调试代码,重点关注方向缓冲、状态机、食物生成算法等设计细节,同时可尝试实现文末提出的拓展功能以增强项目亮点。

4,450

社区成员

发帖
与我相关
我的任务
社区描述
云计算 云安全相关讨论
社区管理员
  • 云安全社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧