当前位置: 首页 > news >正文

CTF Crypto基础知识

0x01 密码学

本质: 密码学的首要目的是隐藏信息的涵义,而并不是隐藏信息的存在,这是密码学与隐写术的一个重要区别。

密码学的发展大概经历了三个阶段:

  • 古典密码阶段(1949年以前)。
  • 近代密码阶段 (1949-1975年),香农信息论,提出 “混淆与扩散” 准则,为对称密码(如DES)提供设计框架
  • 现代密码阶段(1976年至今) ,公钥密码革命(Diffie-Hellman),解决密钥分发问题,但并未否定香农理论(对称密码仍基于此发展)。

密码学分为两个方式:

  • 古典密码
  • 现代密码
古典密码

核心特征:基于纸笔/机械、无数学理论支撑
特点: 手工操作、数学简单、易受统计攻击
常见题型: 替换、移位、组合密码
在这里插入图片描述

古典密码之替换密码

替换密码的核心思想是用一个字符替换另一个字符,形成密文。明文和密文的字符集通常相同(如都使用 26 个英文字母),但字符之间的映射关系是预先设定的(可以是固定的,也可以是动态变化的)。
单表替代:所有字符用同一映射表替换。
凯撒密码(Caesar Cipher):字母表整体移位 n 位(如 A→D,B→E,n=3)。
仿射密码(Affine Cipher):通过线性变换公式(如 y = (ax + b) mod 26ab 为密钥)替换字符。
阿托巴希密码(Atbash Cipher):字母表反转(A→Z,B→Y,…,M→N)。
多表替代:使用多个映射表,降低频率特征暴露风险。
维吉尼亚密码(Vigenère Cipher):通过关键词循环决定每一位的移位量。
博福特密码(Beaufort Cipher):维吉尼亚的变体,加密公式不同。
希尔密码(Hill Cipher):将字符转化为数字,通过矩阵乘法进行多字符批量替换(线性代数加密的早期形式)。

凯撒密码是一种替换密码,将明文中的 每个字母 都按照其在字母表中的顺序向后(或向前)移动固定数目(一般位移三位)作为密文。凯撒密码只能加密英文。
密文:iodj{ehoor zrua}
明文:flag{hello word}
在这里插入图片描述
可以用数学方式取模运算

对于每个明文字母 p,其密文字母 c的计算公式为:
c=(p+k)mod26
其中:
p是明文字母在字母表中的位置(0-25),例如 A=0, B=1, ..., Z=25。
k是偏移量(密钥),通常为整数。
mod26 确保结果在 0-25 范围内,形成循环替换。

维吉尼亚密码使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的一种简单形式
在这里插入图片描述

  • 明文:come greatwall 密钥:crypto
  • 密文:efkt zfgrrltzn
古典密码之移位密码

移位密码(又称置换密码)的核心思想是不改变字符本身,只改变字符在明文中的位置,通过重新排列字符顺序形成密文。

  • 列移位密码:按固定长度分组后,按列顺序重排(如按列号 3→1→2 读取)。
  • 栅栏密码(Rail-fence Cipher):将明文按 “栅栏” 分层排列,再按行拼接(如 2 层栅栏:第 1、3、5… 位字符为第一层,第 2、4、6… 位为第二层)。
  • 周期移位密码:按固定周期交换字符位置(如每 3 位字符反转一次:123→321)。

栅栏密码(Rail Fence Cipher)是一种经典的移位密码,通过将明文按特定方式重新排列来加密。其名称来源于其排列方式类似于栅栏的形状。
明文:The quick brown fox jumps over the lazy dog
密文:tioxstz hcwkohy eknuved qbfmelo uroprag
在这里插入图片描述

现代密码

核心特征:基于数学难题、算法标准化、计算安全

  • 现代对称密码 (Symmetric Cryptography)
    • 特点: 加解密用同一密钥、速度快、适合大数据
    • 常见算法:AES, DES, 3DES, RC4
  • 非对称密码 (Asymmetric Cryptography)
    • 特点: 公钥加密 + 私钥解密、解决密钥分发
    • 常见算法: RSA, ECC, Diffie-Hellman
      在这里插入图片描述
现代密码之对称加密

特点:加密和解密使用相同的密钥和相同的算法

优点:速度快、安全、紧凑(加密后长度几乎不增加)

缺点:

  • 密钥数量是参与者数量的指数增长
  • 数量过多带来的管理和存储问题
  • 不支持数字签名和不可否认性
  • 密钥如何安全的传递给可信任的对等体是个关键的问题
    在这里插入图片描述
现代密码之非对称加密

特点:加密和解密使用不同的秘钥(一个秘钥加密,只能用另一个秘钥解密)

优点:安全。不担心密钥被中途截获的问题(不发送私钥);不需要事先在各参与者之间建立关系以交换密钥。技术上支持数字签名和不可否认性。

缺点:速度非常慢(比对称加密算法慢1500倍),密文长度会显著增加。——所以仅用于做密钥交换,数字签名
在这里插入图片描述

哈希函数 (Hash Functions)

特点: 不可逆、固定输出、雪崩效应

常见算法:MD5, SHA-1, SHA-256

  • 碰撞攻击 (Collision): 找 $H(M1) = H(M2)$
    • 工具:hashclash (MD5/SHA-1碰撞)
  • 长度扩展攻击: 已知 H(secret+data) 构造 H(secret+data+padded+malicious)
    • 工具:hash_extender
  • 彩虹表爆破: 针对无盐哈希
    • 工具:hashcat -m 0 -a 3 hashes.txt ?l?l?l?l?l
  • 密码爆破: 弱口令字典攻击
    • 工具:john --format=raw-md5 hashes.txt

0x02 编码技术

编码技术与密码学有紧密关联但不属于密码学范畴,两者是互补而非包含的关系。

  • 编码:可逆转换,无密钥概念(如Base64
  • 加密:需要密钥才能反转(如AES

编码技术的核心作用

  • 数据伪装:将敏感信息转换为无害格式
  • 格式兼容:适应不同传输协议(如HTTP只支持文本)
  • 信息隐藏:作为隐写术的载体
  • 混淆干扰:增加题目分析难度

常见编码:base、hex、binary、URL、unicode、Morse、ascii

Base64 编码

原理:将3字节(24位)数据拆分为46位单元,映射到64字符集

字符集:A-Za-z0-9+/==用于填充)

识别特征:

  • 长度是4的倍数
  • 结尾常带=12个)
  • 无其他的特殊字符
    在这里插入图片描述
URL编码

原理:不安全字符转为%后跟两个十六进制数字

字符集:%XX格式(XXHex值)

识别特征:

  • 包含大量%符号
  • 常见于HTTP请求
    在这里插入图片描述
摩斯电码

原理:用点(Dot)、划(Dash)和停顿表示字符的通信系统

识别特征:

  • 具有.-的字符组合
  • 有规律的停顿
    在这里插入图片描述
CTF中的编码技术

CTF编码技术题目常以趣味化、“魔改” 或结合特定文化符号的形式出现

  • 社会主义核心价值观编码
  • 与熊论道
  • 与佛论道
  • 五笔编码
  • 键盘编码
  • FuckJS编码
  • 盲文
  • Brainfuck
  • 麻将 / 扑克牌编码
    • https://www.jerde.net/peter/cards/cards.html 编码
    • https://www.jerde.net/peter/cards/decards.html 解码
      在这里插入图片描述
      很多编码不想去找了,学过的知识也不想再重复写了,以后再碰到了再顺手更吧,期待找到麻将编码的时候,哈哈哈
http://www.lryc.cn/news/591441.html

相关文章:

  • python(one day)——春水碧于天,画船听雨眠。
  • Matplotlib 轴标题与刻度字号调整方法
  • SGMD辛几何模态分解 直接替换Excel运行包含频谱图相关系数图 Matlab语言!
  • 多重共线性Multicollinearity
  • pytorch小记(三十一):深入解析 PyTorch 权重初始化:`xavier_normal_` 与 `constant_`
  • cuda编程笔记(8)--线程束warp
  • imx6ull-系统移植篇9——bootz启动 Linux 内核
  • Java全栈工程师面试实录:从电商支付到AI大模型架构的深度技术挑战
  • 软件项目管理学习笔记
  • S7-1200 模拟量模块全解析:从接线到量程计算
  • FreeRTOS学习笔记——常用函数说明
  • MQTT之CONNECT报文和CONNACK报文
  • Qwen3-8B Dify RAG环境搭建
  • @fullcalendar/vue 日历组件
  • SpringCloud面试笔记
  • 【每日刷题】跳跃游戏
  • Apache DolphinScheduler介绍与部署
  • 分布式光伏发电系统中的“四可”指的是什么?
  • 解读PLM系统软件在制造企业研发管理中的应用
  • 18650锂电池点焊机:新能源制造的精密纽带
  • AR智能巡检:制造业零缺陷安装的“数字监工”
  • Git仓库核心概念与工作流程详解:从入门到精通
  • 【java面试day6】redis缓存-数据淘汰策略
  • 二刷 黑马点评 秒杀优化
  • 全面升级!WizTelemetry 可观测平台 2.0 深度解析:打造云原生时代的智能可观测平台
  • Netty-基础知识
  • 【前端如何利用 localStorage 存储 Token 及跨域问题解决方案】
  • 7.17 Java基础 | 集合框架(下)
  • 【unitrix】 6.5 基础整数类型特征(base_int.rs)
  • 对比分析:给数据找个 “参照物”,让孤立数字变 “决策依据”