ECC算法与随机数

移植并评估了microECC库,但是出现了Bug,无论随机数如何变化,其产生的共享Key居然没有变化。退而求其次,分别看了nanoECC,mbedTLS,和衍生的nRF52-crypt。

  SHA-256                  :        556 KB/s
  AES-CBC-128              :        863 KB/s
  AES-CBC-192              :        750 KB/s
  AES-CBC-256              :        663 KB/s
  AES-GCM-128              :        363 KB/s
  AES-GCM-192              :        341 KB/s
  AES-GCM-256              :        322 KB/s
  AES-CCM-128              :        367 KB/s
  AES-CCM-192              :        325 KB/s
  AES-CCM-256              :        291 KB/s
  HMAC_DRBG SHA-256 (NOPR) :         68 KB/s
  HMAC_DRBG SHA-256 (PR)   :         60 KB/s
  ECDSA-secp384r1          :     995 ms/sign
  ECDSA-secp256r1          :     603 ms/sign
  ECDSA-secp384r1          :    1905 ms/verify
  ECDSA-secp256r1          :    1180 ms/verify

DONE

FIG 1 mbedTLS benchmark例程,但是ECDH无论如何都不出来。

越看越晕。目前在mbedTLS官网上补课,看如何调用它的API。

更新

micro-ECC for mbed 已经得到更新,主要问题在于随机数发生器,现在采用ADC作为随机数发生器之后,每次计算的公钥、私钥以及生成的共享密钥都有变化,而且共享密钥一致,可以作为AES加密密钥使用。

目前,基于microECC可以在大多数MCU平台间建立安全连接,且与传输媒体无关,可以在UART/USB/BLE/socket上进行传输。

接下来,联调Python-ECC与micro-ECC,用于构建完整的安全连接。如果顺利,可以满足大多数Cortex-M MCU的需求。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容