热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

书本_Plonkymsm的改进版Yao算法

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Plonkymsm的改进版Yao算法相关的知识,希望对你有一定的参考价值。1.引言前序博

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Plonky msm的改进版Yao算法相关的知识,希望对你有一定的参考价值。



1. 引言

前序博客有:


  • Scalar-multiplication算法集
  • multiScalar_multiplication Pippeneger算法
  • Monero bulletproof 源码结构解析
  • https://blog.csdn.net/mutourend/article/details/93752389
  • Plonky代码解析

参考:


  • 书本有《Handbook of Elliptic and Hyperelliptic Curve Cryptography》。
  • 2009年论文《Elliptic Curve Scalar Multiplication Combining Yao’s Algorithm and Double Bases》

针对:


  • https://github.com/mir-protocol/plonky

运行bin/msms.rs文件,有:

Running `target/debug/msms`
MSMs with terms=2^8, threads=1, window_size=2: avg=0.4473s, avg*threads=0.4473s
MSMs with terms=2^8, threads=2, window_size=2: avg=0.4298s, avg*threads=0.8595s
MSMs with terms=2^8, threads=3, window_size=2: avg=0.4529s, avg*threads=1.3588s
MSMs with terms=2^8, threads=4, window_size=2: avg=0.4227s, avg*threads=1.6908s
MSMs with terms=2^8, threads=5, window_size=2: avg=0.4158s, avg*threads=2.0792s
MSMs with terms=2^8, threads=6, window_size=2: avg=0.4326s, avg*threads=2.5956s
MSMs with terms=2^8, threads=7, window_size=2: avg=0.4310s, avg*threads=3.0171s
MSMs with terms=2^8, threads=8, window_size=2: avg=0.4392s, avg*threads=3.5133s
MSMs with terms=2^8, threads=9, window_size=2: avg=0.4830s, avg*threads=4.3474s
MSMs with terms=2^8, threads=10, window_size=2: avg=0.4875s, avg*threads=4.8747s
MSMs with terms=2^8, threads=11, window_size=2: avg=0.4713s, avg*threads=5.1848s
MSMs with terms=2^8, threads=12, window_size=2: avg=0.4279s, avg*threads=5.1350s
MSMs with terms=2^8, threads=13, window_size=2: avg=0.4431s, avg*threads=5.7597s
MSMs with terms=2^8, threads=14, window_size=2: avg=0.4330s, avg*threads=6.0625s
MSMs with terms=2^8, threads=15, window_size=2: avg=0.4554s, avg*threads=6.8307s
MSMs with terms=2^8, threads=16, window_size=2: avg=0.4297s, avg*threads=6.8752s
MSMs with terms=2^8, threads=17, window_size=2: avg=0.4376s, avg*threads=7.4390s
MSMs with terms=2^8, threads=18, window_size=2: avg=0.4378s, avg*threads=7.8796s
MSMs with terms=2^8, threads=19, window_size=2: avg=0.4897s, avg*threads=9.3041s
MSMs with terms=2^8, threads=20, window_size=2: avg=0.4389s, avg*threads=8.7780s
MSMs with terms=2^8, threads=21, window_size=2: avg=0.4561s, avg*threads=9.5781s
MSMs with terms=2^8, threads=22, window_size=2: avg=0.4286s, avg*threads=9.4285s
MSMs with terms=2^8, threads=23, window_size=2: avg=0.4189s, avg*threads=9.6350s
MSMs with terms=2^8, threads=24, window_size=2: avg=0.4346s, avg*threads=10.4301s
MSMs with terms=2^8, threads=25, window_size=2: avg=0.4224s, avg*threads=10.5588s
MSMs with terms=2^8, threads=26, window_size=2: avg=0.4170s, avg*threads=10.8412s
MSMs with terms=2^8, threads=27, window_size=2: avg=0.4317s, avg*threads=11.6546s
MSMs with terms=2^8, threads=28, window_size=2: avg=0.4287s, avg*threads=12.0023s
MSMs with terms=2^8, threads=29, window_size=2: avg=0.4190s, avg*threads=12.1500s
MSMs with terms=2^8, threads=30, window_size=2: avg=0.4200s, avg*threads=12.6007s
MSMs with terms=2^8, threads=31, window_size=2: avg=0.4264s, avg*threads=13.2184s
MSMs with terms=2^8, threads=32, window_size=2: avg=0.4283s, avg*threads=13.7071s
MSMs with terms=2^8, threads=33, window_size=2: avg=0.4524s, avg*threads=14.9295s
MSMs with terms=2^8, threads=34, window_size=2: avg=0.4358s, avg*threads=14.8186s
MSMs with terms=2^8, threads=35, window_size=2: avg=0.4177s, avg*threads=14.6198s
MSMs with terms=2^8, threads=36, window_size=2: avg=0.4176s, avg*threads=15.0349s
MSMs with terms=2^8, threads=37, window_size=2: avg=0.4199s, avg*threads=15.5355s
MSMs with terms=2^8, threads=38, window_size=2: avg=0.4169s, avg*threads=15.8412s
MSMs with terms=2^8, threads=39, window_size=2: avg=0.4283s, avg*threads=16.7018s
MSMs with terms=2^8, threads=40, window_size=2: avg=0.4430s, avg*threads=17.7187s
MSMs with terms=2^8, threads=41, window_size=2: avg=0.4167s, avg*threads=17.0851s
MSMs with terms=2^8, threads=42, window_size=2: avg=0.4159s, avg*threads=17.4687s
MSMs with terms=2^8, threads=43, window_size=2: avg=0.4177s, avg*threads=17.9600s
MSMs with terms=2^8, threads=44, window_size=2: avg=0.4215s, avg*threads=18.5438s
MSMs with terms=2^8, threads=45, window_size=2: avg=0.4167s, avg*threads=18.7503s
MSMs with terms=2^8, threads=46, window_size=2: avg=0.4168s, avg*threads=19.1714s
MSMs with terms=2^8, threads=47, window_size=2: avg=0.4164s, avg*threads=19.5711s
MSMs with terms=2^8, threads=48, window_size=2: avg=0.4196s, avg*threads=20.1388s
MSMs with terms=2^8, threads=49, window_size=2: avg=0.4165s, avg*threads=20.4072s
MSMs with terms=2^8, threads=50, window_size=2: avg=0.4173s, avg*threads=20.8672s
MSMs with terms=2^8, threads=1, window_size=3: avg=0.2818s, avg*threads=0.2818s
MSMs with terms=2^8, threads=2, window_size=3: avg=0.2808s, avg*threads=0.5616s
MSMs with terms=2^8, threads=3, window_size=3: avg=0.2824s, avg*threads=0.8472s
MSMs with terms=2^8, threads=4, window_size=3: avg=0.2830s, avg*threads=1.1318s
MSMs with terms=2^8, threads=5, window_size=3: avg=0.2855s, avg*threads=1.4277s
MSMs with terms=2^8, threads=6, window_size=3: avg=0.2813s, avg*threads=1.6881s
MSMs with terms=2^8, threads=7, window_size=3: avg=0.2819s, avg*threads=1.9734s
MSMs with terms=2^8, threads=8, window_size=3: avg=0.2808s, avg*threads=2.2461s
MSMs with terms=2^8, threads=9, window_size=3: avg=0.2820s, avg*threads=2.5377s
MSMs with terms=2^8, threads=10, window_size=3: avg=0.2827s, avg*threads=2.8267s
MSMs with terms=2^8, threads=11, window_size=3: avg=0.2858s, avg*threads=3.1437s
MSMs with terms=2^8, threads=12, window_size=3: avg=0.2815s, avg*threads=3.3781s
MSMs with terms=2^8, threads=13, window_size=3: avg=0.2820s, avg*threads=3.6660s
MSMs with terms=2^8, threads=14, window_size=3: avg=0.2835s, avg*threads=3.9686s
MSMs with terms=2^8, threads=15, window_size=3: avg=0.2821s, avg*threads=4.2316s
MSMs with terms=2^8, threads=16, window_size=3: avg=0.2827s, avg*threads=4.5229s
MSMs with terms=2^8, threads=17, window_size=3: avg=0.2823s, avg*threads=4.7994s
MSMs with terms=2^8, threads=18, window_size=3: avg=0.2864s, avg*threads=5.1554s
MSMs with terms=2^8, threads=19, window_size=3: avg=0.2837s, avg*threads=5.3901s
MSMs with terms=2^8, threads=20, window_size=3: avg=0.2829s, avg*threads=5.6581s
MSMs with terms=2^8, threads=21, window_size=3: avg=0.2845s, avg*threads=5.9755s
MSMs with terms=2^8, threads=22, window_size=3: avg=0.2836s, avg*threads=6.2391s
MSMs with terms=2^8, threads=23, window_size=3: avg=0.2840s, avg*threads=6.5310s
MSMs with terms=2^8, threads=24, window_size=3: avg=0.2832s, avg*threads=6.7958s
MSMs with terms=2^8, threads=25, window_size=3: avg=0.2883s, avg*threads=7.2078s
MSMs with terms=2^8, threads=26, window_size=3: avg=0.2852s, avg*threads=7.4164s
MSMs with terms=2^8, threads=27, window_size=3: avg=0.2864s, avg*threads=7.7325s
MSMs with terms=2^8, threads=28, window_size=3: avg=0.2842s, avg*threads=7.9567s
MSMs with terms=2^8, threads=29, window_size=3: avg=0.2841s, avg*threads=8.2396s
MSMs with terms=2^8, threads=30, window_size=3: avg=0.2848s, avg*threads=8.5427s
MSMs with terms=2^8, threads=31, window_size=3: avg=0.2834s, avg*threads=8.7861s
MSMs with terms=2^8, threads=32, window_size=3: avg=0.2882s, avg*threads=9.2230s
MSMs with terms=2^8, threads=33, window_size=3: avg=0.2856s, avg*threads=9.4241s
MSMs with terms=2^8, threads=34, window_size=3: avg=0.2937s, avg*threads=9.9854s
MSMs with terms=2^8, threads=35, window_size=3: avg=0.2859s, avg*threads=10.0078s
MSMs with terms=2^8, threads=36, window_size=3: avg=0.2836s, avg*threads=10.2084s
MSMs with terms=2^8, threads=37, window_size=3: avg=0.2851s, avg*threads=10.5483s
MSMs with terms=2^8, threads=38, window_size=3: avg=0.2842s, avg*threads=10.8015s
MSMs with terms=2^8, threads=39, window_size=3: avg=0.2878s, avg*threads=11.2259s
MSMs with terms=2^8, threads=40, window_size=3: avg=0.2860s, avg*threads=11.4402s
MSMs with terms=2^8, threads=41, window_size=3: avg=0.2840s, avg*threads=11.6448s
MSMs with terms=2^8, threads=42, window_size=3: avg=0.2847s, avg*threads=11.9581s
MSMs with terms=2^8, threads=43, window_size=3: avg=0.2844s, avg*threads=12.2281s
MSMs with terms=2^8, threads=44, window_size=3: avg=0.2838s, avg*threads=12.4851s
MSMs with terms=2^8, threads=45, window_size=3: avg=0.2861s, avg*threads=12.8738s
MSMs with terms=2^8, threads=46, window_size=3: avg=0.2886s, avg*threads=13.2756s
MSMs with terms=2^8, threads=47, window_size=3: avg=0.2870s, avg*threads=13.4896s
MSMs with terms=2^8, threads=48, window_size=3: avg=0.2846s, avg*threads=13.6615s
MSMs with terms=2^8, threads=49, window_size=3: avg=0.2852s, avg*threads=13.9724s
MSMs with terms=2^8, threads=50, window_size var cpro_id = "u6885494";

推荐阅读
  • 本文介绍了Composer依赖管理的重要性及使用方法。对于现代语言而言,包管理器是标配,而Composer作为PHP的包管理器,解决了PEAR的问题,并且使用简单,方便提交自己的包。文章还提到了使用Composer能够避免各种include的问题,避免命名空间冲突,并且能够方便地安装升级扩展包。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • EzPP 0.2发布,新增YAML布局渲染功能
    EzPP发布了0.2.1版本,新增了YAML布局渲染功能,可以将YAML文件渲染为图片,并且可以复用YAML作为模版,通过传递不同参数生成不同的图片。这个功能可以用于绘制Logo、封面或其他图片,让用户不需要安装或卸载Photoshop。文章还提供了一个入门例子,介绍了使用ezpp的基本渲染方法,以及如何使用canvas、text类元素、自定义字体等。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • 本文介绍了在Windows系统下安装Python、setuptools、pip和virtualenv的步骤,以及安装过程中需要注意的事项。详细介绍了Python2.7.4和Python3.3.2的安装路径,以及如何使用easy_install安装setuptools。同时提醒用户在安装完setuptools后,需要继续安装pip,并注意不要将Python的目录添加到系统的环境变量中。最后,还介绍了通过下载ez_setup.py来安装setuptools的方法。 ... [详细]
  • Python已成为全球最受欢迎的编程语言之一,然而Python程序的安全运行存在一定的风险。本文介绍了Python程序安全运行需要满足的三个条件,即系统路径上的每个条目都处于安全的位置、"主脚本"所在的目录始终位于系统路径中、若python命令使用-c和-m选项,调用程序的目录也必须是安全的。同时,文章还提出了一些预防措施,如避免将下载文件夹作为当前工作目录、使用pip所在路径而不是直接使用python命令等。对于初学Python的读者来说,这些内容将有所帮助。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 解决github访问慢的问题的方法集锦
    本文总结了国内用户在访问github网站时可能遇到的加载慢的问题,并提供了解决方法,其中包括修改hosts文件来加速访问。 ... [详细]
author-avatar
吴玉占_717
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有