【隐私保护】无证书签名方案(CLS)

一、CLS方案提出的背景

        无证书签名方案(Certificateless Signature Scheme, CLS)是一种旨在结合公钥基础设施(PKI)和基于身份的加密(IBE)的优点,同时避免它们缺点的加密技术。

        CLS方案的主要目标是解决PKI中证书管理的复杂性和IBE中私钥生成器(PKG)的单点故障问题。

类型技术描述优点缺点
认证方案PKI-based参与者依赖于证书颁发机构(CA)CA负责证书的颁发、认证及管理CA受攻击时公钥安全性无法保障;证书管理成本高
认证方案ID-based基于身份的签名技术解决证书管理问题私钥生成器(PKG)若不安全则可能导致私钥泄露
认证方案Certificateless无证书签名方案克服了PKI和ID-based方案的题

密钥生成中心若不安全,用户的私钥可能会泄露。

        CLS方案特别适合于资源受限的环境,如移动设备、物联网设备以及需要高效、灵活的认证机制的场景。举例:在V2G网络中,CLS方案可以用于

  • 认证:确保电动汽车与充电站之间的通信是安全的。
  • 隐私保护:通过匿名签名技术保护用户的隐私。
  • 效率:减少计算和通信开销,提高网络性能。

二、CLS方案的工作原理(以V2G举例)

        拿V2G网络举例,补充一下系统模型中的实体,这样有利于加深对CLS方案的理解。系统模型中的实体角色:

  1. TA (Trusted Authority): TA是一个完全可信的第三方,负责系统的初始化、车辆注册、签名验证以及追踪带有非法签名的车辆。
  2. KGC (Key Generation Center): KGC密钥生成中心是一个部分可信的实体,负责为每辆EV生成部分私钥。
  3. LA (Local Aggregator): LA相当于一个本地网关,用于传输信息,并且能够聚合来自不同CS的消息并将它们发送给TA。
  4. CS (Charging Station): CS充电桩是EV和电网之间交换电力和信息的桥梁,同时也是用户的电力购买终端。
  5. EV (Electric Vehicle): EV电动汽车是向TA注册过的车辆,能够通过与CS的交互从电网获取服务。

(1)简单理解一遍工作原理

① 初始化

  • TA生成全局参数,并分发给所有相关实体(包括KGCLA)。
  • TA为每辆注册的EV生成一个唯一的身份标识符(ID),并将其存储在数据库中。

② 私钥生成

  • 每辆EV生成自己的部分私钥,并向KGC申请另一部分私钥。
  • KGC根据EV的身份标识符ID生成对应的部分私钥,并通过安全渠道发送给EV
  • EV的完整私钥由这两部分组成,这样就减少了对KGC的信任依赖。

③ 签名生成

  • EV需要与CS进行交互时,它会使用自己的私钥生成一个签名。
  • 签名包括EV的部分私钥和KGC生成的部分私钥的组合。

④ 签名验证

  • CS接收到EV发送的数据包后,使用EV的公钥和KGC的公钥验证签名的有效性。
  • 如果签名验证成功,则CSEV建立安全连接,并开始电力交易或数据交换。

(2)从算法和参数中再理解一遍工作原理

        一个通用的CLS方案包括六个算法,分别是:Setup、Partial-Private-Key-Extract、Set-Secret-Value、Set-Public-Key、Sign和Verify。为方便理解先给出符号含义

符号描述
κ安全参数,用于定义系统中的各种大小和复杂度。
(mpk, msk)主公钥/私钥对,其中 mpk 是主公钥,msk 是主私钥。
params系统参数,包括了系统运作所需的公共配置信息。
ID用户的身份标识符,用于唯一地识别用户。
DID部分私钥,由 KGC 为特定用户 ID 生成。
xID身份 ID 的秘密值,用于计算用户的公钥。
PKID用户的公钥,对应于用户 ID。
m消息,需要签名的数据。
σCLS 签名,即签名算法产生的签名结果。

通用CLS方案具体描述如下:

【注】秘密值xID就是电动汽车EV自己生成的部分私钥,而将密钥生成中心KGC生成的部分私钥DID与秘密值xID通过设置公钥算法才能得到最终的公钥PKID

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【网络安全渗透测试零基础入门必知必会】之什么是文件包含漏洞分类(非常详细)零基础入门到精通,收藏这一篇就够了

一、前言 这是大白给粉丝盆友们整理的网络安全渗透测试入门阶段文件包含渗透与防御第1篇。 本文主要讲解什么是文件包含漏洞、本地文件包含漏洞 喜欢的朋友们,记得给大白点赞支持和收藏一下,关注我,学习黑客技术。 一、什么是文件包含漏洞…

【HarmonyOS NEXT星河版开发学习】小型测试案例07-弹性布局小练习

个人主页→VON 收录专栏→鸿蒙开发小型案例总结​​​​​ 基础语法部分会发布于github 和 gitee上面(暂未发布) 前言 在鸿蒙(HarmonyOS)开发中,Flex布局是一种非常有用的布局方式,它允许开发者创建灵活且响…

Spring Boot实战:拦截器

一.拦截器快速入门 1.1了解拦截器 什么是拦截器: 概念 :拦截器是Spring框架提供的核⼼功能之⼀, 主要⽤来拦截⽤⼾的请求, 在指定⽅法前后, 根据业务需要执⾏预先设定的代码。 也就是说, 允许开发⼈员提前预定义⼀些逻辑, 在⽤⼾的请求响应前后执⾏. 也…

ThinkPHP6与金仓数据库(Kingbase)集成:模型查询的解决方案

摘要: ThinkPHP6是一款流行的PHP框架,支持多种数据库。然而,对于金仓数据库(Kingbase)这种相对小众的数据库系统,开发者在使用ThinkPHP6进行模型查询时可能会遇到一些兼容性问题。本文将提供一种解决方案&a…

仿推特社区源码修复版,含pc端和H5端,可以封装成app

简介: 新鲜出炉的仿推特社区源码修复版,含pc端和H5端,可以封装成app。这玩意绝对可以算是精品代码了。 手机h5端可以封装成软件也不错的。 推特的风格还是不错的,不然世界首富马斯克也不会花费440亿美金收购它了。 阅览&#…

nginx 405错误是什么意思

405错误:方法不被允许 当Web服务器收到一个它不支持的HTTP请求方法时,就会返回405错误。 原因 405错误通常是由于客户端发出了不兼容或不支持的HTTP请求方法。例如,客户端可能请求一个只能通过GET方法访问的资源,但使用了POST方…

图片转文字怎么操作?教你几招图片转文字小妙招

在日常的工作学习中,我们每天可能会接触到大量的图片资料,无论是会议纪要、书籍扫描页、还是网络上的有用信息截图,如果能快速将这些图片中的文字提取出来,无疑将极大提升我们的工作效率。下面给大家分享几种能够将图片转换成文字…

简单中间件模型

中间件是软件开发过程中架构的一个通用概念,其目的在于为运行的主程序提供一个供外部自定义拓展的能力。比如:wen服务的controller层中间件针对request请求处理的前后进行通用的扩展处理、redux中间件针对store数据获取前后的扩展处理。。。   本文简单…

OrangePi AIpro学习3 —— vscode开发昇腾DVPP程序

目录 一、VScode配置 1.1 下载和安装 1.2 安装和配置需要的插件 二、构建项目 2.1 项目架构 2.2 解决代码高亮显示 2.3 测试编译 2.4 总结出最简单的代码 2.5 vscode报错找不到头文件解决方法 三、代码简单讲解 3.1 初始化部分 3.2 拷贝数据到NPU显存中 3.3 准备裁…

python-报数(赛氪OJ)

[题目描述] 有 n 人围成一圈,顺序排号。 从第 1 个人开始报数(从 1 到 3 报数),凡是报到 3 的人退出圈子,问最后留下的是原来的第几号的那位。输入格式: 初始人数 n 。输出格式: 最后一人的初始…

python游戏开发之五子棋游戏制作

五子棋是一种源自中国的传统棋类游戏,起源可以追溯到古代。它是一种两人对弈的游戏,使用棋盘和棋子进行。棋盘通常是一个 1515 的网格,棋子分为黑白两色,双方轮流在棋盘上落子。游戏的目标是通过在棋盘上落子,使自己的…

【深度学习】基于YOLOV5模型的图像识别-目标检测的性能指标详解与计算方法

目标检测是计算机视觉中的重要任务,主要目的是在图像中识别并定位特定的物体。YOLO(You Only Look Once)系列模型作为目标检测领域的代表性方法之一,凭借其高效和准确的特点,广泛应用于实际场景中。本文通过详细介绍目…

C++之移动语义与左值右值深入学习:从入门到精通!

简介 本文详细阐述了 C 中关于移动语义、左值右值等技术的基本概念和常用技巧。 问题的产生 每一项技术的诞生都是为了解决某一个问题&#xff0c;移动语义、左值右值也是一样&#xff0c;因此我们先来看看问题产生的背景。 先来看一段代码&#xff1a; #include <iost…

JavaEE: Thread类

Thread的常见构造方法 Thread的常见属性 ID 是线程的唯一标识,不同线程不会重复名称是在使用各种调试工具时会用到的状态表示线程当前所处的情况优先级高的线程理论上来说更容易被调度到关于后台线程,需要记住:JVM会在一个进程的所有非后台线程结束后,才会结束运行是否存活,即r…

社交及时通讯平台完整版源码,uniapp技术,可打包成app

源码简介&#xff1a; 全原生&#xff0c;从底层开始结构就完全不一样&#xff0c;mongodb的库&#xff0c;uniapp混编手端&#xff0c;二开难度要比视酷或者酷信容易很多。全开源&#xff0c;带开发文档。前端用的是uniapp技术&#xff0c;所以是多端合一&#xff0c;可以做h…

【JVM基础14】——垃圾回收-强引用、软引用、弱引用、虚引用的区别

目录 1- 引言&#xff1a;为什么分多种引用类型2- ⭐核心&#xff1a;2-1 强引用2-2 软引用2-3 弱引用2-4 虚引用 3- 小结&#xff1a;3-1 强引用、软引用、弱引用、虚引用的区别&#xff1f; 1- 引言&#xff1a;为什么分多种引用类型 在 Java 中&#xff0c;引用类型被分为强…

linux 6.10.0 CXL/reg.c 详解

文章目录 前言Ref正文1. cxl_setup_regs2. cxl_probe_regs()3. cxl_probe_component_regs()4. cxl_probe_device_regs()5. cxl_map_device_regs()6. cxl_count_regblock() / cxl_find_regblock_instance() 前言 CXL 是一个比较新的技术&#xff0c;内核版本迭代太快&#xff0…

python爬虫预备知识三-多进程

python实现多进程的方法&#xff1a;fork、multiprocessing模块创建多进程。 os.fork方法 os.fork方法只适合于unix/linux系统&#xff0c;不支持windows系统。 fork方法调用一次会返回两次&#xff0c;原因在于操作系统将当前进程&#xff08;父进程&#xff09;复制出一份…

在Linux中,什么叫做线程

在Linux中&#xff0c;什么叫做线程&#xff1f; CPU调度的基本单位。 在Linux中&#xff0c;什么叫做进程&#xff1f; 内核视角&#xff1a; 承担分配系统资源的基本实体。 一个进程内部可以有多个执行流。 task_struct可以理解为轻量级进程。 线程是进程内部的一个分支…

【python】Python中位运算算法详细解析与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…