- 博客(52)
- 资源 (12)
- 问答 (1)
- 收藏
- 关注
原创 格密码教程(六):高斯二维格规约,解决SVP问题
前面文章也看到了好的基对算法结果有很大影响,在2维格中寻找最优基的算法基本上来源于高斯的原因。基本的想法是从一个基向量中交替减去另一个基向量的倍数,直到不可能进一步改进。假设L⊂R2L⊂R^2L⊂R2是一个具有基向量v1v_1v1和v2v_2v2的二维格。我们要求∥v1∥<∥v2∥\left \|v_1\right \|<\left \| v_2\right \|∥v1∥<∥v2∥,当v1,v2v_1,v_2v1,v2长度不满足要求时,交换v1v_1v1和v2v_2v2。
2021-08-28 22:25:35 855
原创 格密码教程(五):Babai‘s algorithm和求解apprCVP算法
一.apprSVP和apprCVP:apprSVP: 设ψ(n)ψ(n)ψ(n)是一个关于nnn的函数。在维数为n的格L中,找到一个不超过最短非零向量长度的ψ(n)ψ(n)ψ(n)倍的非零向量。换句话说,如果vvv是格LLL中最短的非零向量,则找到一个非零向量v∈Lv∈Lv∈L满足:∥v∥≤ψ(n)∥vshortest∥\qquad \left \|v\right \| \leq \psi(n)\left \|v_{shortest}\right \|∥v∥≤ψ(n)∥vshortest∥函数ψ(n
2021-08-27 23:03:16 975 2
原创 格密码教程(四):SVP和CVP,Hermite定理,Blichfeld定理和Minkowski定理
一.首先对格上的两个基本问题进行描述:1.SVP: 在格L中找到一个最短的非零向量,即找到一个使欧几里得范式∥v∥\left \| v\right \|∥v∥最小化的非零向数v∈Lv∈Lv∈L2.CVP: 给定一个不在格L中的向量w∈Rmw∈R^mw∈Rm,找到一个最接近www的在格上的向量v∈Lv∈Lv∈L,即找到一个使欧几里得范数∥w−v∥\left \| w-v\right \|∥w−v∥最小化的向量v∈Lv∈Lv∈L。注意在一个格中可能有多个最短的非零向量。例如,在Z2Z^2Z2中,四个向量
2021-08-26 22:17:44 1188
原创 格密码教程(三):基础域概念,体积等;阿达马不等式,行列式
格类似于向量空间,只是它是由整数系数的基向量的所有线性组合生成的,而不是使用任意的实系数。可以将格看作是RmR^mRm中点的有序排列,其中我们在每个向量的顶端放置一个点。下图显示了R2R^2R2中一个格的一个例子。上图中F是一个基础区域(fundamentaldomain)( fundamental domain)(fundamentaldomain),设L是维度为n的格,设v1,v2,...,vnv_1,v_2,...,v_nv1,v2,...,vn是L的基。对应的L的基本域是集合F(v1,..
2021-08-25 11:40:25 461
原创 格密码教程(二):格的基本定义,格基转换
大致体验: 什么是格?它是n维空间中的一组具有周期性结构的点,如图所示是在R2R^2R2上的格。一.格定义: 设v1,...,vn∈Rmv_1,...,v_n∈R_mv1,...,vn∈Rm是一组线性无关的向量。由v1,...,vnv_1,...,v_nv1,...,vn生成的格L是v1,...,vnv_1,...,v_nv1,...,vn与在整数群Z上的系数的线性组合的集合:L=a1v1+a2v2+⋅⋅⋅+anvn:a1,a2,...,an∈Z.\qquad L = {a_1v_1 +
2021-08-24 15:27:29 880
原创 格密码教程(试读):向量空间,基等介绍
在开始格密码学习之前,首先复习一下线性代数中重要的定义和概述。本节将向量空间定义在RmR^mRm上(m是正整数)。首先介绍一些重要的定义。(文中考虑在的RmR_mRm(m为正整数)中包含的向量空间。)Vector Space(向量空间)向量空间是RmR^mRm上的子集且满足以下性质:α1v1+α2v2∈V,(所有的α1,α2属于R,所有的v1,v2属于V)\qquad \alpha_1 v_1+\alpha2v_2 \in V,(所有的\alpha_1,\alpha_2属于R,所有的v_1,v_2属
2021-08-24 10:13:22 281
原创 格密码教程(一):向量空间,基,施密特正交化等介绍
在开始格密码学习之前,首先复习一下线性代数中重要的定义和概述。本节将向量空间定义在RmR^mRm上(m是正整数)。首先介绍一些重要的定义。Vector Space(向量空间)向量空间是RmR^mRm上的子集且满足以下性质:α1v1+α2v2∈V,(所有的α1,α2属于R,所有的v1,v2属于V)\alpha_1 v_1+\alpha2v_2 \in V,(所有的\alpha_1,\alpha_2属于R,所有的v_1,v_2属于V)α1v1+α2v2∈V,(所有的α1,α2属于R,所有的v1
2021-08-23 13:06:22 416
原创 不经意传输(oblivious transfer)
定义oblivious transfer(OT)是一个两方协议,输入的一方叫做发送者,产生两个等长的秘密m0,m1m_0,m_1m0,m1,输出的一方叫做接收者。接收者输入一个bit b,返回给他mbm_bmb.发送者没有返回值。(OT12)(OT_{1}^{2})(OT12)发送方有两个秘密,想将其中之一发给接收方,接收方得到了其中一个秘密,但是发送方不知道接收方收到了哪个秘密。(OT1n)(OT_{1}^n)(OT1n)发送方有n个秘密,想将其中之一发给接收方,接收方得到了其中一个秘密,
2021-04-06 22:17:41 944
原创 secret sharing;拉格朗日插值,shamir秘密分享,peterson秘密分享
秘密分享系统中为了将秘密s在参与方p1,p2,...,pn{p_1,p_2,...,p_n}p1,p2,...,pn中进行分享。系统为每个参与者分配子秘密spis_{p_i}spi,只有特定的用户能够恢复出秘密,而其他用户得不到s的任何信息。1.拉格朗日插值法2.Peterson可验证秘密分享假设p1,p2,...,pnp_1,p_2,...,p_np1,p2,...,pn是秘密分享的参与方,令p为大素数,q为p-1的素因子,g为Zp∗Z_p^{*}Zp∗中的一个元素(g就是这个群
2021-04-06 16:10:34 944
原创 LSSS线性秘密共享方案详细构造方法与原理解释试读
关于LSSS1LSSS英文精确定义如下:翻译后:一个关于参与者集合P\RhoP关于秘密分享方案Π\PiΠ在ZpZ_pZp上是线性的,则需要满足以下条件:1.每一个参与者的分享份额(见2点)构成ZpZ_pZp上的一个向量;2.存在一个关于Π\PiΠ的秘密生成矩阵MMM,这个矩阵有mmm行ddd列,对于i=1,2,....mi=1,2,....mi=1,2,....m,MMM的第iii行MiM_iMi被一个参与者ρ(i)\rho(i)ρ(i)标识,ρ\rhoρ是一个从{1,2,...,m}
2021-03-09 16:40:27 4258
原创 Eclipse安装Alibaba Cloud Toolkit并连接阿里云云数据库
一.1.第一种方法。eclipse菜单栏help->Eclipse Marketplace.2.第二种方法。eclipse菜单栏help->install new software输入:http://toolkit.aliyun.com/eclipse/二.安装成功后出现以下图标三。登录阿里云管理控制台,右上角头像如下图获取Accesskey。获取到AccessKey ID和AccessKey Secret四。在eclipse的windows->preferenc
2021-03-05 16:21:33 420
原创 3.eclipse对mysql云数据库编程增删改查
我们在数据库study中创建了student表。package mysqltest;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.List;/*创建测试类*
2021-03-05 15:52:44 235
原创 2.Eclipse上mysql插件配置及远程连接云数据库测试
一.下载jar包直接从网站下载https://dev.mysql.com/downloads/connector/j/或者直接从我的分享下载jar包链接:https://pan.baidu.com/s/1mAJfHwxAFkFzVbfBfS7acg提取码:f4tj复制这段内容后打开百度网盘手机App,操作更方便哦二.将jar包导入1.在Eclipse下创建新项目,我们创建project2.导入jar包选中项目,右键build path->configure build p
2021-03-05 15:40:53 203
原创 1.阿里云RDS配置白名单,实例,外网地址,mysql数据库。
本分栏主要讲解云数据库连接,配置就简要介绍。一.租用阿里云数据库后,我们需要创建一个实例。二.点击进入实例,配置白名单。3.在实例界面里我们创建
2021-03-05 15:15:44 1409
原创 LSSS线性秘密共享方案详细构造方法与原理解释
关于LSSShttps://zhuanlan.zhihu.com/p/216647411LSSS英文精确定义如下:翻译后:一个关于参与者集合P\RhoP关于秘密分享方案Π\PiΠ在ZpZ_pZp上是线性的,则需要满足以下条件:1.每一个参与者的分享份额(见2点)构成ZpZ_pZp上的一个向量;2.存在一个关于Π\PiΠ的秘密生成矩阵MMM,这个矩阵有mmm行ddd列,对于i=1,2,....mi=1,2,....mi=1,2,....m,MMM的第iii行MiM_iMi被一个参与者
2021-02-23 23:04:09 2825
原创 type A1使用
区别我们常使用type A,type A1两种曲线。type A是素数阶的,type A1与其很类似,但其G1,G2,GTG_1,G_2,G_TG1,G2,GT的阶是合数NNN.NNN是一系列素数的乘积N=p1p2...pnN=p_1 p_2...p_nN=p1p2...pn.对双线性映射e:G1×G2→GTe:G_1 \times G_2 \rightarrow G_Te:G1×G2→GT同样满足双线性的性质。合数阶群与素数阶群的区别在于,他有一系列子群:阶为pip_ipi的子群G
2021-02-20 16:23:28 1053 2
原创 密码学二次剩余困难性问题The Quadratic Residuosity Problem
注:需要有密码学基础才能看懂,全文以N=21举例基础推导:假设模数N=p⋅qN=p\cdot qN=p⋅q 。p和q是两个不同的奇素数,N是一个Blum Integer(参考链接)。举例N=21(p=3,q=7).ZN∗Z_N^{*}ZN∗是他的简化剩余系。则ZN∗Z_N^{*}ZN∗含有(p−1)⋅(q−1)(p-1)\cdot (q-1)(p−1)⋅(q−1)个元素(原理:欧拉函数).N=21,ϕ(N)=2∗6=12,ZN∗={1,2,4,5,8,10,11,13,16,17,19,20}.N
2021-02-08 17:46:10 1972
原创 Blum Integer的定义及举例
定义:Blum Integer是一个半素数(半素数是指两个素数的乘积),设N是Blum Integer,N=P⋅QN=P\cdot QN=P⋅Q。且P和Q都是满足3=x(mod4)3=x(mod4)3=x(mod4)的,即P和Q均可表示为4t+3(t为整数)的形式4t+3(t为整数)的形式4t+3(t为整数)的形式注意:由于这两个因子都是半素数的条件,偶数不能是Blum整数,20以下的数也不能是Blum整数,当需要找Blum Integer时,我们只需要检查大于20的奇数整数是否是Blum整数。下面举
2021-02-06 11:12:31 1028 1
原创 CP-ABE公式推导笔记
推导公式M=C0⋅e(C2,D2)∖e(C1,D1)M=C0 \cdot e(C2,D2) \setminus e(C1,D1) M=C0⋅e(C2,D2)∖e(C1,D1)C0=M⋅ZsC0=M \cdot Z^{s} C0=M⋅ZsC1=gsC1=g^{s}C1=gsC2=(h0∏j∈S⋃Ωhj)sC2=(h0 \prod_{j \in S \bigcup \Omega}^{}h_j)^{s}C2=(h0j∈S⋃Ω∏hj)sD1=∏i∈A′⋃Ω(ai∏i∈S⋃Ω,j≠i(ci,j))Δi,
2021-01-27 18:33:13 1376
原创 KP-ABE基于属性的加密加解密算法及Access Tree构建
注:本文加解密算法构建完全参考经典ABE paper:Attribute-Based Encryption for Fine-Grained Access Control of Encrypted Data。一.ABE介绍ABE算法有两种类型,KP-ABE(Key-Policy Attribute-based encryption)和CP-ABE(Ciphertext-policy Attribute-based encryption)。从名字就可以看出CP-ABE 密文与AccessTreeAcc
2021-01-25 13:48:15 1410 2
原创 TLS配置和流量分析实验
TLS配置和流量分析实验1)理解 TLS 协议原理;2)掌握 apache 服务器的 HTTPS 配置方法;3)掌握 TLS 流量分析方法。https://download.csdn.net/download/qq_41359358/14028251
2021-01-05 19:31:11 2657
原创 JPBC库只使用椭圆曲线群,不使用双线性性质。找单位元,逆元等
JPBC库是一个功能很强大的数学库,用于生成椭圆曲线,双线性等,但网上参考资料很少,重复度极高,该分栏用于安装,JPBC参数解释,生成椭圆曲线群,整数群(不用双线性性质),双线性映射教学。内容原创,禁止任何形式转载!下面代码给出了椭圆曲线上找生成元,单位元,逆元,加法,乘法方法:public class csdn {//coder:CSDN USER ID:qq_41359358 最帅小朋友 public static void main(String[] args) { // TODO Au
2020-12-14 13:32:24 1403
原创 JPBC参数介绍Element,Field,Point等
JPBC库是一个功能很强大的数学库,用于生成椭圆曲线,双线性等,但网上参考资料很少,重复度极高,该分栏用于安装,JPBC参数解释,生成椭圆曲线群,整数群(不用双线性性质),双线性映射教学。内容原创,禁止任何形式转载!1.java doc编程时一定要对照着下面的doc文档,遇到不会的就去查,里卖弄包括了JPBC实现的函数及类型等。Java doc2.生成椭圆曲线和群JPBC有两种方式生成第一种官方文档给出了自定义生成椭圆曲线方式,rbits,qbits表示参数长度,和安全性有关。下面代码是官
2020-12-14 13:03:02 3114 5
原创 Eclipse JPBC library安装及测试
Eclipse JPBC library安装及测试资源下载路径:安装配置:JPBC库是一个功能很强大的数学库,用于生成椭圆曲线,双线性等,但网上参考资料很少,重复度极高,该分栏用于安装,JPBC参数解释,生成椭圆曲线群,整数群(不用双线性性质),双线性映射教学。内容原创,禁止任何形式转载!资源下载路径:Eclipse及Java配置自行进行JPBC: JPBCJDK: JDKEclipse:Eclipse 安装配置:1.在Eclipse下创建新项目,我们创建一个叫JPBC的project
2020-12-14 11:29:39 996
原创 postgresql,pgadmin4安装后出错,界面只有文字
问题描述安装后界面如下图所示,安装过程完全没错,但是启动后界面就这样解决办法初步可能是端口被占用,我排查解决过各种问题都没办法解决目前我知道的唯一解决方法是重装系统,先安装数据库就不会有问题(亲测有效)或者嫌麻烦的使用云数据库吧。...
2020-11-30 21:11:31 448
原创 win10下VMware虚拟机打开黑屏死机
问题描述很久没打开虚拟机,最近打开虚拟机发现打开后黑屏,点关闭虚拟机后虚拟机无反应,而且关不掉VMware,弹出说虚拟机繁忙。解决办法我尝试了网上各种解决办法,全部没有p用。尝试重装新的虚拟机发现可以打开,但关机后再多开两次出现同样问题。最终解决方法(血泪)发现是VMware版本太低,15都太低了。下载了最新的VMware安装后,打开原来有问题的虚拟机,全部都没有问题了。哭死,呜呜呜~(可能不能解决所有人问题,但可以试试,万一有效呢。如果有效能否要个打赏呢,我从来没收到过嘤嘤嘤,好想找人要一个呀
2020-11-30 21:00:11 2074
原创 运行初始化过程代码笔记
package java_learn;import static out.Print.*;//学习多态,覆盖,动态静态绑定,向上向下转型class M{ M(){ println("A"); }}class topclass{ public topclass() { println("topclass constructor"); //out2(); println(b); } static int m=printInit(); M n=new M();//!!!
2020-08-17 18:06:38 82
原创 IEEE754阶码真值范围问题
以32为浮点数为例为什么阶码真值范围为-126-127.比如有人会觉得阶码真值加上偏置量127可以为255(11111111),那做个减法真值可以为128呀。其实提出这个问题只是因为你没注意到IEEE754的一些规定:阶码E全为1且尾数各位非全0时,为无效浮点数。阶码全为1尾数全为0时,浮点数表示正负无穷。所以当阶码真值超过127即可表示最大正数时,这种情况是阶码发生上溢,认为是无穷。同理对于为什么真值不能为-127(加上127为0):阶码E各位为0且尾数M各位为0,浮点数为F=0;阶码E
2020-06-20 17:26:26 6253
原创 详细解释基址寻址和变址寻址区别
基址寻址定义:指令中给出一个寄存器号和一个形式地址,寄存器的内容为基准地址,形式地址是作为偏移量。基准地址加上偏移量作为操作数的有效地址。变址寻址定义:指令给出一个寄存器号和形式地址,寄存器的内容作为偏移量,形式地址作为基准地址。基准地址加上偏移量得到有效地址。思考从两者定义来看,感觉没有多大区别。只是寄存器中存放基准地址还是偏移地址。为什么不看成一种呢?我们来详细解释。基址寻址基址寻址中的基址寄存器内容通常由操作系统或管理程序确定,程序执行过程中值不可变。其偏移量可变。主要是面向系统的。
2020-06-16 21:49:16 23025 3
原创 Java(六)字符串,StringBuilder,String操作,格式化输出
不可变stringstring对象是不可变的,string类中每一个看起来会修改string值的方法,实际上是创建一个全新的string对象,以包含修改后的字符串内容。最初的string对象并没有发生变化。当把q传给upcase时,实际传递的是引用的一个拷贝。string对象不可变,可以给string对象添加任意个别名。因为其只读特性,所以任何指向它的引用都不可能改变它的值。重载为string对象重载的“+”操作符。重载的意思是一个操作符在应用于特定的类时,被赋予了特殊的意义(用于string的"
2020-06-15 20:14:43 1071 1
原创 Java笔记(四)各类容器,set,map,队列实现
各类容器Linkedlist LinkedList<Integer> p=new LinkedList<Integer>() ; Collections.addAll(p, 1,2,3,4,2,3); System.out.println(p); System.out.println("p.getfirst()"+p.getFirst()); System.out.println("p.element()"+p.element()); System.out.
2020-06-04 12:18:33 101
原创 Java笔记(三)内部类,容器,泛型和类型安全的容器,迭代器
继续内部类package java_learn;class call1 implements incrementable{ private int i; @Override public void increment() { // TODO Auto-generated method stub i++; System.out.println(i); //System.out.println(""); }}class MyIncrement{ public void inc
2020-06-02 11:58:10 79
原创 Java笔记(二)抽象类,接口,完全解耦,多重继承,内部类,静态类,匿名内部类
抽象类包含抽象方法的类是抽象类,如果一个类包含一个或多个抽象方法,则这个类必须定义为抽象类。如果从一个抽象类继承,并想创建该新类的对象,就必须为基类中的所有抽象方法提供方法定义。否则导出类也是抽象类,且编译器会强制用abstract限定这个类。可以创建一个没有任何抽象方法的抽象类。创建抽象类和抽象方法可以让类的抽象性明确起来,并告诉用户和编译器打算怎样使用它们。package java_learn;abstract class TOP{ TOP(){ print(); } abstr
2020-05-27 19:13:28 151
原创 链路层
A R P和R A R P协议(第4章和第5章)对32 bit的I P地址和48 bit的硬件地址进行映射。目的为IP模块发送和接收IP数据报为ARP模块发送ARP请求和接受应答为RARP发送请求和接受应答以太网是当今 T C P / I P采用的主要的局域网技术。它采用一种称作 C S M A / C D的媒体接入方法,其意思是带冲突检测的载波侦听多路接入。8 0 2 . 3标准定义的帧和以太网的帧都有最小长度要求。 8 0 2 . 3规定数据部分必须至少为 3 8字节,而对于以太网,
2020-05-26 21:33:31 167
原创 TCP/IP协议族
!!应用层和运输层是端到端,网络层是逐跳协议(hop-by-hop)在T C P / I P协议族中,网络层 I P提供的是一种不可靠的服务。也就是说,它只是尽可能快地把分组从源结点送到目的结点,但是并不提供任何可靠性保证。而另一方面, T C P在不可靠的I P层上提供了一个可靠的运输层。为了提供这种可靠的服务, T C P采用了超时重传、发送和接收端到端的确认分组等机制。由此可见,运输层和网络层分别负责不同的功能。从定义上看,一个路由器具有两个或多个网络接口层(因为它连接了两个或多个网络)。
2020-05-26 20:59:08 275
原创 final方法覆盖与重载问题以及不同访问权限问题
首先看两个代码建立一个worker类,类中声明了两个final修饰的方法,out1(),out()方法是private权限class worker{ protected int a; public void work() { println("work"); } private final void T() { println("worker T"); } private final void out() { T(); println("worker out"); }
2020-05-25 20:15:20 229
原创 Java笔记(一)向上向下转型,枚举,初始化,可变长参数,代理,多态,继承
Java数组传递这会是引用传递 static void change(int a[]) { a[0]=3; } public static void main(String[] args) { int a[]= {1,2,3,4,5}; change(a); //!!!!!!!!!!!!!!!!!! System.out.println(a[0]);//**变为3,引用类型** }}for循环 String s[]= {"qwe","asd","aeg"}; fo
2020-05-23 21:49:31 176
原创 Java数组及二维数组初始化与赋值方法总结
1.定义数组直接赋值int a[]= {1,2,3,4,5};2.用new在数组中创建元素int a[]=new int[]{1,2,3};注意:后面的[]不要忘了3.创建指定大小数组,但不赋值 int c[]=new int[3]; System.out.println(Arrays.toString(c));注意:基本类型会自动初始化为空值,int型则为0.输出结果为[0, 0, 0],Arrays.toString产生一维数组的可打印版本。4.先声明再赋值 int c[
2020-05-21 21:47:21 25746
电子科技大学网络安全协议实验报告TLS配置和流量分析实验.docx
2021-01-05
电子科技大学网络安全协议实验报告WPA-PSK口令实验.docx
2021-01-05
电子科大操作系统实验课Linux通过管道实现进程间通信
2021-01-05
电子科大操作系统课程报告信号量哲学家就餐,生产者消费者实验_信号量生产者消费者pv完整代码
2021-01-05
计算机网络交换机Vlan实验.doc
2021-01-05
电子科技大学软件安全搜索API实验
2021-01-05
电子科技大学软件安全逆向实验.docx
2021-01-05
多进程多线程时间服务.zip
2020-05-20
postgresql运行界面出错如何解决
2019-03-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人