当前位置: 首页 > news >正文

密码算法的应用

摘要算法的应用

Hash函数

杂凑函数

消息认证码

\(tag = MAC(K,M)\)
\(V(k,m,tag)='yes'\)
通常用带密钥的Hash函数来生成消息认证码
双方通过密钥K来确定用到的Hash函数
可以在不安全的信道中同时传递数据和认证标签
\(HMAC_k(x) = H((K\bigoplus opad)||H(K\bigoplus ipad)||x))\)

公钥密码体制的应用

数字信封

解决对称密码的密钥管理问题
密码协议中用户A和B协商会话密钥K
密钥管理中心KDC分配给用户会话密钥
……
密钥封装:

  • 密钥生成算法keygen:随机算法,生成A的封装密钥(私钥)、解封密钥(私钥)
  • 封装函数Encaps:B基于A的封装密钥用密钥封装函数生成共享密钥K,以及共享密钥的密文,将共享密钥的密文发送给A
  • 解封算法Deacps:A基于解封密钥和密文得到共享密钥K

数字签名

基础过程

A:
\(MD = Hash(M)\)
\(S = d_A(MD)\)
发送M||S
B:
从公共服务器处得到\(e_A\)
\(Hash(M)?=e_A(S)\)
实现消息完整性和不可否认性

代理签名

授权代理者代表原签名者生成有效签名

  1. 不可伪造性:只有获得授权才能代理
  2. 可验证性:能够验证确认获得许可
  3. 不可否认性:代理者不能否认
  4. 可区分性
  5. 不符合性:必须能够检测到时代理签名
  6. 可识别性:原签名者通过代理签名可确定代理人身份

群签名

群签名允许群组成员代表整个群组进行匿名签名,验证者只能确认签名来自群组,但不知道具体成员。群管理员在必要时可以揭示签名者身份。

  • 匿名性:验证者无法确定具体签名者身份
  • 可追踪性:群管理员可以打开签名揭示身份
  • 不可伪造性:非群组成员无法生成有效群签名
  • 不可连接性:无法判断两个签名是否来自同一成员
  • 防陷害:成员不能伪造其他成员的签名
    电子投票、竞标

盲签名

签名者不知道消息具体内容
不可伪造性、不可抵赖性、盲性、不可跟踪性

签密算法

构造模式:

  • 加密再签名encrypt-then-sign(EtS)
  • 签名再加密sign -then- encrypt (StE)
  • 签名且加密sign -then- encrypt (S&E)

\(Σ(𝐺, 𝑆𝐶,𝐷𝑆𝐶)\)
1.密钥生成算法G
2.加密算法SC
3.解密算法DSC

签名再加密sign -then- encrypt (StE)

\(SC_{StE}(...) := c \leftarrow E(pk_R, (m, \sigma))\)
1.发送者先用自已的私钥\(sk_S​\)对消息\(m\)生成签名\(σ\)
2.然后用接收者的公钥\(pkR\)​将消息和签名一起加密,得到密文cc
典型应用:PGP安全电子邮件等

加密再签名encrypt-then-sign(EtS)

加密再签名 - Encrypt-then-Sign (EtS)
\(SC_{EtS}(...) := (c, \sigma)\),其中 \(c \leftarrow E(pk_R, m)\)\(\sigma \leftarrow S(sk_S, c)\)

  1. 发送者先用接收者的公钥\(pk_R\)加密消息\(m\),得到密文\(c\)
  2. 然后用自已的私钥\(sk_S\)对密文\(c\)生成签名\(\sigma\)
    安全性通常被认为优于StE。接收者可以先验证签名,确认密文来源和完整性,如果无效则无需解密,避免了不必要的计算,并能更早地抵抗拒绝服务攻击
    签名是对密文进行的,对于第三方来说,无法直接验证明文的来源
    典型应用:IPSec协议

签名且加密 - Sign-and-Encrypt (S&E)

SCS1算法

参数与密钥生成
  • 选择大素数\(p\)\(q\),满足 \(q \mid (p-1)\)
  • \(g\)\(Z_p^*\) 中的一个 \(q\) 阶生成元
  • 用户A的密钥对:私钥 \(x_a\),公钥 \(y_a = g^{x_a} \mod p\)
  • 用户B的密钥对:私钥 \(x_b\),公钥 \(y_b = g^{x_b} \mod p\)
  • 使用Hash函数\(h\)和带密钥的Hash函数\(KH\),以及对称加密算法\((E, D)\)
签密过程(A)

对于消息\(m\)

  1. 随机选择整数 \(x \in [1, q]\)
  2. 计算共享密钥: \(k = (y_b)^x \mod p\)
  3. \(k\)分裂为两个密钥:\(k_1\)(用于对称加密)和\(k_2\)(用于MAC)
  4. 计算认证码: \(r = KH_{k_2}(m)\)\(r = h(k_2, m)\)
  5. 计算签名参数: \(s = x / (r + x_a) \mod q\)
  6. 加密消息: \(c = E_{k_1}(m)\)
  7. 输出签密密文: \((c, r, s)\)
解签密过程(B)

收到 \((c, r, s)\) 后:

  1. 恢复共享密钥: \(k = (y_a \cdot g^r)^{s \cdot x_b} \mod p\)
    (恢复的\(k\)与发送方计算的\(k\)相等)
  2. 同样将\(k\)分裂为\(k_1\)\(k_2\)
  3. 解密消息: \(m = D_{k_1}(c)\)
  4. 验证认证码:检查 \(KH_{k_2}(m) \stackrel{?}{=} r\)
    • 如果相等,则接受消息\(m\)
    • 否则,拒绝
http://www.hskmm.com/?act=detail&tid=30957

相关文章:

  • 开源生态视角下 MyEMS 的能源管理系统国产化实践:架构设计与自主可控路径
  • 【IEEE出版】第七届机器学习、大数据与商务智能国际会议(MLBDBI 2025)
  • 2025 年国内优质货代公司最新推荐排行榜:深度解析头部企业服务能力,助力企业精准选合作伙伴泰国货代/印尼货代/马来货代/日本货代/东南亚货代公司推荐
  • 2025年鸡精生产设备厂家最新推荐排行榜,高效节能,智能控制,品质卓越的鸡精生产线公司推荐!
  • boofuzz学习
  • 2025年扑灭司林厂家最新推荐排行榜,高效环保扑灭司林,专业生产与优质服务口碑之选!
  • IvorySQL 亮相第 27 届中国国际软件博览会:开源创新,共筑软件新生态
  • uniapp 内嵌传值和接收
  • 鸿蒙项目实战(十一):事件通知EventBus
  • BLE动态修改广播地址
  • 2025年扑灭司林厂家最新推荐排行榜,高效环保扑灭司林,专业生产与市场口碑深度解析!
  • 国标GB28181算法算力平台EasyGBS在食品安全监管系统中的融合与应用方案
  • springcloud和dubbo有什么区别
  • 九种常见UML图(分类+图解)
  • Kruskal 重构树
  • 解决Win11 24H2 缺少Microsoft Print to PDF组件,重新添加出现0x800f0922错误的问题
  • “顾客需求必响应”!国标GB28181算法算力平台EasyGBS国标协议报警预案怎么弄?4步实操指南来了
  • 机器视觉双雄YOLO 和 OpenCV 到底有啥区别?别再傻傻分不清!
  • 基于定制开发开源AI智能名片S2B2C商城小应用的文案信息传达策略研究
  • AI工具学习02 - 使用 ChatGPT 进行 PRD 产品设计
  • mysql默认事务隔离级别,从入门到精通的完全指南
  • 11111111111
  • 利用 OpenTelemetry 集成 JMX 监控
  • Java 23种设计模式的详细解析
  • 基于Golang+Gin+Gorm+Vue3母婴商城项目实战
  • 2025 年无缝钢管厂家推荐排行榜, SA333Gr.6 /SA106B/SA106C/A106B/SA210C/ 25MnG/SA53B/A53B /L245NS/P22 无缝钢管厂家推荐
  • 英语_阅读_telescope_待读
  • fiddler早期免费版下载,fiddler抓包工具及使用
  • 零点城市社交电商卡密串码插件:全场景虚拟商品运营解决方案
  • 完整教程:Nginx 核心功能配置:访问控制、用户认证、HTTPS 与 URL 重写等