网站开发
CSS学习日记(一)
了解CSSCSS是层叠样式表的简称,属于一种标记语言,用于设计html页面的文本、图片、版面等等的布局和外观显示样式,通俗点说,美化html。
构成方式:选择器+一条或多条声明,举例:
h1{ color:red; fontsize: 25px;}(记得加分号)
css语言写在head标签内,归属于style标签。
12345678910111213141516171819<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <titl ...
Crypto
CryptoHack学习记录(三)
椭圆曲线密码
1985年首次提出将椭圆曲线用于公钥密码。在抵御了数十年的攻击之后,它们从2005年左右开始被广泛使用,与以前的公钥密码系统(如RSA)相比,它提供了一些好处。较小的EC密钥具有更大的强度,256位EC密钥具有与3072位RSA密钥相同的安全级别。此外,使用这些密钥的几个操作(包括签名)在时间和内存方面都会更有效。本课程旨在直观了解ECC背后的trapdoor功能;浸入其背后的数学结构中;打破像ECDSA这样的流行计划。
Background Reading椭圆曲线密码(ECC)是一种非对称密码协议,与RSA和Diffie-Hellman(DH)一样,它依赖于trapdoor函数。对于RSA,trapdoor函数依赖于分解大数的难度。对于Diffie-Hellman来说,陷门依赖于离散对数问题的硬度。对于RSA和DH来说,贯穿协议脉络的操作对我们来说都很熟悉。所以ECC脱颖而出,因为ECC中的组操作不会在生活中出现。
让我们从椭圆曲线的含义开始思考ECC,我们将研究魏尔斯特拉斯方程:
y^2=x^3+ax+b椭圆曲线有一个惊人的特点:我们可以定义一个算子,我们称之为“ ...
Crypto
CryptoHack学习记录(二)
对称密码学
对称密钥密码是使用相同密钥对数据进行加密和解密的算法。目标是使用短密钥安全有效地发送长消息。最著名的对称密钥密码是2001年标准化的AES。它如此广泛,以至于现代处理器甚至包含执行AES操作的特殊指令集。这里的第一部分将指导了解AES的内部工作原理,展示其独立组件如何协同工作,使其成为安全密码。到最后构建自己的AES解密代码。我们可以将对称密钥密码分为两种类型,块密码和流密码。块密码将明文分解为固定长度的块,并通过加密函数将每个块与密钥一起发送。流密码同时通过将伪随机密钥流与数据进行异或运算,一次加密一个字节的明文。AES是一种分组密码,但可以使用CTR等操作模式转换为流密码。块密码只指定如何加密和解密单个块,并且必须使用一种操作模式将密码应用于较长的消息。这是现实世界中实现经常失败的地方,因为开发人员不理解使用特定模式的微妙含义。剩下的挑战是如何攻击各种模式的常见误用。
Keyed PermutationsAES和所有分组密码一样,执行“密钥置换”。这意味着它将每个可能的输入块映射到唯一的输出块,并使用一个密钥来确定要执行的置换。
“块”只是指固定数量的位或字节,可以 ...
Crypto
CryptoHack学习记录(一)
CryptoHack官网
之前感觉自己数学知识掌握不够,在这种全英式的学习上比较麻烦,刚好最近学了有关的理论知识,可以重新拿这个作为实践了
正文内容多为照搬百度机翻的基础上根据学的知识做了修改,用来看题足矣
CryptoHack简介
这些介绍性挑战旨在引导完成解决挑战和提交flag的过程。
Finding Flagsflag通常采用crypto{y0ur_f1rst_fl4g}格式。
有手就行。
Great Snakes运行附加的Python脚本,输出flag。
附件:
1234567891011121314#!/usr/bin/env python3import sys# import thisif sys.version_info.major == 2: print("You are running Python 2, which is no longer supported. Please update to Python 3.")ords = [81, 64, 75, 66, 70, 93, 73, 72, 1, 92, 109, 2, 84, 10 ...
Crypto
RSA学习笔记
总览(点击标题即可传送)
2022-11-07
RSA学习笔记(一)
介绍RSA的基本算法,简单的数论知识,学会用Python来破解RSA算法。
2022-11-14
RSA学习笔记(二)
介绍RSA常见攻击,包含很多种常用的套路和通用脚本。
2022-11-22
RSA学习笔记(三)
学习中国剩余定理,并利用中国剩余定理进行低加密指数广播攻击;公钥解析。
2022-12-03
RSA学习笔记(四)
介绍几种比较难的攻击:$e$和$phi$不互素,维纳攻击等。
2022-12-27
RSA学习笔记(五)
一些综合性的题目。
2023-10-31
RSA学习笔记(六)
一些攻击的扩展延伸,一些收集来的攻击类型。
Crypto
RSA学习笔记(五)
本篇根据之前所学的模板题目思路及公式所做一些综合性的题目,题目比较杂,我大致按照难度做了排序
babyrsa题目来自WUSTCTF2020
提供了三个参数:
123c = 28767758880940662779934612526152562406674613203406706867456395986985664083182n = 73069886771625642807435783661014062604264768481735145873508846925735521695159e = 65537
n不是特别大,用yafu慢慢分解能跑出来。
123456789101112from Crypto.Util.number import *import gmpy2c = 28767758880940662779934612526152562406674613203406706867456395986985664083182n = 73069886771625642807435783661014062604264768481735145873508846925735521695159e = ...
Crypto
仿射密码
仿射密码基本概念仿射密码是一种单表替换密码,字母表中的每个字母对应的值使用仿射函数映射到对应的数值,再把对应数值转换为字母进行加密。
仿射函数:
f(x)=(ax+b)\bmod 26依据仿射函数进行加密的密码体制称为仿射密码。
当$a=1$时,不难发现其实质就成了凯撒密码。
加密函数:
e(x)=(ax+b)\bmod m其中,$a$和$m$互质,m是字母数目,为26。
解密函数:
d(x)=a^{-1}(x-b)\bmod m$a^{-1}$是$a$在$m$上的逆元,满足$aa^{-1}\equiv 1(\bmod 26)$
计算原理加密函数的同余方程我们可以转化为$ax\equiv y-b(\bmod 26)$,由于要对密文进行解密,我们需要让仿射函数为一个单射,这个同余方程需要有唯一解,需要使$gcd(a,26)=1$
这里,我们求出和26所有互素的数为1,3,5,7,9,11,15,17,19,21,23,25,总共12个,$b$的取值为$Z_{26}$的某个数,所以我们得到仿射密码的秘钥空间为$12×26=312$
用欧拉函数的相关知识可以得到,仿射密码的秘钥空 ...
杂谈
StegSolve使用和LSB隐写
之前就了解过LSB隐写,并且知道怎么得到flag,但是一直都好奇到底lsb隐写的原理是什么,就自学了一下。
预备小知识我们知道RGB分别是红绿蓝,但他们的值代表的实际上是亮度。
R的数字越大,则代表红色亮度越高;R的数字越小,则代表红色亮度越低。G,B同理。
R的亮度各有256个级别,G,B同理。即从0到255,合计为256个。从数字0到255的逐渐增高,我们人眼观察到的就是亮度越来越大,红色、绿色或蓝色越来越亮。
256是2的8次方,所以我们可以根据RGB分别得到三个八位二进制数值,每个数值的每个位数可以看做是一个通道,反正二进制只有1和0,我们可以理解成通过和不通过,这样,每个颜色就有八个通道,分别对应不同的八位。
如果把RGB表示的数值分别转化为16进制组合在一起,R在前,G在中,B在后,同时以”#“开头,我们称之为十六进制颜色码。很容易知道颜色码#ff0000是红色,#000是黑色,#ffffff是白色等等。
此外,Alpha是透明度,我们用256级灰度来记录图像中的透明度信息,定义透明、不透明和半透明区域,alpha的值为0就是全透明,alpha 的值为 255 则表示不透明 ...
Crypto数学
密码学的数学基础(二)
本篇主要介绍密码学中有关初等数论的同余理论内容
同余理论同余$n$为正整数,$a$和$b$分别模$n$,如果得到相同的余数,就说$a$和$b$在模$n$下满足同余关系,$n$是模数(modulus):
a\equiv b \ (\bmod n )定义:如果$a,b,n∈Z,n>0$,如果$n|(a-b)$,称$a$和$b$在模$n$下同余,记作$a≡b (\bmod n)$。
性质:
a\equiv b \ (\bmod n ) \iff a=qn+b,\exists q\in Z
自反性:a\equiv a\ (\bmod n),a\in Z
对称性:a\equiv b\ (\bmod n)\iff b\equiv a\ (\bmod n)
传递性:a\equiv b\ (\bmod n),b\equiv c\ (\bmod n)\Rightarrow a\equiv c\ (\bmod n)乘法逆元之前我们学过倒数:两个数乘积为$1$,就称两个数互为倒数。可以根据这个思路来引入乘法逆元:
因为我们有:
2×3\bmod 5 =1在这里,因为在模$5$下,$3×2=1$ ...
Crypto数学
密码学的数学基础(一)
本篇主要介绍密码学中有关初等数论的部分基础内容
2024年注:对这系列文章当时的整理进行了分类简化和修改。
推荐视频:Alice-Bob密码学的数学基础 Bilibili
整除理论整除我们假设$a,b∈Z$,如果存在$q∈Z$,使得$a=qb$,所以称$b整除a$。
记为:$b|a$
或者称$b$是$a$的因子,$a$是$b$的倍数,$a$被$b$整除。
$b∤a$表示$b$不能整除$a$,$a$不能被$b$整除。
一些性质①$b|0$
②$1|a$
③$0|a\iff a=0$
④$b|a\iff b|-a\iff -b|a$
运算规律自反性:$a|a$
传递性:$b|a$且$a|c$,得到$b|c$
相乘性:$b|a$,得到$bc|ac$
消去性:$bc|ac,c≠0$,得到$b|a$
线性性:$b|a$且$b|c$,得到$\forall s,t∈Z,b|(sa±tc)$
证明:
因为$b|a且b|c$,存在$q_1,q_2∈Z$,得到$a=q_1b,c=q_2b$,对于$s,t∈Z$,得到$sa=sq_1b$且$tc=tq_2b$,得到$sa±tc=sq_1b±tq_2b= ...