文章分类 - 『密码学』
just for ctf
发表于 2023-04-24 00:00阅读:67评论:0推荐:0
摘要:题目描述 题目如下 from secret import r, t from Crypto.Util.number import * flag = b'xxx' flag = bytes_to_long(flag) e = 0x10001 def gen_keys(): p = getPrime(1
阅读全文 »
发表于 2023-01-27 22:30阅读:625评论:0推荐:0
摘要:...慢慢积累ing 一、Rabin加密 这是与e有关的攻击 适用情况:e==2 Rabin加密是RSA的衍生算法,e==2是Rabin加密典型特征,可以百度或阅读https://en.维基pedia.org/wiki/Rabin_cryptosystem以了解到详细的说明, 这里只关注解密方法。一
阅读全文 »
发表于 2023-01-27 22:28阅读:88评论:0推荐:0
摘要:前言 在做V&N 2020公开赛中的一道名叫easy_RSA的题目的时候遇到了这个问题 题目最后一步如下: n = 10269028767754306217563721664976261924407940883784193817786660413744866184645984238866463711
阅读全文 »
发表于 2023-01-27 22:25阅读:174评论:0推荐:0
摘要:####p-1光滑 当 p 是 N 的因数,并且 p - 1 是光滑的时候,可能可以使用 Pollard's p − 1 算法来分解 N,但是也不是完全可以成功的。 参考 https://www.cnblogs.com/lordtianqiyi/articles/17069448.html ####
阅读全文 »
发表于 2023-01-27 22:24阅读:53评论:0推荐:0
摘要:baby step giant step算法常用于ACM竞赛中,该算法的目的是让求解的速度更快,核心是利用hash表查询的速度较普通查询方式快,当然同样是用空间换时间的一种思想。大概的时间复杂度 推导如下: 代码如下: #include <c
阅读全文 »
发表于 2023-01-27 22:22阅读:1055评论:2推荐:1
摘要:基础知识 卢卡斯数列和卢卡斯序列 卢卡斯数列,英文名:Lucas numbers 卢卡斯数列与斐波那契数列相似,除前两项外,每个卢卡斯数都为前两项之和。 而前两项卢卡斯数是和,不同于前两个斐波那契数和 。 因此,卢卡斯数可以定义
阅读全文 »
发表于 2023-01-27 22:15阅读:2445评论:0推荐:1
摘要:"一切以解题为目的的抄代码都是耍流氓!!!" ####前置知识 #####smooth与powersmooth 光滑数(smooth number),或译脆数,是一个可以因数分解为小质数乘积的正整数 如果一个整数的所有素因子都不大于B,我们称这个整数是B-Smooth数 如果一个整数的所有素因子的对
阅读全文 »
发表于 2023-01-23 22:49阅读:41评论:0推荐:0
摘要:一、基础知识 https://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html 欧拉函数、逆元、互质关系 二、RSA原理实现 1、随机选择两个不相等的质数p和q 2、计算p和q的乘积n 3、计算n的欧拉函数φ(
阅读全文 »
发表于 2023-01-20 19:23阅读:295评论:0推荐:1
摘要:一、简介 参考 : https://ctf-wiki.org/crypto/classical/monoalphabetic/#_15 核心就是 加密: y ≡ (ax+b) (mod m) 解密: x ≡ (a^-1) (y-b) (mod m) 推导过程: y ≡ (ax+b) (mod m)
阅读全文 »
发表于 2022-10-24 20:18阅读:988评论:0推荐:0
摘要:一、简介 mt19937算法是梅森旋转算法(Mersenne Twister)的变体,是一个伪随机数发生算法,可以产生32位整数序列。具有以下的优点 二、代码实现 32位的MT19937的python代码如下: def _int32(x): return int(0xFFFFFFFF & x) cl
阅读全文 »
发表于 2022-10-24 20:08阅读:4555评论:0推荐:2
摘要:一、简介 Chacha20流密码经常和Poly1305消息认证码结合使用,被称为ChaCha20-Poly1305,由Google公司率先在Andriod移动平台中的Chrome中代替RC4使用,由于其算法精简、安全性强、兼容性强等特点,目前Google致力于全面将其在移动端推广 二、初始化矩阵 C
阅读全文 »
发表于 2022-07-12 18:42阅读:441评论:0推荐:1
摘要:CRC校验算法就是我们计网上所学的CRC冗余检验算法 一、CRC8校验算法 CRC8检验算法的标准生成多项式 1、标准生成多项式 CRC-8 x8+x5+x4+1 0x31(0x131) CRC-8 x8+x2+x1+1 0x07(0x107) CRC-8 x8+x6+x4+x3+x2+x1 0x5
阅读全文 »
发表于 2022-06-28 20:22阅读:1446评论:0推荐:1
摘要:一、简述 IDEA的全称是International Data Encryption Algorithm,也叫做国际加密算法 这种算法是在DES算法的基础上发展出来的,类似于三重DES 数据块加密算法 二、加密步骤 1、产生密钥 2、加解密过程 三、代码实现(抄的网上的代码) #include<io
阅读全文 »
发表于 2022-05-27 23:29阅读:331评论:0推荐:1
摘要:该题考查了cloacked-pixel隐写,rot47加密,0宽字符隐写,维吉尼亚密码等知识点 解压,获取了一张png图片,pngkey,还有一个加密后的zip文件 一、rot47加密 根据第一条提示,密钥是ROT47加密过的 直接 ROT47在线解密 https://www.qqxiuzi.cn/
阅读全文 »
发表于 2022-05-26 12:48阅读:239评论:0推荐:0
摘要:一、基础知识 SM4密码算法是一个分组算法,该算法的分组长度为128比特,密钥长度为128比特。 数据解密时,轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。 二、加密过程 a、32次迭代得到X4~X35 x0~x3是明文输入 F函数中 rki是我们输入后经过变换的32个32位的轮密钥 1、F函
阅读全文 »
发表于 2022-05-13 23:25阅读:502评论:0推荐:0
摘要:RE的时候碰到了,浅学一下。。。 一、RC4密码基础概要 RC4加密算法属于流加密,也就是说明文多长,密文就有多长;密钥长度可变;对称密钥体制 二、加密过程 初始化S表 1、初始化S表 对S表进行线性填充,一般为256个字节,即S[0] = 0,S[1] = 1 , S[2] = 2.... 2、用
阅读全文 »
发表于 2022-04-29 22:31阅读:552评论:0推荐:0
摘要:TEA加密原理 一、简要概括 TEA(Tiny Encryption Algorithm) 微型加密算法 TEA加密算法采用扩散和混乱方法,对64位的明文数据块,用128位密钥分组进行加密,产生64位的密文数据块,其循环轮数可根据加密强度需要设定。 TEA算法由剑桥大学计算机实验室的David Wh
阅读全文 »
发表于 2022-04-29 22:07阅读:169评论:0推荐:0
摘要:看不懂原理,小计一下代码,方便日后用到的时候直接使用(搬用)。。。 在RSA加密算法中 当并q<p<2p时,就有可能存在维纳攻击的风险 代码如下 import gmpy2 def transform(x,y): #使用辗转相处将分数 x/y 转为连分数的形式 res=[] while y: res.
阅读全文 »
发表于 2022-04-25 23:39阅读:69评论:0推荐:0
摘要:一、 概述 MD5加密摘要算法,属于hash算法一类,能将任意数据映射成一个128位长的摘要信息,且不可逆 二、加密算法 1、数据填充 对加密的数据进行填充和整理,将加密的二进制数据的长度对512取模,得到的结果如果不为448位,则进行补足,补足的方法为第一位填充1,后面填充0,此时数据的位数为:N
阅读全文 »
发表于 2022-03-06 21:07阅读:1693评论:0推荐:0
摘要:SHA1算法原理 经过Sha1算法可以把0<L<2^64位的数据转化成160位的信息摘要 一、 sha1算法原理简要概括 将任意长度的明文分组,每组为512位,最后一组若不足512位,就补位 从第一组开始,通过给定的初识缓冲区链接变量,经过80轮的运算之后,得到长度为160bit的字符串,字符串将参
阅读全文 »