密码学系列之:碰撞抵御和碰撞攻击collision attack 简介 hash是密码学和平时的程序中经常会用到的一个功能,如果hash算法设计的不好,会产生hash碰撞,甚至产生碰撞攻击. 今天和大家详细探讨一下碰撞攻击. 什么是碰撞攻击 所谓碰撞攻击指的是对于同一个hash函数来说,两个不同的input通过hash计算得到了同样的hash值.用公式来说就是: hash(m1) = hash(m2) 这个攻击有什么作用呢? 举个例子,通常我们通过网络下载应用程序或者软件,除了下载链接之外,还会…
密码学系列之:Merkle–Damgård结构和长度延展攻击 简介 Merkle–Damgård结构简称为MD结构,主要用在hash算法中抵御碰撞攻击.这个结构是一些优秀的hash算法,比如MD5,SHA-1和SHA-2的基础.今天给大家讲解一下这个MD结构和对他进行的长度延展攻击. MD结构 MD结构是Ralph Merkle在1979年的博士论文中描述的.因为Ralph Merkle 和 Ivan Damgård 分别证明了这个结构的合理性,所以这个结构被称为Merkle–Damgård结构…
密码学系列之:memory-hard函数 目录 简介 为什么需要MHF Memory hard的评估方法 MHF的种类 MHF的密码学意义 memory-hard在MHF中的应用 简介 Memory hard function简称为MHF,在密码学中,内存困难函数(MHF)是一个需要花费大量内存来完成的函数.MHF主要被用在工作量证明中.因为需要花费大量的内存,所以MHF也会被用在密码Hash中,可以防止恶意破解. 和MHF相识的还有一个MBF(memory-bound function ),叫…
DDoS-Deflate是一款非常小巧的防御和减轻DDoS攻击的工具,它可以通过监测netstat来跟踪来创建大量互联网连接的IP地址信息,通过APF或IPTABLES禁止或阻档这些非常IP地址. 工作过程描述:同一个IP链接到服务器的连接数到达设置的伐值后,所有超过伐值的IP将被屏蔽,同时把屏蔽的IP写入ignore.ip.list文件中,与此同时会在tmp中生成一个脚本文件,这个脚本文件马上被执行,但是一运行就遇到sleep 预设的秒,当睡眠了这么多的时间后,解除被屏蔽的IP,同时把之前写入…
现在是晚上23:29.写这篇文章呢,是因为早些时候我胃疼,是因为凉导致的胃疼.凉呢喝了一些热水,喝完热水胃倒是不疼了,但是由于我喝的是茶叶开水,于是就导致失眠了.想来想去这漫漫长夜也没意思,于是就决定写这个了. 0X01 这个md5碰撞到底是个什么东西呢,这是王小云发明的一种破解md5摘要算法的的一种方法.这个md5密文,有16位的md5以及32位的md5,然而,32位的md5密文和16位的md5密文它们的区别就是长度不一样,其他没有什么技术上的区别.将同一个字符串加密为16位md5密文和32位…
前言 在前些章节 (web安全系列(一):XSS 攻击基础及原理)以及(Web安全系列(二):XSS 攻击进阶(初探 XSS Payload))中,我详细介绍了 XSS 形成的原理以及 XSS 攻击的分类,并且编写了一个小栗子来展示出 XSS Payload 的危害. 目前来说,XSS 的漏洞类型主要分为三类:反射型.存储型.DOM型,在本篇文章当中会以permeate生态测试系统为例,分析网站功能,引导攻击思路,帮助读者能够快速找出网站可能存在的漏洞. 反射型 XSS 挖掘 现在笔者需要进行手…
前言 上一篇博文说道,射线与场景中模型上的所有三角形求交时,会大幅度影响效率且花费比较多的时间,因此会采取使用包围盒的形式,进行一个加速求交.在此文中介绍OBB碰撞模型的碰撞算法 OBB的碰撞模型 有没有想过为什么需要用到OBB模型呢,假设一个场景内两个人物相撞了,你怎么判断它们是否相撞呢,大概就是它们的碰撞体接触在了一起就相撞了.那怎么算碰撞在一起呢(此处只讨论2D规则的包围盒模型)? 方向包围盒OBB"("Oriented Bounding Box)是目前比较流行的一种包围盒,OB…
密码学系列之:feistel cipher 简介 feistel cipher也叫做Luby–Rackoff分组密码,是用来构建分组加密算法的对称结构.它是由德籍密码学家Horst Feistel在IBM工作的时候发明的.feistel cipher也被称为Feistel网络. 很多分组加密算法都是在feistel cipher的基础上发展起来的,比如非常有名的DES算法. 在feistel cipher中,加密和解密的操作非常相似,通常需要进行多轮加密和解密操作. Feistel网络的原理 F…
密码学系列之:memory-bound函数 目录 简介 内存函数 内存受限函数 内存受限函数的使用 简介 memory-bound函数可以称为内存受限函数,它是指完成给定计算问题的时间主要取决于保存工作数据所需的内存量.和之相对应的就是计算受限compute-bound的函数,在计算受限的函数中,计算所需要的计算步骤是其决定因素. 本文将会介绍一下内存受限函数和它跟内存函数的关系. 内存函数 内存函数和内存受限函数看名字好像很类似,其实他们的作用是不同的,我们先来看下内存函数. 在学习算法中,有…
目录 简介 bcrypt的工作原理 bcrypt算法实现 bcrypt hash的结构 hash的历史 简介 今天要给大家介绍的一种加密算法叫做bcrypt, bcrypt是由Niels Provos和David Mazières设计的密码哈希函数,他是基于Blowfish密码而来的,并于1999年在USENIX上提出. 除了加盐来抵御rainbow table 攻击之外,bcrypt的一个非常重要的特征就是自适应性,可以保证加密的速度在一个特定的范围内,即使计算机的运算能力非常高,可以通过增加…