密码学大作业总结博客

一、9.30

Question1 Many Time Pad(Coursera Week 1 Program Assignment)

待更新

Question2 PA1 option

Write a program that allows you to"crack"ciphertexts generated using a Vigenere-like cipher,where byte-wise XOR is used instead of addition modulo 26.

Question3 cryptopals

题目链接:Question3

  1. Convert hex to base64
  2. Fixed XOR
  3. Single-byte XOR cipher
  4. Detect single-character XOR
  5. Implement repeating-key XOR
  6. Break repeating-key XOR

第六题思路:首先要计算hamming距离,选择将文本字符串转换为位值数组,然后比较二进制数据并计算差异数。
然后迭代2-40的密钥长度,并将密文拆分为(文本大小)/密钥长度的组数并计算hamming距离,将其标准化,并排序,得到密钥长度为29。
然后分别进行测试,安照密钥长度将密文分块,然后将每个块的第一个字节组成新的第一个块,将每个块的第二个字节组成新的第二个块…然后按照单字节xor的方式来分别处理每一块,将得到的明文拼接起来。最后通过字符频率相加计算分数的方法,分数最大的则是最有可能是正确明文。

Question4 MTC3 Cracking SHA1-HashedPasswords

题目链接:MTC3

二、1024

PA2 option

AES decrypt a challengecipher text generated usingAES in CBC-mode with PKCS#5 padding.
connect((‘128.8.130.16’, 49101)))
CBC字节翻转攻击,加密解密相关机制原理参考tr0y’ blog

Question2 cryptopals

题目链接:Question2

  1. Implement PKCS#7 padding
  2. Implement CBC mode
  3. An ECB/CBC detection oracle
  4. Byte-at-a-time ECB decryption
    (Simple)
  5. ECB cut-and-paste
  6. Byte-at-a-time ECB decryption
    (Harder)
  7. PKCS#7 padding validation
  8. CBC bit flipping attacks

Question3 MTC3 AES key

MTC3 AES key — encoded inthe machine readable zone ofa European ePassport

1、按照参考文章步骤求未知数字,即校验位,求出为7
2、把证件的数字和校验位直接sha1散列,然后取前16位即可得到k_seed,把之前生成的k_seed和c级联,然后再进行一次sha1散列得到三十二位数字,然后对前十六位和后十六位进行奇偶校验计算出key
3、拿key和base64解码后的密文AES解密即可

三、RSA加密体制破译题目

有人制作了一个 RSA 加解密软件(采用的 RSA 体制的参数特点描述见密码背景部分)。已知该软件发送某个明文的所有参数和加密过程的全部数据(加密案例文件详见附件 3-1)。Alice 使用该软件发送了一个通关密语,且所有加密数据已经被截获,请问能否仅从加密数据恢复该通关密语及 RSA 体制参数?如能请给出原文和参数,如不能请给出已恢复部分并说明剩余部分不能恢复的理由?

破解步骤如下:
题目给出了21个明文分片的加密结果。针对任意待加密明文,根据赛题所给的加密信息,以8字符为单位长度进行划分,得到的结果随后进行相关填充,在填充过程中加入通信序号(非接收序号),就可以通过通信序号进行片段还原,即分离出重要参数模数n,加密指数e和密文c。
然后对解析得到的参数进行分析,分析方法如下:遍历所有的模数N,判断是否存在模数相同的加密片段;遍历寻找任意两个模数N的公因子,如果得到不为1的公因子则可以成功分解这两个模数;遍历所有加密指数e,寻找低加密指数及对应的加密对;剩下的片段采用费马分解和Pollard p-1分解进行尝试。笔者能力不够,剩下帧靠Google搜索等方法暴力破解。具体对应如下:
Frame0和Frame4的模数N相同,可以使用公共模数攻击的方法;Frame1和Frame18的模数N具有公共因子,可以通过因数碰撞法还原明文;Frame3,Frame8,Frame12,Frame16和Frame20采用低加密指数e=5进行加密,Frame7,Frame11,Frame15采用低加密指数e=3进行加密,通过低指数广播攻击即可,但这里7、11、15存在Coppersmith attack,这是一种利用格的攻击方法,而对于e=3的包,需要解如下方程:。这里需要用到一种LLL算法(格基规约算法)。不太会,就失败了。通过尝试其他Frame10、Frame14可以通过费马算法分解(p、q过于接近),Frame2、Frame6、Frame19用Pollard p-1算法分解(p、q相差过大)。
具体攻击算法可以参考tr0y大佬总结的RSA大礼包链接
本题目具体代码及题目所给数据上传了Github

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值