自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 ElGamal初学

密钥对产生算法系统提供一个大素数p和GF(p)上的本原元素a,将p与a公开。对每一个用户A可选择随机选择一个整数d作为私钥 2≤d≤p公钥y=a^dmod p加密算法A与B保密通信,设明文为m随机选择一个整数k 2≤k≤p计算c1=a^k (mod p)c2=(y^k)*m(mod p)(c1,c2)为密文,是明文的2倍长解密算法B收到密文以后解密方法如下:m=c2*invert(c1^d,p) (mod p)例子设p = 11,g = 7,在GF(11)上有7^0=

2021-03-10 16:58:16 711 1

原创 素性检验的两种方法

学习寻找大素数的过程中有两个必要步骤,第一个是寻找大素数,另一个就是素性测试,也就是说确定随机生成的整数p是不是素数。在RSA中的来说,如果想要生成一个模长度为1024bit的rsa,那么N的素因数p,q对应的位长应该约为512,这个过程中最常用的就是随机生成整数,然后检验是否为素数。对于整个加密过程来说,这两步的速度快是必须的。寻找大素数首先来看个例子:2,3,5,7,11,13,,17,19,23,29,31,37….发现一个很重要的东西,就是在寻找范围扩大的过程中,素数的密度是不断变稀疏.

2020-11-08 19:08:27 3181

原创 RSA中模数N有多个素因数

RSA中模数N有多个素因数时,面对多个因数,大部分人没有办法,其实重点在于求得多个素因数的欧拉,即可以很清楚的发现,与n=p*q的欧拉是一样的,这个不是巧合证明正确性:首先我们证明 M^(k(p-1)(q-1)(r-1)+1) mod p=M mod p [ 1 ]1. 如果 M 、 p 不互质,那么p 能整除 M, 明显 p也能整除 M^(k(p-1)(q-1)(r-1)+1), 那么: M^(k(p-1)(q-1)(r-1)+1) mod p=M mod p=02. 若 p 、 q.

2020-11-08 19:00:34 2808

原创 lcg随机数破解

题目链接根据线性同余生成器lcg可得:lcg=(a*x+c)%m根据题目,当输入数字时,可以得到多个连续随机数,根据伪随机数生成的机制,可以了解到,随机数的生成只要知道随机数种子就可以破解类推到线性同余方程组,也就是说当知道a,c,m时即可知道随机数的整个序列例如:假设我们知道lcg0,那么lcg1=(alcg0+c)%m,同理lcg2=(alcg1+c)%m此时我们随意提交多次,可以从中得到连续的随机数,类比于lcg0,lcg1,lcg2的关系lcg0=32081 lcg1=2381

2020-11-08 18:46:09 4992

原创 RSA Factor Attack 及常用脚本

基本解密以下全文中代表乘方,例如:23=2的3次方=8c^d %n == (me)d %n ==m^ (ed)%n ==m^(ed %(φ(n)))%n ==m^1 %n下面开始正文Factor Attack1、当p==q n=p*q=p**2 φ(n)=p**2-p2、孪生质数(twin prime)定义:孪生素数就是指相差2的素数对,例如:3和5,5和7,以36N(N+1)为界,孪生素数以波浪形式渐渐增多 n1=p*q,n2=(p+2)*(q+2) φ(n

2020-11-08 18:35:14 1094 1

原创 将CRT(中国剩余定理)与RSA结合

使用中国剩余定理来加快RSA的运算速度,使用Zn中数字的CRT表示法,使用N的素因子预先计算出的三个额外值,来更有效的执行四次幂运算。在RSA中的一些运算正常的RSA解密,使用私钥(n,d)进行密文解密(或生成签名),不过在运算过程中,我们需要先通过公钥指数e求得私钥指数d,并不如e那么方便,所以可以选择一个值尽可能少的“1”位。对于k位的模数N,私钥质数也有类似的长度,大约一半是“1”。计算指数的时间与k^3成正比,所以需要其他的计算。基础解密:m=c^d mod n1、给定.

2020-11-08 18:34:01 3484 1

原创 RsaLsbOrcalePadding

原理公式攻击者得到密文C=Pe(mod n) ,将其乘以2e(mod N), 并作为密文发送出去,若返回f(2P)如果f(2P) 返回的最后一位是0,那么2P<N,即P<N/2如果f(2P) 返回的最后一位是1,那么2P>N,即 P>N/2接着我们来看看2P 和 4P如果返回的是(偶,偶),那么有 P<N/4如果返回的是(偶,奇),那么有N/4<P<N/2如果返回的是(偶,奇),那么有N/2<P<3N/4如果返回的是(奇,奇),那么有3N

2020-11-08 18:31:40 334 1

原创 分组加密的padding

基本规则在分组加密中,明文长度不满足要求时,经常进行padding,即使恰好为块长度的整数倍,依旧需要padding(填充)。各种填充规则pkcs5DES INPUT BLOCK = f o r _ _ _ _ _(IN HEX) 66 6F 72 05 05 05 05 05KEY = 01 23 45 67 89 AB CD EFDES OUTPUT BLOCK = FD 29 85 C9 E8 DF 41 40pkC

2020-11-08 18:28:36 500 1

原创 流量包分析解密

根据文件,使用wireshark进行分析逐个查看内容时在这个地方找到了流量协议的加密方式根据这里得到的信息,我们开始寻找rsa的相关内容在这里我们发现了RSA的公钥指数和模数,所以我们将公钥内容导出,右键->复制->复制为16进制导出后,首先尝试yafu分解,很快就分解出来此时我们知道rsa的e,p,q,n,所以接下来我们利用现有工具生成私钥并导入这里生成私钥我...

2020-04-05 11:44:59 2283

原创 攻防世界Crypto第一页-进阶区

你猜猜打开附件明显为 16 进制,查询得知为 zip 的文件开头打开 Winhex 后,新建文件,将内容导入保存为 1.zip,打开压缩包此时发现压缩包有密码,使用 ziperello 爆破解密解出 flagenc附件:可以看到为 zero 和 one ,明显为二进制,全部转换为 0 和 1,这时候可以利用 word 等专业文字编辑工具将二进制转为字符串明显的 bas...

2020-04-01 11:40:35 2129

原创 密码学入门——各类编码(三)Unicode编码

计算机发展早期,编码只有ASCII编码,但ASCII编码只能够用来表示拉丁字母、数字以及一些特殊符号,而语言不止英语一种,例如中文一个字节是不够表示的,最少需要两个字节,并且需要兼容ASCII编码,不能与之发生冲突。为了解决传统字符编码方案的局限性,所以Unicode编码应运而生。Unicode通常用两个字节表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填为0就可以。在文字...

2020-04-01 11:03:00 1210

原创 密码学入门——各类编码(二)base家族

我们接着上一节。上一节我们讲述了ASCII编码,接下来的base系列编码与ASCII之间联系非常紧密。好,我们继续讲解。base系列编码:ASCII 是用128(2^8)个字符,对二进制数据进行编码的方式,base64编码是用64(2^6)个字符,对二进制数据进行编码的方式base32就是用32(2^5)个字符,对二进制数据进行编码的方式base16就是用16(2^4)个字符,对二进制...

2020-04-01 11:02:46 2886

原创 密码学入门——各类编码的认识(一)ASCII编码

我的密码学入门是从编码开始,逐步认识到各种密码类型,我会逐步总结。今天先介绍ASCII,base系列等编码ASCII计算机的最早发明者是美国人,所以他们首要面临的问题就是如何让机器能够将他们的文字,也就是拉丁字母与二进制相对应,然而在计算机出现早期,各个公司都创建了属于自己的一套编码规则,这给不同计算机之间的数据交换带来了极大困难。ASCII的标准版本第一次发布于1967年,迄今为止共收...

2020-04-01 11:02:02 2030

原创 MRCTF2020——crypto——Easy_RSA——babyRSA

babyrsa根据主函数可知,首要目的是找到_P和_Q,首先来看_P可以发现题目已给出P[9],所以直接目的可以手动测试周围素数,直到找到全部(这里是一部分)这里我们可以得到Nfactor = pow(p, base, n)这一句说明我们应该将这个简单RSA解出来,此时按照一般RSA的步骤求得d这里已经得到N的所有因数,所以此时N的欧拉函数为所有因数减1相乘,即(p1-...

2020-03-29 23:12:35 2352

原创 密码学发展历史

古典密码:密码学的历史源远流长,人类对密码的使用可以追溯到古巴比伦时代。如图的Phaistos圆盘是一种直径约为160mm的粘土圆盘,它始于公元前17世纪,表面有明显字间空格的字母这便是古典密码学的萌芽状态,至于圆盘上的奇怪符号究竟有怎样的含义,我们已经无从得知。而在古典密码学中,最为知名的莫过于凯撒密码。在两千多年前,罗马国王Julius Caesar(凯撒)就开始使用”凯撒密码”,这一...

2019-09-28 20:16:56 6035

原创 攻防世界Misc进阶 get-the -key.txt

拿到forensic 100文件后,首先在winhex中打开,发现有大量的key.txt文件,然后在Linux中用file打开文件,发现是linux系统文件接下来创建 /tmp/forensic文件夹,将forensic100解压在该文件夹下,发现为同类压缩包244个压缩包根本看不过来,所以根据题目提示 get-the-key.txt,我使用grep -r key.txt进行文件匹配...

2019-09-15 14:20:18 1353

转载 攻防世界-Crypto-Easy-one(main函数传参、加密代码审计)-Hack-you-2014

下载文件解压得:加密代码:#include <stdlib.h>#include <stdio.h>#include <string.h> int main(int argc, char **argv) { if (argc != 3) { printf("USAGE: %s INPUT OUTPUT\n", argv[0]); retur...

2019-09-14 17:09:34 326

转载 攻防世界misc新手basestego

题目:大意就是给了你一段字符串, 让你找 flag.这里放上字符串, 便于读者实验U3RlZ2Fub2dyYXBoeSBpcyB0aGUgYXJ0IGFuZCBzY2llbmNlIG9mIHdyaXRpbmcgaGlkZGVuIG1lc3NhZ2VzIGluIHN1Y2ggYSB3YXkgdGhhdCBubyBvbmV=LCBhcGFydCBmcm9tIHRoZSBzZW5kZXIgYW...

2019-08-20 13:27:55 328

原创 攻防世界 crypto--------easychallenge

我们得到的是一个.pyc文件,我们先来了解一下  一:什么是pyc文件?pyc文件就是 py程序编译后得到的文件,是一种二进制文件。一般是这样的:python中.pyc文件是什么?pyc文件经过python解释器最终会生成机器码运行。所以pyc文件是可以跨平台部署的,类似Java的.class文件。如果py文件改变,也会重新生成pyc文件。二:pyc文件怎么生成的?1,被当做模块调用...

2019-07-28 17:35:58 2987

转载 用实例给新手讲解RSA加密算法

RSA加密算法是最常用的非对称加密算法,CFCA在证书服务中离不了它。但是有不少新来的同事对它不太了解,恰好看到一本书中作者用实例对它进行了简化而生动的描述,使得高深的数学理论能够被容易地理解。我们经过整理和改写特别推荐给大家阅读,希望能够对时间紧张但是又想了解它的同事有所帮助。   RSA是第一个比较完善的公开密钥算法,它既能用于加密,也能用于数字签名。RSA以它的三个发明者Ron Rives...

2019-07-28 14:02:11 207

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除