密码算法

2019-2020-1学期 20192417 《网络空间安全专业导论》第十二周学习总结

久未见 提交于 2020-04-08 06:47:59
第10章 密码学及应用 10.1 密码学的概念及发展历史 10.1.1 密码学的概念 密码学包括 密码编码学(cryptography)密码分析学(cryptanalysis) 两部分。 密码编码学 :主要研究信息的编码,构建各种安全有效的密码算法和协议,用于 消息的加密、认证 等方面。 密码分析学 :研究破译密码获得消息,或对消息进行 伪造 。 10.1.2 密码学的发展历史 密码学的发展历史可以大致划分为 四个阶段 。 第一阶段 :古典密码阶段,从古代到19世纪末,密码算法多采用针对字符的 替代和置换 。 第二阶段 :近代密码学的发展阶段,从20世纪初到1949年,代表性物品是 ENIGMA转轮机 。 第三阶段 :现代密码学的早期发展时期,从1949年到1975年。 第四阶段 :公钥密码学的新时代,自1976年开始一直延续至今。 10.2 密码算法 密码按其功能特性主要分为三类: 对称密码(传统密码)、公钥密码(非对称密码)和安全哈希算法 。 10.2.1 对称密码算法 基本特征 :用于加密和解密的密钥相同,或者相对容易推导,因此也称为单密钥算法。 分类 :分组密码算法和流密码算法。 10.2.2 非对称密码算法 传统对称密码体制局限性:密钥分配、密码管理和没有签名功能等 在公钥密码系统中,加密密钥和解密密钥不同,由加密密钥推导出相应的解密密钥在计算上是不可行的。

密码学总结(一)

二次信任 提交于 2020-03-07 23:56:59
一、密码常识 1.1 信息安全面临的问题以及解决方案 记住: 不要过于依赖密码保证信息安全,因为任何密码都会有被破解的一天; 不要使用低强度的密码; 不要使用保密的密码算法; 信息安全是一个系统的问题,密码只是信息安全的一部分; 1.2 加密三要素 明文和密文:加密处理的数据。 秘钥(key):用于生成明文的一串数字。 算法(algorithm):用于解决复杂问题的步骤。从明文生成密文的步骤,也就是加密的步骤,称为“加密算法",而解密的步骤则称为“解密算法"。 1.3 凯撒密码 恺撒密码(Caesar cipher)是一种相传尤利乌斯·恺撒曾使用过的密码。恺撒于公元前100年左右诞生于古罗马,是一位著名的军事统帅。 恺撤密码是通过将明文中所使用的字母表按照一定的字数“平移”来进行加密的。 为了讲解方便,我们用小写字母(a,b,c,…)来表示明文,用大写字母(A,B,C,…)来表示密文。 现在我们将字母表平移3个字母,于是,明文中的a在加密后就变成了与其相隔3个字母的D,以此类推。b变成E,c变成F,d变成G…v变成Y,w变成Z,而x则会回到字母表的开头而变成A,相应地,y变成B,z变成C。通过下图我们可以很容易地理解“平移"的具体工作方式。 比如英文 hello ,加密后的数据变为 KHOOR 。 恺撒密码的解密过程是使用与加密时相同的密钥进行反向的平移操作。比如上面例子

AES五种加密模式

微笑、不失礼 提交于 2020-03-04 07:20:51
分组密码在加密时明文分组的长度是固定的,而实用中待加密消息的数据量是不定的,数据格式可能是多种多样的。为了 能在各种应用场合安全地使用分组密码 ,通常对不同的使用目的运用不同的工作模式。 一、电码本模式(ECB) 将整个明文分成若干段相同的小段,然后对每一小段进行加密。 优:操作简单,易于实现;分组独立,易于并行;误差不会被传送。——简单,可并行,不传送误差。 缺:掩盖不了明文结构信息,难以抵抗统计分析攻击。——可对明文进行主动攻击。 二、密码分组链模式(CBC) 先将明文切分成若干小段,然后每一小段与初始块或者上一段的密文段进行异或运算后,再与密钥进行加密。 优点 :能掩盖明文结构信息,保证相同密文可得不同明文,所以不容易主动攻击,安全性好于ECB,适合传输长度长的报文,是SSL和IPSec的标准。 缺点 :(1)不利于并行计算;(2)传递误差——前一个出错则后续全错;(3)第一个明文块需要与一个初始化向量IV进行抑或,初始化向量IV的选取比较复杂。 初始化IV的选取方式 :固定IV,计数器IV,随机IV(只能得到伪随机数,用的最多),瞬时IV(难以得到瞬时值) 三、输出反馈模式(OFB) 密码算法的输出(指密码key而不是密文)会反馈到密码算法的输入中,OFB模式并不是通过密码算法对明文直接加密,而是通过将明文分组和密码算法的输出进行XOR来产生密文分组。 优点

国密算法实现

天大地大妈咪最大 提交于 2020-02-29 04:56:53
国密算法实现 一、国产密码算法介绍 国产密码算法(国密算法)是指国家密码局认定的国产商用密码算法,在金融领域目前主要使用公开的SM2、SM3、SM4三类算法,分别是非对称算法、哈希算法和对称算法。 1.SM2算法:SM2 椭圆曲线公钥密码算法 是我国自主设计的 公钥密码算法 ,包括SM2-1椭圆曲线 数字签名 算法,SM2-2椭圆曲线 密钥交换 协议,SM2-3椭圆曲线公钥加密算法,分别用于实现数字签名密钥协商和数据加密等功能。SM2算法与RSA算法不同的是,SM2算法是基于椭圆曲线上点群离散对数难题,相对于RSA算法,256位的SM2密码强度已经比2048位的RSA密码强度要高。 椭圆曲线参数并没有给出推荐的曲线,曲线参数的产生需要利用一定的算法产生。但在实际使用中,国密局推荐使用素数域256 位椭圆曲线,其曲线方程为y^2= x^3+ax+b(其中p是大于3的一个大素数,n是基点G的阶,Gx、Gy 分别是基点G的x与y值,a、b是随圆曲线方程y^2= x^3+ax+b的系数)。 2.SM3算法:SM3 杂凑算法 是我国自主设计的密码杂凑算法,适用于商用密码应用中的数字签名和验证消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。为了保证杂凑算法的安全性,其产生的杂凑值的长度不应太短,例如MD5输出128比特杂凑值,输出长度太短,影响其安全性SHA

国密算法

我是研究僧i 提交于 2020-02-29 04:55:51
算法分类 国密即国家密码局认定的国产密码算法。主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位。 SM1 为对称加密。其加密强度与AES相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。 SM2为非对称加密,基于ECC。该算法已公开。由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。ECC 256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 2048位高,但运算速度快于RSA。 SM3 消息摘要。可以用MD5作为对比理解。该算法已公开。校验结果为256位。 SM4 无线局域网标准的分组数据算法。对称加密,密钥长度和分组长度均为128位。 SM2算法 SM2算法:SM2椭圆曲线公钥密码算法是我国自主设计的公钥密码算法,包括SM2-1椭圆曲线数字签名算法,SM2-2椭圆曲线密钥交换协议,SM2-3椭圆曲线公钥加密算法,分别用于实现数字签名密钥协商和数据加密等功能。SM2算法与RSA算法不同的是,SM2算法是基于椭圆曲线上点群离散对数难题,相对于RSA算法,256位的SM2密码强度已经比2048位的RSA密码强度要高 学习sm2算法,首先学习ECC算法 ECC算法描述:   1、用户A选定一条适合加密的椭圆曲线Ep(a,b)(如:y2=x3+ax+b),并取椭圆曲线上一点,作为基点G。   2、用户A选择一个私有密钥k

《现代密码学》习题

被刻印的时光 ゝ 提交于 2020-02-29 04:54:56
第一章 1.1949年,Shannon发表题为《保密系统的通信理论》的文章,为密码系统建立了理论基础,从此密码学成为一门科学。 2.一个加密系统至少由明文、密文、加密算法、解密算法和密钥组成,其安全性是用密钥决定的。 3.计算和估计出破译密码系统的计算量下限,利用已有的最好方法破译他的所需要的代价超出了破译者的破译能力(时间、空间、资金等资源),那么该密码系统的安全性是 计算安全。 4.根据密码分析者所掌握的分析资料的不同,密码分析一般可以分为4类:唯密文攻击、已知明文攻击、选择明文攻击,选择密文攻击,其中破译难度最大的是选择密文攻击。 5.1976年,Diffie和Helman在《密码学的新方向》中提出立了公开密钥密码的思想,开创了现代密码学的新领域。 6.密码学发展过程中,两个质的飞跃分别指1949年香农发表的保密系统的通信理论和公钥密码思想。 7.密码学是研究信息寄信息系统安全的科学,密码学又分为密码编码学和密码分析学。 8.一个保密系统一般是明文、密文、密钥、加密算法和解密算法五部分组成的。 9.密码体制是指实现加密和解密功能的密码方案,从使用密钥策略上,可分为对称和非对称。 10.对称密码体制又称为秘密密钥体制,包括分组密密码和序列密码。 第二章 1.字母频率分析法对单表带换密码算法最有效。 2.希尔密码算法抵御频率分析攻击能力最强,而对已知明文攻击最弱。 3

2016-2017-1 20155215 20155232 实验二 固件程序设计

China☆狼群 提交于 2020-02-02 00:09:02
实验二 固件程序设计 固件程序设计-1-MDK 0. 注意不经老师允许不准烧写自己修改的代码 1. 两人(个别三人)一组 2. 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.1-1.5安装MDK,JLink驱动,注意,要用系统管理员身分运行uVision4,破解MDK(破解程序中target一定选ARM) 3. 提交破解程序中产生LIC的截图 4. 提交破解成功的截图 固件程序设计-2-LED 0. 注意不经老师允许不准烧写自己修改的代码 1. 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.4” KEIL-MDK 中添加 Z32 SC-000 芯片库,提交安装截图 2. 参考云班课资源中“信息安全系统实验箱指导书.pdf “第一章,1.9”完成LED实验,注意“打开Z32的电源开关前,按住Reboot按键不放,两次打开电源开关,Z32即可被电脑识别,进行下载调试。提交运行结果截图 3. 实验报告中分析代码 代码分析 主函数代码 : 系统初始化; SystemInit (); 判断按键,确认是否进行程序下载; if(0 == GPIO_GetVal(0)) { BtApiBack(0x55555555, 0xAAAAAAAA); } 设置 GPIO0 状态为上拉输出; GPIO_PuPdSel(0,0); // 设置 GPIO0 为上拉

波雷费密码算法-java实现

风格不统一 提交于 2020-01-16 20:05:24
一、算法描述 波雷费密码是一种对称式密码,是首种双字母取代的加密法。 下面描述算法步骤: 从1号二维码M05,提取明文信息和密文,M05格式:<xxx…xxx|yyy…yyy>,其中明文xxx…xxx,密钥部分信息为yyy…yyy中的提取所有英文字母信息。 将提取的英文字母作密匙。除去重复出现的字母。将密匙的字母逐个逐个加入5×5的矩阵内,剩下的空间将未加入的英文字母依A-Z的顺序加入。(将Q去除) 将要加密的讯息分成两个一组。若组内的字母相同,将X加到该组的第一个字母后,重新分组。若剩下一个字,也加入X字。 在每组中,找出两个字母在矩阵中的地方。 若两个字母不同行也不同列,在矩阵中找出另外两个字母,使这四个字母成为一个长方形的四个角。    若两个字母同行,取这两个字母右方的字母(若字母在最右方则取最左方的字母)。    若两个字母同列,取这两个字母下方的字母(若字母在最下方则取最上方的字母)。 新找到的两个字母就是原本的两个字母加密的结果。 取密文前3个字符与后三个字符(大写字母)作为对应6位的红外报警开启码。 二、算法过程示例 例:二维码内容为:<hidethegold|play5fair9example>。 1.明文信息hidethegold和密匙playfairexample    2.根据密钥形成5*5的矩阵。 P L A Y F I R E X M B C D G H

HTTPS 为什么更安全,先看这些

安稳与你 提交于 2020-01-13 02:47:52
HTTPS 是建立在密码学基础之上的一种安全通信协议,严格来说是基于 HTTP 协议和 SSL/TLS 的组合。理解 HTTPS 之前有必要弄清楚一些密码学的相关基础概念,比如:明文、密文、密码、密钥、对称加密、非对称加密、信息摘要、数字签名、数字证书。接下来我会逐个解释这些术语,文章里面提到的『数据』、『消息』都是同一个概念,表示用户之间通信的内容载体,此外文章中提到了以下几个角色: Alice:消息发送者 Bob:消息接收者 Attacker:中间攻击者 Trent:第三方认证机构 密码 密码学中的“密码”术语与网站登录时用的密码(password)是不一样的概念,password 翻译过来其实是“口令”,它是用于认证用途的一组文本字符串。 而密码学中的密码(cipher)是一套算法(algorithm),这套算法用于对消息进行加密和解密,从明文到密文的过程称之为加密,密文反过来生成明文称之为解密,加密算法与解密算法合在一起称为密码算法。 密钥 密钥(key)是在使用密码算法过程中输入的一段参数。同一个明文在相同的密码算法和不同的密钥计算下会产生不同的密文。很多知名的密码算法都是公开的,密钥才是决定密文是否安全的重要参数,通常密钥越长,破解的难度越大,比如一个8位的密钥最多有256种情况,使用穷举法,能非常轻易的破解。根据密钥的使用方法,密码可分为对称加密和公钥加密。 对称加密

白盒密码技术

偶尔善良 提交于 2019-12-24 21:50:14
白盒密码技术 White-Box Cryptography 主要参考材料:<<白盒密码的设计与研究 >> 来学嘉;肖雅莹,2009; 白盒攻击 白盒攻击环境指的是密码软件的执行对攻击者完全可见的环境。在白盒攻击环境中,攻击者通过观察或者 执行密码软件,很容易就可以获得密钥信息。白盒密码是针对这种环境提出来的,其目的是为了在白盒攻击环境中,有效地防止攻击者获得密钥信息; 主要思想是:对于一个密码算法,给定一个特定的密钥后,明文到密文的映射也就确定了,然后把 明文到密文的映射进行置乱编码(Encoding),将加密后得到的映射用查找表的形式表示,密码算法的执行过程就通过查找表格来实现。这些查找表是与密钥相关的,密钥隐藏在表格中,但是攻击者根据查找表无法得出密钥信息。查找表的实现方式为白盒攻击环境中密钥的保护提供了一个新的解决方案; 思想小结: 简单来说,在移动终端中,运行一个密码算法,算法,明文,秘钥都在终端上,当敌手控制这个终端的时候,就很容易得到秘钥,为了保护秘钥的安全,所以需要想办法将秘钥隐藏进算法中,使用秘钥和算法建立一个明文和密文的查找表。然后加密,解密时直接进行查表就行;相应的,对称和非对称的实现过程应该还需要具体的实现方式; 白盒密码的安全性分析 白盒密码的主要目的是为了在白盒攻击环境中防止攻击者从密码算法的执行过程中抽取出密钥。白盒密码的密钥信息隐藏在查找表中