热门标签 | 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";

推荐阅读
  • 本文详细解析了使用C++实现的键盘输入记录程序的源代码,该程序在Windows应用程序开发中具有很高的实用价值。键盘记录功能不仅在远程控制软件中广泛应用,还为开发者提供了强大的调试和监控工具。通过具体实例,本文深入探讨了C++键盘记录程序的设计与实现,适合需要相关技术的开发者参考。 ... [详细]
  • 掌握PHP编程必备知识与技巧——全面教程在当今的PHP开发中,了解并运用最新的技术和最佳实践至关重要。本教程将详细介绍PHP编程的核心知识与实用技巧。首先,确保你正在使用PHP 5.3或更高版本,最好是最新版本,以充分利用其性能优化和新特性。此外,我们还将探讨代码结构、安全性和性能优化等方面的内容,帮助你成为一名更高效的PHP开发者。 ... [详细]
  • 目录预备知识导包构建数据集神经网络结构训练测试精度可视化计算模型精度损失可视化输出网络结构信息训练神经网络定义参数载入数据载入神经网络结构、损失及优化训练及测试损失、精度可视化qu ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 本文介绍了如何利用HTTP隧道技术在受限网络环境中绕过IDS和防火墙等安全设备,实现RDP端口的暴力破解攻击。文章详细描述了部署过程、攻击实施及流量分析,旨在提升网络安全意识。 ... [详细]
  • 在PHP中如何正确调用JavaScript变量及定义PHP变量的方法详解 ... [详细]
  • 在List和Set集合中存储Object类型的数据元素 ... [详细]
  • Python 程序转换为 EXE 文件:详细解析 .py 脚本打包成独立可执行文件的方法与技巧
    在开发了几个简单的爬虫 Python 程序后,我决定将其封装成独立的可执行文件以便于分发和使用。为了实现这一目标,首先需要解决的是如何将 Python 脚本转换为 EXE 文件。在这个过程中,我选择了 Qt 作为 GUI 框架,因为之前对此并不熟悉,希望通过这个项目进一步学习和掌握 Qt 的基本用法。本文将详细介绍从 .py 脚本到 EXE 文件的整个过程,包括所需工具、具体步骤以及常见问题的解决方案。 ... [详细]
  • 在探讨 MySQL 正则表达式 REGEXP 的功能与应用之前,我们先通过一个小实验来对比 REGEXP 和 LIKE 的性能。通过具体的代码示例,我们将评估这两种查询方式的效率,以确定 REGEXP 是否值得深入研究。实验结果将为后续的详细解析提供基础。 ... [详细]
  • 本文详细介绍了使用 Python 进行 MySQL 和 Redis 数据库操作的实战技巧。首先,针对 MySQL 数据库,通过 `pymysql` 模块展示了如何连接和操作数据库,包括建立连接、执行查询和更新等常见操作。接着,文章深入探讨了 Redis 的基本命令和高级功能,如键值存储、列表操作和事务处理。此外,还提供了多个实际案例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 利用树莓派畅享落网电台音乐体验
    最近重新拾起了闲置已久的树莓派,这台小巧的开发板已经沉寂了半年多。上个月闲暇时间较多,我决定将其重新启用。恰逢落网电台进行了改版,回忆起之前在树莓派论坛上看到有人用它来播放豆瓣音乐,便萌生了同样的想法。通过一番调试,终于实现了在树莓派上流畅播放落网电台音乐的功能,带来了全新的音乐享受体验。 ... [详细]
  • 本文详细探讨了OpenCV中人脸检测算法的实现原理与代码结构。通过分析核心函数和关键步骤,揭示了OpenCV如何高效地进行人脸检测。文章不仅提供了代码示例,还深入解释了算法背后的数学模型和优化技巧,为开发者提供了全面的理解和实用的参考。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 通过将常用的外部命令集成到VSCode中,可以提高开发效率。本文介绍如何在VSCode中配置和使用自定义的外部命令,从而简化命令执行过程。 ... [详细]
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社区 版权所有