[发明专利]一种XMR挖矿算法的硬件实现方法及装置有效
申请号: | 201810037132.X | 申请日: | 2018-01-15 |
公开(公告)号: | CN110046888B | 公开(公告)日: | 2021-06-29 |
发明(设计)人: | 李超;郑伟;杨存永;詹克团 | 申请(专利权)人: | 北京比特大陆科技有限公司 |
主分类号: | G06Q20/38 | 分类号: | G06Q20/38;G06Q20/06;H04L9/06 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 杨静 |
地址: | 100029 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 xmr 算法 硬件 实现 方法 装置 | ||
1.一种XMR挖矿算法的硬件实现方法,其特征在于,包括:
步骤S1、获取初始数据;
步骤S2、通过Keccak算法,对所述初始数据进行计算,以生成第一数据;
步骤S3、对所述第一数据循环执行1.6万次AES加密计算,并将每次生成的128字节的第二数据存储于存储区中,其中,AES加密计算由8个并行的AES加密计算模块完成;
步骤S4、从所述存储区中读取16字节的所述第二数据,进行逻辑运算,以获得16字节的第三数据,并将所述第三数据写回所述存储区,并根据所述第三数据,获得下次读取16字节的所述第二数据的读取地址;根据获得的读取地址,从所述存储区中读取16字节的所述第二数据,执行100万次本步骤的逻辑运算操作,以获取每次操作的第三数据,其中,最后一次执行本步骤的逻辑运算操作后获取的第三数据为最后一个第三数据;
步骤S5、根据最后一次获取的第三数据的最低两比特,从4个哈希算法中选择其中之一对所述最后一个第三数据进行哈希计算,以获得最终结果;
其中,步骤S4中的100万次的逻辑运算操作划分为25万轮操作,每轮操作包括4次逻辑运算操作,具体包括:
步骤S4-1、根据中间寄存器ctx_a的数值及4组16字节的查找表输出值进行逻辑异或运算获得中间寄存器ctx_c的更新值,其中,查找表输入值为每次读取的16字节的第二数据;根据中间寄存器ctx_c更新值的第20位至第4位作为步骤S4-2中读取16字节的第二数据的读取地址;通过中间寄存器ctx_b的数值与中间寄存器ctx_c的更新值进行异或运算,以获得第一次逻辑运算的第三数据;
步骤S4-2、根据步骤S4-1获得的读取地址,读取的128比特的第二数据rddata;将中间寄存器ctx_c的更新值的63位至0位与第二数据rddata的63位至0位进行相乘操作,以获得128比特的第一中间值mult_o_1;将第二数据rddata的63位至0位与第一中间值mult_o_1的127位至64位和中间寄存器ctx_a的63位至0位之和进行异或运算,以获得中间寄存器ctx_a的63位至0位的更新值;将第二数据rddata的127位至64位与第一中间值mult_o_1的63位至0位和中间寄存器ctx_a的127位至64位之和进行异或运算获得中间寄存器ctx_a的127位至64位的更新值;将中间寄存器ctx_a更新值的第20位至第4位作为步骤S4-3中读取16字节的第二数据的读取地址;将第一中间值mult_o_1的63位至0位与中间寄存器ctx_a更新值的第127位至第64位之和,或第一中间值mult_o_1的127位至64位与中间寄存器ctx_a更新值的第63位至第0位之和作为第二次逻辑运算的第三数据;
步骤S4-3、根据中间寄存器ctx_a的数值及4组16字节的查找表输出值进行逻辑异或运算获得中间寄存器ctx_b的更新值;根据中间寄存器ctx_b更新值的第20位至第4位作为步骤S4-3中读取16字节的第二数据的读取地址;通过中间寄存器ctx_b的数值与中间寄存器ctx_c的更新值进行异或运算,以获得第三次逻辑运算的第三数据;
步骤S4-4、根据步骤S4-3获得的读取地址,读取的128比特的第二数据rddata;将中间寄存器ctx_b的更新值的63位至0位与第二数据rddata的63位至0位进行相乘操作,以获得128比特的第一中间值mult_o_1;将第二数据rddata的63位至0位与第二中间值mult_o_2的127位至64位和中间寄存器ctx_a的63位至0位之和进行异或运算,以获得中间寄存器ctx_a的63位至0位的更新值;将第二数据rddata的127位至64位与第二中间值mult_o_2的63位至0位和中间寄存器ctx_a的127位至64位之和进行异或运算获得中间寄存器ctx_a的127位至64位的更新值;将中间寄存器ctx_a更新值的第20位至第4位作为步骤S4-3中读取16字节的第二数据的读取地址;将第二中间值mult_o_2的63位至0位与中间寄存器ctx_a更新值的第127位至第64位之和,或第二中间值mult_o_2的127位至64位与中间寄存器ctx_a更新值的第63位至第0位之和作为第四次逻辑运算的第三数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京比特大陆科技有限公司,未经北京比特大陆科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810037132.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种洗衣液分装销售装置
- 下一篇:一种异常行为主体的检测方法、装置及服务器