主页

Data Encryption Standard - DES

DES 数据加密标准(Data Encryption Standard, DES)是一种对称密钥加密块密码算法,1976年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),随后在国际上广泛流传开来。它基于使用 56 位密钥的对称算法。这个算法因为包含一些机密设计元素,相对短的密钥长度以及怀疑内含美国国家安全局(NSA)的后门而在开始时有争议,DES 因此受到了强烈的学院派式的审查,并以此推动了现代的块密码及其密码分析的发展。 DES 现在已经不是一种安全的加密方法,主要因为它使用的 56 位密钥过短。1999 年 1 月,distributed.net 与电子前哨基金会合作,在 22 小时 15 分钟内即公开破解了一个 DES密钥。也有一些分析报告提出了该算法的理论上的...

阅读更多

Linear Feedback Shift Register

LFSR 在密码学中,流密码(Stream cipher),又译为流加密、数据流加密,是一种对称加密算法,加密和解密双方使用相同伪随机加密数据流(pseudo-random stream)作为密钥,明文数据每次与密钥数据流顺次对应加密,得到密文数据流。实践中数据通常是一个位(bit)并用异或(xor)操作加密。 该算法解决了对称加密完善保密性(perfect secrecy)的实际操作困难。完善保密性由克劳德·香农于 1949 年提出。由于完善保密性要求密钥长度不短于明文长度,故而实际操作存在困难,改由较短数据流通过特定算法得到密钥流。 伪随机密钥流(keystream)由一个随机的种子(seed)通过算法(称为:PRG,pseudo-random generator)得到,k ...

阅读更多

Classical Code Hill Cipher

Hill Cipher 希尔密码是运用基本矩阵论原理的替换密码,由 Lester S. Hill 在 1929 年发明。 每个字母当作 26 进制数字:$A=0, B=1, C=2…$ 一串字母当成 $n$ 维向量,跟一个 $n×n$ 的矩阵相乘,再将得出的结果模 26。 注意用作加密的矩阵(即密匙)在 ${\mathbb {Z}}_{26}^{n}$ 必须是可逆的,否则就不可能解码。只有矩阵的行列式和 26 互质,才是可逆的。 * 编码: * 解码: Python 实现 字母表、字符串与矩阵的转化 alpha26 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" def stringToMatrix(string, alpha, siz...

阅读更多

Message-Digest Algorithm 5 - MD5

0x01 MD5 概述 Hash 函数是一个非常重要的密码学组件,在协议中广泛使用。哈希函数计算了一个消息的摘要,而这个摘要是一个非常短的、固定长度的位字符串。对某个特定的消息而言,哈希摘要(或哈希值)可以看做是该消息的指纹,即消息的唯一表示。Hash 函数时数字签名方案和消息验证码的核心部分,在其他密码学应用中也得到广泛使用,比如存储密码的哈希或密钥衍生。 MD5 消息摘要算法(MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个 128-bit(16-byte,1-byte = 8-bit,1个16进制位-> 4-bit,通常使用 32 位的十六进制位表示,方便查看。)的散列值(hash value),用于确保信息传输完...

阅读更多

RSA Crypto System Study Note

0x01 前言 RSA 加密算法是一种非对称加密演算法,在公开密钥加密和电子商业中被广泛使用。RSA 是 1977 年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA 就是他们三人姓氏开头字母拼在一起组成的。 RSA 应用广泛,但在实际中却常用于:数据小片段的加密,尤其用于密钥传输和数字签名。RSA 加密的本意并不是为了取代对称密码,而且它比诸如 AES 的密码要慢很多,这主要是因为 RSA (或其他公钥算法)执行中涉及很多计算。其加密特征的主要用途就是安全地交换对称密码的密钥,通常与类似 AES 的对称密码一起使用,其中真正用于加密大量数据的是对称...

阅读更多

CyberSec Course Review Memo

0x01 网络安全概论 网络不安全的原因:自身缺陷 + 开放性 + 黑客攻击。 网络安全的威胁来源 CIA 三元组与网络安全基本需求 机密性、完整性、可用性三者相互依存,形成一个不可分割的整体,三者中任何一个的损害都将影响到整个安全系统。 Confidentiality 机密性 机密性是防止未授权的用户访问数据,简单来说就是不能看。 为了维护机密性,通常会在数据的处理、传输、储存过程中进行一些诸如加密或者权限类的保护措施来进行安全控制。 针对机密性的破坏主要包括窃取密码文件、社会工程学、嗅探、肩窥等。 Integrity 完整性 完整性是防止未授权的修改数据,也就是不能改。 针对完整性的破坏主要有病毒、应用程序错误、逻辑炸弹,以及被授权用户...

阅读更多

Do Evil Things With Gopher://

0x00 关于 Gopher Gopher 是一个互联网上使用的分布型的文件搜集获取网络协议。Gopher 协议可以做很多事情,特别是在 SSRF 中可以发挥很多重要的作用。利用此协议可以攻击内网的 FTP、Telnet、Redis、Memcache,也可以进行 GET、POST 请求。这无疑极大拓宽了 SSRF 的攻击面。 0x01 攻击内网 Redis 实验环境: CentOS 8.0.1905 (Core) Nginx/1.14.1 + PHP 7.2.11 index.php: <?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $_GET["url"]); ...

阅读更多

Do Evil Via Redis Unauthorized Access

0x01 关于 Redis REmote DIctionary Server(Redis) 是一个开源的使用 ANSIC 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。 Redis 是一个 NoSQL 的数据库(NoSQL 泛指非关系型的数据库,常用的 Mysql是关系型数据库),数据通过键/值对存储在内存中。默认配置中,在服务运行的时候,会开放一个没有验证的 TCP/6379 端口,提供的这个接口是很 “宽容”。它会尝试去解析处理每一次输入...

阅读更多