哈希签名溯源--Lamport40签名算法

news2024/11/15 12:35:14

背景

哈希签名是指只依赖哈希函数的数字签名算法(而非某个数学问题,例如ECC的离散对数问题、RSA的大整数因式分解)。这类算法一直不是主流,但随着量子计算机及其配套算法(舒尔算法)的出现,ECC和RSA的安全性降低,并且任何基于离散对数问题的算法都不能幸免。而哈希签名可以更好地对抗量子计算机的攻击,SPHINCS+算法(2019年公布的哈希签名算法)也通过了NIST的评选,不出意外将会成为正式标准。

概述

Leslie Lamport的Constructing digital signatures from a one way function. Technical Report SRI-CSL-98, SRI International Computer Science Laboratory (1979)是我追溯到的最早的哈希签名算法,现在很多文献都会引用它。这个文献现在已经公开可以免费下载。

本文将会详细介绍其第2章所述的算法并翻译部分内容,但不会给出代码。Lamport40有很多缺点,现在已经没有软件会直接使用它。

一般说Lamport算法都是指面包店算法,Leslie Lamport的代表作,所以我起了一个新名字"Lamport40",选择编号40是因为原文使用长度为40的数组作为公钥。

算法描述

设m表示待签名的数据,Z表示{1,2,3,......,40}的子集中恰好包含20个元素的集合构成的集合,也就是{1,2,3,......,40}的幂集的一部分(译者注:原文是\sum,一文中使用Z代替。40和20可以替换为2n和n,译文会按照原文直接使用40和20)。

设F是一个哈希函数。为叙述简便,约定其输出的哈希长度为32字节。

设G是一个哈希函数,其值域是Z。G的构造并不复杂,可以参考原文第3章。

签名者首先选择40个整数作为私钥,记为ki(i=1,2,3,...,40),计算这40个数的哈希值F(ki),令a=(F(k1),F(k2),...,F(k40))作为公钥发送。

签名过程:首先计算G(m)={i1,i2,i3,...,i20},令i1<i2<i3<...<i20,得到一个元组(i1,i2,i3,...,i20),将(ki1,ki2,ki3,...,ki20)作为签名值发出。

验签过程:首先计算G(m)={i1,i2,i3,...,i20},令i1<i2<i3<...<i20,得到一个元组(i1,i2,i3,...,i20),计算F(ki1)~F(ki20),验证20个哈希值是否与公钥对应。需要注意的是验签过程计算的哈希值要按照i的值放入长度为40(不是20)的数组中,和公钥比较时只比较有值的部分,如果全部相同则验签通过。

算法缺陷

1、公钥长度和签名长度过长。

2、签名值包含私钥的部分内容,因此密钥对只能一次性使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2117667.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

kubeadm 初始化 k8s 证书过期解决方案

概述 在使用 kubeadm 初始化的 Kubernetes 集群中&#xff0c;默认情况下证书的有效期为一年。当证书过期时&#xff0c;集群中的某些组件可能会停止工作&#xff0c;导致集群不可用。本文将详细介绍如何解决 kubeadm 初始化的 Kubernetes 集群证书过期的问题&#xff0c;并提…

ETF全量后复权数据更新与一个限时免费的星球

原创第645篇 | AI量化实验室 AI量化实验室星球本周计划&#xff1a; 1、“七天入门量化投资”专栏更新完成第三天和第四天。 2、lightgbm为代表的机器学习因子合成与stockranker实现。 3、etf全量数据更新到最新。 class ETFQuotes(Quotes):def __init__(self, tb_basiebasi…

MySQL:运维管理-主从复制

目录 一、主从复制的概述二、主从复制的工作原理三、搭建主从复制的结构3.1 环境准备3.2 搭建配置&#xff08;主库配置&#xff09;3.3 搭建配置&#xff08;从库配置&#xff09;3.4 测试 一、主从复制的概述 主从复制是指将主数据库中的DDL和DML操作的二进制文件保存到本地&…

通义千问更新数学大模型及视觉多模态

Qwen2-Math&#xff0c;这是通义千问专门为数学场景优化的模型&#xff0c;其数学能力指标甚至超越了GPT4o, Claude3.5 Sonnet, Deepseek Coder等顶流模型&#xff0c;目前从指标来看是最强的数学模型。目前是免费供应&#xff0c;大家碰到数学问题可以选择使用这个模型。 Qw…

[数据集][图像分类]嘴巴张开闭合分类数据集6397长2类别

数据集类型&#xff1a;图像分类用&#xff0c;不可用于目标检测无标注文件 数据集格式&#xff1a;仅仅包含jpg图片&#xff0c;每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数)&#xff1a;6397 分类类别数&#xff1a;2 类别名称:["close","open&qu…

linux安装redis、使用redis、用springboot连接redis

安装redis 解压redis的tar包 tar -vsxf 包名 解压完之后进入解压过的tar包里 编译 make 安装和安装的位置 make PREFIX/opt/redis/redisserver install 成功后进入安装的位置 cd /opt/redis/redisserver/ 进入bin cd bin 找到redis-server&#xff0c;运行 ./redis-…

66城代表齐聚!蓝卓分享“全国经验”,批量复制推动中小企业数字化转型

9月6日下午&#xff0c;2024中小企业数字化转型现场交流活动在浙江宁波隆重举行。 全国66个中小企业试点城市500多名中小企业主管部门及专家学者&#xff0c;制造业企业、数字化转型服务商等重点企业代表齐聚宁波&#xff0c;共同探讨中小企业数字化转型的模式和路径。 工业和…

Keysight E4991A射频阻抗/材料分析仪3GHz

Keysight E4991A射频阻抗/材料分析仪3GHz KEYSIGHT E4991A&#xff08;安捷伦&#xff09;&#xff08;要求提供&#xff09; Keysight E4991A 射频阻抗/材料分析仪提供出色的阻抗测量性能和强大的内置分析功能。它将为评估 3 GHz 范围内组件的组件和电路设计师提供研发创新。…

小琳AI课堂:深入学习Transformer模型

大家好&#xff0c;这里是小琳AI课堂。今天我们来深入学习Transformer模型&#xff0c;这个在深度学习领域引发革命的技术。 Transformer模型的革命性优势 Transformer模型被认为是引发了深度学习领域革命的技术&#xff0c;主要原因有以下几点&#xff1a; 突破性的性能提升…

智能化升级:未来交流充电桩的创新之路

随着电动汽车的普及&#xff0c;交流充电桩作为充电基础设施的重要组成部分&#xff0c;其未来的发展趋势备受关注。本文将探讨交流充电桩在未来可能呈现的几个发展方向。 一、智能化升级 未来的交流充电桩将更加智能化。通过物联网技术&#xff0c;充电桩将能够实现远程监控…

已解决:ppt文件打开就是只读模式,如何改为可编辑模式?

PPT文档打开是只读模式&#xff0c;如何改成可编辑文档呢&#xff1f;这需要分几种情况来说&#xff0c;所以今天将介绍几种方法帮助PPT只读文档改为可编辑文档。 方法一&#xff1a; 我们可以先查看一下文件属性&#xff0c;属性中有只读属性&#xff0c;当我们打开文档之后带…

3个办法轻松操作:flac转mp3在线快速完成

在这个时代&#xff0c;音频已经渗入人们的生活&#xff0c;成为日常中不可或缺的一部分。因为实际需要&#xff0c;人们分门别类地设置了许多音频格式。flac格式作为一种常见的无损音频压缩格式&#xff0c;通常用于存储高品质音频文件。 对于那些希望在不同设备上享受音乐的…

设计模式 解释器模式(Interpreter Pattern)

文章目录 解释器模式简绍解释器模式的结构优缺点UML图具体代码实现Context 数据实体类&#xff0c;可以包含一些方法Abstract Expression 创建接口方法Terminal Expression 对数据简单处理Non-Terminal Expression 同样实现抽象接口方法Client&#xff08;客户端&#xff09; 调…

Java 字符串、数组、ArrayList之间的相互转换

1. 数组转字符串 import java.util.Arrays;public class Test02 {public static void main(String[] args){String[] scores1 new String[]{"10","20","30","40","50"};String[] scores2 {"10","20",…

开源的 Kafka 管理平台

来源&#xff1a;github.com/provectus/kafka-ui Apache Kafka UI 是一个免费的开源 Web UI&#xff0c;用于监控和管理 Apache Kafka 集群&#xff0c;可方便地查看 Kafka Brokers、Topics、消息、Consumer 等情况&#xff0c;支持多集群管理、性能监控、访问控制等功能。 1 …

自编码器(Autoencoder,AE)

Autoencoders and their applications in machine learning: a survey 1、Autoencoder&#xff08;自编码器&#xff0c;AE&#xff09; 自编码器&#xff08;Autoencoder&#xff09;是一种无监督学习算法&#xff0c;主要用于数据的降维、特征提取和数据重建。自编码器由两个…

计算机毕业设计hadoop+spark+hive动漫推荐系统 动漫视频推荐系统 漫画分析可视化大屏 漫画爬虫 漫画推荐系统 漫画爬虫 知识图谱 大数据

《HadoopSparkHive动漫推荐系统》开题报告 一、引言 随着互联网技术的飞速发展&#xff0c;动漫产业的数据量急剧增长。用户面临着海量动漫作品的选择难题&#xff0c;如何从这些数据中高效地提取有价值的信息&#xff0c;为用户推荐符合其喜好的动漫作品&#xff0c;成为当前…

创客匠人_公域变天!知识IP传统打法失灵,不转型就出局!

“什么叫定位&#xff1f;我认为定位就是你在这个社会里找到属于你自己的分工。然后通过深挖客户群体的痛点&#xff0c;去做产品升级和迭代。企业的价值或者IP的价值&#xff0c;就是为这个社会解决某一方面的问题。”老蒋说。 在老蒋创客圈第65期对话标杆直播连麦中&#xff…

PTA求一批整数中出现最多的个位数字

作者 徐镜春 单位 浙江大学 给定一批整数&#xff0c;分析每个整数的每一位数字&#xff0c;求出现次数最多的个位数字。例如给定3个整数1234、2345、3456&#xff0c;其中出现最多次数的数字是3和4&#xff0c;均出现了3次。 输入格式&#xff1a; 输入在第1行中给出正整数…

鸿蒙OS Page Ability

鸿蒙OS 基本概念 Page与AbilitySlice Page 模板&#xff08;以下简称“Page”&#xff09;是 FA 唯一支持的模板&#xff0c;用于提供与用户交互的能力。一个 Page 可以由一个或多个 AbilitySlice 构成&#xff0c;AbilitySlice 是指应用的单个页面及其控制逻辑的总和。 当一…