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

Kyber原理解析

Kyber是一种IND-CCA2安全的密钥封装机制。Kyber的安全性基于在模格(MLWE问题)中解决LWE问题的难度。Kyber的构造采⽤两阶段⽅法:⾸先介绍⼀种⽤来加密固定32字节⻓度的消息原⽂的IND-CPA安全性的公钥加密⽅案,我们称之为 CPAPKE, CPAPKE由密钥生成( CPAPKE.KeyGen)、加密( CPAPKE.Encrypt)、解密( CPAPKE.Decrypt)三个算法组成。然后,我们使⽤略微调整的Fujisaki-Okamoto(FO)变换来构建IND-CCA2安全性的CCAKEM,CCAKEM方案由密钥生成(CCAKEM.KeyGen)、封装(CCAKEM.Encaps)、解封装(CCAKEM.Decaps)三个算法组成。

由CPAPKE通过FO变换转换成CCAKEM并不复杂,本文我们主要举例解释一下CPAPKE的三个算法,Kyber出于安全性考虑,系统参数都较大,这里我们只为了简要解释原理,因此采用了压缩版的参数。假设q=17, 多项式模数f=x^4+1

1.密钥对生成

添加图片注释,不超过 140 字(可选)

对于密钥对生成阶段,我们会获得密钥对(pk,sk),其中pk=t=As+e, sk=s。A,s, e都是随机生成的,我们假设其取值如图上所示,最终计算获得:t = (-15x^6-26x^5-41x^4-18x^3+8x, -11x^6-9x^5-23x^4-24x^3+x^2-15x)

由于多项式系数取值模数 f=x^4+1 ,可以简单理解为x^4=-1 ,对t进行转换:

t=(-15x^6-26x^5-41x^4-18x^3+8x,-11x^6-9x^5-23x^4-24x^3+x^2-15x)=(15x^2+26x+41-18x^3+8x,11x^2+9x+23-24x^3+x^2-15x)=(-18x^3+15x^2+34x+41,-24x^3+12x^2-6x+23)

(将x^4 转换为-1)

又由于q=17, 我们进一步对系数取模得到:

t=(16x^3+15x^2+7,10x^3+12x^2+11x+6)

综上,密钥生成阶段我们生成了密钥对pk=(16x^3+15x^2+7,10x^3+12x^2+11x+6),sk=(-x^3-x^2+x,-x^3-x)

2.密钥封装

添加图片注释,不超过 140 字(可选)

密钥封装阶段我们从公钥中恢复了种子 ρ ,从而恢复出密钥对生成阶段的矩阵A,又随机生成了 r,e_1,e_2 , 并假设我们的输入 message=(11)_{10}=(1011)_2 .转化为多项式系数后 m_b=x^3+x+1

添加图片注释,不超过 140 字(可选)

Decompressq(m_b,1)=q/2 \ast m_b=9m_b=9x^3+9x+9 ,

再结合之前生成的 ,A,r, e_1,e_2 , 计算 u=A^Tr+e_1=(11x^3+11x^2+10x+3,4x^3+4x^2+13x+11)

v=t^Tr+e_2+Decompress_q(m_b,1)=7x^3+6x^2+8x+15

3.密钥解封装

添加图片注释,不超过 140 字(可选)

根据密钥封装阶段的u,v和密钥对生成阶段的sk, 我们计算出密钥解封装阶段的 m_n=8x^3+14x^2+8x+6 ,最后我们将 m_n的多项式系数与 q/2 , 0 对比并取round,获取了round后的多项式 m_{round}=9x^3+9x+9 ,最终我们计算 m_b=1/9\ast m_{round}=x^3+x+1=1x^3+0x^2+1x+1 ,取系数得 message=(1011)_2=(11)_{10}.

相关文章:

Kyber原理解析

Kyber是一种IND-CCA2安全的密钥封装机制。Kyber的安全性基于在模格(MLWE问题)中解决LWE问题的难度。Kyber的构造采⽤两阶段⽅法:⾸先介绍⼀种⽤来加密固定32字节⻓度的消息原⽂的IND-CPA安全性的公钥加密⽅案,我们称之为 CPAPKE&a…...

2024 CCF CSP-J/S 2024 第二轮认证 真题试卷

2024年信息学奥赛CSP-J2入门级复赛真题试卷 题目总数:4 总分数:400 编程题 第 1 题 问答题 扑克牌(poker) 【题目描述】 小 P 从同学小 Q 那儿借来一副 n 张牌的扑克牌。 本题中我们不考虑大小王,此时每张牌具有两个属性:花色和…...

Android 无障碍服务常见问题梳理

android 无障碍服务本意是为了帮助盲人操作手机而设计,但是现在也有人利用这个做自动化操作。 本片文章讲述的主要用作自动化方面。 官方文档 关于配置方法和接口列表,参考 无障碍 比较常用的接口: 1. 执行点击操作 2. 触摸屏幕&#xf…...

Milvus 与 Faiss:选择合适的向量数据库

向量数据库 Milvus 和 Faiss 都是处理大规模向量数据的工具,尤其适用于需要相似性搜索的场景,比如推荐系统、图像检索和自然语言处理等。但它们各自的设计初衷和功能有所不同,适用于不同的使用场景。下面,我们从性能、功能特性、部…...

2024最全CTF入门指南、CTF夺旗赛及刷题网站(建议收藏!)

文章目录 一、赛事介绍二、竞赛模式三、CTF各大题型简介四、赛题情况分析CTF 工具集合Web | Web 安全🕸 MISC | 杂项❆ 基础工具❆ 解题工具❆ 开源脚本🔑 Crypto | 密码学 💫 Reverse | 逆向基础工具💥 PWN | 二进制 &#x1f44…...

【论文阅读】ESRGAN+

学习资料 论文题目:进一步改进增强型超分辨率生成对抗网络(ESRGAN : FURTHER IMPROVING ENHANCED SUPER-RESOLUTION GENERATIVE ADVERSARIAL NETWORK)论文地址:2001.08073代码:ncarraz/ESRGANplus: ICASSP …...

北京市首发教育领域人工智能应用指南,力推个性化教育新篇章

近年来,人工智能在全球教育领域的应用呈现蓬勃发展之势,各国都在探索如何将其更好的融入教育体系,在这一背景下,北京市于10月26日发布《北京市教育领域人工智能应用指南》(以下简称《指南》),推…...

【Java并发编程】信号量Semaphore详解

一、简介 Semaphore(信号量):是用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源。 Semaphore 一般用于流量的控制,特别是公共资源有限的应用场景。例如数据库的连接&am…...

window11使用wsl2安装Ubuntu22.04

目录 1、快速了解wsl2 安装子系统linux流程(B站视频) 2、wsl2常用命令 3、windows与子系统Linux文件访问方法 4、子系统linux使用windows网络代理、网络配置(镜像网络,非NAT) 5、wsl2 Ubuntu miniconda 安装 6、…...

虚拟滚动 - 从基本实现到 Angular CDK

简介 在大数据列表的处理上,虚拟滚动是一种优化性能的有效方式。本篇文章将详细介绍两种常见的虚拟滚动实现方式:使用 transform 属性和 Intersection Observer。重点讲解如何通过 transform 属性实现高效的虚拟滚动,并对比Angular CDK中的实…...

Spring WebFlux学习笔记(一)

核心思想 WebFlux主要是异步 例子 参考一个源码&#xff1a; https://blog.csdn.net/qq_43923045/article/details/106309432?spm1001.2014.3001.5506 GetMapping("/delay1")public Mono<RestResult> delayResult() {long l System.currentTimeMillis();…...

富格林:正确追损思维安全交易

富格林指出&#xff0c;对于如何正确追损的这个问题是需要持续付出时间和精力的&#xff0c;发现具备耐心的投资者往往在正确追损的路上更加游刃有余。他们总是可以保持较为平和的心态&#xff0c;不急不躁地分析原因并通过自身掌握的安全应对措施来进行交易。富格林在以下分享…...

前端vue2迁移至uni-app

1.确定文件存放位置 components: 继续沿用 pages: views内容移动到pages static: assets内容移动到static uni_modules: uni-app的插件存放位置 迁移前 src├─assets│ └─less├─components│ ├─common│ │ ├─CommentPart│ │ └─MessDetail│ ├─home│…...

恋爱脑学Rust之闭包三Traits:Fn,FnOnce,FnMut

在Rust中&#xff0c;FnOnce、FnMut和Fn是三个用于表示闭包&#xff08;closure&#xff09;类型的trait。闭包是一种特殊的函数&#xff0c;它可以捕获其环境变量&#xff0c;即在其定义时所处的作用域中的变量。以下是关于这三个trait的详细介绍&#xff1a; 1. FnOnce&#…...

区块链介绍

区块链&#xff08;英文名&#xff1a;blockchain或block chain&#xff09;是一种块链式存储、不可篡改、安全可信的去中心化分布式账本&#xff0c;它结合了分布式存储、点对点传输、共识机制、密码学等技术&#xff0c;通过不断增长的数据块链&#xff08;Blocks&#xff09…...

git回滚间隔的提交

如果你需要回滚几个非连续的提交&#xff0c;可以使用 git revert 来选择性地撤销这些提交。这样做不会改变提交历史&#xff0c;只是会在当前分支上创建新的提交来反转指定的更改。 ### 使用 git revert 回滚间隔的提交 1. **查看提交历史**&#xff1a; 首先&#xff0c…...

Map和Set(数据结构)

一、概念 Map 和 set 是一种专门用来进行搜索的容器或者数据结构&#xff0c;其搜索的效率与其具体的实例化子类有关。 Map 和 Set 是一种适合动态查找的集合容器。 模型 一般把搜索的数据称为关键字&#xff08; Key &#xff09;&#xff0c;和关键字对应的称为值&#xff0…...

vue3uniapp实现自定义拱形底部导航栏,解决首次闪烁问题

前言&#xff1a; 我最初在网上翻阅查找了很多方法&#xff0c;发现大家都是说在page.json中tabbar中添加&#xff1a;"custom": true,即可解决首次闪烁的问题&#xff0c;可是添加了我这边还是会闪烁&#xff0c;因此我这边改变了思路&#xff0c;使用了虚拟页面来解…...

新需求编码如何注意低级错误代码

1. 日常开发常见错误问题 变量拷贝未修改变量定义的值刚开始是随意写的一个值&#xff0c;想等到上线的时候再改成正确的&#xff0c;但是上线的时候忘记改了程序常量配置的错误逻辑关系判断错误 常见的如都不为null、都不为空集合判断不为空逻辑取反了多个关系的 && …...

系统架构图设计(行业领域架构)

物联网 感知层&#xff1a;主要功能是感知和收集信息。感知层通过各种传感器、RFID标签等设备来识别物体、采集信息&#xff0c;并对这些信息进行初步处理。这一层的作用是实现对物理世界的感知和初步处理&#xff0c;为上层提供数据基础网络层&#xff1a;网络层负责处理和传输…...

windows 文件监控 c++ 11及以上版本可用

在该版本上稍微改了一下https://blog.csdn.net/weixin_50964512/article/details/125002563 #include<iostream> #include<string> #include<Windows.h> #include<list> #include<locale> using namespace std;class WatchFolder {HANDLE m_hFi…...

jsMind:炸裂项目,用JavaScript构建的思维导图库,GitHub上的热门开源项目

嗨&#xff0c;大家好&#xff0c;我是小华同学&#xff0c;关注我们获得“最新、最全、最优质”开源项目和工作学习方法 jsMind 是一个基于 JavaScript 的思维导图库&#xff0c;它利用 HTML5 Canvas 和 SVG 技术构建&#xff0c;可以轻松地在网页中嵌入和编辑思维导图。它以 …...

postman的脚本设置接口关联

pm常用的对象 变量基础知识 postman获取响应结果的脚本的编写 下面是购物场景存在接口信息的关联 登录进入---搜索商品---进入商品详情---加入购物车 资源在附件中&#xff0c;可以私聊单独发送 postman的SHA256加密 var CryptoJS require(crypto-js);// 需要加密的字符串 …...

【python】OpenCV—Tracking(10.3)—GOTURN

文章目录 1、功能描述2、模型介绍3、代码实现4、完整代码5、结果展示6、优缺点分析7、参考 1、功能描述 基于 Generic Object Tracking using Regression Networks 方法&#xff0c;实现单目标跟踪 2、模型介绍 &#xff08;1&#xff09;发表来自 Held D, Thrun S, Savarese…...

git pull遇到一个问题

shell request failed on channel 0 需要修改服务器配置[rootadmin ~]# cat /etc/security/limits.d/20-nproc.conf # Default limit for number of users processes to prevent # accidental fork bombs. # See rhbz #432903 for reasoning.* soft nproc 409…...

书生-第四期闯关:完成SSH连接与端口映射并运行hello_world.py

端口映射完成后&#xff0c;访问127.0.0.1&#xff1a;7860成功展示如下界面&#xff1a; 书生浦语大模型实战营 项目地址&#xff1a;https://github.com/InternLM/Tutorial/...

【CSS3】css开篇基础(5)

1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; Hello, Hello~ 亲爱的朋友们&#x1f44b;&#x1f44b;&#xff0c;这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章&#xff0c;请别吝啬你的点赞❤️❤️和收藏&#x1f4d6;&#x1f4d6;。如果你对我的…...

AI产品独立开发变现实战营,炒掉老板做自由职业赚大钱

课程背景 在经济下行和外部就业压力增大的背景下&#xff0c;为解决程序员的焦虑、失业和被裁员&#xff0c;我们开始了这门课程&#xff0c;课程基于3个真实已经盈利的商业项目&#xff0c;从0到1带你实践AI产品的设计、开发、运营和盈利模式的全流程开发。 课程特色 增加‘…...

【UE5.3 Cesium for Unreal】编译GlobePawn

目录 前言 效果 步骤 一、下载所需文件 二、下载CesiumForUnreal插件 三、处理下载的文件 四、修改代码 “CesiumForUnreal.uplugin”部分 “CesiumEditor.cpp”部分 “CesiumEditor.h”部分 “CesiumPanel.cpp”部分 “IonQuickAddPanel.cpp”部分 “IonQuickAd…...

idea连接数据库出现错误的解决方式

在使用idea连接数据库时&#xff0c;出现错误&#xff1a; The server has terminated the handshake. The protocol list option (enabledTLSProtocols) is set, this option might cause connection issues with some versions of MySQL. Consider removing the protocol li…...

镇江网站建设策划/江苏免费关键词排名外包

1.off-heap是指JVM进程管理的内存。 2.catch可以省略&#xff0c;try的形式有三种&#xff1a; try-catch try-finally try-catch-finally 但catch和finally语句不能同时省略&#xff01; 3.在根类Object中包含一下方法&#xff1a; clone();equals();finalize();getCla…...

优化网站和网站建设/百度资源共享链接分享组

cctv赛程表&#xff1a;http://www.cctv.com/football/special/C11975/02/index.shtml转载于:https://www.cnblogs.com/willpower/archive/2004/06/21/17447.html...

自动生成作文网站/百度网盘pc网页版入口

一&#xff1a;八段数码管的使用 控制要求&#xff1a;0-9的计时数据 实物连接图&#xff1a; 控制代码&#xff1a; //智慧自动化2018.6.11int a7;//定义数字接口7 连接a 段数码管int b6;// 定义数字接口6 连接b 段数码管int c5;// 定义数字接口5 连接c 段数码管int d10;// 定…...

做外贸网站费用/成功品牌策划案例

1. nginx的server配置。 server {listen 9999;server_name localhost;# 客户端支持上传的最大文件大小client_max_body_size 200m;# 根目录部署# 访问url为http://公网ip(或域名)/location / {# 文件所在的文件夹root F:/RUIZY/WEB/;# 主页文件名index index.html…...

如何改网站的内容/seo研究中心vip课程

-- 创建表时 设置字段 自动生成UUID create table 表名( 字段名 varchar2(256) default sys_guid(), name varchar2(256)) ;-- 修改已有表 设置字段 自动生成UUID alter table 表名 modify 字段名 default sys_guid() ; update 表名 set 字段名 sys_guid ();...

网站怎么做h5支付宝支付接口/友情链接属于免费推广吗

2019独角兽企业重金招聘Python工程师标准>>> 1&#xff0c;首先进行一个ProxyTable的一个配置&#xff0c;如下图《正确的配置》 2、将这个配置的文件导入进config/index.js let proxyConfig require(./proxyConfig) proxyTable: proxyConfig.proxyList, 3、接口…...