离散数学1
离散数学1
集合的定义
集合是由指定范围内的满足给定条件的所有对象聚集在一起构成,每一个对象称为这个集合的元素。
什么是集合呢?生活中到处都是,例如所有英文字母,中国所有的美食,某个广场的所有建筑
集合的数学符号:
用带或不带下标的大写英文字母表示集合:
A,B,C, A1,B1,C1....
用带或不带下标的小写英文字母表示元素:
a,b,c a1,b1,c1
常见的几大数集:
N:自然数集
Z:整数集
Q:有理数集
R:实数集
若 a 是集合 A 中的元素,则称
a属于A,记为 a ∈ A
若 a 不是集合 A 中的元素,则称
a不属于A,记为 a /∈A
集合的表示
常见的有这几种方法
枚举法:列出集合中的全部元素或者仅列出一部分元素,其余用省略号(...)表示
例如
A={a,b,c,d}
B={2,4,6,8,10,.....}
当然用的比较多的还是叙述法
通过刻画集合中元素所具备的某种性质或特性来表示一个集合
P={x|P(x)}
例如A={x|x是鱼类中的热带鱼类}
B = {x|x ∈ Z, x < 10}
...
抽象代数学习笔记1
抽象代数学习笔记1
听了队内师傅的讲解感觉自己差的很多,决定系统学习一下抽象代数,写的不好的地方多多包涵。
群
一个群是一个集合,且要满足以下定义
1.封闭性
2.结合率
3.有幺元
4.每个元素有逆元
群 的 分类
1.交换群 ( Abel 群 ) : 交换律 成立的 群 , 称为 交换群 或 Abel 群 ;
2.非交换群 ( 非 Abel 群 ) : 交换律 不成立的 群 , 称为 非交换群 或 非
Abel 群 ; 3.群 的 阶 : 群 G G G 含有的元素个数叫群的阶 , 记做 ∣G∣ ;
4.有限群 : ∣G∣ 是 有限的 , 叫做 有限群 ; 5.无限群 : ∣G∣ 是 无限的 , 叫做
无限群 ;
函数
定义:对于每一个数,都存在与之对应的数f(a)与其相等。
笛卡尔积含义
笛卡尔积是指在数学中,两个集合X和Y的笛卡尓积(Cartesian
product),又称直积,表示为X ×
Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员。
笛卡尔积又叫笛卡尔乘积,是一个叫笛卡尔的人提出来的。
简单的说就是两个 ...
HNCTF题解-Crypto
HNCTF题解-Crypto
[Week1]baBAbaseSEse
base全家桶,base92,91,85,64,32,16
flag为NSSCTF{th3re_1s_als0_b4se_36_45_58_62_100}
[Week1]A dictator
lzw_uswksj_uahzwj_ak_gfw_gx_lzw_egkl_tskau_udskkausd_uahzwjk
凯撒密码,18位偏移
the_caesar_cipher_is_one_of_the_most_basic_classical_ciphers
[Week1]littleprince
我借助的在线网站结合爆破出来的,方法有点笨,但是可以出来,在线网站可以规划出他们的相关函数,然后就可以一个个爆破而出
12345678910111213141516171819def enc(a,b,c): return a>>b|(a&((1<<b)-1))<<(c-b)def outp(x,h): p=randint(1<<h,1< ...
DASCTF X CBCTF 2022九月挑战赛Crypto题解
DASCTF X CBCTF
2022九月挑战赛Crypto题解
LittleRSA
123456789101112131415161718192021222324252627from Crypto.Util.number import *import sympyimport randomfrom secret import flagm = bytes_to_long(flag)p = getPrime(512)q = getPrime(512)phi = (p-1)*(q-1)e = 65537n = p * qc = pow(m, e, n)s = getPrime(300)N = getPrime(2048)g = p * inverse(s,N)**2 % (N**2)print(N)print(g)print(n)print(c)'''N=193513010358015081169555520633163274632279286383192840825040707452301197923074210995349038377663176399 ...
ctf中的lcg总结
ctf中的lcg总结
线性同余方法(LCG)是一种产生伪随机数的方法。
Xn+1=(aXn+b)mod(m)
线性同余法最重要的是定义了三个整数,乘数 a、增量 b和模数
m,其中a,b,m是产生器设定的常数。 1.Xn+1反推出Xn Xn=(a^-1 (Xn+1 - b))%m
2.求a a=((Xn+2-Xn+1)(Xn+1-Xn)^-1)%m 3.求b b=(Xn+1 - aXn)%m 4.求m
tn=Xn+1-Xn,m=gcd((tn+1tn-1 - tntn) , (tntn-2 - tn-1tn-1))
这些就是简单的几个推论
然后我们通过题目来进行分析
12345678910111213141516171819202122232425from Crypto.Util.number import *flag = b'Spirit{***********************}'plaintext = bytes_to_long(flag)length = plaintext.bit_length()a = getP ...
网鼎杯不同组的密码题目
网鼎杯不同组的密码题目
青龙组
crypto091
根据提示可以知道前6为,为861709,然后爆破后七位就行了
123456789import hashlibfor password in range(8617090000000,8617099999999): password=str(password) hash_password = hashlib.sha256(password.encode("utf-8")).hexdigest() if hash_password == "c22a563acc2a587afbfaaaa6d67bc6e628872b00bd7e998873881f7c6fdc62fc" : print(hash_password) print("flag{"+password+"}") break
crypto162
123456789101112131415161718192021222 ...
RSA算法
RSA算法
Diffie-Hellman(迪菲-赫尔曼)秘钥交换
首先先了解下最基础的秘钥交换算法,Diffie-Hellman算法,它是一种建立秘钥的方法,而不是加密方法,所以秘钥必须和其他一种加密算法结合使用。这种秘钥交换技术的目的在于使两个用户安全的交换一个秘钥一遍后面的报文加密。
Diffie-Hellman密钥交换算法的有效性依赖于计算离散对数的难度。
以如下定义离散对数:首先定义一个素数p的原根,为其各次幂产生从1
到p-1的所有整数根,也就是说,如果g是素数p的一个原根,那么数值
g mod p, g2 mod p, ..., gp-1 mod
p,p为指数
那么再了解一下什么是原根
原根
原根,是一个数学符号。设m是正整数,a是整数,若a模m的阶等于φ(m),则称a为模m的一个原根。
φ(m)为欧拉函数(在数论,对正整数n,欧拉函数是小于等于n的正整数中与n互质的数的数目.)
欧拉定理:设
(a,m)=1,则a^φ(m)=1modm
.
特别地,当m=p(p为素数)时,φ(p)=p-1,此时a^p-1=1(modp)
下面我们继续来看DH ...
AES算法
AES算法
AES简介
高级加密标准(AES,Advanced
Encryption Standard)为最常见的对称加密算法。
AES的基本结构
AES为分组密码,分组密码也就是把明文分成一组一组的,每组长度相等,每次加密一组数据,直到加密完整个明文。在AES标准规范中,分组长度只能是128位,也就是说,每个分组为16个字节(每个字节8位)。密钥的长度可以使用128位、192位或256位。密钥的长度不同,推荐加密轮数也不同,如下表所示
AES
密钥长度(32bit)
分组长度(32bit)
加密轮数
AES-128
4
4
10
AES-192
6
4
12
AES-256
8
4
14
AES的处理单位是字节,128位的输入明文分组P和输入密钥K都被分成16个字节,分别记为P
= P0 P1 … P15 和 K = K0 K1 … K15。
字节排列顺序由上到下由左到右,假设要加密的为abcdefghljklmnop
明文顺序为
a
e
i
m
...
对称密钥密码学中的DES
对称密钥密码学中的DES
概念
密的人与解密的人用的密钥是一样的。这种加密方式被称为对称密钥加密。
对称密钥加密的工作原理
对称密钥加密的工作机制首先参考下图。对于送信的一方,使用公共密钥加密明文之后传输给受信一方,受信一方用同一个公共密钥解密密文拿到明文
https://img-blog.csdnimg.cn/20191022212700782.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1RvcmFOZQ==,size_16,color_FFFFFF,t_70
DES算法
DES是有IBM公司研制的一种对称加密算法,美国国家标准局于1977年公布把它作为非机要部门使用的数据加密标准。
DES是一个分组加密算法,就是将明文分组进行加密,每次按顺序取明文一部分,一个典型的DES以64位为分组,加密解密用算法相同。它的密钥长度为56位,因为每组第8位是用来做奇偶校验,密钥可以是任意56位的数,保密性依 ...
3月赛wp
3月赛wp
Crypto
md5
写脚本吧 明文:s3c{P7?Y0OG?0XPC?ZPK}
密文:b235????f2da???874???63007?4b8970
其实很简单,就是通过明文解决密文,?中可以为任意字符串,通过一一尝试就出来了
``
1234567891011121314151617181920212223import hashlibpassword='s3c{P7?Y0OG?0XPC?ZPK}'password1='s3c{P7'password2='Y0OG'password3='0XPC'password4='ZPK}'password5=''password6=''password7=''jiemi='_0123456789abcdefghijklmnopqrstuvwsyzABCDEFGHIJKLMNOPQRSTUVWSYZ'f ...