密码算法能耗问题

delphiwcdj 2009-12-04 10:18:07
本人正在做一个仿真实验,想统计使用ECC椭圆曲线加密算法的能量消耗,仿真平台使用的是ns2。想请教大家,使用什么方法可以计算/得知一轮加/解密算法所消耗的能量是多少呢?

如果您有好的想法和建议请不吝指教,谢谢大家了!
...全文
190 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
delphiwcdj 2009-12-04
  • 打赏
  • 举报
回复
但是有一个问题,仿真是在Windows+Cygwin平台上做的,而真实系统的主频等处理能力都比较低。那么仿真计算一轮加/解密的时间肯定要比真实系统的短。这个问题不知道该如何解决?
delphiwcdj 2009-12-04
  • 打赏
  • 举报
回复
是根据一轮的加/解密时间和系统的指令周期来计算总共执行的指令数吗?
如果可以计算出一轮加/解密需要执行的指令总数再根据一条指令消耗的能量就可以计算出一轮加/解密所消耗的能量。不知道上述方法是否合理?
delphiwcdj 2009-12-04
  • 打赏
  • 举报
回复
TKS!
然后对这组数据加密、解密,计算时间及能耗(如何计算能耗?)。再把增加的能耗平均到每一轮上。
感觉统计每轮加解密的计算量更具有实际意义(如何统计呢?)
whg01 2009-12-04
  • 打赏
  • 举报
回复
如果计算机不满载的情况下:
构建一组数据,先不加密,计算处理所需要的时间及这段时间系统能耗。
然后对这组数据加密、解密,计算时间及能耗。再把增加的能耗平均到每一轮上。
感觉统计每轮加解密的计算量更具有实际意义,因为不同平台能耗不同。操作系统也会对此有影响。
delphiwcdj 2009-12-04
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 jackyjkchen 的回复:]
引用 15 楼 delphiwcdj 的回复:
还有libtomcrypt是自包含的库吗,编译的时候需要外部库吗?

文档都很全,应用的例子都挺多,都是编译成库之后不需要其他的附加库(动态编译需要VC的CRT)
[/Quote]
谢了!我现在用的是OpenSSL,是在Cygwin下编译安装的。等以后有机会了再用tomcrypt.
jackyjkchen 2009-12-04
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 delphiwcdj 的回复:]
还有libtomcrypt是自包含的库吗,编译的时候需要外部库吗?
[/Quote]
文档都很全,应用的例子都挺多,都是编译成库之后不需要其他的附加库(动态编译需要VC的CRT)
delphiwcdj 2009-12-04
  • 打赏
  • 举报
回复
还有libtomcrypt是自包含的库吗,编译的时候需要外部库吗?
delphiwcdj 2009-12-04
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 jackyjkchen 的回复:]
openssl,tomcrypt都是优秀的跨平台密码库,我用的是tomcrypt,感觉速度很快
[/Quote]
请问文档比较详细的是哪个库呢?
forster 2009-12-04
  • 打赏
  • 举报
回复
能耗是费电吗
和硬件关系太大了
同一段代码不同cpu费电肯定不一样
只能取代表
ysmashimaro 2009-12-04
  • 打赏
  • 举报
回复
mark
jackyjkchen 2009-12-04
  • 打赏
  • 举报
回复
openssl,tomcrypt都是优秀的跨平台密码库,我用的是tomcrypt,感觉速度很快
berryluo 2009-12-04
  • 打赏
  • 举报
回复
每天回贴
whg01 2009-12-04
  • 打赏
  • 举报
回复
流水线、高速缓存都会对执行时间产生影响,如果你的CPU不支持这类特性,那么就可以用3楼的方法。
delphiwcdj 2009-12-04
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 whg01 的回复:]
计算能耗:给设备单独连个电表。...所以准确的时间只能在设备上测量。
[/Quote]
现在只是做研究仿真,没有设备和电表。

[Quote=引用 6 楼 jackyjkchen 的回复:]
没有真实系统,能耗是测不出来的,除非知道仿真系统和真实系统能耗的比例。
速度倒真没关系,这东西和能耗只是正相关,却没有固定的函数关系
[/Quote]
测量能耗的目的是想证明方案A比方案B耗能少。如果没有设备真实值测不出来,但是在同一个平台下(i.e. Windows)是否可以通过3L的想法来进行比较呢?虽然这不是真实的能耗。PS:现在做加解密用的最多的是什么方法,是OpenSSL,NSS?

tks for ur answer!
jackyjkchen 2009-12-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 delphiwcdj 的回复:]
是根据一轮的加/解密时间和系统的指令周期来计算总共执行的指令数吗?
如果可以计算出一轮加/解密需要执行的指令总数再根据一条指令消耗的能量就可以计算出一轮加/解密所消耗的能量。不知道上述方法是否合理?
[/Quote]
不同的平台。不同的编译器,CPU指令都不相同,特别是公钥类的算法,CPU指令的升级敏感度很高,同是intel平台,intel C++编译器处理公钥算法能比一般编译器快几倍……

所以,根据CPU指令是不合理的
jackyjkchen 2009-12-04
  • 打赏
  • 举报
回复
没有真实系统,能耗是测不出来的,除非知道仿真系统和真实系统能耗的比例。

速度倒真没关系,这东西和能耗只是正相关,却没有固定的函数关系
whg01 2009-12-04
  • 打赏
  • 举报
回复
计算能耗:给设备单独连个电表。
统计每轮加解密的计算量:把代码反汇编出来,然后计算指令周期。
CPU的架构(流水线、多级缓存)会对实际的运行时间产生很大影响,所以准确的时间只能在设备上测量。

64,642

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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