crypto
文章平均质量分 77
密码学相关
Elwood Ying
这个作者很懒,什么都没留下…
展开
-
SEEDLAB2.0-MD5 Collision Attack Lab
MD5 Collision Attack LabTask1生成有相同md5hash的两个不同文件首先两个文件有相同的前缀,使用md5collgen就可以实现这一点,不论任意内容都可以有相同前缀,该程序工作流程如下给出一个前缀文件prefix.txt,将会输出两个文件out1.bin,out2.bin然后可以使用md5sum校验每个输出文件的hash是否相同Task2理解md5的性质Md5将输入的数据按照64字节一组进行切分,然后在这些分组上进行迭代地计算。其狠心是压缩函数,其接受两个输入原创 2021-04-16 18:18:32 · 1429 阅读 · 0 评论 -
SEEDLAB2.0-PKI lab
PKI Lab证书生成任务在ubuntu中进行,web server运行在容器中在本次实验中,我们使用www.bank32.com为例介绍如何设置https web server。我们将这个名字和容器的ip绑定,这一步在hosts中进行。拉取镜像,创建实验环境Task1成为CACA是用于签发数字证书的可信实体一些商业CA被称作根CA(root CA),VeriSign是最大的CA根CA是自签名的self-signed。根CA证书通常预先加载到大多数操作系统、浏览器、已经其他依赖PKI的原创 2021-04-16 18:17:21 · 2472 阅读 · 0 评论 -
SEEDLAB2.0-RSA Encryption and Signature Lab
RSA Public-Key Encryption and Signature Lab本次实验的目的是对RSA有个手动的实际的体验。BIGNUM APIs一些库函数要求临时变量。在重复的子程序调用时,创建BIGNUM所需的动态内存分配是非常昂贵的,一个BN_CTX结构被创建来放置库函数会使用的BIGNUM临时变量。我们需要创建这种结构并将其传递给需要它的函数BN_CTX *ctx = BN_CTX_new()初始化一个BIGNUM变量BIGNUM *a = BN_new()给BIGNUM变量分原创 2021-04-14 22:21:24 · 1309 阅读 · 0 评论 -
SEEDLAB2.0-Padding Oracle Attack
一些系统在解密给定密文时,验证填充是否有效,如果填充无效,则抛出错误。 这种看似无害的行为启用了一种称为padding oracle攻击的攻击。 发现许多知名系统容易受到此攻击,包括Ruby on Rails,ASP.NET和OpenSSL。在本实验中,在容器中运行的两个Oracle服务器。 每个oracle内部都隐藏着一条秘密消息,它让我们知道知道密文和IV。 而且,对于我们提供的任何密文,它都会告诉我们填充是否有效。我们的工作是使用oracle的响应来找出秘密消息的内容。先把之前运行的容器关掉,然后原创 2021-04-14 21:04:52 · 1433 阅读 · 0 评论 -
SEEDLAB2.0-Pseudo Random Number Generation Lab
Pseudo Random Number Generation Lab本次实验将会学习:伪随机数生成生成随机数时的错误生成加密密钥/dev/random和/dev/urandom设备文件Task 1错误的方式生成加密密钥伪随机数的生成事实上是可以预测的比如下面的代码使用当前时间用作伪随机数生成的种子Time()会返回从1970-01-01 00:00:00开始以来的秒数编译后运行几次可以看到将srand那一句注释后从结果可以看到,注释了srand后,光用rand是非常危险的T原创 2021-04-14 20:21:10 · 746 阅读 · 0 评论 -
SEEDLAB2.0-Hash Length Extension Attack Lab
注:这一篇会写得比较详细,之后就略写了很多实验是需要配合docker的,这里以seed lab2.0的“Hash Length Extension Attack Lab”为例介绍如何搭建环境首先由于众所周知的原因,我们需要设置docker国内镜像源新建如下文件写入源保存后退出执行以下命令执行镜像并查看是否设置成功回显的最后如果有下图红框内容则说明设置成功接下来切到实验的yml文件所在路径执行下列命令build容器镜像然后启动可以使用docker ps查看目前正在运行的容器原创 2021-04-14 19:44:01 · 1841 阅读 · 0 评论 -
cryptopals解密之旅3-2
0x00前言本系列文章将带来cryptocals 这套密码学挑战的write-up.不同于通过上课或者看书的方式学习密码学,这些题目来自于现在生活中一些软件系统和密码构造中的缺陷。本系列每一个题的wp基本是采用如下结构:题目解释、相关知识点讲解、代码实现及解释,运行测试。代码均采用python3实现,代码实现部分是参考国外大佬ricpacca的,结合自己的理解及成文需要进行部分修改。第三套一共有八关。上篇文章我们解决了前四关,接下来我们来解答后四关。0x01第21题题目要求我们实现MT1993原创 2020-09-17 23:02:08 · 2952 阅读 · 1 评论 -
cryptopals解密之旅3-1
0x00前言本系列文章将带来cryptocals 这套密码学挑战的write-up.不同于通过上课或者看书的方式学习密码学,这些题目来自于现在生活中一些软件系统和密码构造中的缺陷。本系列每一个题的wp基本是采用如下结构:题目解释、相关知识点讲解、代码实现及解释,运行测试。代码均采用python3实现,代码实现部分是参考国外大佬ricpacca的,结合自己的理解及成文需要进行部分修改。第三套一共有八关。这8个题目是关于分组密码学的,难度中等,包括针对CBC模式的典型攻击,针对RNG的cloning攻原创 2020-09-17 22:58:41 · 385 阅读 · 2 评论 -
cryptopals解密之旅2-2
0x00前言本系列文章将带来cryptocals 这套密码学挑战的write-up.不同于通过上课或者看书的方式学习密码学,这些题目来自于现在生活中一些软件系统和密码构造中的缺陷。本系列每一个题的wp基本是采用如下结构:题目解释、相关知识点讲解、代码实现及解释,运行测试。代码均采用python3实现,代码实现部分是参考国外大佬ricpacca的,结合自己的理解及成文需要进行部分修改。第二套一共有八关。第二套题目主要是和分组密码相关的0x05第13题要求写一个函数profile_for,传原创 2020-07-22 16:36:10 · 382 阅读 · 0 评论 -
cryptopals解密之旅2-1
0x00前言本系列文章将带来cryptocals 这套密码学挑战的write-up.不同于通过上课或者看书的方式学习密码学,这些题目来自于现在生活中一些软件系统和密码构造中的缺陷。本系列每一个题的wp基本是采用如下结构:题目解释、相关知识点讲解、代码实现及解释,运行测试。代码均采用python3实现,代码实现部分是参考国外大佬ricpacca的,结合自己的理解及成文需要进行部分修改。第二套一共有八关。第二套题目主要是和分组密码相关的0x01先来看第9题对于分组密码而言,通过会将整数的块的原创 2020-07-22 16:33:31 · 424 阅读 · 0 评论 -
cryptopals解密之旅1-2
0x00前言本系列文章将带来cryptocals 这套密码学挑战的write-up.不同于通过上课或者看书的方式学习密码学,这些题目来自于现在生活中一些软件系统和密码构造中的缺陷。本系列每一个题的wp基本是采用如下结构:题目解释、相关知识点讲解、代码实现及解释,运行测试。代码均采用python3实现,代码实现部分是参考国外大佬ricpacca的,结合自己的理解及成文需要进行部分修改。第一套一共有八关。0x05第五关给出了明文和密钥,要求实现repeating-key XOR,比如密钥是ICE,原创 2020-06-20 21:05:12 · 363 阅读 · 0 评论 -
cryptopals解密之旅1-1
0x00前言本系列文章将带来cryptocals 这套密码学挑战的write-up.不同于通过上课或者看书的方式学习密码学,这些题目来自于现在生活中一些软件系统和密码构造中的缺陷。本系列每一个题的wp基本是采用如下结构:题目解释、相关知识点讲解、代码实现及解释,运行测试。代码均采用python3实现,代码实现部分是参考国外大佬ricpacca的,结合自己的理解及成文需要进行部分修改。第一套一共有八关。0x01我们先来看第一关1.1第一题题目要求我们将十六进制转为base64, 将十六进制原创 2020-06-20 21:02:32 · 1129 阅读 · 0 评论