密码学之广播加密

2024-08-22 18:12
文章标签 广播 加密 密码学

本文主要是介绍密码学之广播加密,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.什么是广播加密

广播加密是一种支持在不安全的公开信道上实现多用户数据安全共享的加密技术,适用于一对多安全传输场景。

2.广播加密的工作原理

数据拥有者首先选取一组接收者,运行广播加密算法,将加密得到的密文发布到公开信道,监听该信道的所有用户均可获取密文,但只有授权用户可利用解密密钥正确解密,未授权用户不能从密文中获取任何明文信息。

3.应用场景

广播加密在付费电视、数字版权保护及区块链等领域广泛使用,根据广播加密的应用场景需求不同或功能不同,可分为标识广播加密、匿名广播加密、叛逆者追踪广播加密,以及可撤销广播加密等

4.广播加密的分类

4.1对称私钥广播加密系统

在对称广播加密中,广播者只能是可信机构,该机构负责生成并分发已授权用户的解密密钥,因此,对称广播加密在实际应用中局限性较大,应用范围窄.

公钥广播i加密允许系统内任意用户作为数据拥有者,且数据拥有者可指定任意系统内一个用户集合作为数据接收者,只有集合内的用户可以
解密

在对称广播加密方案中,用户的秘密钥由供应商产生,用户和供应商之间的会话密钥被分成许多部分,供应商把会话密钥的每一部分分别用某一密钥集合中的所有密钥加密,用会话加密明文。
啥意思?没懂

举个例子

供应商把会话密钥S分成m个部分

K e y 1 , 1 , K e y 1 , 2 , . . . , K e y 1 , n Key_{1,1},Key_{1,2},...,Key_{1,n} Key1,1,Key1,2,...,Key1,n对应的加密为 E n c ( K e y 1 , 1 , s 1 ) , E n c ( K e y 1 , 2 , s 1 ) , . . . , E n c ( K e y 1 , n , s 1 ) Enc(Key_{1,1},s_1),Enc(Key_{1,2},s_1),...,Enc(Key_{1,n},s_1) Enc(Key1,1,s1),Enc(Key1,2,s1),...,Enc(Key1,n,s1)
K e y 2 , 1 , K e y 2 , 2 , . . . , K e y 2 , n Key_{2,1},Key_{2,2},...,Key_{2,n} Key2,1,Key2,2,...,Key2,n对应的加密为 E n c ( K e y 2 , 1 , s 2 ) , E n c ( K e y 2 , 2 , s 2 ) , . . . , E n c ( K e y 2 , n , s 2 ) Enc(Key_{2,1},s_2),Enc(Key_{2,2},s_2),...,Enc(Key_{2,n},s_2) Enc(Key2,1,s2),Enc(Key2,2,s2),...,Enc(Key2,n,s2)
. . . . . ..... .....
K e y m , 1 . K e y m , 2 , . . . , K e y m , n Key_{m,1}.Key_{m,2},...,Key_{m,n} Keym,1.Keym,2,...,Keym,n对应的加密为 E n c ( K e y m , 1 , s m ) , E n c ( K e y m , 2 , s m ) , . . . , E n c ( K e y m , n , s m ) Enc(Key_{m,1},s_m),Enc(Key_{m,2},s_m),...,Enc(Key_{m,n},s_m) Enc(Keym,1,sm),Enc(Keym,2,sm),...,Enc(Keym,n,sm)

如果几个用户合谋,只要把自己密钥的某一部分取出来,组成一个新的解密密钥,只要新密钥能够把会话密钥的每一部分解密出来,就可以把会话密钥哦计算出来,进而解密出明文。

如果有用户申请服务,供应商从每个桶中取出一个密钥组成一个秘密钥给用户,这个密钥为用户的Personal Key, 这样用户就可以恢复所有的 s i s_i si,也就可以回复 s s s,恢复‚进而解密密文

4.2非对称广播加密方案
非对称广播加密方案与对称广播加密方案广播加密方案的唯一区别是,用户的秘密钥不完全被供应商掌握‚只有部分信息被供应商掌握,但是当供应商发现发现盗版的解密盒时,通过提取盗版解密盒中的密钥和供应商已掌握的信息就可以追踪的盗版用户

5.广播加密应该满足的安全属性

(1)权限控制: 系统用户的添加或删除由可信中心执行,用户的解密权限由加密者( 数据拥有者) 决定。
(2)抗合谋攻击: 任何数量的非授权接收者即使合谋都无法解密获取加密数据的内容。
(3)接收者无状态: 在系统的整个生命周期内接收者无需改变自己的设置,解密操作只能按照系统初始设置进行

这篇关于密码学之广播加密的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

使用zip4j实现Java中的ZIP文件加密压缩的操作方法

《使用zip4j实现Java中的ZIP文件加密压缩的操作方法》本文介绍如何通过Maven集成zip4j1.3.2库创建带密码保护的ZIP文件,涵盖依赖配置、代码示例及加密原理,确保数据安全性,感兴趣的... 目录1. zip4j库介绍和版本1.1 zip4j库概述1.2 zip4j的版本演变1.3 zip4

SpringBoot中SM2公钥加密、私钥解密的实现示例详解

《SpringBoot中SM2公钥加密、私钥解密的实现示例详解》本文介绍了如何在SpringBoot项目中实现SM2公钥加密和私钥解密的功能,通过使用Hutool库和BouncyCastle依赖,简化... 目录一、前言1、加密信息(示例)2、加密结果(示例)二、实现代码1、yml文件配置2、创建SM2工具

python实现对数据公钥加密与私钥解密

《python实现对数据公钥加密与私钥解密》这篇文章主要为大家详细介绍了如何使用python实现对数据公钥加密与私钥解密,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录公钥私钥的生成使用公钥加密使用私钥解密公钥私钥的生成这一部分,使用python生成公钥与私钥,然后保存在两个文

在Spring Boot中实现HTTPS加密通信及常见问题排查

《在SpringBoot中实现HTTPS加密通信及常见问题排查》HTTPS是HTTP的安全版本,通过SSL/TLS协议为通讯提供加密、身份验证和数据完整性保护,下面通过本文给大家介绍在SpringB... 目录一、HTTPS核心原理1.加密流程概述2.加密技术组合二、证书体系详解1、证书类型对比2. 证书获

使用Java实现Navicat密码的加密与解密的代码解析

《使用Java实现Navicat密码的加密与解密的代码解析》:本文主要介绍使用Java实现Navicat密码的加密与解密,通过本文,我们了解了如何利用Java语言实现对Navicat保存的数据库密... 目录一、背景介绍二、环境准备三、代码解析四、核心代码展示五、总结在日常开发过程中,我们有时需要处理各种软

利用python实现对excel文件进行加密

《利用python实现对excel文件进行加密》由于文件内容的私密性,需要对Excel文件进行加密,保护文件以免给第三方看到,本文将以Python语言为例,和大家讲讲如何对Excel文件进行加密,感兴... 目录前言方法一:使用pywin32库(仅限Windows)方法二:使用msoffcrypto-too

Java中使用Hutool进行AES加密解密的方法举例

《Java中使用Hutool进行AES加密解密的方法举例》AES是一种对称加密,所谓对称加密就是加密与解密使用的秘钥是一个,下面:本文主要介绍Java中使用Hutool进行AES加密解密的相关资料... 目录前言一、Hutool简介与引入1.1 Hutool简介1.2 引入Hutool二、AES加密解密基础

SpringBoot3使用Jasypt实现加密配置文件

《SpringBoot3使用Jasypt实现加密配置文件》这篇文章主要为大家详细介绍了SpringBoot3如何使用Jasypt实现加密配置文件功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编... 目录一. 使用步骤1. 添加依赖2.配置加密密码3. 加密敏感信息4. 将加密信息存储到配置文件中5

SpringBoot整合jasypt实现重要数据加密

《SpringBoot整合jasypt实现重要数据加密》Jasypt是一个专注于简化Java加密操作的开源工具,:本文主要介绍详细介绍了如何使用jasypt实现重要数据加密,感兴趣的小伙伴可... 目录jasypt简介 jasypt的优点SpringBoot使用jasypt创建mapper接口配置文件加密

Java实现MD5加密的四种方式

《Java实现MD5加密的四种方式》MD5是一种广泛使用的哈希算法,其输出结果是一个128位的二进制数,通常以32位十六进制数的形式表示,MD5的底层实现涉及多个复杂的步骤和算法,本文给大家介绍了Ja... 目录MD5介绍Java 中实现 MD5 加密方式方法一:使用 MessageDigest方法二:使用