介绍

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

百度百科:链接  参考:链接1   链接2

算法流程

详细介绍:链接

秘钥产生

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的更多相关文章

  1. Windows7 QT5.6.0(64位)使用mysql(64位)环境搭建详解

    1 说明 使用环境为:Windows7 VS2015 QT5.6.0(64位),MYSQL 5.7.13(64位). 网上各种错误.模糊.抽象的资料,配置环境花了半天,痛定思痛,总结出来,方便后来人. ...

  2. centos6升级openssh至7.9

    1.为了防止升级失败登陆不了,所以需要安装telnet mkdir /root/ssh_updateyum install -y telnet-serveryum install -y xinetd ...

  3. CentOS6、7升级Openssh至7.9

    出于安全考虑,定期使用Nessus对服务器进行扫描,最新Nessus提示服务器的SSH版本有漏洞,所以把SSH升级到最新版本 1.为了防止升级失败登陆不了,所以需要安装telnet mkdir /ro ...

  4. liboqs-量子安全密码算法开源C库

    liboqs是一个用于量子安全密码算法的开源C库. 一,概述 liboqs提供: 量子安全 密钥封装机制(KEM)和数字签名算法的开源实现的集合: 这些算法的通用API: 测试工具和基准测试例程. l ...

  5. Better Key Sizes (and Attacks) for LWE-Based Encryption

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 以下是对本文关键部分的摘抄翻译,详情请参见原文 Abstract 基于“learning with errors”(LWE)问题,分析了理 ...

  6. NGK引入反量子加密系统来应对量子计算攻击

    当前,区块链和分布式账本技术已有了长足发展并广泛应用与多种场景中,原因在于其提供透明性,冗余性和问责性的能力.就区块链而言,此类特征是通过公钥加密和哈希函数提供的.但是,随着量子计算机技术的发展和量子 ...

  7. NGK以强大的创新能力赋予NGK公链超级实用的特性

    公链从大趋势看是一个不断迭代的过程,不管是共识算法.网络架构.开发者协议都在一代一代不断完善跟创新. NGK公链作为公链赛道上的后起之秀,对于主流公链技术的局限性以及下一代公链技术的发展方向都有非常清 ...

  8. 写给开发人员的实用密码学(七)—— 非对称密钥加密算法 RSA/ECC

    本文部分内容翻译自 Practical-Cryptography-for-Developers-Book,笔者补充了密码学历史以及 openssl 命令示例,并重写了 RSA/ECC 算法原理.代码示 ...

  9. Improved Security for a Ring-Based Fully Homomorphic Encryption Scheme-2013:解读

    本文记录阅读此论文的笔记 摘要 (1)1996年,HPS三人提出一个格上的高效加密方案,叫做NTRUEncrypt,但是没有安全性证明:之后2011年,SS等人修改此方案,将其安全规约到标准格上的困难 ...

  10. 文章学习:TPRE:分布式门限代理重加密

    学习文章:TPRE:分布式门限代理重加密 前言 成方金科新技术实验室与隐语团队合作,构建了"基于国密的分布式门限代理重加密算法TPRE",为用户提供了一种安全.高效.自主可控的数据 ...

随机推荐

  1. springboot~jpa优雅的处理isDelete的默认值

    如果多个实体类都有 isDelete 字段,并且你希望在插入时为它们统一设置默认值,可以采取以下几种方法来减少代码重复: 1. 使用基类(抽象类) 创建一个基类,其中包含 isDelete 字段和 @ ...

  2. WebLogic XMLDecoder反序列化漏洞

    目录 前言 XMLDecoder概述 XMLDecoder反序列化漏洞 漏洞复现 前言 上篇复现了T3反序列化漏洞,XMLDecoder反序列化在WebLogic中也是一类影响很大的反序化漏洞. XM ...

  3. pycharm之debugger使用

    1.未打断点运程序,输出全部结果 2.打断点后,点击debug,代码执行到断点前停止(断点所在行不执行) 3.step over,是在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子 ...

  4. LonEle 操作的 SQL Server 数据库(msde2000)由 20180418 版更新至 20190328 版(非官方)

    Shanghai Mitsubishi Elevator Co., Ltd(上海三菱电梯有限公司) 的 Comprehensive Elevator Monitoring System (电梯综合监控 ...

  5. groovy 内存回收测试

    问题 在使用我们的开发平台时,客户怀疑我们的动态执行脚本会导致系统内存回收的问题,导致系统不响应,为此我专门针对这个问题,做一下详细的测试,看看是不是到底有什么影响. 测试步骤 1.使用编写一个控制器 ...

  6. RAG分块策略:主流方法(递归、jina-seg)+前沿推荐(Meta-chunking、Late chunking、SLM-SFT)

    RAG分块策略:主流方法(递归.jina-seg)+前沿推荐(Meta-chunking.Late chunking.SLM-SFT) 大多数常用的数据分块方法(chunking)都是基于规则的,采用 ...

  7. 攻防世界:Web习题之 get_post

    攻防世界:Web习题之 get_post 题目内容 https://adworld.xctf.org.cn/challenges/list 题目首先需要我们用GET方式提交一个名为a,值为1的变量: ...

  8. 内存Fuzz和WinAFL

    文章一开始发表在微信公众号 https://mp.weixin.qq.com/s/XSPrmBb44J8BUpKsj0cwGQ 内存Fuzz和WinAFL FoxitReader 软件分析 目前Fuz ...

  9. Windows的树形目录结构

    一.文件.文件夹(目录).逻辑盘.路径的概念 · 文件:是操作系统用来存储和管理信息的基本单位.每个文件都有一个名称,叫文件名.文件名通常由‌基本文件名和‌扩展名两部分组成,其中基本文件名用于说明文件 ...

  10. 德哥的PostgreSQL私房菜

    德哥的PostgreSQL私房菜 - 史上最屌PG资料合集-博客-云栖社区-阿里云 : https://yq.aliyun.com/articles/59251 https://github.com/ ...