密钥管理

《现代密码学》习题

被刻印的时光 ゝ 提交于 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

[Java 安全]加密算法

允我心安 提交于 2020-02-26 19:30:39
Base64 编码 算法简述 定义 Base64 内容传送编码是一种以任意 8 位字节序列组合的描述形式,这种形式不易被人直接识别。 Base64 是一种很常见的编码规范,其作用是将二进制序列转换为人类可读的 ASCII 字符序列,常用在需用通过文本协议(比如 HTTP 和 SMTP )来传输二进制数据的情况下。 Base64 并不是加密解密算法 ,尽管我们有时也听到使用 Base64 来加密解密的说法,但这里所说的加密与解密实际是指编码( encode )和解码( decode )的过程,其变换是非常简单的,仅仅能够避免信息被直接识别。 原理 Base64 算法主要是将给定的字符以字符编码 ( 如 ASCII 码, UTF-8 码 ) 对应的十进制数为基准,做编码操作: (1) 将给定的字符串以字符为单位,转换为对应的字符编码。 (2) 将获得字符编码转换为二进制 (3) 对二进制码做分组转换,每 3 个字节为一组,转换为每 4 个 6 位二进制位一组(不足 6 位时低位补 0 )。这是一个分组变化的过程, 3 个 8 位二进制码和 4 个 6 位二进制码的长度都是 24 位( 3*8 = 4*6 = 24 )。 (4) 对获得的 4-6 二进制码补位,向 6 位二进制码添加 2 位高位 0 ,组成 4 个 8 位二进制码。 (5) 对获得的 4-8 二进制码转换为十进制码。

一节课详解SSH协议

蓝咒 提交于 2020-02-25 19:00:44
SSH介绍  Telnet缺少安全的认证方式,而且传输过程采用TCP进行明文传输,存在很大的安全隐患。单纯提供Telnet服务容易招致DoS(Deny of Service)、主机IP地址欺骗、路由欺骗等恶意***。  随着人们对网络安全的重视,传统的Telnet和FTP通过明文传送密码和数据的方式,已经慢慢不被人接受。SSH(Secure Shell)是一个网络安全协议,通过对网络数据的加密,解决了这个问题。它在一个不安全的网络环境中,提供了安全的远程登录和其他安全网络服务。  SSH通过TCP进行数据交互,它在TCP之上构建了一个安全的通道。另外SSH服务除了支持标准端口22外,还支持其他服务端口,以防止受到非法***。 注意: SSH协议包括SSH1.0,SSH1.5,SSH2.0 SSH的功能 SSH支持的客户端功能  SSH客户端功能允许用户与支持SSH Server的路由器、UNIX主机等建立SSH连接 SFTP  SFTP(SSH File Transfer Protocol)是SSH FTP的简称,是一种安全的FTP。SFTP建立在SSH连接的基础之上,远程用户可以安全地登录设备,进行文件管理和文件传送等操作,为数据传输提供了更高的安全保障。同时,由于设备提供了SFTP客户端功能,可以从本设备安全登录到远程SSH服务器上,进行文件的安全传输。

iOS 关于AFNetworking ssl 待完成

不羁岁月 提交于 2020-02-25 07:54:50
先普及下基本知识,都是从网上搜到的,感谢原作者的辛勤付出! 原文链接 http://m.blog.csdn.net/blog/bytxl/8586830 x509是数字证书的规范,P7和P12是两种封装形式。比如说同样的电影,有的是avi格式,有的是mpg,大概就这个意思。 P7一般是把证书分成两个文件,一个公钥一个私钥,有PEM和DER两种编码方式。PEM比较多见,就是纯文本的,P7一般是分发公钥用,看到的就是一串可见字符串,扩展名经常是.crt,.cer,.key等。DER是二进制编码。 P12是把证书压成一个文件,.pfx 。主要是考虑分发证书,私钥是要绝对保密的,不能随便以文本方式散播。所以P7格式不适合分发。.pfx中可以加密码保护,所以相对安全些。 在实践中要中,用户证书都是放在USB Key中分发,服务器证书经常还是以文件方式分发。服务器证书和用户证书,都是X509证书,就是里面的属性有区别。 总的来说,x509是数字证书的规范,P7和P12是两种封装形式。比如说同样的电影,有的是avi格式,有的是mpg。 PKI标准可以分为第一代和第二代标准[12]。 第一代PKI标准主要包括美国RSA公司的公钥加密标准(Public Key Cryptography Standards,PKCS)系列、国际电信联盟的ITU-T X.509、IETF组织的公钥基础设施X.509

sql 加密

安稳与你 提交于 2020-02-25 07:31:13
简介 加密是指通过使用密钥或密码对数据进行模糊处理的过程。在SQL Server中,加密并不能替代其他的安全设置,比如防止未被授权的人访问数据库或是数据库实例所在的Windows系统,甚至是数据库所在的机房,而是作为当数据库被破解或是备份被窃取后的最后一道防线。通过加密,使得未被授权的人在没有密钥或密码的情况下所窃取的数据变得毫无意义。这种做法不仅仅是为了你的数据安全,有时甚至是法律所要求的(像国内某知名IT网站泄漏密码这种事在中国可以道歉后不负任何责任了事,在米国妥妥的要破产清算)。 SQL Server中的加密简介 在SQL Server2000和以前的版本,是不支持加密的。所有的加密操作都需要在程序中完成。这导致一个问题,数据库中加密的数据仅仅是对某一特定程序有意义,而另外的程序如果没有对应的解密算法,则数据变得毫无意义。 到了SQL Server2005,引入了列级加密。使得加密可以对特定列执行,这个过程涉及4对加密和解密的内置函数 SQL Server 2008时代,则引入的了透明数据加密(TDE),所谓的透明数据加密,就是加密在数据库中进行,但从程序的角度来看就好像没有加密一样,和列级加密不同的是,TDE加密的级别是整个数据库。使用TDE加密的数据库文件或备份在另一个没有证书的实例上是不能附加或恢复的。 加密的一些基础知识

证书管理:证书获取和生成

若如初见. 提交于 2020-02-24 23:57:46
证书获取 通过浏览器查看网站证书已经可以看到许多信息,版本号、签名算法、公钥,证书链和各种扩展项,如果我们想获取该证书,用浏览器的方式也很简单。在查看证书处,详细信息,复制到文件就可以选择以某种格式导出证书。 获取网站证书也可以让我们看到其中的中间证书和根证书,例如我们可以看看CSDN网站的证书: 从Certificate chain证书链信息中可以看到,blog.csdn.net网站的服务器证书*.csdn.net,中间证书是Geo Trust RSA CA 2018,根证书DigiCert。往下看,从BEGIN CERTITICATE开始到END CERTITICATE就是证书的内容,如果BEGIN CERTITICATE前有编号为0,证明是服务器证书的内容,如果编号为1是中间证书的内容。在整个输出中我们都没有看到根证书的内容,因为根证书已经集成到了浏览器中。 证书生成 CSR文件就是证书申请文件,Certificate Signing Request,在服务器实体申请证书时,都要向CA机构提交CSR文件,里面包含了自己的域名,服务器公钥,还有服务器自己的一些机构信息等。最后使用服务器私钥对其进行签名,得到的CSR文件再发送给CA机构, 生成CSR文件 用req子命令可以选择交互式或者非交互式的方式来生成CSR文件和密钥对: 可以看到,在生成CSR文件和密钥对的命令中,

数字签名与身份认证总结

坚强是说给别人听的谎言 提交于 2020-02-23 11:52:33
攻击的种类 :中断( Interruption) (干扰)、截取( Interception) ( 侦听)、修改( Modification )、伪造( Fabrication) 对称密码体制的优缺点 优点:加密速度快 缺点:密钥需要谨慎保管,密钥更新和交换困难、多人通信密钥数量会出现爆炸性增长、不易于实现数字签名 非对称密码体制的优缺点 优点:可以适用网络的开放性要求,密钥管理相对简单;群组通信下, N 个用户只需要 N 对密钥;密钥分配较为简单,不需要秘密信道和复杂协议传送密钥;可以实现数字签名; 缺点:加密速度慢,实现较为复杂;安全性建立在计算复杂性假设下,安全性相对较低 加密系统的安全分析 明文攻击:从密文中得到的有关明文的信息; 语义安全:从密文中得到的有关明文的信息,和在没有密文情况下 得到的是一样的 密钥攻击:从密文和明文的分析中获取密钥信息 密钥安全:从密文和明文的分析中获取密钥信息,和在没有密文 / 明文情况下得到的是一样的 语义安全的类型 唯密文攻击:攻击者只有密文串,想求出明文或密钥。 已知明文攻击:攻击者知道明文串及对应的密文串,想求出密钥或解密变换。 选择明文攻击:攻击者不仅知道明文串及其对应密文串,而且可选择用于加密的明文,想求出密钥及解密变换。 选择密文攻击:攻击者不仅知道明文串及对应密文串,且密文串由攻击者选择,想求出密钥及解密变换。 ECC

细说sql 加密

≡放荡痞女 提交于 2020-02-21 08:48:12
简介 加密是指通过使用密钥或密码对数据进行模糊处理的过程。在SQL Server中,加密并不能替代其他的安全设置,比如防止未被授权的人访问数据库或是数据库实例所在的Windows系统,甚至是数据库所在的机房,而是作为当数据库被破解或是备份被窃取后的最后一道防线。通过加密,使得未被授权的人在没有密钥或密码的情况下所窃取的数据变得毫无意义。这种做法不仅仅是为了你的数据安全,有时甚至是法律所要求的(像国内某知名IT网站泄漏密码这种事在中国可以道歉后不负任何责任了事,在米国妥妥的要破产清算)。 SQL Server中的加密简介 在SQL Server2000和以前的版本,是不支持加密的。所有的加密操作都需要在程序中完成。这导致一个问题,数据库中加密的数据仅仅是对某一特定程序有意义,而另外的程序如果没有对应的解密算法,则数据变得毫无意义。 到了SQL Server2005,引入了列级加密。使得加密可以对特定列执行,这个过程涉及4对加密和解密的内置函数 SQL Server 2008时代,则引入的了透明数据加密(TDE),所谓的透明数据加密,就是加密在数据库中进行,但从程序的角度来看就好像没有加密一样,和列级加密不同的是,TDE加密的级别是整个数据库。使用TDE加密的数据库文件或备份在另一个没有证书的实例上是不能附加或恢复的。 加密的一些基础知识

Alamofire网络库基础教程

怎甘沉沦 提交于 2020-02-21 06:31:42
原文 Beginning Alamofire Tutorial 原文作者 Essan Parto 译者 星夜暮晨 (QQ:412027805) http://www.jianshu.com/p/f1208b5e42d9 CocoaChina 对应地址: http://www.cocoachina.com/ios/20141202/10390.html 2014年12月1日 2015年4月15日,更新至Xcode6.3及Swift1.2 感谢 nevermosby 对本文的遗漏之处进行指正,同时也感谢 SwiftLanguage 的推荐 学习如何使用 Alamofire 来轻松地实现 Swift 的网络请求处理 AFNetworking 是 iOS 和 OS X 上最受欢迎的第三方库之一。它曾在我们的2012年的读者评选中荣获 2012年度最佳 iOS 库 称号。它同样也在 Github 上面获得了14000多个 stars 和4000多个 forks,是使用最广的开源项目之一。 最近,AFNetworking 的作者 Mattt Thompson 提交了一个新的类似于 AFNetworking 的网络 基础库,并且是专门使用最新的 Swift 语言来编写的,名为: Alamofire 。 AFNetwork 的前缀 AF 是 Alamofire 的缩写,因此这个新的库名称其实是根据

Alamofire 的使用

笑着哭i 提交于 2020-02-21 05:43:11
最近,AFNetworking 的作者 Mattt Thompson 提交了一个新的类似于 AFNetworking 的网络 基础库,并且是专门使用最新的 Swift 语言来编写的,名为: Alamofire AFNetwork 的前缀 AF 是 Alamofire 的缩写,因此这个新的库名称其实是根据 Swift 的约定来进行命名的。 在本教程的第一部分中,我们将带领大家使用 Alamofire 来制作一个图片库应用,其来源是 500px.com 。在这个过程中,您可以学习到如何使用 Alamofire 中的重要组件,以及了解在应用中处理网络请求的某些重要的知识点。 本教程的第二部分将基于第一部分所制作的应用,并为其增加一些好用的功能。您可以通过这个过程学习到更多高级的 Alamofire 用法。 本教程假定您已熟悉 Swift 语言以及 iOS 开发。如果不是的话,请参阅我们的 其他教程 。还有,本教程使用 Xcode 6.1 作为开发环境(而不是 Xcode 6.2 beta)。 > 提示: 如果您已经熟悉了 Alamofire 的基本用法,那么您可以直接跳到本文的 第二部分 。但是请确保您已拥有消费者密钥(cunsumer key),然后参照下文在应用中替换它。 让我们开始吧 首先下载本次教程的 初始项目 。这个项目中提供了在本教程中需要的全部 UI