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

实体鉴别GB/T 15843研究(二)——GB/T 15843.2采用对称加密算法

1. 范围

  1. 无可信第三方(四种方案) = 两种单向鉴别方案 + 两种双向鉴别方案

表1 传递信息次数表

传递信息次数表

时间戳/序号

随机数(挑战-应答)

单项鉴别

一次

两次

双向鉴别

两次

三次

  1. 有可信第三方参与(见第6章)
    • 每个实体与第三方的任何一次附加通信:需增加两次消息传递

4. 要求

  1. 要求d):对加密算法EK和解密算法DK的要求:DK(EK(X))时能使得解密者检出数据是否被篡改。两种常用做法如下:
    • 方法1:原始数据X中有足够的冗余信息;冗余信息验证通过才被接受。
    • 方法2:密钥K推导出K1和K2,分别用于计算鉴别码T和密文C

T = MACK(1)(X),   C = EK(2)( X || T)

5. 无可信第三方

准备:

  1. 声称方A。
  2. 验证方B。
  3. 单向密钥KAB(A向B发送消息时的密钥,B用来鉴别A)。
  4. 单向密钥KBA(B向A发送消息时的密钥,A用来鉴别B)。
  5. 这两个密钥KABKBA可以是相同的,此时为双向密钥,简记为KAB
  6. T/NA表示A使用的时变参数,可为序列号NA或者时间戳TA
  7. T/NB表示B使用的时变参数,可为序列号NB或者时间戳TB
  8. 传递信息次数见表1

5.1 单向鉴别

5.1.1 单向鉴别之一次传递鉴别

步骤

步骤1:声称方A发送权标TokenAB = Text2 || EKAB(T/NA || B || Text1)

步骤2:B权标TokenAB解密(需满足4章的要求d,并验证T/NA(序列号NA或时间戳TA)正确性。

说明

    1. 权标TokenAB中的标识符B:
      • 可选。
      • 作用是防止反射攻击,敌手假冒B向A重用TokenAB
      • 不存在此种攻击的环境中可省去。
      • 使用单向密钥时可省去。

5.1.2 单向鉴别之两次传递鉴别

步骤

步骤1:验证方B启动鉴别过程RB || Text1RB为随机数,Text1可选

步骤2:A发送权标TokenAB = Text3 || EKAB(RB || B || Text2)

      • (可选)Text2可以包含随机数RA,防止可能的已知明文攻击

步骤3:BTokenAB解密(需满足4章的要求d,并验证RB是否匹配。

说明

    1. 权标TokenAB中的标识符B:
      • 可选。
      • 作用是防止反射攻击,敌手假冒B向A重用TokenAB
      • 不存在此种攻击的环境中可省去。
      • 使用单向密钥时可省去。

5.2 双向鉴别

5.2.1 双向鉴别之两次传递鉴别

本方案两次独立使用单向一次传递鉴别(见5.1.1),因此增加一次消息传递。

步骤

步骤1:A发送权标TokenAB = Text2 || EKAB(T/NA || B || Text1)

步骤2:BTokenAB解密(需满足4章的要求d,并验证T/NA正确性。

步骤3:B发送权标TokenBA = Text4 || EKBA(T/NB || A || Text3)

步骤4:ATokenBA解密(需满足4章的要求d,并验证T/NB正确性。

说明

    1. 权标TokenABTokenBA中的标识符B(A):
      • 可选。
      • 作用是防止反射攻击,敌手假冒B(A)向A(B)重用此权标
      • 不存在此种攻击的环境中可省去。
      • 使用单向密钥时可省去。
    2. 本方案两次独立使用单向一次传递鉴别(见5.1.1),可通过适当的文本字段来进一步绑定这两次之间的信息。

5.2.2 双向鉴别之三次传递鉴别

本方案两次独立使用单向两次传递鉴别(见5.1.2),因此增加一次消息传递。

步骤

步骤1:B发送:RB || Text1RB为随机数,Text1可选

步骤2:A发送权标TokenAB = Text3 || EKAB(RA || RB || B || Text2)

      • 由于有随机数RA,因此Text2无需再引入随机数。

步骤3:BTokenAB解密(需满足4章的要求d,并验证RB是否匹配。

步骤4:B发送权标TokenBA = Text5 || EKAB(RB || RA || Text4)

      • 由于此处不可能出现反射攻击,因此不再使用标识A

步骤5:ATokenBA解密(需满足4章的要求d,并验证RA是否匹配。

说明

    1. 权标TokenABTokenBA中的标识符B(A):
      • 可选。
      • 作用是防止反射攻击,敌手假冒B(A)向A(B)重用此权标
      • 不存在此种攻击的环境中可省去。
      • 使用单向密钥时可省去。

6. 有可信第三方

准备阶段

  1. A与可信第三方TP共享密钥KAT
  2. B与可信第三方TP共享密钥KBT
  3. 鉴别中先由一方向第三方申请密钥KAB,然后再采用5.2.1(5.2.2)的机制

6.1 四次传递双向鉴别

6.1.1 方案描述

本方案是两次普通鉴别方案的综合使用。

记号

  1. TVPAA的时变参数,与通常的时变参数略有不同。它将消息1和消息2联系在一起,因此要求不可重复。要求是随机数,不重复,无需不可预测。

步骤

步骤1:A向第三方发送TVPA || B || Text1Text1可选

步骤2:第三方向A发送TokenTA

TokenTA = Text4 || EKAT (TVPA || KAB || B || Text3) || EKBT (T/NTP || KAB || A || Text2)

步骤3:用户A验证TokenTA,提取KAB,计算TokenAB

3.1 验证TokenTA:对TokenTAEKAT(...)解密(需满足4章的要求d,并验证TVPA的正确性

3.2 利用解密信息中提取KABTokenTAEKBT(...)部分构造TokenAB

TokenAB = Text6 || EKBT (T/NTP || KAB || A || Text2) || EKAB(T/NA || B || Text5)

步骤4:A发送权标TokenAB

步骤5:用户B验证TokenAB,提取KAB,计算TokenBA

5.1 TokeTABEKBT(...)解密(需满足4章的要求d,并验证T/NTP的正确性。

5.2 利用解密信息中提取KAB构造TokenBA = Text8 || EKAB(T/NB || A || Text7)

步骤6:B发送权标TokenBA

步骤7:用户A验证TokenBAATokenBA解密(需满足4章的要求d,并验证T/NB的正确性,从而验证TokenBA

6.1.2 退化为单向鉴别

    1. 去除步骤6和步骤7,即可退化为B对A的单向鉴别。

6.1.3 方案分析(增加)

四次传递双向鉴别是普通鉴别方案的组合

    1. 步骤13是采用两次传递的ATP的单向鉴别(见5.1.2)。
    2. 步骤47是采用两次传递的AB双向鉴别(见5.2.1)。

步骤13是采用两次传递的ATP的单向鉴别(见5.1.2)。

两次传递的单向鉴别原方案:

1验证方B启动鉴别过程:RB || Text1RB为随机数,Text1可选

2A发送权标TokenAB = Text3 || EKAB(RB || B || Text2)

本方案

1A向第三方TP发送TVPA || B || Text1Text1可选

其中TVPA相当于RBB是为了说明另一方身份。

2第三方向A发送TokenTA

TokenTA = Text4 || EKAT (TVPA || KAB || B || Text3) || EKBT (T/NTP || KAB || A || Text2)

其中

  • EKAT (TVPA || KAB || B || Text3)中的TVPA相当于RBKAB AB的密钥
  • EKBT (T/NTP || KAB || A || Text2)是给后面的AB双向鉴别做准备

步骤3:用户A验证TokenTA,提取KAB,计算TokenAB

  • 3.1 TokenTAEKAT(...)解密(需满足4章的要求d,并验证时变参数TVPA的正确性,从而验证TokenTA

这是对TP的验证

步骤47是采用两次传递的AB双向鉴别(见5.2.1)。

两次传递的双向鉴别原方案:

步骤1:A发送权标TokenAB = Text2 || EKAB(T/NA || B || Text1)

步骤3:B发送权标TokenBA = Text4 || EKBA(T/NB || A || Text3)

本方案

步骤4:A发送TokenAB = Text6 || EKBT (T/NTP || KAB || A || Text2) || EKAB(T/NA || B || Text5)

其中Text6EKAB(...)同原方案,EKBT (..)TPAB双向鉴别,照抄

步骤5:用户B验证TokenAB,提取KAB,计算TokenBA

其中验证流程同原方案。

步骤6:B发送TokenBA = Text8 || EKAB(T/NB || A || Text7)

其中发送信息与原方案完全一致。

步骤7:用户A验证TokenBA

其中验证流程同原方案。

6.2 五次传递双向鉴别

6.2.1 方案描述

本方案是两次普通鉴别方案的综合使用。

步骤

1BA发送RB || Text1Text1可选

2A向第三方发送R`A || RB || B || Text2Text2可选

3第三方向A发送TokenTA

TokenTA = Text5 || EKAT (R`A || KAB || B || Text4) || EKBT (RB || KAB || A || Text3)

4用户A验证TokenTA,提取KAB,计算TokenAB

4.1 验证TokenTA:对TokenTAEKAT(...)解密(需满足4章的要求d,并验证R`A的正确性

4.2 利用解密信息中提取KABTokenTAEKBT(...)部分构造TokenAB

TokenAB = Text7 || EKBT (RB || KAB || A || Text3) || EKAB(RA || RB || Text6)

5A发送权标TokenAB

6用户B验证TokenAB,提取KAB,计算TokenBA

6.1 TokeTABEKBT(...)解密(需满足4章的要求d,并验证RB的正确性。

6.2 解密信息中提取KAB构造TokenBA = Text9 || EKAB(RB || RA || Text8)

7B发送权标TokenBA

8用户A验证TokenBAATokenBA解密(需满足4章的要求d,并验证RA的正确性,从而验证TokenBA

6.2.2 退化为单向鉴别

    1. 去除步骤7和步骤8,即可退化为B对A的单向鉴别。

6.2.3 方案分析(增加)

五次传递双向鉴别是普通鉴别方案的组合

    1. 步骤16是采用两次传递的BTP的单向鉴别(见5.1.2)。
    2. 步骤148是采用三次传递的AB双向鉴别(见5.2.2)。

步骤16是采用两次传递的ATP的单向鉴别(见5.1.2)。

两次传递的单向鉴别原方案:

1验证方B启动鉴别过程:RB || Text1RB为随机数,Text1可选

2A发送权标TokenAB = Text3 || EKAB(RB || B || Text2)

本方案

这里A作为中间人转发BTP之间的信息。

步骤1:BA发送RB || Text1Text1可选

步骤2:A向第三方发送R`A || RB || B || Text2Text2可选

A作为中间人向TP转发信息RB

步骤3:第三方向A发送TokenTA

TokenTA = Text5 || EKAT (R`A || KAB || B || Text4) || EKBT (RB || KAB || A || Text3)

步骤4:用户A验证TokenTA,提取KAB,计算TokenAB

步骤5:A发送权标TokenAB

步骤6:用户B验证TokenAB,提取KAB,计算TokenBA

TokenTA 和中的TokenABEKBT (RB || KAB || A || Text3)TPB的回复。

同时B完成对TP的验证。

步骤148是采用三次传递的AB双向鉴别(见5.2.1)。

两次传递的双向鉴别原方案:

步骤1:B发送:RB || Text1RB为随机数,Text1可选

步骤2:A发送权标TokenAB = Text3 || EKAB(RA || RB || B || Text2)

步骤3:BTokenAB解密(需满足4章的要求d,并验证RB是否匹配。

步骤4:B发送权标TokenBA = Text5 || EKAB(RB || RA || Text4)

步骤5:ATokenBA解密(需满足4章的要求d,并验证RA是否匹配。

本方案

步骤1:BA发送RB || Text1Text1可选

对应原方案的步骤1

步骤4:用户A验证TokenTA,提取KAB,计算TokenAB

TokenAB = Text7 || EKBT (RB || KAB || A || Text3) || EKAB(RA || RB || Text6)

步骤5:A发送权标TokenAB

EKAB(RA || RB || Text6)对应原方案的步骤2

步骤6:用户B验证TokenAB,提取KAB,计算TokenBA

TokenBA = Text9 || EKAB(RB || RA || Text8)

步骤7:B发送权标TokenBA

对应原方案的步骤3-4TokenBA与原方案相同。

步骤8:用户A验证TokenBAATokenBA解密(需满足4章的要求d,并验证RA的正确性,从而验证TokenBA

对应原方案的步骤5

附录A 文本字段的使用

如果权标不包括(足够的)冗余,已加密的文本字段可用于提供附加冗余。

要求保密性或者数据源鉴别的任何信息都应放在该权标的加密部分。


http://www.taodudu.cc/news/show-4752387.html

相关文章:

  • MYSQL概述
  • 【JavaEE精炼宝库】多线程1(认识线程 | 创建线程 | Thread 类)
  • Dockerfile实践java项目
  • HTML飘落的花瓣
  • 【JavaScript】---- 使用 Tween 实现转盘抽奖
  • 【MySQL】——课程平台的创建设计
  • 基于低功耗蓝牙的手机APP(文末有整个工程的下载连接哦!)
  • 实体鉴别GB/T 15843研究(合集)
  • 区块链与数字货币之间的关系
  • .net 部署到服务端IIS,Process调用exe程序无法运行问题解决
  • Java与RabbitMQ(二)启动rabbitmq web管理后台插件
  • docker 镜像使用
  • 配置OpenStack准备环境
  • ElasticSearch - 简介
  • 思维导图软件对比
  • 【韩顺平JAVA】房屋出租系统
  • 日本九州攻略
  • 已知分布函数求概率密度例题_【考研数学】考试重点、难点和常考题型:?随机变量及其分布...
  • 【概率论】作业三
  • 贝叶斯课后习题(零)常用分布
  • 【概率论与数理统计】猴博士 笔记 p29-32 均匀分布、泊松分布、指数分布、几何分布
  • 怎样用matlab产生泊松分布随机数
  • 模拟台球运动
  • 【算法修炼】台球碰撞 C
  • c语言写台球游戏,OpenGL版 3D台球 (原创,Basic实现) 申精!
  • 网站快照被劫持怎么办?
  • 网站快照被篡改劫持怎么办
  • recv_contxt = std::string( (char*)recv_buffer+sizeof(Req),pReq->context_len-86);
  • typedef int(*P)(int )
  • BLE 协议栈之 主机透传
  • 安装LR11 时,安装Microsoft Visual c++2005 sp1运行时组件,就会提示命令行选项语法错误,键入“命令/?”可获取帮肋信息...
  • HTTP 代理原理及实现(一)
  • ST17H66低功耗蓝牙SOC开发(7)—— simpleBleCentral工程讲解(下)
  • 面试集锦-------LRU,LFU手撕算法
  • 若干个进阶SQL 进阶技巧
  • 【小知识】linux hash命令