信息加密及隐写技术
应用背景
- 信息安全的发展历程
- 通信安全阶段(信息保密阶段)
- 时间:20世纪80年代前
- 背景:通信方式主要是电话、电报。计算机开始作为文件处理工具应用于政府军队
- 特征:信息安全主要集中于信息保密性的层次上
- 信息安全阶段
- 时间:20世纪80年代至90年代初期
- 背景:计算机系统形成了网络化的应用
- 特征:除保密性外,完整性和可用性也提出要求。
- 信息保障阶段
- 时间:20世纪90年代以后
- 背景:计算机网络系统称为关键基础设施的核心
- 特征:新的安全属性要求包括可认证性,抵抗赖性等
密码学基础
密码学(Cryptology):是研究信息系统安全保密的科学。
- 密码编码学:主要研究对信息进行编码,实现对信息的隐蔽
- 密码分析学:主要研究加密消息的破译或消息的伪造
古典密码
- 古典密码体制的核心思想:代替和置换
- 古典密码体制
- 单表代换密码
- 棋盘密码
- 移位密码
- 代换密码
- 仿射密码
- 多表代换密码
- 维吉尼亚密码
- 希尔密码
- 置换密码
棋盘密码
- 引入:已知密文“21 32 55 53 24 45 23 33 15”,解密?
- 分析:一共9组数字
- 棋盘密码的密码体制描述:
- 明文空间Sp={26个英文字母}
- 密文空间Sc={11,12,13,14,15,21,22,...,55}
- 密钥空间K={所有可能的棋盘排列分布}
移位密码
- 移位密码的加密和解密过程都是循环移位运算,由26个英文字母顺序移位26次后还原,因此密钥空间是25
- 当密钥key=3时,就是历史上著名的恺撒密码。
代换密码
总结
- 总结:在棋盘密码、移位密码和代换密码体制中,明文中所有字母的加密都使用同一个映射:
维吉尼亚密码
- 维吉尼亚密码的密钥空间大小位26^m,所以即使m很小,密钥空间也会很大。
- 在维吉尼亚密码体制中,同一个明文字母可以被映射为不同的密文字母。这种密码体制被成为多表代换密码。
- 从单表代换到多表代换主要是为了解决明文中单字母出现的频率分布与密文中相同的问题。
置换密码
- 又称换位密码
CTF常见加密编码算法
- Base64
- Base64这个术语最初是在“MIME内容传输编码规范”中提出的。Base64不是一种加密算法,虽然编码后的字符串有加密的效果。但它实际上是一种“二进制文本”的编码方法,它能够将给定的任意二进制数据转换(映射)为ASCLL字符串的形式,以便在只支持文本的环境中也能够顺利地传输二进制数据。
- Base 64编码的字符集(单表代换),包括大写字母,小写字母,数字和"+""/"符号
现代密码体系
- 现代密码体系
- 散列函数
- MD5
- SHA家族
- CRC
- 对称加密算法
- DES
- 3DES
- AES
- 非对称加密算法
- RSA
MD算法家族
- MD算法家族由罗纳德·李维斯特设计,有MD2,MD4,MD5三个版本,前两个版本由于存在严重的安全漏洞已被弃用。
- MD5目前主要用途:
- 一致性验证
- 数字签名
- 安全访问认证
- 一致性验证
- MD5的典型用用是对一段信息产生信息摘要,以防止被篡改
- 比如在Unix下有很多软件在下载的时候都有一个文件名相同,文件扩展名为.md5的文件,在这个文件中通常只有一行文本,大致结构如:
- MD5(test.tar.gz)= 38b8c2c1093dd0fec383a9d9ac940515
- 这就是test.tar.gz文件的数字签名
- 数字签名
- 通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登陆系统的合法性。这可以避免用户的密码被具有系统管理员权限的用户知道。
- 目前互联网上几乎所有的密码都采取类似的散列值存储方法,通过这种方法可以防止密码泄露。攻击者拿到储存有MD5值的密码数据库,也需要遍历出哈希值对应的原密码(计算量很大)
- 例子:网站点忘记密码,通过验证后一般是重设密码而不是将原密码给出来,原因是该网站只存有密码的MD5值
MD5破解,链接!
SHA家族
- SHA家族,是一个密码散列函数家族,类似于MD5能偶计算出一个数字消息所对应的,长度固定的字符串的算法。
- SHA家族算法,由美国国家安全局设计,并且由美国国家标准与技术研究院发布,是美国国家哈希函数标准。
- SHA函数家族的应用领域
- 主要用于SSL\TTL等证书数字签名,用于可信第三方签发身份验证信息
- 目前SHA-1已经停止使用,包括Facebook,Google等主流互联网服务提供商均在2017年全部停止签发SHA-1证书。主流为SHA-2,SHA-3尚未推广使用。
对称加密算法
- 对称密码DES算法
- 1997年被美国联邦政府的国家标准局确定为联邦资料处理标准,随后该算法公开并在国际上广泛流传开来。
- 在1998年9月被ALAL FEGHHL等人给出的DES攻击方法大幅度缩短了破解DES加密密文的时间。
- DES安全性大幅度下降,现已经更安全的AES加密算法取代
- DES加密算法较为繁琐。
非对称加密算法
- RSA算法历史
- RSA是1997年由罗纳德·李维斯特、阿迪·萨莫尔和伦纳德·阿德曼一起提出的。
- 其安全性主要依靠数字中对大数(几百位)因式分解十分困难一条原理。
- 简单阐述RSA算法步骤
- 选择一对不同的、足够大的素数p,q
- 计算n=pq
- 计算f(n)=(p-1)(q-1),同时对p,q严加保密,不让任何人知道
- 找一个与f(n)互质的数e,且1<e<f(n)
隐写术
- 隐写术
- 一门关于信息隐藏的技巧与科学
- 信息隐藏:不让除于其的接收者之外的任何人知晓信息的传递事件或者信息的内容
- 与密码学不同
- 加解密的话就会出现一些神秘的,可疑的字符串或者是数据之类的。而隐写术的话,就是信息明明就在你的面前,你却对他视而不见。隐写术在CTF中出现时,常常会和加解密结合起来一起出现,或者是一些编码方式一切出现,以提高题目的难度。
- 解题工具
- Strings
- Binwalk,dd,foremost
- Winhex,ultraeditor
- exiftool
- Stegsolve.jar
- Exif
- 可交换图像文件格式
- 专门为数码相机的照片设定的,记录照片的属性信息和拍摄数据(曝光时间,拍摄时间,gps定位数据,相机品牌型号)
- 支持的图片格式:JPEG,TLFF,XMP等等
- 查看工具
- 类Unix系统:exiftool
- Windows系统:图片-右键-属性-详情
LSB隐写
png图片格式
- 数据块(chunk):
- png图片中每个数据块包括4部分
- IHDR数据块
CRC(循环冗余校验)
Winhex的使用
隐写术strings用法
- strings命令:在对象文件或二进制文件中查找可打印的字符串。