
Crypto
文章平均质量分 65
Flying_Fatty
这个作者很懒,什么都没留下…
展开
-
Vigenere密码加密解密原理
先从简单的单表代替开始说起:要知道,在CTF题中,有很多很多都是单表代替的题,比如说:BH=CWG=EO=IEI=;DEDEDEY所有数据长成这样,神TM能够认识对吧,但是要注意,这可是CTF的比赛!所以得分模式很套路:最后的答案一般都是flag{}或者FLAG{}什么的对吧那么,计算一下:ord(‘Y’)-ord(‘}’)= - 36那么,再试试:ord(‘B’)+36原创 2017-01-03 21:59:05 · 28263 阅读 · 0 评论 -
2016 Boston Key Party CTF hmac-crc
这种做法应该算是:选择密钥攻击http://mslc.ctf.su/wp/boston-key-party-ctf-2016-hmac-crc-crypto-5pts/HMAC–CRC(m,k)=(qm(x)⊕rm(x)k(x))modP(x),根据这个式子,当m不变时,qm(x)和rm(x)不变令k(x)=0,则有:HMAC–CRC(m,0) = (qm(x))modP(x),令k(x)=1,则...原创 2018-05-20 17:04:17 · 465 阅读 · 0 评论 -
2016 hack.lu-ctf cryptolocker CBC Padding Oracle Attack
CBC Padding Oracle Attack原理:https://blog.gdssecurity.com/labs/2010/9/14/automated-padding-oracle-attacks-with-padbuster.htmlhttps://www.jianshu.com/p/1851f778e579https://www.cnblogs.com/LittleHann/p/3...原创 2018-05-25 16:44:41 · 762 阅读 · 0 评论 -
2016 hack.lu-ctf redacted RSA数据恢复
https://github.com/ctfs/write-ups-2016/tree/master/hack.lu-ctf-2016/crypto/redacted-200一位一位的恢复n = p * q的数据,代码来源于链接:from base64 import b64decode, b64encodefrom binascii import hexlify, unhexlifyfrom ...转载 2018-05-26 15:31:04 · 1221 阅读 · 0 评论 -
2016 hack.lu-ctf conrelius1 CRIME攻击
原理:http://www.freebuf.com/articles/web/111927.htmlhttps://blog.youkuaiyun.com/blues1021/article/details/45165777在web的信息传输中,经常会有cookie值等,这其中运用了deflate压缩算法。当我们可以控制输入、且可以观察到输出时,我们就可以一位一位的暴力输入,观察输出的长度是否变化。在尝试过程...原创 2018-05-26 16:45:39 · 738 阅读 · 0 评论 -
2018 SUCTF magic
当时做题的时候得到的式子:(m[0] & key) % 2 == ?(m[1] & key) % 2 == *其中?和 * 很明显,不是0就是1啊!所以不妨换一种思路,如果我们把m和key都转化为二进制数,会发生什么!M表示m展开后的矩阵,K表示key展开之后的向量,C为cipher.txt转成的01向量,即有:MK = C矩阵乘法!二进制下的!也就是说,在有限域GF(2)中,有已...原创 2018-06-03 11:19:38 · 1018 阅读 · 0 评论 -
2016 hitb-facebook-ctf capture-mexico-tls RSA-CRT-Attack
攻击原理:Modulus Fault Attacks Against RSA-CRT Signatureshttps://eprint.iacr.org/2011/388.pdf在n=pq,分别对明文m签名时,如果一个签名正确,另一个签名错误,那么会导致n可分解如果觉得看论文太长太麻烦,可以看底下的解题链接SSL/TLS协商过程解析https://blog.youkuaiyun.com/zhangtaoym/...原创 2018-05-27 14:38:11 · 694 阅读 · 0 评论 -
2016 h4ckit-ctf ninja-scheme Feistel结构
代码如下:#!/usr/bin/env python# coding=utf-8def slice(s,size): return [s[i:i+size] for i in range(0,len(s),size)]#print slice("abcdefghijklmnop",4)#['abcd'.'efgh','ijkl','mnop']def xor(a,b): ...转载 2018-05-23 23:10:06 · 482 阅读 · 0 评论 -
求前n个数的所有约数之和
n_max <= 10^12 思路1:暴力求解每个数的约数,然后相加时间复杂度:O(n ^ 3/2):枚举每个数O(n),对于每个数的分解需要O(n ^ 1/2) 思路2:从约数角度考虑,考虑每个可能约数的贡献对于1,一定是任意数的约数,所以1的贡献为1*n对于2,一定是任意偶数的约数,n中包括n/2个偶数,所以2的贡献为2*(n/2)同理对于其他各个数也一样...原创 2018-05-24 11:36:06 · 3254 阅读 · 3 评论 -
2018 SUCTF pass
思路很棒的一个题,对AES-CBC模式的攻击也不是一次两次了,其实题目也给了思路,只是自己不清楚原理,导致看不懂提示做不出来题目代码:#coding: UTF-8import socketimport flagfrom Crypto.Cipher import AESdef padding(message): toPadByte = 16 - len(message) % 16...原创 2018-06-07 22:39:24 · 455 阅读 · 0 评论 -
XOR
https://www.lijinma.com/blog/2014/05/29/amazing-xor/转载 2018-06-08 09:20:07 · 1464 阅读 · 0 评论 -
[南邮CTF平台] VigenereWP
https://findneo.tech/171005NuptVigenereWP/#%E5%8F%82%E8%80%83%E9%93%BE%E6%8E%A5题目链接和wp在链接里都有,代码也来自于链接:# coding:utf8# by https://findneo.github.io/def getCipher(file='code.txt'): '''从文件中读取十六进制串,返...转载 2018-06-08 09:22:43 · 807 阅读 · 0 评论 -
2018 SUCTF cycle
比赛的时候看到这个题,通过率那么高,然后密钥长度给了提示是1-50,所以猜到了是暴力,太久没做Crypto了,已经忘记了还有维吉尼亚字频统计这一说了……找到了一个好的wp贴出来:https://findneo.tech/180527suctf/#Magic...转载 2018-06-08 09:29:28 · 534 阅读 · 0 评论 -
LSB oracle attack
原理:https://crypto.stackexchange.com/questions/11053/rsa-least-significant-bit-oracle-attack例题:2016 Plaid CTF:rabit2016 sharif CTF:lsb-oracle-150可能出现的问题:WindowsError:当py脚本调用exe时,找不到文件路径linux下需要安装wine来运...原创 2018-05-14 11:18:28 · 1502 阅读 · 0 评论 -
Rabin加密解密算法
取两个大素数p和q,n=pq选择这样的pq可以方便简化计算加密:为明文空间,选择为某一明文,加密公式为.例子:p=7,q=11,n=77,P={0,...,76},当m=20时,密文c=400 % 77 = 15解密:当n无法分解时,我们是无法计算的,还是刚才的例子,我们假设已经用某种方法得到了n=pq,即77=7*11已知n=77,77=7*11,明文c=15,求密文m先计算在同余意义下的平方根...原创 2018-05-14 08:57:46 · 14710 阅读 · 3 评论 -
深入浅出密码学---仿射加密
仿射加密在本质上还是一个置换密码:如果说移位密码是一个常数级别的置换,那么,仿射加密是一个一次级别的置换定义:不妨设我们讨论的范围是所有的小写字母,其中a为0,z为25,其本质是一个Z26的整数环假设X,Y,A,B是Z26整数环中的元素,A和B为密钥,X是原文,Y是密文加密函数:Y=(AX+B)%26解密函数:Y=(AX+B)%26,得到:X=(A的逆元)*(Y-B)%26原创 2016-12-27 19:41:18 · 7074 阅读 · 0 评论 -
RSA攻击----已知公钥n,e私钥d
首先大概介绍下RSA加密解密公钥n = p * q,其中p和q是两个大素数e是随机选择的数,作为公钥d是跟e有关的一个数,满足条件式:ed=1(mod phi(n))phi(n)是欧拉函数,phi(n)=(p-1)(q-1)加密过程:设明文为m,密文为cc = m^e(mod n)解密过程:m=c^d (mod n)RSA密钥体制中,n和e作为公原创 2017-01-05 08:23:17 · 32027 阅读 · 2 评论 -
xxdecode
因为在i春秋上面做了一个XX的misc的题,先把链接贴出来:第三场misc XX题目之中只有一些字符(这种类型的题目最SB好嘛)首先查到XX加密和解密的资料:XX加密解密原理在这个里面,原理已经很清楚了,有个细节问题:举例之中的密文第四个应该是o而不是0注意原理中的这样一段话:每60个编码输出(相当于45个输入字节)将输出为独立的一行,每行的开头会加上长原创 2017-02-17 14:49:50 · 645 阅读 · 0 评论 -
rot13加密解密
rot13加密解密小工具,python代码def Upper(ch): if ch>='A' and ch<='Z': return Truedef Lower(ch): if ch>='a' and ch<='z': return Truedef rot13(s): flag = '' for i in s: if Upper(i) == True:原创 2017-02-15 14:12:49 · 7831 阅读 · 0 评论 -
2017_NJCTF_Misc_easycrypto
这个题讲道理应该算作Reverse中的算法题的吧,给定明文密文对求key,然后再根据key来计算flag写个py脚本逆向一下就好def get(ch): if ch >= '0' and ch <= '9': return ord(ch) - ord('0') else: return ord(ch) - ord('A') + 10f = open("plain.t原创 2017-03-18 15:32:04 · 910 阅读 · 0 评论 -
2017陕西省网络空间安全技术大赛_Crypto_crypt1_Writeup
题目地址中间人相遇攻击题目给了一份这样的RC2加密的代码# -*- coding: utf-8 -*-from Crypto import Randomfrom Crypto.Cipher import ARC2def encrypt_data(data,key): iv = 'k\xbb\xf4B\x18\xe9U\xd0' cipher = AR原创 2017-04-19 15:29:43 · 2195 阅读 · 1 评论 -
MD5学习
谈起CTF,为什么总觉得没有ACM有激情。。。没有黑色一小时没有气球没有AC的快感。。。但是不得不转方向真是不开心——————————————————————————————————————————————————————————————————MD5是一种非常常见的加密算法(无法暴力解密)原理介绍:全英文描述:http://www.ietf.org/rfc/rfc1321.txt中文的介绍以及代...原创 2018-03-15 19:47:04 · 263 阅读 · 0 评论 -
RSA攻击
参加个CTF比赛,发现自己零代码量,什么东西都没有准备,被吊打当然正常,基本的工具常用的代码可以自己提前写好的呀常用的代码有:gcd:求两个数的最大公约数egcd:求满足ax+by=1,当gcd(a,b)=1时,满足式子的x和yhextoflag:很多题目都是给的字母的ord值:两位两位表示一个字母,转化成chr字符就是flag的b64:base64解密b32:base32解密qp:quickpo...原创 2016-12-27 19:49:23 · 6653 阅读 · 0 评论 -
go语言
用最简单的方式学懂go的语法https://coolshell.cn/articles/8460.htmlhttps://coolshell.cn/articles/8489.htmlgo语言官方指南最好还是安装在linux下:安装go,查看go版本,给go语言创建工作区workspacesudo apt-get install golanggo versionmkdir ~/workspac...原创 2018-04-27 00:03:21 · 185 阅读 · 0 评论 -
2016 Sharif CTF unterscheide
知识点:费马小定理当p为素数时,a^(p-1)≡1(mod p)题目分析:#!/usr/bin/python import gmpyimport random, osfrom Crypto.Util.number import *from Crypto.Cipher import AES from secret import flag, q, p1, p2, h assert (...原创 2018-05-18 17:04:05 · 427 阅读 · 0 评论 -
2016 0CTF rsa
知识点:多素数,中国剩余定理,模三次剩余题目给了一个flag.enc,还有一个public.pem安装openssl可以读取到n和e,因为n不大,可以在yafu或者factordb.com上分解得到n = p * q * r根据flag.enc,可以得到密文m根据中国剩余定理,我们要求得m在p,q,r下的余数,不妨设为pmod,qmod,rmod然后根据模三次剩余,即:proot ^ 3 ≡ pm...原创 2018-05-18 22:29:43 · 2056 阅读 · 0 评论 -
2016 Boston Key Party CTF bobs-hat RSA-attack
知识点:Fermat分解首先使用openssl:openssl rsa -text -modulus -pubin < almost_almost_almost_almost_there.pub得到第一关的n和e(这里也可以yafu.exe)然后使用Fermat分解,得到p和q,求得明文(即压缩包的密码)def isqrt(n): x = n y = (x + n // x) // ...原创 2018-05-19 21:17:42 · 391 阅读 · 0 评论 -
2018 SUCTF misc GAME
一道ACM博弈题,交互比较麻烦第一关:巴什博弈两人取石子,总共n个,每次拿 1 - m 个,问先手胜还是负,胜的话输出每一步策略第二关:威佐夫博弈两人取石子,总共两堆,可以从两堆里拿相同的数目,也可以从一堆中拿任意多个,问先手胜还是负,胜的话输出每一步策略先上代码吧import math'''for k in xrange(1,10): a = int(k * (sq5 + 1) / 2)...原创 2018-06-08 10:22:21 · 783 阅读 · 0 评论