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",为用户提供了一种安全.高效.自主可控的数据 ...
随机推荐
- Python 抓取猫眼电影排行
import json import re import requests from requests.exceptions import RequestException import time # ...
- 经典C语言题目——打印罗汉塔图形
打印如下图形: ++++1 +++22 ++333 +4444 55555 点击查看代码 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> ...
- 一款 C# 编写的神经网络计算图框架
前言 深度学习技术的不断发展,神经网络在各个领域得到了广泛应用.为了满足 .NET 开发的需求,推荐一款使用 C# 编写的神经网络计算图框架. 框架的使用方法接近 PyTorch,提供了丰富的示例和详 ...
- vagrant 安装centos8 虚拟机搭建lamp环境
首先保证已经安装了 virtualbox vagrant两个软件 然后找个目录下载centos8 的 box wget https://vagrantcloud.com/generic/boxes/c ...
- vue2-vuex
专门在 Vue 中实现集中式状态(数据)管理的一个 Vue 插件,对 vue 应 用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通信 应用场景: 多个组 ...
- 高性能计算-gemm-mpi并行计算优化(8)
1. 目标: 矩阵A(MK) 矩阵B(KN)相乘,计算结果 C(M*N);本测试将使用不同的数据分块方式.MPI通信接口.数据循环模型,测试通信及计算效率,计算耗时为程序用户态和核心态的占用cpu时间 ...
- dotnet学习笔记-专题03-RabbitMQ-01
专题03--RabbitMQ 1. RabbitMQ安装 服务端 使用如下sh脚本安装: #!/bin/sh sudo apt-get install curl gnupg apt-transport ...
- Python源码分析2 - 一个简单的Python程序的执行
本文主要通过跟踪一个非常简单的Python程序的执行,简单讨论Python实现的基本框架和结构. 要执行Python程序如下,功能非常简单:从1加到10再打印出来 # test program sum ...
- TreeMap源码分析——深入分析(基于JDK1.6)
TreeMap有Values.EntrySet.KeySet.PrivateEntryIterator.EntryIterator.ValueIterator.KeyIterator.Descendi ...
- PHP模块之ssh2
php远程copy文件以及在远程服务器中执行命令时,所用到的模块是ssh2,以后所有的操作都依据ssh2连接句柄完成. libssh: https://www.libssh2.org/ ssh2: h ...