适用于MCU的ECC算法库

适用于MCU的ECC算法库_第1张图片
crypto-performance-on-arm-cortexm-processors-42-638.jpg

偶然机会看到老外的BLE安全算法演讲,Bluetooth: With Low Energy Comes Low Security,演讲者Mike Ryan。他简略讲解了使用CC2400+LPC175X MCU构建的Ubertooth工具抓包和攻击流程。

在他演讲稿中提到了自己贡献的nano-ecc算法库,而nano-ecc是micro-ecc的分支。今早留意了一下Nordic的论坛,发现Nordic的bootloader中将micro-ecc作为自己的ecc微型算法库,用于构建安全通道下载固件。

两者相比,nano-ecc针对Arduino适配,但没有汇编级优化,而micro-ecc针对乘法在ARM处理器中的实现做了汇编级优化。配合M0/M4处理器,可以更快实施ECC算法:ECDH/ECDSA。

就Nordic BLE本身来说,只有nRF52832/S132才会支持ECDH,之前nRF51和S110/S120/S130都不再,也不会支持。

网址

  • nano-ecc(8bit ECDH and ECDSA)
  • micro-ecc, used by nordic as external ECC components

更新

把micro-ecc工程移植到了mbed之上,由于不熟悉Cortex-M的Thumb2汇编级优化,所以关闭了优化模式,在F401RE/F103RB上计算速度还挺快,但需要做更多测试。

代码共享在: https://developer.mbed.org/users/allankliu/code/mbed_microECC/

你可能感兴趣的:(适用于MCU的ECC算法库)