NTRU
介绍
NTRU(Number Theory Research Unit),NTRU是一个带有专利保护的开源公开密钥加密系统,使用基于格的加密算法来加密数据。它包括两部分算法:NTRUEncrypt用来加密,NTRUSign用来进行数字签名,可以抗量子计算机攻击。
算法流程
详细介绍:链接

秘钥产生
NTRU算法构建在多项式环R=Z [X] / XN - 1上,所有多项式为次数为N-1的一元多项式,L(a,b)表示环中有a个系数为1,b个系数为-1,其余的为0的全体整系数多项式

最后,公钥
,私钥( f,fp)
难点:
1、如何判断多项式是否存在逆元?
可以将多项式系数构成一个循环矩阵,然后根据线性代数相关知识,求解矩阵行列式的值,根据行列式是否是0判断多项式的逆是否存在。
2、若逆元存在,如何求?
原理:扩展欧几里得算法
参考:链接
3、多项式是如何运算的?

3.1 多项式如何卷积?
多项式a,b,做卷积 a*b :


快速卷积计算:请参考(链接)
加密

dr 表示多项式 r 中非零系数的个数
难点:
1、明文消息是如何编码成多项式的?
参考:信息论与编码
2、如何随机生成多项式?
在进行NTRU算法时,需要随机产生三个多项式f,g,r,下面给出系数为三元整数 [-1,0,1] 的(NTRU-1998)f 多项式的随机产生算法:

算法基本思想:
1、将 f 中系数的位置作为要产生的随机数 i ,如果产生的随机数个数为奇数时,则令 f(i) = 1,产生的随机数个数为偶数时,则令 f(i) = -1,由于是以 f 中系数的位置作为随机数,则 f 中 1 和 -1 分布式均匀的
2、d 表示 f 中产生系数为1的个数为d,产生系数为-1的个数为 d-1
3、步骤1~3 是数据初始化
4、步骤4使用时间函数clock() 作为随机数种子
5、步骤5~12是do循环,其中步骤6产生0 ~ N-1 之间的随机数,步骤7~9判断值为0时,将1或者-1作为 f(i) 的值,步骤11 判断1和-1的个数之和为2d-1时退出

解密

难点:
1、如何计算多项式模一个多项式?
例:
算法:


过程:


疑问:与p好像没关系啊!!!
2、如何计算 ( x+2 )*a(x)?

简单举例


NTRU的更多相关文章
- Windows7 QT5.6.0(64位)使用mysql(64位)环境搭建详解
1 说明 使用环境为:Windows7 VS2015 QT5.6.0(64位),MYSQL 5.7.13(64位). 网上各种错误.模糊.抽象的资料,配置环境花了半天,痛定思痛,总结出来,方便后来人. ...
- centos6升级openssh至7.9
1.为了防止升级失败登陆不了,所以需要安装telnet mkdir /root/ssh_updateyum install -y telnet-serveryum install -y xinetd ...
- CentOS6、7升级Openssh至7.9
出于安全考虑,定期使用Nessus对服务器进行扫描,最新Nessus提示服务器的SSH版本有漏洞,所以把SSH升级到最新版本 1.为了防止升级失败登陆不了,所以需要安装telnet mkdir /ro ...
- liboqs-量子安全密码算法开源C库
liboqs是一个用于量子安全密码算法的开源C库. 一,概述 liboqs提供: 量子安全 密钥封装机制(KEM)和数字签名算法的开源实现的集合: 这些算法的通用API: 测试工具和基准测试例程. l ...
- Better Key Sizes (and Attacks) for LWE-Based Encryption
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 以下是对本文关键部分的摘抄翻译,详情请参见原文 Abstract 基于“learning with errors”(LWE)问题,分析了理 ...
- NGK引入反量子加密系统来应对量子计算攻击
当前,区块链和分布式账本技术已有了长足发展并广泛应用与多种场景中,原因在于其提供透明性,冗余性和问责性的能力.就区块链而言,此类特征是通过公钥加密和哈希函数提供的.但是,随着量子计算机技术的发展和量子 ...
- NGK以强大的创新能力赋予NGK公链超级实用的特性
公链从大趋势看是一个不断迭代的过程,不管是共识算法.网络架构.开发者协议都在一代一代不断完善跟创新. NGK公链作为公链赛道上的后起之秀,对于主流公链技术的局限性以及下一代公链技术的发展方向都有非常清 ...
- 写给开发人员的实用密码学(七)—— 非对称密钥加密算法 RSA/ECC
本文部分内容翻译自 Practical-Cryptography-for-Developers-Book,笔者补充了密码学历史以及 openssl 命令示例,并重写了 RSA/ECC 算法原理.代码示 ...
- Improved Security for a Ring-Based Fully Homomorphic Encryption Scheme-2013:解读
本文记录阅读此论文的笔记 摘要 (1)1996年,HPS三人提出一个格上的高效加密方案,叫做NTRUEncrypt,但是没有安全性证明:之后2011年,SS等人修改此方案,将其安全规约到标准格上的困难 ...
- 文章学习:TPRE:分布式门限代理重加密
学习文章:TPRE:分布式门限代理重加密 前言 成方金科新技术实验室与隐语团队合作,构建了"基于国密的分布式门限代理重加密算法TPRE",为用户提供了一种安全.高效.自主可控的数据 ...
随机推荐
- 关闭 Chrome 浏览器 更新错误 弹窗
1 Chrome使用一段时间后,右上角总会弹出弹窗,并且影响鼠标聚焦,如下图: 2 解决方式: 右键点击 桌面Chrome图表,然后点击属性,按照下图操作: 在 快捷方式--目标 后输入: --di ...
- java中bimface 在线申请token。模型视角 模型批注处理
在线申请token 1.首先引入包 <dependency> <groupId>com.bimface</groupId> <artifactId>bi ...
- 不同团队如何实现登录系统 (just for fun)
某一天 ceo 需要一个登录系统,找了开发团队 控制狂团队 领导点了卡布奇诺,打开了自己轻薄的 mac book, 点开 word 文档, 开始编写: 1. 项目背景 2. 名词解析 3. 数据表设计 ...
- 全新向量数据库SQL Server 2025:带你迈入AI驱动的数据未来
全新向量数据库SQL Server 2025:带你迈入AI驱动的数据未来 上次大家下单的<微软憋大招:SQL Server + Copilot = 地表最强AI数据库!> 抱怨迟迟没有发货 ...
- jetty嵌入式配置总结
Jetty配置到项目 拷贝lib/jsp和lib下的所有jar包到项目中. 在工程中创建文件夹jetty/etc.jetty/contexts 拷贝jetty包中的jetty.xml和webdefau ...
- 使用阿里的ARTHAS跟踪方法耗时
使用命令跟踪一个方法的耗时 在arthas 命令行下输入命令 trace 类全路径 监控的方法 trace com.redxun.bpm.core.service.BpmInstServiceImpl ...
- 正则g修饰符对test方法的影响
标签: js 坑位 最近在使用正则的时候遇到一个问题,从一个数组中选出符合我要求的元素做进一步使用,但正则验证莫名的失效不通过,坑位代码片段如下 测试地址 : var reg = /\[.{32}\] ...
- MYSQL数据库设计操作规范 ❤️【建议收藏】
1.背景及其意义 MySQL数据库与 Oracle. SQL Server 等数据库相比,有其内核上的优势与劣势.我们在使用MySQL数据库的时候需要遵循一定规范,扬长避短.本文档旨在帮助或指导数据中 ...
- Spring完全注解开发
注解的好处:如果管理很多的Bean,要求这些Bean都配置在applocationContext.xml文件中.用了注解之后,就不需要在xml文件中配置了,Spring提供了几个辅助类会自动扫描和装配 ...
- 【Javaweb】【Servlet】简单验证用户的登陆
点击查看代码 | jsp <%-- Created by IntelliJ IDEA. User: xrilang Date: 30/12/2021 Time: 17:31 --%> &l ...