密码学

HTTPS原理简述

孤人 提交于 2020-01-01 19:40:25
角色: A,B,Server,Client,中间窃听者,数字证书签发机构(CA) 工具:对称加密算法,非对称加密算法,数字签名,数字证书 第一步,爱丽丝给出协议版本号、一个客户端生成的随机数(Client random),以及客户端支持的加密方法。 第二步,鲍勃确认双方使用的加密方法,并给出数字证书、以及一个服务器生成的随机数(Server random)。 第三步,爱丽丝确认数字证书(对证书信息进行md5或者hash后的编号==用证书机构的公钥对加密的证书编号解密后的证书编号)有效,然后生成一个新的随机数(Premaster secret),并使用数字证书中的公钥(鲍勃的公钥),加密这个随机数,发给鲍勃。 第四步,鲍勃使用自己的私钥,获取爱丽丝发来的随机数(即Premaster secret)。 第五步,爱丽丝和鲍勃根据约定的加密方法,使用前面的三个随机数,生成"对话密钥"(session key),用来加密接下来的整个对话过程。 https要使客户端与服务器端的通信过程得到安全保证,必须 使用对称加密算法 并且 每个客户端的算法都不一样 ,需要一个协商过程,但是 协商对称加密算法的过程,需要使用非对称加密算法来保证安全 ,直接使用非对称加密的过程本身也不安全,会有中间人篡改公钥的可能性,所以客户端与服务器不直接使用公钥,而是使用

密码学概论

无人久伴 提交于 2020-01-01 15:16:45
1 基本概念(*) 密码学又分为密码编码学(Cryptography)和密码分析学(Cryptanalysis)。 在密码学中,一个密码体制或密码系统是指由明文、密文、密钥、加密算法和解密算法所组成的五元组。 明文是指未经过任何变换处理的原始消息,通常用m(message)或p( plaintext)表示。所有可能的明文有限集组成明文空间,通常用M或P表示。 密文是指明文加密后的消息,通常用c(ciphertext)表示。所有可能的密文有限集组成密文空间.通常用C表示。 密钥是指进行加密或解密操作所需的秘密/公开参数或关键信息,通常用k(key)表示。所有可能的密钥有限集组成密钥空间,通常用K表示。 加密算法是指在密钥的作用下将明文消息从明文空间映射到密文空间的一种变换方法,该变换过程称为加密,通常用字母E表示,即c= EK(m)。 解密算法是指在密钥的作用下将密文消息从密文空间映射到明文空间的一种变换方法,该变换过程称为解密,通常用字母D表示,即m= DK(c)。 2 密码分析学 (1)唯密文攻击(Ciphertext only Attack) (2)已知明文攻击(Known Plaintext Attack) (3)选择明文攻击(Chosen Plaintext Attack) (4)选择密文攻击(Chosen Ciphertext Attack) (5)选择文本攻击

密码学基本原理

删除回忆录丶 提交于 2020-01-01 13:38:16
现代密码学的安全基础是密钥的保密性,而不是像古典密码学那样基于算法的保密性 md5 md5全称为消息摘要算法版本5 (Message Digest Algorithm 5),是一种hash算法 md5就是把不论什么长度的文字内容,给精简成128位散列数 一个MD5值对应着无穷多的原始值,这是个天然缺陷 现在对md5算法的破解,实质就是查彩虹表 事先存好很多 常用密码 的md5值,然后反查,得到对应的原文 暴力破解本来不算是可破解的,但是,如果直接利用用户输入的字符进行MD5,就不一样了。用户的可能输入字符组合相对于随机的字符组合来说非常集中,也就是信息熵其实很低:比如,有一些密码组合会被很多人使用,例如123456,password等 在加密领域,DES和RSA才是真正的加密,而MD5更多的用在文档校验上,用来生成密钥检测文档是否被篡改 常用的哈希函数中,SHA-256、SHA-512 会比 md5 更安全,更难破解 加盐 为了保护用户密码,早期人们使用MD5算法把密码加密后保存,通常计算MD5值时会加一个”盐值“(即一个固定的密串),这个盐值可能是共用的(固定盐),也可能是一个用户一个盐值(随机盐) 数据库存上salt和hash,每当用户注册,随机生成salt, hash = md5(password + salt) 登录的时候验证 md5(input + salt)

2018铁三测评题write以及一些想送给你们的话

倖福魔咒の 提交于 2019-12-25 04:41:57
一.、前言   此文献给实验室的萌新们,以及刚刚接触CTF的同学们,希望能对你们的成长起到一些帮助。 二、关于CTF   可能你已经接触过CTF或者对它有所了解,这里我再简单介绍一下。 1.什么是CTF?   CTF(Capture The Flag)中文一般译作夺旗赛,是网络安全技术人员之间进行技术竞技的一种比赛形式,起源于1996年DEFCON全球黑客大会,以比赛形式模拟代替黑客们之间的真实技术比拼。 2.CTF比赛模式 模式 说明 解题模式 参赛队伍通过互联网或者现场网络参与,类似于各位此次做的线上测评题目,你可以理解为在线答题环节,通过解决网络安全技术挑战题目的分值和时间来排名,通常用于在线选拔赛。题目主要包含 Web安全、逆向、密码学、数据分析、隐写、安全编程、代码审计与漏洞挖掘利用 等。 攻防模式 参赛队伍在网络环境内互相进行攻击和防守, 挖掘网络服务漏洞 并攻击对手服务器获得分数,并且通过修补自身服务漏洞进行防御来避免丢分。这种模式竞争较为激烈,比拼参赛队员的智力和技术、团队之间的分工配合与合作、也比拼体力。 混合模式 结合了上面说的解题模式与攻防模式 ,赛制较为灵活。 三、测评题目分析 1.你是管理员吗? 解题链接: http://ctf4.shiyanbar.com/web/root/index.php   第一道题目是一个Web题。通常拿到Web题

Java生鲜电商平台-APP/小程序接口传输常见的加密算法及详解

前提是你 提交于 2019-12-24 13:43:05
Java生鲜电商平台-APP/小程序接口传输常见的加密算法及详解 说明:Java生鲜电商平台-APP/小程序接口传输常见的加密算法及详解,加密算法,是现在每个软件项目里必须用到的内容。 广泛应用在包括了用户登入、数字签名、数据传输等多个场合。今天我把常见的加密算法全部整理在这里,供大家学习参考。 首先,大家要知道加密算法能干什么,利用加密算法来对数据通信的过程进行加密传输是一种最常见的安全手段。利用该手段能够达到一下三个目的: 1、数据保密性,防止用户数据被窃取或泄露; 2、数据完整性,防止用户传输的数据被篡改; 3、通信双方身份确认,确保数据来源合法; 常见的加密算法 目前常见的加密算法分类如下: 各种加密算法对比如下: 1,单向散列加密算法: 2,对称加密算法: 3,非对称加密算法: 加密算法详解 一,单向散列加密 单向散列加密算法常用于提取数据,验证数据的完整性。发送者将明文通过单向加密算法加密生成定长的密文串,然后将明文和密文串传递给接收方。接收方在收到报文后,将解明文使用相同的单向加密算法进行加密,得出加密后的密文串。随后与发送者发送过来的密文串进行对比,若发送前和发送后的密文串相一致,则说明传输过程中数据没有损坏;若不一致,说明传输过程中数据丢失了。其次也用于密码加密传递存储。单向加密算法只能用于对数据的加密,无法被解密,其特点为定长输出、雪崩效应。 1.1

2019-2020-1 20175307 20175308 20175319 实验二 固件程序设计

淺唱寂寞╮ 提交于 2019-12-22 01:50:35
2019-2020-1 20175307 20175308 20175319 实验二 固件程序设计 小组成员 20175307高士淳 20175308杨元 20175319江野 实验步骤 1.MDK 实验要求 0.注意不经老师允许不准烧写自己修改的代码 1.三人一组 2.参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.1-1.5安装MDK,JLink驱动,注意,要用系统管理员身分运行uVision4,破解MDK(破解程序中target一定选ARM) 3.提交破解程序中产生LIC的截图 4.提交破解成功的截图 实验步骤 下载并运行安装程序,安装MDK MDK安装结束页面,点击安装ULINK驱动 Ulink安装结束后自动退出,安装结束 运行uVision4,点击 文件>>许可证管理 ,复制CID 运行keil-MDK注册机,粘贴CID并选择 ARM ,点击 generate 生成 LIC 将生成的LIC复制到keil4中的LIC输入框中,点击 Add LIC ,破解完成。 2.LED 实验要求 0.注意不经老师允许不准烧写自己修改的代码 1.参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图 2.参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.9”完成LED实验

古典密码学

前提是你 提交于 2019-12-21 09:21:47
古典密码学种类 移位密码(凯撒密码) 对于一个密码体制,必须满足一定的条件,下面所述的两个条件必须的: 对于加密体制而言,其加解密函数都要易于计算对于任何敌手而言,即使他获取了密文Y,也很难由此确定出对应的密钥K或密文 移位密码属于最简单的一种加密方法,其实现和原理都很简单,但是由于本身的问题,其密钥空间很小,而且又属于单表替换,所以安全性不高,易受来自穷举 以及词频等简单的密码攻击破解. 代换密码 代换密码也属于单表替换,其原理很简单,先制作出一张替换的表格,然后加密时根据表格替换明文,解密的时候,需要先制作出解密的替换表格,这个表格和 加密表格是对应的,对于26个字母而言,所有可能的替换方法达到26!种,密钥空间很大,所以利用穷举法不是很容易破解.但是,由于这种加密算法仍然属于单表替 换,所以仍然不能抵抗根据词频来破解密码这种方法. 仿射密码 仿射密码是移位密码的扩展,仿射密码是利用线性函数的一一对应的原理来实现的,其加密函数为e(x)=(ax+b) mod nMax (nMax为常数).对于加密函数而言, 其中的a是有限制的,需要a和nMax的最大公约数为1. 对于a的取值空间大小,可以由nMax的值计算出来,其值为φ(nMax)可由欧拉公式获得,所以其密钥空间大小 为nMax*φ(nMax). 对于nMax=60时,φ(60)=(2的2次方-2的1次方)*(3的1次方

密码学知识点总结

天涯浪子 提交于 2019-12-20 01:07:55
第一章 密码学 信息安全的三要素( 三种属性 ):机密性、完整性(真实性)、可用性。 机密性 :是指保证信息不泄露给非授权的用户或实体,确保存储的信息和被传递的信息仅能被授权方得到。通常通过加密来保证机密性。 完整性 :只在数据整个生命周期维持其准确和一致。一般通过生成一个改动检测码来检验信息是否被篡改。 可用性 :是指保障信息资源随时可提供服务的能力特性,任何信息系统都必须满足。高可用性的系统不仅要在停电、硬件故障和软件升级时保持信息资源可用,还要能地址拒绝服务攻击。 攻击的主要形式: (1)中断(也叫拒绝服务),是对可用性的攻击 (2)截取,就是未授权的窃听 (3)篡改, (4)伪造, (5)重放 攻击的分类: (1)被动攻击   截取,攻击信息保密性 (2)主动攻击   中断,攻击系统可用性   篡改:攻击信息真实性   伪造:攻击发送方真实性   重放:系统真实性(实时性) 安全机制为实现安全服务提供了 技术手段 :   1.加密   2.数字签名   3.访问控制   4.数据完整性   5.鉴别交换   6.通信业务填充   7.路由选择控制   8.公证 第二章 加密技术 古典密码 密码算法基本手段出现针对的是字符;特点:数据的安全基于算法的保密 古典密码 分类 :    代换密码 Substitution cipher    置换密码 Permutation

几种加密算法的测试,包括对称加密和非对称加密

℡╲_俬逩灬. 提交于 2019-12-10 01:49:16
对称加密算法   Blowfish 加密解密 Blowfish 加密算法介绍:BlowFish是对称加密算法的其中一种,加密后的数据是可逆的。由于BlowFish加密/解密速度快,更重要的是任何人都可以免费使用不需要缴纳版权费,所以有不少游戏都采用BlowFish加密资源文件数据。BlowFish 每次只能加密和解密8字节数据,加密和解密的过程基本上由ADD和XOR指令运算组成,所以速度非常快。 Blowfish 加密算法实现 1 /** 2 * Blowfish加密 3 * 4 * @param text 需要加密的数据 5 * @param privateKey 加密密钥 6 * @return 7 */ 8 public static String f_EnBlowfish(String text, String privateKey) 9 { 10 byte[] cifrado1 = null; 11 byte[] cifrado2 = null; 12 byte[] mensaje = text.getBytes(); 13 try 14 { 15 Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider()); 16 byte[] keys = privateKey

strobe——面向IoT物联网应用的密码学协议框架

Deadly 提交于 2019-12-07 11:56:28
1. What is strobe? strobe 为面向IoT物联网密码学协议框架,使其在小的IoT设备上更易于开发、部署和分析。strobe适于在16位或32位的微处理器上运行。 strobe同时也是一种轻量级的网络协议,可作为TLS的替换。因为对于资源有限的IoT设备来说,可能无法运行TLS协议。 strobe基于SHA-3 KECCAK-f 函数来进行消息的加密和认证。 目前有NACL, Noise, BLINKER等多种协议框架,strobe跟BLINKER是同一家族的。 目前的现状为: NACL:基于2012年论文《 The security impact of a new cryptographic library 》,基于rust语言的实现有 https://github.com/Yawning/rust-crypto-nacl 自2015年起就不再更新了; Noise:基于论文(2016年发布,2018年有修订)《 The Noise Protocol Framework 》,其rust代码库 https://github.com/mcginty/snow 仍很活跃,且在各大密码学学术会议上,基于Noise协议不断有新的研究成果展示。Noise协议已在WhatsAPP上落地应用。 BLINKER:基于2013年论文《 Beyond Modes: Building