scrypt
scrypt(念作「ess crypt」[1]),是加拿大计算机科学家暨计算机安全研究人员科林·珀西瓦尔()于2009年所发明的密钥派生函数,当初设计用在他所创立的Tarsnap服务上[2]。设计时考虑到大规模的客制硬件攻击而刻意设计需要大量内存运算。2016年,scrypt算法发布在RFC 7914。scrypt的简化版被用在数个密码货币的工作量证明()上。
概观
scrypt需要使用大量内存的原因来自于产生大量伪随机性(英语:)数据作为算法计算的基础。一旦这些数据被产生后,算法将会以伪随机性的顺序读取这些数据产生结果。因此最直接的实做方式将会需要大量内存将这些数据保存在内存内供算法计算。
另外一方面,由于伪随机性数据是通过算法产生,在实做上也可以在需要访问时再计算以降低内存使用量。但由于计算成本很高,这个实做方法将大幅降低算法的速度。
这就是scrypt设计时考虑到的时空权衡,攻击者可以使用后者的方法但计算速度很慢,或是用前者的方法但因内存成本而难以大规模平行化。
密码货币上的使用
scrypt被用在数个密码货币的工作量证明算法上。首先被Tenebrix所使用(2011年九月),而后被莱特币()与多吉币()所采用。因GPU在计算使用scrypt的密码货币较CPU有效率,这导致了高端显卡在2013年年底的短缺[3]。
相关链接
注解
外部链接
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.