首页
统计
Search
1
TypeScript学习笔记
5 阅读
2
《被讨厌的勇气》读后感
5 阅读
3
从零开始的Vue学习
3 阅读
4
摘抄
3 阅读
5
【极客时间】玩转Git三剑客笔记
3 阅读
年度总结
学习笔记
读后感
动漫汇总
日常记录
登录
Search
标签搜索
大数据
git
加密
Vue
CTF
TypeScript
React
Augenstern
累计撰写
10
篇文章
累计收到
0
条评论
首页
栏目
年度总结
学习笔记
读后感
动漫汇总
日常记录
页面
统计
搜索到
1
篇与
加密
的结果
2024-06-09
CTF-Crypto
密码学(Cryptography)一般可分为古典密码学和现代密码学。一般来说,密码设计者的基本想法是确保密码框架的。保密性完整性可用性不可否认性其中,前三者又称为 CIA 三元组。古典加密古典密码是指在现代密码学发展之前使用的一类加密方法。它们通常基于简单的数学原理和替换、重排、置换等操作来对明文进行加密。置换学习视频 杨兰娟:古典密码-置换密码把明文中的字母重新排列,字母本身不变,但其位置改变了,这样编成的密码称为置换密码。栅栏技术:按照对角线顺序写出明文,并以行的顺序读出明文:meet after the toga party 栅栏数:2 m e a t r h t g p r y e t f e t e o a a t 密文: MEATRHTGPRYETFETEOAAT列置换:将明文按照行填写在一个矩形中,密文则是以预定的顺序按列读取生成明文:shesellsseashellsbytheseashore 密钥:351642 矩阵 3 5 1 6 4 2 s h e s e l l s s e a s h e l l s b y t h e s e a s h o r e 按照密钥顺序读取列,则为ESLHH LSBEE SLHYA EASSR HSETS SELEO周期置换:将明文串P按照固定长度m分组,然后对每组中的子串按照1,2,...m的某个置换重新排列得到密文。加密密钥(置换)K= 1 2 3 4 5 6 3 5 1 6 4 2 明文:shesellsseashellsbytheseashore 分块:shesel lsseas hellsb ythese ashore 根据函数f重新排列 以shesel为例 s->3 h—>5 e->1 s->6 e->4 l->2 最终顺序为ELSEHS,其他块也按照这个方法重新排列多次列置换:将列置换得到的密文再进行1次或多次列置换,方法与列置换一致替换学习视频 杨兰娟:古典密码-替换密码替换密码是将明文字符替换成其他字母、数字或符号。凯撒密码:将字母向后偏移3位,如果是移13位则为ROT13加密a->Db->E...x->Ay->Bz->C明文:attack 密文:DWWDFN维吉尼亚密码:基于串的替换密码,密钥是由多于一个的字符串所组成的串Ci = (Pi+ki mod m) mod 26明文:T H E B U T C H E R 密钥:B I G B I G B I G B 序号: 19 7 4 1 20 19 2 7 4 17 1 8 6 1 8 6 1 8 6 1 密文:UPKCCZDPKS弗纳姆密码:假定消息是长为n的比特串,密钥也是长为n的比特串m=b1b2...bn∈{0,1}nk =k1k2...kn∈u{0,1}n加密: Ci = Pi⨁Ki解密: Pi = Ci⨁KiPlayfair密码:1854 年由英国人查尔斯·惠斯通发明,基本算法如下:选取一串英文字母,除去重复出现的字母,将剩下的字母逐个逐个加入 5 × 5 的矩阵内,剩下的空间由未加入的英文字母依 a-z 的顺序加入。注意,将 q 去除,或将 i 和 j 视作同一字。将要加密的明文分成两个一组。若组内的字母相同,将 X(或 Q)加到该组的第一个字母后,重新分组。若剩下一个字,也加入 X 。在每组中,找出两个字母在矩阵中的地方。若两个字母不同行也不同列,在矩阵中找出另外两个字母(第一个字母对应行优先使这四个字母成为一个长方形的四个角。若两个字母同行,取这两个字母右方的字母(若字母在最右方则取最左方的字母)若两个字母同列,取这两个字母下方的字母(若字母在最下方则取最上方的字母)。新找到的两个字母就是原本的两个字母加密的结果。密钥:telegram 矩阵: T E L G R A M B C D F H I/J K N O P Q S U V W X Y Z 明文:NEXT TIME 分组:NE XT TI ME 画矩阵: NE--> HR XT--> VL TI--> LF ME--> HM希尔密码:希尔密码(Hill)使用每个字母在字母表中的顺序作为其对应的数字,即A=0,B=1,C=2 等,然后将明文转化为 n 维向量,跟一个 n × n 的矩阵相乘,再将得出的结果模 26。注意用作加密的矩阵(即密匙)在 $\mathbb{Z}^n_{26}$(我的markdown不支持latex) 必须是可逆的,否则就不可能解码。只有矩阵的行列式和26互质,才是可逆的。明文:ACT 矩阵: 0 2 19 密钥: 6 24 1 13 16 10 20 17 15 计算行列式发现不为0,可逆 明文矩阵乘密钥矩阵mod26得到密文矩阵 15 14 7 所以对应的密文为POH还有其他类型密码,这里简单列举一下,就不详细介绍了。培根密码:用5位二进制表示,A代表0,B代表1曲路密码:是一种换位密码,需要事先双方约定密钥(也就是曲路路径)列移位加密:一种比较简单,易于实现的换位密码,通过一个简单的规则将明文打乱混合成密文01248密码:该密码又称为云影密码,使用 0,1,2,4,8 这几个数字,其中 0 用来表示间隔,其他数字以加法可以表示出 如:28=10,124=7,18=9,再用 1->26 表示 A->Z。可以看出该密码有以下特点:只有 0,1,2,4,8JSFuck:JSFuck 可以只用 6 个字符 []()!+ 来编写 JavaScript 程序。[][(![]+[])[+[[+[]]]]+([][[]]+[])[+[[!+[]+!+[]+!+[]+!+[]+!+[]]]]+(![]+[])[+[[!+[]+!+[]]]]+(!![]+[])[+[[+[]]]]+(!![]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+!+[]]]]][([][(![]+[])[+[[+[]]]]+([][[]]+[])[+[[!+[]+!+[]+!+[]+!+[]+!+[]]]]+(![]+[])[+[[!+[]+!+[]]]]+(!![]+[])[+[[+[]]]]+(!![]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+!+[]]]]]+[])[+[[!+[]+!+[]+!+[]]]]+([][(![]+[])[+[[+[]]]]+([][[]]+[])[+[[!+[]+!+[]+!+[]+!+[]+!+[]]]]+(![]+[])[+[[!+[]+!+[]]]]+(!![]+[])[+[[+[]]]]+(!![]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+!+[]]]]]+[])[+[[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]]]+([][[]]+[])[+[[+!+[]]]]+(![]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+[]]]]+(!![]+[])[+[[+!+[]]]]+([][[]]+[])[+[[+[]]]]+([][(![]+[])[+[[+[]]]]+([][[]]+[])[+[[!+[]+!+[]+!+[]+!+[]+!+[]]]]+(![]+[])[+[[!+[]+!+[]]]]+(!![]+[])[+[[+[]]]]+(!![]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+!+[]]]]]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+[]]]]+([][(![]+[])[+[[+[]]]]+([][[]]+[])[+[[!+[]+!+[]+!+[]+!+[]+!+[]]]]+(![]+[])[+[[!+[]+!+[]]]]+(!![]+[])[+[[+[]]]]+(!![]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+!+[]]]]]+[])[+[[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+!+[]]]]]((![]+[])[+[[+!+[]]]]+(![]+[])[+[[!+[]+!+[]]]]+(!![]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+!+[]]]]+(!![]+[])[+[[+[]]]]+([][(![]+[])[+[[+[]]]]+([][[]]+[])[+[[!+[]+!+[]+!+[]+!+[]+!+[]]]]+(![]+[])[+[[!+[]+!+[]]]]+(!![]+[])[+[[+[]]]]+(!![]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+!+[]]]]]+[])[+[[+!+[]]]+[[!+[]+!+[]+!+[]+!+[]+!+[]]]]+[+!+[]]+([][(![]+[])[+[[+[]]]]+([][[]]+[])[+[[!+[]+!+[]+!+[]+!+[]+!+[]]]]+(![]+[])[+[[!+[]+!+[]]]]+(!![]+[])[+[[+[]]]]+(!![]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+!+[]]]]]+[])[+[[+!+[]]]+[[!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]]])()BrainFuck:是一种极小化的计算机语言++++++++++[>+++++++>++++++++++>+++>+<<<<-] >++.>+.+++++++..+++.>++.<<+++++++++++++++. >.+++.------.--------.>+.>.猪圈密码:一种以格子为基础的简单替代式密码舞动的小人密码:这种密码出自于福尔摩斯探案集。每一个跳舞的小人实际上对应的是英文二十六个字母中的一个,而小人手中的旗子则表明该字母是单词的最后一个字母,如果仅仅是一个单词而不是句子,或者是句子中最后的一个单词,则单词中最后一个字母不必举旗。键盘密码:这种有很多种,举一个最简单的,观察自己的电脑键盘,给出密文ESXF,得到明文D,因为ESXF围住了D现代加密对称加密DES:DES全称为Data Encryption Standard,是典型的块加密,其基本信息如下:1、使用64位密钥中的56位,剩余的8位要么丢弃,要么作为奇偶校验位2、输入64位3、输出64位4、明文经过16轮迭代得到密文AES:AES全称为Advanced Encryption Standard,是典型的块加密,被设计来取代DES。其基本信息如下:分组长度和密钥长度均可变,可以有以下几种数值:128比特192比特256比特经过N轮加密后得到密文,轮数依赖于密钥长度:128比特密钥对应10轮192比特密钥对应12轮256比特密钥对应14轮非对称加密RSA:RSA算法的具体描述如下:1、选择两个大素数p和q,计算N=p*q。2、计算φ(N)=(p-1)*(q-1)。3、选择一个整数e,1<e<φ(N),且e与φ(N)互质。4、计算d,使得e*d=1 mod φ(N)。5、将N和e作为公钥,N和d作为私钥。加密数据时,将明文转换为整数M,计算C=M^e mod N。解密数据时,将密文转换为整数C,计算M=C^d mod N。哈希函数MD5:MD5的输入输出如下: 输入: 任意长的消息,512比特长的分组。 输出: 160比特的消息摘要。SHA1:SHA1的输入输出如下: 输入: 任意长的消息,分为 512 比特长的分组。首先在消息右侧补比特 1,然后再补若干个比特 0,直到消息的比特长度满足对 512 取模后余数是 448,使其与 448 模 512 同余。输出: 160 比特的消息摘要。
2024年06月09日
2 阅读
0 评论
0 点赞