Advertisement

curve25519-dalek: 用纯Rust实现Ristretto和Curve25519上的群运算

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
curve25519-dalek是一个使用纯Rust编写的高效库,支持在Curve25519与Ristretto密码学曲线上的群操作。 curve25519-dalek 是一个用纯 Rust 实现的库,提供了对 Curve25519 的 Edwards 和 Montgomery 形式以及原始 Ristretto 组的操作支持。此库不是为了实现特定加密协议而设计的;相反,那些使用该库来构建具体协议(例如密钥交换和签名等)的人可以利用 curve25519-dalek 作为底层工具。curve25519-dalek 提供了一个干净且安全的中间层 API 来实现各种基于椭圆曲线密码学 (ECC) 的加密方案,如密钥协议、数字签名、匿名凭证以及范围证明和零知识证明系统等。 特别地,curve25519-dalek 实现了 Ristretto 协议。Ristretto 是一种从非素数阶的 Edwards 曲线构造出一个具有素数阶的群的方法,这既保留了 Edwards 曲线算术运算的速度和安全性优势,又避免了由于辅助因子所带来的潜在陷阱问题。 此外,该库遵循语义化版本控制(semver),确保在兼容性方面提供稳定的更新。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • curve25519-dalek: RustRistrettoCurve25519
    优质
    curve25519-dalek是一个使用纯Rust编写的高效库,支持在Curve25519与Ristretto密码学曲线上的群操作。 curve25519-dalek 是一个用纯 Rust 实现的库,提供了对 Curve25519 的 Edwards 和 Montgomery 形式以及原始 Ristretto 组的操作支持。此库不是为了实现特定加密协议而设计的;相反,那些使用该库来构建具体协议(例如密钥交换和签名等)的人可以利用 curve25519-dalek 作为底层工具。curve25519-dalek 提供了一个干净且安全的中间层 API 来实现各种基于椭圆曲线密码学 (ECC) 的加密方案,如密钥协议、数字签名、匿名凭证以及范围证明和零知识证明系统等。 特别地,curve25519-dalek 实现了 Ristretto 协议。Ristretto 是一种从非素数阶的 Edwards 曲线构造出一个具有素数阶的群的方法,这既保留了 Edwards 曲线算术运算的速度和安全性优势,又避免了由于辅助因子所带来的潜在陷阱问题。 此外,该库遵循语义化版本控制(semver),确保在兼容性方面提供稳定的更新。
  • Curve25519 Java-Android代码
    优质
    本项目提供了一个Java版本的Curve25519椭圆曲线加密算法实现,专门针对Android平台进行了优化和兼容性处理。 curve25519-java 是一个使用 Java 编写的 Curve25519 实现,在有原生代码可用的情况下会优先调用原生代码;如果没有,则仅使用纯 Java 代码实现。此外,还有一个适用于 J2ME 的版本。 **安装方法** 要在 Android 上使用,请在构建文件中添加以下依赖项: ```dependencies { compile org.whispersystems:curve25519-android:(latest version number here)}``` 要从纯 Java 中使用,则需要添加如下依赖项: `compile group: org.whispersystems, name: curve25519-java, version: (latest version number here)` 要在 J2ME 上使用,需添加以下依赖项: `compile group: org.whispersystems, name: curve25519-j2me, version: (latest version number here)`
  • Rust-Crypto:Rust中加密-Rust开发
    优质
    Rust-Crypto是专为Rust语言设计的一个库,它提供了一系列常见的加密算法实现。开发者可以利用此库进行安全的数据加密和解密操作,保护数据的安全性。 Rust-Crypto 是一种主要使用纯 Rust 实现的各种常规加密算法的库。它旨在创建通用密码学算法的实用且可审核的纯 Rust 版本,并在必要的情况下采用少量汇编代码优化性能。尽管 x86-64 架构上的测试最为广泛,但该库也支持 x86 和 ARM 等架构。Rust-Crypto 的目标是与当前稳定的 Rust 版本兼容;如果使用旧版本时遇到问题,请尝试升级到最新版的 Rust。
  • PointnetPointnet2PyTorch:使Python并在ModelNet、ShapeNet等数据集行...
    优质
    本文介绍了PointNet及其改进版本PointNet++在PyTorch框架下的实现方法,并展示了它们在ModelNet和ShapeNet数据集上的应用。 PointNet 和 PointNet++ 的 Pytorch 实现已经更新至最新版本。截至2021年3月27日的更新包括: (1)发布了预训练语义分割模型,其中PointNet++达到了53.5%的mIoU。 (2)在log文件夹中提供了用于分类和零件细分任务的预训练模型。 此外,在2021年3月20日进行了以下代码优化更新: (1)增加了ModelNet10数据集上的训练代码,通过设置--num_category 10实现。 (2)加入了仅使用CPU运行的选项,通过添加 --use_cpu 参数启用。 (3)实现了离线数据预处理功能以加速训练过程,可通过 --process_data 开关激活。 (4)增加了统一采样方法用于模型训练,可以通过设置--use_uniform_sample来选择此模式。 最后,在2019年11月26日的更新中: (1)修复了一些先前版本中的错误,并引入了数据增强技术。现在仅使用 1024 点就能实现高达 92.8% 的分类准确率。 (2)重写了部分代码以提高效率和准确性。
  • EGUI:Rust即时模式GUI
    优质
    EGUI是一款使用Rust语言开发的轻量级、易于使用的即时模式图形用户界面库,为开发者提供了简洁而强大的工具来构建交互式应用。 :paintbrush: egui:纯Rust中易于使用的GUI egui是一个用于Rust的简单、快速且高度可移植的即时模式GUI库。它可以在网络上运行,也可以在您喜欢的游戏引擎中运行(或即将运行)。 egui旨在成为最容易使用的Rust GUI库,并且是在Rust中制作Web应用程序的最简单方法。 egui可以在任何可以绘制纹理三角形的地方使用,这意味着您可以轻松地将其集成到您选择的游戏引擎中。 快速开始 如果您只想用Rust编写GUI应用程序,请访问相关说明并按照指示操作! 如果要将egui集成到现有引擎中,请查看相应部分。
  • Curve25519 共享密钥生成 GUI:基于椭圆曲线密码术curve-25519私钥生成工具
    优质
    Curve25519共享密钥生成GUI是一款用户友好的图形界面工具,专门用于根据椭圆曲线密码学原理生成安全的25519私钥,确保数据传输的高度安全性。 程序在给定的 x 坐标点 P 和 256 位随机生成的私钥 d 上执行标量乘法操作。默认情况下,P 点为 (x=9),这是曲线 25519 的基点。输入应以小端十六进制格式提供。 该程序仅在几个特定点和不同私钥上进行了测试。用户通过计算 Q = dP 来生成公钥,并将其分享给另一个用户,后者使用自己的公钥与之交互来创建共享密钥 S = dQ。此共享密钥用于 AES 等加密算法以对两个用户之间的消息进行加密或解密。 程序并非专门针对高速度优化设计,但在实际应用中仍然表现出良好的执行效率。该实现采用蒙哥马利阶梯技术来进行标量乘法运算。 学习椭圆曲线密码学是一项非常有趣且具有挑战性的任务。掌握点加法和标量乘法的计算方法以及理解离散对数问题为何难以破解是这一领域的重要内容之一。如有任何建议或疑问,欢迎随时交流分享。
  • PythonRSA
    优质
    本文章详细介绍了如何使用Python编程语言从头开始实现经典的RSA加密算法。通过简洁而直接的方式解释了公钥和私钥的概念以及它们在加密与解密过程中的应用,适合对密码学感兴趣的初学者深入理解这一安全协议的工作原理。 RSA算法的纯Python实现包含4个文件: 1. 大整数运算库:该库提供乘模运算、幂模运算(使用蒙哥马利算法)、最大公约数计算及扩展欧几里得算法等。 2. 质数库:包括Miller-Rabin素数判断法,大整数快速因式分解算法(pollard_rho算法),以及生成指定位数的大质数或大整数的函数。 3. RSA算法库:利用前两个库实现RSA加密。实现了生成指定长度的密钥对、数据加解密、数字签名和验证等核心功能。 4. RSAtest.py: 这是一个使用上述RSA算法库的例子,从创建一对公私密钥开始,演示了如何进行信息的加密与解密以及数字签名及其验证的过程。此外还展示了当消息被修改后,原数字签名的有效性检查。 此实现支持最小32位长度的密钥,并且理论上没有最大限制。然而,在实际测试中发现1024位密钥生成大约需要1.3秒左右的时间;而生成一个1536位长的密钥则耗时约5到6秒钟,对于更长如2048位的密钥,则需要花费接近27秒时间。
  • MATLAB代码在相机-SOFTPOSIT-CPP:软件C++
    优质
    本项目提供了一个使用纯C++编写的MATLAB SOFTPOSIT算法实现,适用于无硬件加速的环境。通过精简和优化的代码,使该算法能够在标准相机上高效运行。 MATLAB的代码在相机上的实现介绍: SoftPOSIT是由David等人提出的一种算法。该算法是一种基于模型的方法,在物体点与图像点之间的对应关系未知的情况下,可以从单张2D图像中确定3D物体的姿态(位置和方向)。此方法结合了用于计算对应关系的Softassign技术和用于计算对象姿态的POSIT技术。 通过这种方法可以找到相机相对于物体的旋转和平移参数。现有实施包括MATLAB实现以及C或Fortran语言展示次数。 其他人还提供了C++版本的实现,这些实现在一个代码库中可用。该项目由CMake管理,并且主要依赖于Armadillo线性代数库和Boost库。 构建步骤如下: 1. 克隆项目:`git clone git@github.com:autosquidsoftposit.git` 2. 进入软件包目录并创建build文件夹 3. 使用cmake生成makefile,然后执行make命令 以上是关于如何使用SoftPOSIT算法在相机上实现的介绍。
  • rust-socketio:基于Rust语言socket.io客户端
    优质
    rust-socketio 是一个用 Rust 语言编写的 socket.io 客户端库,提供与 JavaScript 版本相同的强大功能和灵活性,适用于实时通信场景。 Rust-socketio客户端是用Rust编程语言实现的socket.io客户端。此实现当前支持socket.io协议第5版修订版,因此也兼容engine.io协议第4版修订版。如果遇到连接问题,请确保服务器至少使用engine.io协议第4版。 下面是一个示例用法: ```rust use rust_socketio::{SocketBuilder, Payload, Socket}; use serde_json::json; use std::time::Duration; // 定义一个回调函数,当接收到payload时调用此函数。 // 此回调获取到的参数包括payload和用于通信的socket实例。 ``` 在上述示例中,你需要定义一个接收消息后的处理逻辑,并传入相关的Socket对象以便进一步操作。
  • Rust-PSUtil:于过程系统监控Rust
    优质
    简介:Rust-PSUtil是一款专为Rust语言开发的过程与系统监控库,提供丰富的API接口来获取系统资源使用情况及进程信息。 rust-psutil 是一个 Rust 语言的过程和系统监视库,其设计灵感来源于 Python 的 psutil 模块。需要注意的是,在版本控制方面,尽管 rust-psutil 已经发布了 1.0 版本,但仍在进行大量改动,API 相对不稳定。 使用方法:在 Cargo.toml 文件中添加如下依赖: ```toml [dependencies] psutil = 3.2.1 ``` 或者仅选择某些子模块: ```toml [dependencies] psutil = { version = 3.2.1, default-features = false, features = [ cpu, process ] } ``` 目前,rust-psutil 支持 Linux 和 macOS 平台,计划在未来为所有主要平台提供支持。每个平台的具体实现细节将在后续文档中详细介绍。 使用 rust-psutil 的相关项目包括锈系统状态 gopsutil 等。