首页 > 其他分享 >ble cs技术(二):DRBG和hr1

ble cs技术(二):DRBG和hr1

时间:2024-12-07 14:22:34浏览次数:3  
标签:CS DRGB DRBG 生成 cs 随机数 ble 入参

Deterministic Random Bit Generator (DRBG)

介绍

​ DRBG,是个很重要的东西。需要先作为基础进行分析研究,不然后面对CS其他内容进行具体研究时会有影响。DRBG翻译过来叫做确定性随机比特生成器。

​ 这个随机数生成怎么会有确定性呢,简单来说DRBG需要通过输入一些入参才能生成随机数结果,如果每次生成的入参都是一样的,那么这个输出的随机数结果也是一样的。那本质上他其实就是个加密算法,难以根据结果反推入参罢了。那么基于这个基础我们来对这个DRBG来进一步分析。

​ SIG规范原文对其的说明在:

BLUETOOTH CORE SPECIFICATION Version 6.0 | Vol 6, Part H 4.8 Channel Sounding random bit generation

和BLUETOOTH CORE SPECIFICATION Version 6.0 | Vol 6, Part E 3 DETERMINISTIC RANDOM BIT GENERATOR

算法基本说明

  1. 三个种子,在 CS Security Start procedure生成,使用随机数生成器(BR中定义的,[Vol 2] Part H, Section 2)生成。
  • CS_IV(128bit)
  • CS_IN(64bit)
  • CS_PV(128bits)
  1. instantiation function h9()

实例化函数h9,用于生成key \(K_{DRGB}\)和 nonce \(V_{DRGB}\)

h9中种子派生(seed derivation)函数f8和key and nonce vector更新函数f9将会被调用。

其中通过f8把cs_iv、cs_in、cs_pv变成SM(256 bit)。

而再通过sm,把K和V(都是128bit),(第一次都为0)更新得到\(K_{DRGB}\)和 nonce \(V_{DRGB}\)

  1. f8():DRBG 派生函数,用到了f7和aes算法,把三个CS入参变成SM

  1. f9():DRBG更新函数,用到了aes算法。用SM把V和K(第一次为0)更新为kout和vout,用于给DRBD随机数生成器和下一次的KV更新使用

  1. f7():DRBG链式函数,用到了XOR和aes算法。属于f8,把三个CS入参变成SM的一部分

  1. DRBG nonce increment function

​ 在key \(K_{DRGB}\)和 nonce \(V_{DRGB}\)真正用于随机数生成前, \(V_{DRGB}\)会进行一定处理,具体做法为

  1. Random bit generation function CS_DRBG。最后生成随机数的公式,使用AES算法以及入参key \(K_{DRGB}\)和 经过第五步更新过的nonce \(V_{DRGB}\),得到最后的随机数。
  2. 计数器和事务id

​ 在算法中,会引入三个变量来保证生成的随机数会随着事务和通信交互次数的不同来使得不同事务的不同次数使用的随机数是不一样的。

  • Transaction_Counter:事务计数器,每个事务id都会单独维护一个counter
  • Transaction_Identifier:事务id,与CS相关应用相关

  • Step_Counter:每次procedure 进行一次step 该值都会递增;

​ 8.随机数更新规则:

  • 有些事务一次不一定会都用完随机数所有位置,一个128bit的随机数可能一次只用了8bit,那么下一次使用将继续沿用剩下的120bit,直到用完再生成新的。

  • 如果一个某个事务ID一次用了多个128bit随机数,那么事务counter也要增加

算法总结

  1. DRBG随机数本质是加密,入参不变,回参不变。

  2. 主从双方会在开始时进行入参交换,保证后续使用的随机数都是双方已知。

  3. 由于counter会更新,所以每次生成的随机数也会不一样,只有通信双方的count都同步,才能保证双方的随机数一样。

hr1

​ hr1算法是对DRBG的一个补充,对于需要使用2的幂次长度随机数的场景,规定使用DRBG来生成。但CS技术有些场景需要用到的随机数不是2的幂次长度,这时候规范给出一个补充随机数生成方程hr1来使用。

​ hr1的内容如下:

​ 其中N_CS_RANGE_GEN_RANDOMIZED_BITS是一个8bit的随机数。CS_DRBG即DRBG中使用的随机数生成公式。

标签:CS,DRGB,DRBG,生成,cs,随机数,ble,入参
From: https://www.cnblogs.com/simpleGao/p/18592126

相关文章

  • 133. 大学生HTML5期末大作业 ―【迪士尼影视网页】 Web前端网页制作 html5+css3+js
    目录一、更多推荐二、网页简介三、网页文件四、网页效果五、代码展示1.html2.CSS3.JS六、总结1.简洁实用2.使用方便3.整体性好4.形象突出5.交互式强七、更多推荐一、更多推荐欢迎来到我的CSDN主页!Web前端网页制作、大学生期末大作业、课程设计、毕业设计、......
  • 探索CSS中的背景图片属性,让你的网页更加美观
    导语:在网页设计中,背景图片的运用能够丰富页面视觉效果,提升用户体验。本文将详细介绍CSS中背景图片的相关属性,帮助大家更好地掌握这一技能。一、背景图片基本属性1、background-image该属性用于设置元素的背景图片。语法如下:background-image:url('图片路径');2、backg......
  • 大学生网页设计制作作业实例代码 (全网最全,建议收藏) HTML+CSS+JS (1)
    文章目录......
  • vxe-table 实现指定列默认是隐藏,点击重置自动还原状态
    vxe-table实现控制指定列默认隐藏,重置自定义列后还能自动还原,有个需求需要将某一列默认是隐藏的,但是可以通过自定义列设置显示,当点击自定义的重置按钮时,还能回复到默认的状态,实现也是非常简单的。通过visible参数设置默认为不显示就可以了。官网:https://vxetable.cn/通过vi......
  • Stable Diffusion核心网络结构——VAE
    本文详细介绍SD模型的三部件之一——VAE,阐述VAE在SD模型中的作用和完整的架构。目录传统VAEStableDiffusion核心网络结构SD模型整体架构初识VAE模型【1】StableDiffusion中VAE的核心作用【2】StableDiffusion中VAE的高阶作用【3】StableDiffusion中VAE模型的完......
  • 使用css如何设置背景虚化?
    CSS本身无法直接实现背景虚化(模糊)效果。你需要结合其他技术,最常见的是使用backdrop-filter属性,但它有浏览器兼容性问题。以下列出几种实现背景虚化的方法,并分析其优缺点:1.backdrop-filter属性:这是最直接的CSS方法,但兼容性较差,主要支持较新版本的Safari和Chrome。.blu......
  • 使用css画一个3D饼图的效果
    <!DOCTYPEhtml><html><head><title>3DPieChartwithCSS</title><style>body{background-color:#f0f0f0;display:flex;justify-content:center;align-items:center;min-height:100vh;}.pie-chart{wi......
  • 为什么说css的选择器一般不要超过三级?
    CSS选择器一般建议不要超过三层,主要基于以下几个原因:性能问题:浏览器渲染页面时,需要根据CSS选择器来匹配对应的HTML元素。选择器层级越深,浏览器需要进行的计算就越多,尤其是在大型DOM树中,过深的层级会导致性能下降,影响页面渲染速度,造成卡顿。浏览器需要从右往左进行匹......
  • 举例说明with属性的fill-available有什么应用场景?
    fill-available在width或height属性中与grid布局或flexbox布局一起使用时,可以创建一些有趣的布局效果。它本质上是让元素填满可用空间,与stretch类似,但在某些情况下表现不同。以下是一些fill-available的应用场景:1.Grid布局中的等高列:假设你有一个网格布局,希望......
  • 假如css的分号写在声明块之外,将会发生什么呢?解释下原因[代码]
    如果CSS的分号写在声明块之外,也就是写在右花括号}之后,通常情况下不会造成任何错误,浏览器会忽略它。但是,这并不符合标准的CSS语法,最好避免这种写法。原因如下:CSS语法规范:CSS规范规定,声明块内的每个声明都应该以分号结尾,而声明块本身不需要分号。额外的分号会被......