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

密码学基础知识总结

密码学基础知识总结

一、Base编码

1. Base系列特征

编码类型字符集特征
Base160-9, A-F密文长度偶数
Base32A-Z, 2-7包含数字2-7
Base64a-z,0-9,+,/,=密文长度是8的倍数
Base36A-Z,0-9仅支持整数加密
Base910-9,a-z,A-Z,特殊符号高密度编码
Base100Emoji表情表情符号组成

2. 典型题型

  • 叠套加密:多次Base编码嵌套(如HNCTF 2022 Week1题目)
  • 换表加密:自定义字符映射表(如BJDCTF 2020题目)
    # 换表解密示例
    custom_table = "J K L M N O x y U V z A B C D E F G H 7 8 9 P Q I a b c d e f g h i j k l m W X Y Z 0 1 2 3 4 5 6 R S T n o p q r s t u v w + / ="
    standard_table = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
    cipher = "FlZNfnF6Qol6e9w17WwQQoGYBQCgIkGTa9w3IQKw"# 构建转换字典
    trans = str.maketrans(custom_table, standard_table)
    standard_cipher = cipher.translate(trans)
    print(base64.b64decode(standard_cipher))
    

二、古典密码

1. 替换密码

  • 凯撒密码:位移变换
    # 凯撒解密脚本
    def caesar_decrypt(cipher, shift):return ''.join([chr((ord(c)-ord('A')-shift)%26+ord('A')) if c.isupper() else chr((ord(c)-ord('a')-shift)%26+ord('a')) for c in cipher])
    
  • 埃特巴什码:字母表镜像映射(A↔Z, B↔Y…)
  • 简单替换:随机字母映射(需词频分析破解)

2. 移位密码

  • 栅栏密码
    明文: THEQUICKBROWNFOX
    2栏栅栏:
    T E U C B O N F XH Q I K R W O
    密文: TEUCBOFNXHQIKRWO
    
  • Playfair密码:5×5矩阵双字母加密
  • 维吉尼亚密码:多表替换(需卡西斯基试验破译)

3. 特殊编码

  • 社会主义核心价值观编码:中文词语映射
  • 猪圈密码:符号替代(如SWPUCTF 2021题目)

三、近代密码

1. Enigma机

  • 德国二战加密设备,通过转子机械实现多表替换

四、现代密码

1. 对称密码

算法密钥长度模式特点
DES56位ECB/CBC已不安全
3DES168位三重加密仍在使用
AES128/192/256位ECB/CBC/GCM主流加密标准
# AES加密示例
from Crypto.Cipher import AES
key = b'16byteslongkey!!'
cipher = AES.new(key, AES.MODE_ECB)
ciphertext = cipher.encrypt(b'SecretMessage16')  # 需填充至16字节倍数

2. 非对称密码

  • RSA算法

    • 密钥生成:( n = p \times q ), ( \phi(n)=(p-1)(q-1) ), 选择e使( gcd(e,\phi(n))=1 ), 计算d满足( ed \equiv 1 \mod \phi(n) )
    • 加密:( c \equiv m^e \mod n )
    • 解密:( m \equiv c^d \mod n )
    # RSA解密示例
    from Crypto.Util.number import long_to_bytes
    p = 152276107194759839394339252953668929833379494272797635215678777394989176086311370136035478447887926444275784082066390686965320698243113804043171803008108957334907494436138284735908220245791716231134027668300903468613086977898318244422816904811663818867009341751581380232066351461067404386138711392602905182327
    q = 165862216368738151171691047077971125385823304861583668749112440485286071513555171553668744837558717911342949436706045003893101207778257828156155579957939073590381726467515305197248665285721804095245979532718423232742857246879254699058634781094524194465195004455721760308439281036465034307352501227102299122599
    e = 65537
    c = 8714149934588122613890609205826559063957396235456334581066750104141833387128819259074228632737215784067681665337373847122241506740977460425676706234123688048971299968252735566083061567386357327514300746902937654004543191945690400727133317228366779579116882233771039719002815276546167694160681831378762223177951840415429867605824997691072569915435484862548063841182891523397571914055707256503122950455644515402154037908557382756498138387988939464887512595990270123841900640997837144301259531459279512993819808359480410211723491073722980281648910041025010174785548169983002872841283535091066006242941399443173584257860n = p * q
    phi = (p-1)*(q-1)
    d = pow(e, -1, phi)
    print(long_to_bytes(pow(c, d, n)))
    
  • ECC算法:基于椭圆曲线离散对数问题

3. 哈希函数

算法输出长度特性
MD5128位已破解,不安全
SHA-1160位逐渐淘汰
SHA-256256位主流安全标准
  • MD5碰撞示例
    import hashlib
    hashlib.md5(b"message").hexdigest()  # 输出32位16进制字符串
    

五、攻击技术

  1. 密码分析

    • 差分分析(针对DES)
    • 线性分析(针对AES)
    • 模数分解(针对RSA)
  2. 侧信道攻击

    • 计时攻击(RSA加密时间差异)
    • 功耗分析(智能卡攻击)
  3. 工具推荐

    • 在线解码:CyberChef
    • 哈希查询:CMD5
    • 密码破解:Hashcat
建议配合实际CTF题目进行练习,重点关注:
- Base编码的层层嵌套
- 古典密码的词频分析
- RSA各攻击场景的实现
- 现代密码库的正确调用方式
http://www.dtcms.com/a/314948.html

相关文章:

  • 【YOLO系列】YOLOv12详解:模型结构、损失函数、训练方法及代码实现
  • uniapp 基础(三)
  • 入门MicroPython+ESP32:PWM呼吸灯
  • 华清远见25072班C语言学习day1
  • 机器学习【六】readom forest
  • 不良事件管理系统,PHP不良事件系统源码,实现事件系统化统计分析,查找根本原因,从而进行改进
  • 【传奇开心果系列】Flet图片由小到大动画加轮播展示组件样式自定义模板
  • 【电路测试】如何测试电源纹波
  • Hive_sql如何计算连续签到天数
  • word常见问题汇总
  • 无偿分享120套开源数据可视化大屏H5模板
  • Fiddler 中文版怎么用 实现接口抓包调试与前后端联调闭环
  • Harmon、TokLIP论文解读
  • Flask全栈入门:打造区块链艺术品交易所
  • RTX5060显卡安装cuda版本PyTorch踩坑记录
  • 疏老师-python训练营-Day35模型可视化推理
  • K均值聚类与Apriori应用探索中医证素数据分析
  • 区块链 和 一致性哈希的结合
  • 多模态大模型研究每日简报【2025-08-03】
  • vue3入门-概览讲解
  • Mirror学习笔记
  • 飞算 JavaAI 实战:从代码生成到架构优化的全场景应用指南
  • 抢救HD7670M假显卡记录
  • 第12届蓝桥杯Scratch_选拔赛_初级组_真题2020年9月20日
  • MySQL Router
  • Spring Boot 应用结合 Knife4j 进行 API 分组授权管理配置
  • sqli-labs:Less-24关卡详细解析
  • 挑战指针题
  • TCP(2)
  • IP 成长的破局之道:从停滞到突破的核心逻辑