非对称群密钥协议asymmetric group key agreement

2023-10-22 06:59

本文主要是介绍非对称群密钥协议asymmetric group key agreement,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文:

Q. Wu, Y. Mu, W. Susilo, B. Qin, and J. Domingo-Ferrer, "Asymmetric group key agreement," in Proc. of EUROCRYPT 2009, Cologne, Germany, Apr. 2009, pp. 153–170.

密码学之安全模型总结 - Max1z - 博客园 (cnblogs.com)

一些复杂的密码系统都依赖于用户之间的秘密信道,密钥协商的主要目标就是构建用户之间的秘密信道。每个人各自产生自己的公私钥,公开自己的公钥。这种方式使得发送者需要掌握所有人的公钥信息,密文是所有公钥分别加密产生密文的链接,开销巨大。很多方案可以抵抗被动攻击,但是不抵抗内部攻击。

应用场景:常规广播方案和GKA协议很难应用的场景。(临时组、共享离线文件、组聊天、避免卖方知道买方信息的群体购买)

研究目的:场景更加广泛、开销小速度快(一轮协商、加密速度也快)、可以发现内部恶意用户(验证方案是否正确执行)

不足:未能有效解决临时组的问题(系统建立开销大)、没有考虑主动攻击、无法支持新增用户、没有考虑组内用户合谋通过他们的密钥产生新的解密密钥的情况

群密钥协议可以支持一组用户在公共网络上建立隐私通信。与一般的方案(对称)不同,非对称协议中协商的不是最终的密钥,而是协商出加密密钥,再由群里的每个用户自己计算出自己的解密密钥,并且每个人都无法计算其他群成员的。

文章在ASBB的基础上构建了一个一轮(每人只发送一条消息,并且这个发送可以是同时的)的没有其他预设条件的非对称群密钥协议asymmetric group key agreement,本方案没有考虑组内用户合谋通过他们的密钥产生新的解密密钥的情况。这个方案群用户中不需要中心节点、每个用户可以自己确认自己密钥的正确性、计算量和存储量都比较小、可以发现并删除没有诚实地进行操作的用户。

目录

ASBB(aggregatable signature-based broadcast,基于聚合签名的广播)

非对称群密钥协议asymmetric group key agreement

具体方案


ASBB(aggregatable signature-based broadcast,基于聚合签名的广播)

方案性质:密钥同态、可聚合性。

该方案的安全性包括:签名算法是EUF-CMA(选择消息攻击下的存在不可伪造性)安全的、加密算法是Ind-CPA(选择明文攻击下的不可区分性)安全的。

此为论文截图。

也就是建立模型,生成密钥、公开参数后,构造一个可以通过验证的签名,用公钥加密要加密的明文输出密文。由公钥、一条消息和它对应的签名、密文,就可以解密密文得到明文。

非对称群密钥协议asymmetric group key agreement

n个用户矩阵横向的操作是公开操作,数据是公开的。用户自己生成自己的公钥,并利用公钥和用户的身份信息计算出对应的签名值(即每个用户计算对应矩阵的一行的值),最后每个用户根据公式

计算对应的解密密钥,加密密钥为:

原文中称在文章中只考虑了CPA(选择明文攻击)安全性,但是因为方案的输出也可以视作基于公钥加密的广播系统,因此是可以做到CCA(选择密文攻击)安全的。可以参考下面文献的思路提升该安全性。

具体方案

原文在4.1和4.2部分分别描述了具体的ASBB和ASGKA方案,并在第四章进行了完善的安全性分析。

[1]FUJISAKI E, OKAMOTO T. Secure Integration of Asymmetric and Symmetric Encryption Schemes[M/OL]//Advances in Cryptology — CRYPTO’ 99,Lecture Notes in Computer Science. 1999: 537-554. http://dx.doi.org/10.1007/3-540-48405-1_34. DOI:10.1007/3-540-48405-1_34.

这篇关于非对称群密钥协议asymmetric group key agreement的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/259843

相关文章

【Linux】应用层http协议

一、HTTP协议 1.1 简要介绍一下HTTP        我们在网络的应用层中可以自己定义协议,但是,已经有大佬定义了一些现成的,非常好用的应用层协议,供我们直接使用,HTTP(超文本传输协议)就是其中之一。        在互联网世界中,HTTP(超文本传输协议)是一个至关重要的协议,他定义了客户端(如浏览器)与服务器之间如何进行通信,以交换或者传输超文本(比如HTML文档)。

git ssh key相关

step1、进入.ssh文件夹   (windows下 下载git客户端)   cd ~/.ssh(windows mkdir ~/.ssh) step2、配置name和email git config --global user.name "你的名称"git config --global user.email "你的邮箱" step3、生成key ssh-keygen

matlab读取NC文件(含group)

matlab读取NC文件(含group): NC文件数据结构: 代码: % 打开 NetCDF 文件filename = 'your_file.nc'; % 替换为你的文件名% 使用 netcdf.open 函数打开文件ncid = netcdf.open(filename, 'NC_NOWRITE');% 查看文件中的组% 假设我们想读取名为 "group1" 的组groupName

【Go】go连接clickhouse使用TCP协议

离开你是傻是对是错 是看破是软弱 这结果是爱是恨或者是什么 如果是种解脱 怎么会还有眷恋在我心窝 那么爱你为什么                      🎵 黄品源/莫文蔚《那么爱你为什么》 package mainimport ("context""fmt""log""time""github.com/ClickHouse/clickhouse-go/v2")func main(

2024.9.8 TCP/IP协议学习笔记

1.所谓的层就是数据交换的深度,电脑点对点就是单层,物理层,加上集线器还是物理层,加上交换机就变成链路层了,有地址表,路由器就到了第三层网络层,每个端口都有一个mac地址 2.A 给 C 发数据包,怎么知道是否要通过路由器转发呢?答案:子网 3.将源 IP 与目的 IP 分别同这个子网掩码进行与运算****,相等则是在一个子网,不相等就是在不同子网 4.A 如何知道,哪个设备是路由器?答案:在 A

Modbus-RTU协议

一、协议概述 Modbus-RTU(Remote Terminal Unit)是一种基于主从架构的通信协议,采用二进制数据表示,消息中的每个8位字节含有两个4位十六进制字符。它主要通过RS-485、RS-232、RS-422等物理接口实现数据的传输,传输距离远、抗干扰能力强、通信效率高。 二、报文结构 一个标准的Modbus-RTU报文通常包含以下部分: 地址域:单个字节,表示从站设备

DBeaver 连接 MySQL 报错 Public Key Retrieval is not allowed

DBeaver 连接 MySQL 报错 Public Key Retrieval is not allowed 文章目录 DBeaver 连接 MySQL 报错 Public Key Retrieval is not allowed问题解决办法 问题 使用 DBeaver 连接 MySQL 数据库的时候, 一直报错下面的错误 Public Key Retrieval is

3.比 HTTP 更安全的 HTTPS(工作原理理解、非对称加密理解、证书理解)

所谓的协议 协议只是一种规则,你不按规则来就无法和目标方进行你的工作 协议说白了只是人定的规则,任何人都可以定协议 我们不需要太了解细节,这些制定和完善协议的人去做的,我们只需要知道协议的一个大概 HTTPS 协议 1、概述 HTTPS(Hypertext Transfer Protocol Secure)是一种安全的超文本传输协议,主要用于在客户端和服务器之间安全地传输数据

ja-netfilter的前世今生和非对称加密的欺骗原理

文章目录 ja-netfilter起源官网插件插件配置文件插件的综合应用更多用法 非对称加密欺骗原理非对称加密和数字证书激活过程和欺骗手段分析代码示例第一步:生成自签名证书脚本第二步:使用自签名证书对产品激活信息进行签名 样例数据样例激活码(注:用于代码演示,直接粘贴到JetBrains 家 IDE 中无法完成激活!不用试,肯定提示无效,无法激活!!)样例power.conf(配合ja-ne

AI辅助编程里的 Atom Group 的概念和使用

背景 在我们实际的开发当中,一个需求往往会涉及到多个文件修改,而需求也往往有相似性。 举个例子,我经常需要在 auto-coder中需要添加命令行参数,通常是这样的: /coding 添加一个新的命令行参数 --chat_model 默认值为空 实际上这个需求涉及到以下文件列表: /Users/allwefantasy/projects/auto-coder/src/autocoder/auto