Why is imKey so "slow" when creating a wallet?

创建钱包时,为什么 imKey 这么「慢」?

imKey 新创建钱包的时间更长,相比其他钱包显得要「慢」一些,这是客观事实,其背后是 imKey 基于安全出发,最大程度保证密钥生成安全性的必要选择。

为什么 imKey 创建钱包时相比其他钱包要慢一些 ?

imKey 新创建钱包的时间更长,相比其他钱包显得要“慢”一些,这是客观事实,其背后是 imKey 基于安全出发,最大程度保证密钥生成安全性的必要选择。

那么,为什么「慢」会更安全 ?

根据 BIP39 规范的描述,根密钥的产生过程中必须对熵做 2048 次的 HMAC-SHA512 运算(如图)。

[ BIP39 规范,详见
https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki#from-mnemonic-to-seed ]

 

所以,为了保证根密钥的安全性最大化,所有的运算过程及结果都应在SE 芯片内部独立完成,这应该成为硬件钱包安全的重要准则。

imKey 遵循上述准则,将根密钥生成所必须的 2048 次哈希运算都设置在 SE 芯片内完成,而不是依赖外部(比如 MCU 芯片)运算之后,再将结果写入SE 芯片。SE 芯片更注重安全性,其算力相对于通用型 MCU 芯片偏低(其原因在于 SE 芯片的每一次运算都要将数据进行加密后运算,以防物理攻击或者侧信道攻击,同样的原因,SE芯片也不能增加协处理器来加速哈希运算),所以 SE 芯片在根据 BIP39 规范运算生成钱包根密钥时,会显得有一些缓慢。

imKey Pro 硬件钱包采用知名芯片厂商英飞凌(Infineon)出品的 SLE 78CLUFX5000PH 安全芯片,该款芯片单次 HMAC-SHA512 哈希运算是耗时约在 13ms ~ 14ms 左右,用户在日常使用时基本是无感的,但在创建钱包时由于必须连续进行 2048 次哈希运算,耗时约为20-30s(2048*14ms),故相比其他热钱包、非安全芯片类硬件钱包,其创建时会显得「慢」一些。

imKey 硬件钱包始终将「安全」作为最核心价值,在创建钱包时,让用户仅仅付出 30s 左右时间等待,但可以换来钱包根密钥的更高等级安全保障,imKey 团队认为这是一笔非常有价值的“买卖”,也是对用户更负责的“选择”。

名词解释

SE:Secure Element 缩写,特指安全芯片,其为安全模块,是一台微型计算机,通过安全芯片和芯片操作系统(COS)实现数据安全存储、加解密运算等功能。SE 可封装成各种形式,常见的有智能卡和嵌入式安全模块(eSE)等。

MCU:Microcontroller Unit 缩写,又称「微控制单元」,是把中央处理器(Central Process Unit;CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至 LCD 驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。