格密码:困难问题(LWE,SIS,SIVP,BDD,GapSVP)

别再死记硬背了!一张图帮你理清格密码LWE、SIS、SIVP等核心困难问题的关系 本文通过可视化思维图谱和角色扮演比喻,系统梳理了格密码中LWE、SIS、SIVP等核心困难问题的关系。文章详细解析了各问题的定义、类型及应用场景,并提供了记忆技巧和参数选择建议,帮助读者高效掌握格密码理论体系。特别强调了SIS和LWE作为安全基础的重要性,以及它们与最坏情况问题的归约关系。 阅读详情
AI摘要

本文探讨了格密码中SIS、SVP、SIVP等困难问题之间的关系,以及它们与search-LWE/decision-LWE和GapSVP的关系,展示了这些问题如何通过归约相互关联。

目录

一. 前言

二. 困难问题之间的关系

2.1 SIS,SVP,SIVP关系

2.2 search-LWE/decision-LWE,GapSVP关系

三. 备注


一. 前言

格密码中有一个原语叫做multilinear map,常应用于code obfuscation,这个领域出现了非常多新设计的困难问题。但这些困难问题有一个致命的弱点,暂时不能实现最坏情况和一般情况的安全归约,所以不被一些密码学家承认。但这其实是一个常见的发展路径,早些年全同态依赖的困难问题也是特殊设计的,只是后来不断发展后可归约到标准的LWE/RLWE困难问题。

所以,本文章尝试梳理格密码论文中常用的困难问题之间的关系。具体对问题的解释可以看我之前的博客。

SISshort integer solution短整数解问题
SVPshortest vector problem最短向量问题
SIVPshortest independent vectors problem最短线性独立向量问题
LWElearning with errors容错学习问题
BDDbounded distance decoding problem有限距离解码问题
GapSVPdecisional shortest vector problem判定性最短向量问题

二. 困难问题之间的关系

2.1 SIS,SVP,SIVP关系

给定\beta>0,SIS_{q,\beta}可以看成q-ary垂直格\Lambda^\bot(A)上平均情况的近似SVP问题。

有关q-ary格的解释,可以看这篇博客:

格密码基础:q-ary格-优快云博客

对于这个结论可以从两个角度理解。

角度1:随机选取一个矩阵A\in Z_q^{n\times m},对于任意m=poly(n),找到一个相对短的非零格点z\in \Lambda^\bot(A)。

角度2:找到一个非零的m维整数向量z\in Z^m,使其满足如下:

Az=0\quad mod\ q\quad ||z||\leq \beta

当让模数取得足够大时,也就是q\geq \beta\sqrt n\cdot \omega(\sqrt{logn}),解决SIS_{q,\beta}问题的困难性与最坏情况下的SIVP_{\tilde O(\beta\sqrt n)}类似,其中{\tilde O(\beta\sqrt n)}为近似因子。

此结论来源于以下四篇论文:

[Ajt96] M. Ajtai. Generating hard instances of lattice problems. Quaderni di Matematica, 13:1–32, 2004.Preliminary version in STOC 1996

[MG02] D. Micciancio and S. Goldwasser. Complexity of Lattice Problems: a cryptographic perspective,volume 671 of The Kluwer International Series in Engineering and Computer Science. Kluwer Academic Publishers, Boston, Massachusetts, 2002.

[MR04] D. Micciancio and O. Regev. Worst-case to average-case reductions based on Gaussian measures. SIAM J. Comput., 37(1):267–302, 2007. Preliminary version in FOCS 2004.

[GPV08] C. Gentry, C. Peikert, and V. Vaikuntanathan. Trapdoors for hard lattices and new cryptographic constructions. In STOC, pages 197–206. 2008.

2.2 search-LWE/decision-LWE,GapSVP关系

LWE问题中噪声的分布要求参数\alpha>0(通常为标准差)。先说结论,LWE_{q,\alpha}问题可以看成平均情况下,q-ary格\frac{1}{q}\Lambda(A^t)上的BDD问题。之所以有个\frac{1}{q},是因为后续均标准化,也就是模1.

把任意实数模1,形成的一个集合,该集合实际上为加法群:

T=\frac{R}{Z}

将实数R上的高斯概率分布记为D_\alpha,其中\alpha为标准差。

备注:格密码中的高斯分布标准差与数学中高斯分布标准差,相差\sqrt{2\pi}

固定向量s\in Z_q^{n},均匀且随机取a\leftarrow Z_q^{n},e\leftarrow D_\alpha,接着计算:

(a,b=\langle a,s\rangle/q+e \quad mod\ 1)

由于a在变动,可以形成很多样本,将其记为LWE分布A_{s,\alpha},该分布的样本空间为Z_q^{n}\times T.

定义Search-LWE_{q,\alpha}问题:

从A_{s,\alpha}中独立抽取m=poly(n)个样本,求s。

定义Decision-LWE_{q,\alpha}问题:

可能从A_{s,\alpha}中抽取一些样本,也可能从Z_q^{n}\times T中均匀且随机抽一些样本,判断样本来源。

密码学中要求区分的优势不可忽略。

从数学的角度来看,这两个问题差异很大。但其实密码学中已经有了很多的归约来证明两者的本质很类似。不同的归约之间大多参数选取不太一样。

当q\geq 2\sqrt n/\alpha时,Search-LWE_{q,\alpha}在最坏情况下,可归约到SIVP_{\tilde O(n/\alpha)},遗憾的是这个过程需要用到量子归约。

LWE量子归约到SIVP问题,可以看这篇论文:

只有当q足够大时,Search-LWE_{q,\alpha}才可归约到GapSVP和BDD问题。一般我们会认为GapSVP和BDD比SIVP问题要简单一点点。

LWE经典归约到GapSVP问题,可以这篇论文:

LWE经典归约到BDD问题,可以看这篇论文:

刚才我们是使用样本的角度来进行解释,如果将样本写在一起,就可以形成矩阵,也就是:

A\in Z_q^{n\times m},b\in T^m,e\in R^m

这三者之间的关系,如下:

b=(A^ts)/q+e\quad mod\ 1

这样b就可以是一个向量,与q-ary格上的格点,或者q-ary垂直格的对偶格上的格点相关。简单来讲就是,向量b是如下格的一个格点+一个高斯噪声:

\Lambda^\bot(A)^*=\frac{1}{q}\Lambda(A^t)

实际上应用的时候,噪声e'\in Z^m为离散高斯分布,其标准差可以取\sqrt 2\alpha q。

如果你看b中除以q不爽,也可以将其写为:

b'=A^ts+e'\quad mod\ q

三. 备注

以上其实包含很多详细的归约过程,如果有人关注的话,以后再补上吧。

格(Lattice)基础(一) 有关格的基础概念,和相关的格难题 阅读详情

相关推荐

格签名相似概念区分: SVP、SIS、LWE的区分

参考. 格的困难问题: 最短向量问题 (Shortest Vector Problem, SVP). SVP 问题定义为:对于给定的格Λ\LambdaΛ ,找到一个非零的格向量v\bold vv ,使得对于任意的非零向量u∈Λ\bold u \in \Lambdau∈Λ,∣∣v∣∣≤∣∣u∣∣||\bold v||\le||\bold u||∣∣v∣∣≤∣∣u∣∣。 类似问题有: 近似最短向量问题aSVP(Approximate Shortest Vector Problem) 唯一最短向量问题 (Uni

qq_44775134的博客 4249

GSW(2)Preliminaries

1.LWE问题和GapSVP LWE问题是被Regev[Reg05]所提出。 定义1(LWE) 对于安全参数,令是整数维度,是整数,是在上的分布。问题是去区分下面两个分布:在第一个分布,均匀抽样。在第二个分布中,首先均匀取出(均匀选取),之后取样,其中(均匀选取),设置。假设是问题是无解的。 有时这是合适的去把向量看作为矩阵的行,重新定义为。然后,要么矩阵是均匀的,要么存在一个第一项系数为1的向量使得,这里的系数来自分布。 对于格维度参数为和数,问题是区分是否一个维格有一个向量短于或者没有向量短于。

weixin_58331078的博客 732

基于格上最小整数解SIS的密码研究(学习笔记)

全同态学习(i春秋课程https://www.ichunqiu.com/course/50441课时二:基于格上最小整数解的密码研究) 一、平均困难问题之SIS 继续把格问题分解后,得到以下关系: 小整数解问题:给定上的m个随机向量,find m个非平凡(不能同时为0)的解in {-1,0,1},使得图中式子成立。 注意:1.若的值没有限制,则可以简单用高斯消元法求...

TO 2865

格密码基础:SIS问题的困难性

该归约的思路:给定任意n维格L的格基B,已知一个平均情况的SIS的oracle,目标是解决SIVP问题。当分布的方差大于格的光滑参数时,离散的格点就可以变成连续的均匀分布。如果能以不可忽略的概率解决SIS问题,那么就可以在随机的n维格上,解决近似GapSVP和SIVP问题。将此处的S看成一个矩阵。借鉴1996年Ajtai的工作,大量的工作开始研究最坏情况下的SIS问题的困难性。看成固定的常数的话,此时的q已经是最优的了。需要注意的是m和q的值会极大影响SIS问题的困难性,而且根据归约准则,当范数上限。

forest_LL的博客 2439

别再死记硬背了!一张图帮你理清格密码里的LWE、SIS、BDD到底啥关系

本文通过视觉化思维拆解格密码中的核心问题LWE、SIS、BDD等的关系,揭示它们如何从不同角度观察同一座'格点迷宫'。文章详细解析了SIS与LWE的应用场景、归约路径及参数选择的关键作用,帮助读者理解格密码的安全性基础及其在加密方案中的实际应用。

weixin_42563415的博客 263

从‘最坏情况’到‘平均情况’:聊聊LWE问题为啥能成为后量子密码的‘顶梁柱’

本文深入探讨了LWE(Learning With Errors)问题如何成为后量子密码学的核心基石。通过分析LWE的归约理论优势、与传统格密码问题的对比,以及其在NIST标准化方案中的应用,揭示了LWE在抗量子攻击中的独特价值。文章还提供了LWE参数选择的实用指南,并展望了其在全同态加密等前沿领域的应用潜力。

weixin_27013291的博客 101

格密码基石:从LWE到SVP,探秘困难问题的归约迷宫

本文深入探讨格密码中的核心困难问题(LWE、SIS、SIVP、BDD、GapSVP)及其归约关系,揭示这些数学难题如何构建现代密码学的安全基石。通过类比和实例分析,阐释LWE与SVP等问题的内在联系,并分享实际参数选择与工程优化经验,为后量子密码设计提供实用指导。

weixin_30872157的博客 447

【信息科学与工程学】【安全领域】安全基础 第九篇 密码学 算法 04 后量子密码学的算法

密码构造

weixin_49199313的博客 580

格密码基础:详解LWE问题(2)

忽略样本数m的变化,借助基本的经典归约,在网络安全领域,decision LWE问题的困难性与search-LWE问题的困难性是类似的,当然此步的归约过程一般是多项式尺寸的模q=poly(n)。通过标准式的格式,我们发现LWE与SIS的标准型很类似,通常来讲,我们会把SIS函数看成满射(surjective)的单向函数,LWE看成单射(injective)的单向函数。借助LWE的oracle,利用多项式时间的量子归约算法可解决最坏情况下的近似GapSVP和SIVP问题。

forest_LL的博客 2121

Xilinx PCIe IP核示例工程仿真流程与关键任务解析

本文详细解析了Xilinx PCIe IP核示例工程的仿真流程与关键任务。通过搭建仿真环境、解读初始化日志,并深入剖析TSK_TX_MEMORY_WRITE_32等核心任务的TLP报文生成与交互过程,帮助开发者掌握PCIe IP核的仿真调试方法,为实际硬件设计提供可靠的验证基础。

weixin_28314575的博客 503

《数学建模与数学实验》第5版 线性规划 习题3.4

1. 某鸡场有1000只鸡,用动物饲料和谷物混合喂养. 2. 某工厂用A1,A2两台机床加工B1,B2,B3三种不同零件. 3. 某工厂利用两种原料甲、乙生产$A_1、A_2、A_3$三种产品. 4. 每班的护士在值班开始时向病房报到,连续工作8个小时. 5. 某工厂生产 A1 、A2 两种型号的产品 6. 有两个煤厂A,B 7. 某工厂制造三种产品,生产这三种产品需要三种资源 8. 已知某工厂计划生产1,2,3三种产品,各产品需要在ABC设备加工。...

hexiaosi_的博客 2万+

格密码中的困难问题

本文章主要关注SVP问题的变式,以及它们的关系。其中包含SVP问题,GapSVP问题,uSVP问题。以及旋转格上这些困难问题的理解。

forest_LL的博客 2156

RT-Thread Studio与CubeMX联合编程(超级详细)

RT-Thread Studio与CubeMX联合编程 本文章参考以下文章: https://blog.youkuaiyun.com/qq_40824852/article/details/122596043 https://zhuanlan.zhihu.com/p/395106066 https://blog.youkuaiyun.com/m0_37697335/article/details/108890584 一、简介 经过上次对RT-Thread Studio的初步尝试,发现RT-Thread Studio中存在官方支

zhuzhu的博客 3万+

SIS与LWE问题

格中的经典两大难题,SIS与LWE。以及基于此设计的ring-sis与ring-lwe

旺旺的碎冰冰~的博客 3292

微型纵向加密在新能源场站中的实战部署与运维避坑指南

本文详细解析了微型纵向加密在新能源场站中的实战部署与运维技巧。通过国密算法SM4实现数据加密,确保新能源场站通信安全,同时提供非侵入式部署方案和运维避坑指南,帮助提升网络稳定性和运维效率。

weixin_30505225的博客 594

YOLOv8+ByteTrack实战:5分钟搞定多目标跟踪(附鱼群检测调参秘籍)

本文详细介绍了如何利用YOLOv8和ByteTrack快速实现多目标跟踪,特别针对鱼群检测等复杂场景提供参数调优秘籍。通过环境配置、核心机制解析和专项调优技巧,开发者可在5分钟内搭建高效跟踪系统,适用于水产养殖、交通监控等实际应用。文章还包含工程落地方案和性能优化建议,帮助实现精准的鱼群计数与行为分析。

e1f2g的博客 1018

格密码基础:最短格基与KZ基

KZ基的全称叫Korkine-Zolotarev格基,KZ基也被称之为最短的格基。接下来我们介绍什么是KZ基?给定任意秩为n的格,首先第一步寻找其最短的向量,记作,这个就是KZ基的第一个向量。格的扩展空间写做:将此扩展空间垂直投影于向量,形成一个子空间(subspace)。接着将格点投影于此子空间形成新的格点叫做,将此新的格中最短的格向量叫做。以上过程可直接抽象看成:接着寻找满足如下等式的向量:其中的取值如下:由此就可以确定原来的格的第二个格基。根据以上讨论我们发现。

forest_LL的博客 2027

DPARSF高级版 vs 基础版怎么选?没有T1数据也能做fMRI分析吗?

本文深度对比了DPARSF高级版与基础版在fMRI分析中的核心差异与适用场景,特别针对无T1数据的情况提供了实战解决方案。高级版依赖T1像实现高精度配准,适合需要精确解剖定位的研究;基础版则无需T1数据,适用于功能连接等相对空间要求不高的分析。文章还提供了版本选择决策树和常见问题解决方案,帮助研究者根据实际需求做出最优选择。

weixin_42526087的博客 132

格密码基础:SIS问题的定义与理解

short interger solution problem短整数解问题,简称SIS问题。1996年,Ajtai首次提出SIS问题,由此设计出了单向函数(one-way function),抗碰撞的哈希函数(collision resistant hash function),身份验证方案(identification scheme),数字签名(digitao signatures)等等。这些在网络安全领域,可以被称之为minicrypt原语。

forest_LL的博客 5314

# YOLOv11改进系列 | 引入仓库自研C3k2_EIEM模块,Sobel边缘分支增强检测细节表达

文章摘要: YOLOv11-seg改进中提出的C3k2_EIEM模块通过引入边缘信息增强机制,显著提升了模型对轮廓和纹理的感知能力。该模块在保持原有C3k2结构的基础上,创新性地结合了Sobel边缘检测分支与常规卷积分支的双路特征融合。核心改进包括:(1)固定Sobel算子提供稳定的梯度响应;(2)并行处理边缘与纹理特征;(3)通过1x1卷积实现特征融合。实验显示,改进后模型参数量增加14.16%,计算量提升12.5%,但显著增强了在复杂边界场景下的分割精度。这种设计特别适用于需要精细轮廓识别的任务,如商品

qq_44224801的博客 95

由ip地址和子网掩码求网络号、主机号、广播地址(超详细)

1、用二进制数表示IP地址   在进行计算之前,我们首先要学会十进制的IP地址怎么转换为二进制的IP地址。   给出一个例子: 十进制:172.16.25.3 二进制:10101100.00010000.00011001.00000011 1、如果两台主机的网络号相同,我们就说它们是同一网段 2、主机号的意义 - 1)主机号部分全变成1,即为该网段的广播地址 - 2)主机号部分全变成0,即为该网段的网路地址(网络号) 3、如果主机号部分为x位,则该网络能容纳最大主机数为: 2的x次方-2。减2

爱吃雪糕的小布丁的博客 9万+

【LWE问题简介】

容错学习(learning with errors, LWE)问题就是求解带噪声的线性方程组问题, 由Oded Regev在[Reg05] 中提出, 他也因此结果荣获2018年的哥德尔奖. LWE问题的困难性基于的复杂性假设非常弱, 但是功能却异常强大, 由于LWE问题尚无有效的量子求解算法, 因此基于LWE假设的加密方案被认为是抗量子的....

qq_44925830的博客 7967

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

LWE和RLWE问题学习

LWE问题了解

Amire0x的小乐园 1万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【格密码基础】基于LWE问题的密码系统

在2005年,Regev基于LWE问题提出了一个新的公钥密码方案。该方案可实现语义安全(semantic security),其中误差率(error rate)为:其安全性可利用量子算法归约到近似GapSVP和SIVP问题,其中近似因子取:该方案借鉴了两个工作,一个是1997年Ajtai-Dwork的工作,一个是2003年Regev的工作。但相比之下有两大优点比较突出。优点1:一般性(generality)该方案依赖的最坏(worst case)情况是近似GapSVP和近似SIVP问题。

forest_LL的博客 2471

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

格密码:LWE设计公钥密码系统

在格密码中,LWE(Learning With Errors)问题非常重要,本文章将介绍一些基于LWE设计的公钥密码方案,并详细讨论这些方案是如何运行的。这些方案讲重点关注IND-CPA安全(不可区分性-选择明文攻击安全)。IND-CPA安全简单来讲就是,窃听者获得公钥和密文,不会学习到关于明文的任何信息。基于LWE问题也可以用来设计全同态加密,此处就不作过多拓展。

forest_LL的博客 3252
上一篇: 格密码基础:q-ary格
下一篇: 格密码:傅里叶矩阵
唠嗑!
唠嗑! 优质创作者: 信息安全技术领域 优质创作者: 信息安全技术领域
博客等级 码龄5年 3万+粉丝 169原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

唠嗑!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值