对称密钥

白盒密码技术

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

“数据”企业之命脉,守护有责。

瘦欲@ 提交于 2019-12-24 21:08:25
  随着某某站被“tuoku”的新闻弥漫整个互联网、朋友圈、it饭局等,已经成为了众多圈内人士关注的热点议题。海量用户数据被泄露很有可能造成个人财产等各方面受到威胁。“洗库”、“撞库”也随之发生,数据泄漏不光是用户损失,对于企业来讲声誉、可靠性、安全性的门面将会被打破,法律的制裁、监管机构的约谈和通报、用户流失等都将是对企业致命的打击,所以数据安全对于企业来讲如同命脉自然成为了企业的命脉,但是对于数据防护我们应该怎么去防护?怎么去保存?如何分类?如何定级?针对数据安全的防护本人总结了一句话“技术是手段,业务是王道。”   回顾一下“华住”用户数据库泄漏事件,我们发现代码上传github首先不去分析上传行为是否合规,文件包含了数据库的对外管理端口、用户名、密码、互联网映射地址信息,一系列组合给hacker提供了便利,由此事件我们做安全的应该深思如下几点: 代码上传是否对内制定了管理机制?是否部署或者监控了有企业敏感字段的git检测? 数据对外发布是否有严格的审计制度,数据库管理端口映射到公网上本就是个危险动作,属于不安全行为,存在风险。若真是数据库管理为何不使用堡垒机多因子身份认证来完成? 关于访问控制是否存在严格的审计制度?外网对内的访问权限除发布服务端口外是否遵循了最小化原则优先。 对于事后分析是否有健全的溯源和回溯的机制,能否对已经发生的安全事件有效的追溯。  

公钥和私钥

落爺英雄遲暮 提交于 2019-12-24 14:07:21
一直以来对公钥和私钥都理解得不是很透彻,感觉到模棱两可。今天在网上找了半天,通过查看对这个密钥对的理解,总算弄清楚了。 公钥和私钥就是俗称的不对称加密方式,是从以前的对称加密(使用用户名与密码)方式的提高。 用电子邮件的方式说明一下原理。 使用公钥与私钥的目的就是实现安全的电子邮件,必须实现如下目的: 1. 我发送给你的内容必须加密,在邮件的传输过程中不能被别人看到。 2. 必须保证是我发送的邮件,不是别人冒充我的。 要达到这样的目标必须发送邮件的 两人都有公钥和私钥 。 公钥,就是给大家用的,你可以通过电子邮件发布,可以通过网站让别人下载,公钥其实是用来加密/验章用的。私钥,就是自己的,必须非常小心保存,最好加上 密码,私钥是用来解密/签章,首先就Key的所有权来说,私钥只有个人拥有。 公钥与私钥的作用是:用公钥加密的内容只能用私钥解密,用私钥加密的内容只能 用公钥解密。 比如说,我要给你发送一个加密的邮件。首先,我必须拥有你的公钥,你也必须拥有我的公钥。 首先,我用你的公钥给这个邮件加密,这样就保证这个邮件不被别人看到,而且保证这个邮件在传送过程中没有被修改。你收到邮件后,用 你的私钥就可以解密 ,就能看到内容。 其次我用我的私钥给这个邮件加密,发送到你手里后,你可以用我的公钥解密。因为私钥只有我手里有,这样就保证了这个邮件是我发送的。 当A->B资料时,A会使用 B的公钥加密

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

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

总结数字签名实现身份验证

老子叫甜甜 提交于 2019-12-23 18:31:17
消息篡改和不可抵赖性 TCP协议确保数据能够正确发送到通信双方,加上数据加密算法保证数据安全传输,但是在HTTP应用中通信双方通常不清楚发送方的身份,尤其在客户端服务器通信下,通常一个服务器会处理多个客户端连接,结合前一篇日志讲到的密钥协商,对于服务器来说,它不需要知道客户端是谁,在建立连接,协商好密钥后,只要接收到的HTTP请求格式正确,数据解密无误后便会发送相应信息,对于客户端来说也是一样。表面上来看,客户端和服务器端只要数据能对应加密解密,正确,安全地发送到对方处,似乎就没什么问题。没错,数据加密保证了数据的机密性,消息验证码MAC算法保证了数据的完整性,接收方能够确保接收到的数据是发送方的原始数据,没有被篡改过,但是没有解决的问题是身份验证问题,无法确保和你通信的,发送数据的对方,是你正确的通信对象,这会出现的一个问题就是,第三方可以冒充你的通信方,给你发送消息。 在对称加密中,如果密钥泄露了,那么别人就可以使用你们的密钥进行加密解密,或者冒充通信方给你发消息,当你收到一条消息后,使用密钥解密,解出可读可理解的明文时,你可能就会误认为这条消息就是你的目标通信方发来的。在公开密钥算法下,公钥参数甚至可以是公开的,不需要对其做任何保护,在使用如DH密钥协商算法时,目的是协商出解密私钥,即使公钥,p,g等参数泄露了也没关系。公钥只是加密时采用到,这就导致了由于公钥公开

一文读懂数字签名

不想你离开。 提交于 2019-12-23 12:30:03
数字签名:数字签名被认为是对手写签名的数字化模拟。 手写签名的重要特征为: 1、自己的签名只有自己可以制作; 2、自己的签名可以由其他任何人验证有效性; 3、自己的签名只对某一特定文件发生联系,不能用于支持其他文件; 在说明数字签名之前,需要了解密码学的一些基本概念: 明文:消息的初始形式 密文:加密后的形式 密钥:指某个用来完成 加密、 解密、完整性验证等密码学应用的秘密 信息。 如果我们将明文记为P,密文记为C,密钥记为K,加密算法记为E,解密算法记为D,则C=E§,P=D©;则要求密码系统满足P=D(E§)。 对称加密以及非对称加密: 对称加密算法指的是在加密和解密的时候使用的是同一个秘钥,同一个密钥可以同时用作信息的加密和解密。 需要密钥的加密算法记为:C=E(K,P),并且P=D(K,E(K,P))。 其工作过程如图所示: 而非对称加密算法则需要不同的两个密钥来进行加密和解密,这两个密钥一般分别叫做公钥和私钥。 加密与解密的密钥不同,则:P=D(KD,E(KE,P))。公钥和私钥成对出现,是通过某一种加密算法得到一个密钥对,公钥是密钥对中公开的部分,私钥则是非公开的部分。使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。比如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。 其工作过程如图所示: 步骤1-3

浅谈DES加密算法

折月煮酒 提交于 2019-12-23 00:37:43
一、DES加密算法介绍 1、要求密钥必须是8个字节,即64bit长度 2、因为密钥是byte[8] , 代表字符串也可以是非可见的字节,可以与Base64编码算法一起使用 3、加密、解密都需要通过字节数组作为数据和密钥进行处理 二、对称加密 DES加密算法属于对称加密。 即利用指定的密钥,按照密码的长度截取数据,分成数据块,和密钥进行复杂的移位、算数运算或者数据处理等操作,形成只有特定的密码才能够解开的数据。 加密与解密用的是同一个密钥 三、相关类 1、Cipher: Java/Android要使用任何加密,都需要使用Cipher这个类 使用Cipher进行加密,解密处理,需要创建实例对象并初始化。采用工厂模式创建对象 Cipher cipher = Cipher.getInstance("算法名称"); cipher.init(加密/解密模式,Key秒); 2、Key: Key类是Java加密系统所有密码的父类 3、SecretKeyFactory: 对于DES加密解密,使用SecretKeyFactory生成,生成时需指定DESKeySpec 四、加密代码步骤 1. 获取Cipher对象,设置加密算法 Cipher cipher = Cipher.getInstance("DES"); 2、准备Key对象   2.1 DES加密算法使用DESKeySpec类

SSL与TLS的区别以及介绍

爱⌒轻易说出口 提交于 2019-12-22 14:10:22
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议。   TLS:(Transport Layer Security,传输层安全协议),用于两个应用程序之间提供保密性和数据完整性。该协议由两层组成:TLS记录协议和TLS握手协议。   SSL是Netscape开发的专门用户保护Web通讯的,目前版本为3.0。最新版本的TLS 1.0是IETF(工程任务组)制定的一种新的协议,它建立在SSL 3.0协议规范之上,是SSL 3.0的后续版本。两者差别极小,可以理解为SSL 3.1,它是写入了RFC的。   SSL (Secure Socket Layer)   为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取。目前一般通用之规格为40 bit之安全标准,美国则已推出128 bit之更高安全标准,但限制出境。只要3.0版本以上之I.E.或Netscape浏览器即可支持SSL。   当前版本为3

webservice ssl 1 SSL/TLS 协议入门

我的未来我决定 提交于 2019-12-22 14:03:25
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> SSL(Secure Sockets Layer,安全套接层),及其继任者 TLS(Transport Layer Security,传输层安全)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。 为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取及窃听。 SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。 SSL协议提供的服务主要有:   1)认证用户和服务器,确保数据发送到正确的客户机和服务器;   2)加密数据以防止数据中途被窃取;   3)维护数据的完整性,确保数据在传输过程中不被改变。 一、什么是SSL? SSL或者Secure Socket Layer

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实验