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

DLMS/COSEM中公开密钥算法的使用_椭圆曲线加密法

1.概述 

        椭圆曲线密码涉及有限域上的椭圆曲线上的算术运算。椭圆曲线可以定义在任何数字域上(实数、整数、复数),但在密码学中,椭圆曲线最常用于有限素数域。

        素数域上的椭圆曲线由一组实数(x, y)组成,满足以下等式: 

y^{2}= x^{3}+ax+b 

        方程的所有解的集合构成了椭圆曲线。改变a和b会改变曲线的形状,这些参数的微小变化会导致(x, y)解集的重大变化。 

2.NIST推荐使用椭圆曲线 

        美国国家标准与技术研究院(National Institute of Standards and Technology,NIST)直属美国商务部,从事物理、生物和工程方面的基础和应用研究,以及测量技术和测试方法方面的研究,提供标准、标准参考数据及有关服务,在国际上享有很高的声誉。 

        FIPS PUB 186- 4:13推荐了素数域GF(p)上的五素数域椭圆曲线。DLMS/COSEM选取P-256和P-384曲线,如表13所示。

表13 - DLMS/COSEM安全套件中的椭圆曲线

3.数据转换

        本条款描述了用于将不同用于指定公钥算法的数据类型之间进行转换的原始数据类型。这些数据类型包括八进制字符串(OS)、位字符串(BS)、整数(I)、域元素(FE)和椭圆曲线点(ECP)。DLMS/COSEM使用八进制字符串来表示公钥算法的元素,并使用从和到八进制字符串的数据类型之间的转换原始数据类型。长度为d的八进制字符串Md-1 Md-2 ... M0被编码为A-XDR OCTET STRING,其中左起第一个八进制字符Md-1对应于OCTET STRING编码值的第一个八进制字符。

3.1 位字符串和八位字符串之间的转换(BS2OS)

        将位串转换为字节串的原始数据转换函数称为位串到字节串转换函数(BS2OS)。它将位串作为输入,并输出字节串。位串bl-1 bl-2 ... b0的长度为l,将被转换为字节串Md-1 Md-2 ... M0的长度d = ⌈l/8⌉。

        转换器在左边添加足够的零来使位数成为8的倍数,然后将数据分割成八位字节。更确切地说,转换应如下:

  • 当0≤i < d - 1时,令八位元Mi = b8i+7 b8i+6…b8i,;
  • 最左边的八位Md-1应当将其最左边的8d-l位设为零。
  • 它最右边的8 - (8d - 1)位应该是bl-1 bl-2…b8d-8。

3.2八位串和位串之间的转换(OS2BS)

         将八位字符串转换为位字符串的数据转换原语称为八位字符串到位字符串转换原语(octet string to bit string conversion primitive, OS2BS)。它接受八位字符串作为输入,并输出位字符串。长度为d的八位字符串Md-1 Md-2…M0需要转换为长度为l的位字符串bl-1 bl-2…b0,其中d =⌈l/8⌉,最左八位的最左8d-l位为零。

        更准确地说,转换应如下:

  • 当0≤I < l - 1时,设比特b8i+7 b8i+6…b8i = Mi;
  • 其最左边八位的最左边(8d - l)位应为零。

3.3整数与八位字符串的转换(i2s)

        将整数转换为八位字节字符串的数据转换原语称为integer to octet
字符串转换原语,或i2s。它接受一个非负整数x和八位字符串的期望长度d作为输入。长度d必须满足256d > x,否则输出“error”。i2s输出相应的八位字节字符串。

        整数x应以其唯一的l位进制256表示:

  • x = xd-1·256 d 1 + xd-2·256 d2 + x1····+ 256 + x0,;
  • 当0≤I≤d-1时,0≤xi < 256;
  • Mi = xi,对于0≤i≤d-1。

        输出字节串为Md-1 Md-2…M0。 

3.4八字节串与整数的转换(OS2I)

        将八位字节字符串转换为整数的数据转换原语称为“八位字节字符串”
整数转换原语,或OS2I。它以长度为d的八位串Md-1 Md-2…M0作为输入,输出相应的整数x。对于长度为0的八位串,转换输出整数0。

         每个八位被解释为以256为基数的非负整数。更确切地说,转换应如下:

  • xi = Mi,对于0≤i≤d-1;
  • x = xd-1·256 d 1 + xd-2·256 d2的x1 +····256 + x0。

3.5字段元素与八位字符串之间的转换(fe2s) 

        将字段元素转换为八位元组字符串的数据转换原语称为字段元素到八位元组字符串转换原语,或fe2o。它接受一个字段元素作为输入,并输出相应的八位字节字符串。将域元素x∈Fp应用带参数l的i2s转换原语转换为长度d =≤log256 p <e:1>的八位元字符串Md-1 Md-2…M0,其中
        •FE2OS(x) = I2OS(x, l)。 

3.6八位字符串和字段元素之间的转换(OS2FE)

        将八位元组字符串转换为字段元素的数据转换原语称为八位元组字符串到字段元素转换原语,或OS2FE。它接受一个八位字符串作为输入,并输出相应的字段元素。长度为d的八位字符串Md-1 Md-2…M0被转换为字段元素x
∈Fp,其中应用OS2I转换原语:
        OS2FE(x) = OS2I(x) mod p。

相关文章:

DLMS/COSEM中公开密钥算法的使用_椭圆曲线加密法

1.概述 椭圆曲线密码涉及有限域上的椭圆曲线上的算术运算。椭圆曲线可以定义在任何数字域上(实数、整数、复数)&#xff0c;但在密码学中&#xff0c;椭圆曲线最常用于有限素数域。 素数域上的椭圆曲线由一组实数(x, y)组成&#xff0c;满足以下等式: 方程的所有解的集合构成…...

argon主题调整日记

前言 argon主题是一款由solstice23开发的一款简洁美观的WordPress主题&#xff0c;在使用过程中也发现了几个可以优化的点&#xff0c;在查阅主题文档无果后对其进行以下几点修改。 1、使用子主题 为了避免修改源文件而引起主题更新后修改丢失的问题&#xff0c;还是尽量使用子…...

Godot入门 05收集物品

创建新场景&#xff0c;添加Area2D节点&#xff0c;AnimatedSprite2D节点 &#xff0c;CollisionShape2D节点 添加硬币 按F键居中&#xff0c;放大视图。设置动画速度设为10FPS&#xff0c;加载后自动播放&#xff0c;动画循环 碰撞形状设为圆形&#xff0c;修改Area2D节点为Co…...

353_C++_Boost.Asio库来处理异步操作

逐行解析这段C++代码。该代码使用了Boost.Asio库来处理异步操作,并且使用了智能指针和线程相关的一些内容。 #include <boost/asio.hpp> #include <memory>这两行代码包含了Boost.Asio库和标准库中的智能指针std::shared_ptr的头文件。 /**********************…...

【Django】django模板与前端技术(html模板)

文章目录 “python包html”还是“html包python”?1.新建模板2.模板语法3.views.py测试 “python包html”还是“html包python”? 在前端页面中html代码比python多得多&#xff0c;所以一定是html包python最优&#xff01;于是引出今天的模板。 大体分为三个步骤&#xff1a;…...

Java连接Redis和SpringBoot整合Redis

1. Java连接Redis 思考&#xff1a;我们之前操作redis都是通过命令行的客户端来操作。在开发时都是通过java项目操作redis java提高连接redis的方式为jedis。我们需要遵循jedis协议。 java提供连接mysql的方式为jdbc。 1.1 单机模式 引入依赖 <!--引入java连接redis的驱动…...

快速入门Jupyter notebook

快速入门 Jupyter notebook 一、前言&#xff08;一&#xff09;优点&#xff08;二&#xff09;特点&#xff08;三&#xff09;调用运行&#xff08;四&#xff09;新建 二、认识界面快捷键&#xff08;一&#xff09;三种模式&#xff08;1&#xff09;蓝色模式&#xff1a;…...

Java反射详细学习笔记

动态代理 特点 : 无侵入式的给代码增加额外的功能 ; 代理里面就是对象要被代理的方法 ; 通过接口保证,后面的对象和代理需要实现同一个接口 &#xff0c; 接口中就是被代理的所有方法 ; 如何为java对象创建一个代理 : java.lang.reflect.Proxy类 : 提供了为对象产生代理对象的…...

区块链在艺术市场中的创新:数字艺术品的溯源与版权保护

随着数字技术的迅猛发展&#xff0c;数字艺术品正逐渐成为艺术市场的重要组成部分。然而&#xff0c;数字艺术品的复制和版权问题日益突出&#xff0c;传统的版权管理方式面临挑战。区块链技术作为一种去中心化的分布式账本技术&#xff0c;为解决这些问题提供了新的可能性。本…...

智能编程,一触即发:使用AIGC优化CSS——提升前端开发效率与质量

文章目录 一、AIGC在CSS优化中的应用场景智能代码生成自动布局调整性能优化建议样式和色彩建议 二、使用AIGC优化CSS的具体步骤明确需求选择AIGC工具输入描述或设计稿审查和调整集成和测试 三、AIGC优化CSS的优势与挑战优势&#xff1a;挑战&#xff1a; 《CSS创意项目实践&…...

鸿蒙界面开发

界面开发 //构建 → 界面 build() {//行Row(){//列Column(){//文本 函数名(参数) 对象.方法名&#xff08;参数&#xff09; 枚举名.变量名Text(this.message).fontSize(40)//设置文本大小.fontWeight(FontWeight.Bold)//设置文本粗细.fontColor(#ff2152)//设置文本颜色}.widt…...

【JavaScript】use strict

“use strict” 声明时&#xff0c;代码将会在严格模式下执⾏。严格模式包含了⼀些额外的规则和限制。 使⽤ “use strict” 的主要作⽤包括&#xff1a; 变量必须声明后再使⽤&#xff0c;不能通过不使⽤关键字创建全局变量不能通过 delete 操作符删除变量&#xff08;包括对…...

Linux云计算 |【第一阶段】SERVICES-DAY3

主要内容&#xff1a; 分离解析介绍、NTP时间服务、基础邮件服务&#xff08;MX记录&#xff09;、部署postfix邮件服务器、自定义YUM仓库 实操提前准备&#xff1a; ① 设置SELinux、关闭防火墙服务&#xff08;两台主机&#xff09; [rootsvr7 ~]# getenforce Permissive …...

Java面试八股之Spring-boot-starter-parent的作用是什么

Spring-boot-starter-parent的作用是什么 spring-boot-starter-parent 是Spring Boot项目中的一个特殊POM&#xff08;Project Object Model&#xff09;&#xff0c;它主要的作用是提供一系列默认的配置和依赖管理&#xff0c;以便简化项目的构建过程。以下是spring-boot-sta…...

Python 和 Boto3 生成 Amazon S3 对象的 HTTPS URL

在使用 Amazon S3 存储服务时,我们经常需要获取存储桶中对象的 HTTPS URL。这篇博文将详细介绍如何使用 Python 和 Boto3 库来实现这一功能。 背景 Amazon S3(Simple Storage Service)是一种广泛使用的云存储服务。在许多场景中,我们需要获取 S3 存储桶中对象的公开访问 …...

V-bind动态绑定style的案例集合

目录 绑定对象 绑定数组 绑定函数 V-bind 动态绑定 Class 的案例集合-CSDN博客 绑定对象 示例代码如下: <!--html--> <p :style="{width:widthVal,height:heightVal,border:borderVal}">段落</p> <!--js--> data(){ ret…...

深度学习守护夜行安全:夜视行人检测系统详解

基于深度学习的夜视行人检测系统&#xff08;UI界面YOLOv8/v7/v6/v5代码训练数据集&#xff09; 引言 夜视行人检测在自动驾驶和智能监控中至关重要。然而&#xff0c;由于光线不足&#xff0c;夜间行人检测面临巨大挑战。深度学习技术&#xff0c;特别是YOLO&#xff08;You…...

亚信安慧AntDB亮相PostgreSQL中国技术大会,获“数据库最佳应用奖”并分享数据库应用实践

7月12日&#xff0c;第13届PostgreSQL中国技术大会在杭州顺利举办&#xff0c;亚信安慧AntDB数据库荣获“数据库最佳应用奖”。大会上&#xff0c;亚信安慧AntDB数据库同事带来《基于AntDB的CRM系统全域数据库替换实践》和《亚信安慧AntDB数据库运维之路》两场精彩演讲&#xf…...

如何减少白屏的时间

前端性能优化是前端开发中一个重要环节&#xff0c;它包括很多内容&#xff0c;其中页面的白屏时间是用户最初接触到的部分&#xff0c;白屏时间过长会显著影响用户的留存率和转换率。 我们以一个 APP 内嵌 Webview 打开页面作为例子&#xff0c;来分析页面打开过程以及可优化…...

科研成果 | 高精尖中心取得高性能区块链交易调度技术突破

近日&#xff0c;未来区块链与隐私计算高精尖创新中心研究团队在区块链交易效率方面取得突破性进展&#xff0c;最新成果“高性能区块链交易调度引擎”首次为长安链带来高并行度的交易调度&#xff0c;充分利用现有计算资源&#xff0c;显著提升长安链交易处理速度。 随着区块…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包&#xff1a; for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲&#xff1a;核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用&#xff0c;还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)

推荐 github 项目:GeminiImageApp(图片生成方向&#xff0c;可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配

目录 一、C 内存的基本概念​ 1.1 内存的物理与逻辑结构​ 1.2 C 程序的内存区域划分​ 二、栈内存分配​ 2.1 栈内存的特点​ 2.2 栈内存分配示例​ 三、堆内存分配​ 3.1 new和delete操作符​ 4.2 内存泄漏与悬空指针问题​ 4.3 new和delete的重载​ 四、智能指针…...

深入浅出Diffusion模型:从原理到实践的全方位教程

I. 引言&#xff1a;生成式AI的黎明 – Diffusion模型是什么&#xff1f; 近年来&#xff0c;生成式人工智能&#xff08;Generative AI&#xff09;领域取得了爆炸性的进展&#xff0c;模型能够根据简单的文本提示创作出逼真的图像、连贯的文本&#xff0c;乃至更多令人惊叹的…...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !

我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...

Python实现简单音频数据压缩与解压算法

Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中&#xff0c;压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言&#xff0c;提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...

面试高频问题

文章目录 &#x1f680; 消息队列核心技术揭秘&#xff1a;从入门到秒杀面试官1️⃣ Kafka为何能"吞云吐雾"&#xff1f;性能背后的秘密1.1 顺序写入与零拷贝&#xff1a;性能的双引擎1.2 分区并行&#xff1a;数据的"八车道高速公路"1.3 页缓存与批量处理…...

uni-app学习笔记三十五--扩展组件的安装和使用

由于内置组件不能满足日常开发需要&#xff0c;uniapp官方也提供了众多的扩展组件供我们使用。由于不是内置组件&#xff0c;需要安装才能使用。 一、安装扩展插件 安装方法&#xff1a; 1.访问uniapp官方文档组件部分&#xff1a;组件使用的入门教程 | uni-app官网 点击左侧…...