摘要:
任务1 button.hpp 1 #pragma once 2 3 #include <iostream> 4 #include <string> 5 6 using std::string; 7 using std::cout; 8 9 // 按钮类 10 class Button { 11 pu 阅读全文
摘要:
任务1: T.h 1 #pragma once 2 3 #include <string> 4 5 // 类T: 声明 6 class T { 7 // 对象属性、方法 8 public: 9 T(int x = 0, int y = 0); // 普通构造函数 10 T(const T &t); 阅读全文
摘要:
实验1: task.cpp 1 #include <iostream> 2 #include <string> 3 #include <vector> 4 #include <algorithm> 5 using namespace std; 6 7 template<typename T> 8 v 阅读全文
摘要:
前言 base打了没几天就军训了,前两周的还打了打,军训烤红薯了,后面上的题都懒得看了,趁着国庆假期,闪击了下苏州,人太多了,还不如待在学校水一水。因为是复现平台做的,顺序比较乱。 铜匠 附件: from Crypto.Util.number import getPrime, bytes_to_ 阅读全文
摘要:
缘起 在遇到AES和DES等分组加密算法时,需要明文满足一定的长度要求(分组的倍数),但是大多数情况下明文没法满足长度的苛刻要求,于是就要进行padding使传入的内容满足长度要求。 Nopadding 就是不填充,明文满足分组算法的长度要求,不需要再进行填充。 PKCS5/PKCS7 填充数据为填 阅读全文
摘要:
原理 用到格基规约和LLL算法。。。 啊?你问那是什么?去搜吧,反正我没看懂。 实现 有一个 e 阶的多项式 f, 那么可以: 在模 n 意义下,快速求出 以内的根 给定 β,快速求出模某个 b 意义下较小的根,其中b≥,是 n 的因数。 一般采用sage下的small_roots(X=2^k 阅读全文
摘要:
一直在抄脚本,终于想着来看看原理了。 dp是什么? dp = d mod (p-1) 基本前备知识 e*d = 1 mod ϕ(n) 那么开推吧 dp = d mod (p-1) --> dp * e = e*d mod (p-1) --> e*d = dp * e mod (p-1) --> e* 阅读全文
摘要:
关于标题 今晚的月色深藏云间。(呜呜呜我就是在发癫) 连分数分解问题和勒让德定理关系较多,至少知道什么是连分数什么是勒让德定理。 维纳攻击 wiener attack 攻击条件: 攻击原理: 适用情况和例题 出现多因子+大数时考虑连分数分解 [湖湘杯 2021]signin 附件: from Cry 阅读全文
摘要:
初识威尔逊定理 什么是威尔逊定理,即对于一个质数p来说,有 (p-1)! ≡ -1 (mod p) 恒成立,其逆定理也成立,即对于一个数p来说若满足上式,则p一定是素数。 于是通过这个性质我们能够得到素数分布的函数: f(n) = sin(π*((n-1)!+1)/n) 当函数值为0时,对应n就是一 阅读全文
摘要:
古典密码 在线工具:https://ctf.bugku.com/tools.html 一键解码工具库:随波逐流,在github上下载即可 注:古典密码只需做个了解,因为很多都是靠工具实现的,多刷题有个印象,遇到题能看出像什么密码就好。 Base家族 在密码学领域,"base" 通常指的是一种编码 阅读全文