自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 资源 (2)
  • 收藏
  • 关注

原创 历届蓝桥杯C/C++决赛试题

2012年第三届蓝桥杯C/C++程序设计本科B组决赛2013年第四届蓝桥杯C/C++程序设计本科B组决赛2014年第五届蓝桥杯C/C++程序设计本科B组决赛2015年第六届蓝桥杯C/C++程序设计本科B组决赛

2016-05-14 00:20:52 8511

原创 baby-step算法

http://www.cppblog.com/csu-yx-2013/archive/2012/07/29/185562.html?opt=admin

2016-05-31 19:14:44 584

原创 快速幂

http://www.cnblogs.com/buptLizer/archive/2011/11/10/2244486.html

2016-05-31 17:59:15 344

原创 匈牙利算法

http://blog.csdn.net/dark_scope/article/details/8880547

2016-05-30 17:38:11 259

原创 LCA

http://www.cnblogs.com/ylfdrib/archive/2010/11/03/1867901.html#3305330

2016-05-30 17:36:18 298

原创 线段树

http://blog.csdn.net/metalseed/article/details/8039326

2016-05-30 16:40:16 333

原创 AC自动机

http://blog.csdn.net/u014552756/article/details/49623183

2016-05-30 16:05:00 265

原创 Manacher算法

http://www.cnblogs.com/biyeymyhjob/archive/2012/10/04/2711527.html

2016-05-30 16:01:03 240

原创 循环节

http://www.cnblogs.com/jackge/archive/2013/01/05/2846006.html

2016-05-30 15:38:43 315

原创 OJ提交题目中的语言选项里G++与C++的区别

http://blog.polossk.com/201405/c-plus-plus-g-plus-plus/

2016-05-25 21:00:47 316

原创 poj 2356 Find a multiple(鸽巢原理)

题意:给出一个数N,接着再给出N个数,要你从这N个数中任意选择1个或多个数,使得其和是N的倍数如果找不到这样的答案 则输出0答案可能有多个,但智勇任意输出一个解就行。输出的第一行是选择元素的个数M,接着M行分别是选择的元素的值思路:刚开始的时候并不同为什么这一题回事抽屉原理,分析后才有体会,实际上此题一定有解,不存在输出0的结果。证明如下我们可以依次

2016-05-20 21:46:16 394

原创 lightoj 1265 Island of Survival

题意:有一个生存游戏,里面t只老虎,d只鹿,还有一个人,每天都要有两个生物碰面,现在有以下规则 1.老虎和老虎碰面,两只老虎就会同归于尽 2.老虎和人碰面或者和鹿碰面,老虎都会吃掉对方 3.人和鹿碰面,人可以选择吃或者不吃该鹿 4.鹿和鹿碰面,相安无事 问人存活下来的概率。思路:人生存下来的条件就是不被老虎吃掉,所以只要所有的老虎都同归于尽了,人就可以生存下来了,如果老

2016-05-20 19:19:07 421

原创 lightoj 1248 Dice (III)

题意:给一个质地均匀的n的骰子, 求投掷出所有点数至少一次的期望次数。思路:投掷出第一个未出现的点数的概率为p1=n/n = 1, 因为第一次投掷必然是未出现的。第二个未出现的点数第一次出现的概率为 p2=(n - 1) / n,因为有一个已经投掷出现过。第i个未出现的点数第一次出现的概率为pi=(n - (i-1)) / n, 这满足几何分布。几何分布期望E = 1/

2016-05-20 15:55:19 441

原创 lightoj 1104 Birthday Paradox

题意:假设一年有n天,现在你要邀请一些人来party那么至少邀请几个人,可以保证party中至少两个人同一天生日的概率大于等于0.5?思路:转化一下题意:求所有人生日都不同的概率小于等于0.5(那么至少两个人同一天就是大于等于0,5),假如一年365天.那么10个人全都不同天生日的概率就是366/366 * 365/366 * 364/366 ...

2016-05-20 11:20:07 476

原创 lightoj 1079 Just another Robbery

题意:哈利波特要去抢银行;现在给出一个概率p,和银行的个数n;接下去给出每个银行可以抢到的钱,还有抢劫这个银行被抓的概率;问在被抓的概率小于等于p的情况下,最多抢到多少钱;思路:由于逃跑的概率方便计算,所以我们把被抓的概率转化为可以逃跑的概率;然后是一个01背包的思想;dp[j] 代表抢劫到 j 元钱,逃跑的概率;那么dp[j

2016-05-20 10:30:29 335

原创 lightoj 1038 Race to 1 Again

题意:给出一个数字D我们可以选择1-D中可以被D整除的数字,然后用D出得到一个新的数字D1;然后在找所有D1的因子,用D1除,直到得到1;问除的次数的期望值;思路:d[i] 代表从i除到1的期望步数;那么假设i一共有c个因子(包括1和本身)d[i] = ( d[1] + d[a2] + d[a3] + d[a4] ..... + d[i] +

2016-05-20 09:53:12 515

原创 lightoj 1030 Discovering Gold

题意:有一个直线的金矿,每个点有一定数量的金子;你从0开始,每次扔个骰子,扔出几点就走几步,然后把那个点的金子拿走;如果扔出的骰子超出了金矿,就重新扔,知道你站在最后一个点;问拿走金子的期望值是多少;首先我们假设你现在站在第i个点,且从这个点开始走;那么这个点的期望p[i] = p[i  +1] /6  + p[i + 2] / 6 + p[i +

2016-05-18 20:01:21 338

原创 lightoj 1027 A Dangerous Maze

题意:你在一个迷宫里,面前有n扇们,每个门有一个数字k;如果k为正数,则通过这扇门,走k分钟就能出去,如果为负数,则通过这扇门走-k的分钟回到迷宫;走每扇门概率一样.问走出迷宫所需时间的期望值;思路:首先如果全是负数肯定是inf;然后我们假设我们走出去的期望时间是d;那么拿第三个样例举例子; d = 1/3 * 3  + 1/3( 6 + d) + 1/3 (9 + d);意思就是

2016-05-18 19:42:43 425

原创 sublime中安装css 格式化插件

http://blog.csdn.net/qdujunjie/article/details/38805835

2016-05-17 21:30:39 381

原创 poj 1269 Intersecting Lines

题意:给出两条直线(4个点),要求判断出这两条直线的关系:平行,同线,相交。如果相交还要求出交点坐标。思路:先判断是否共线,否则判断是否平行,否则只能相交,求出交点。参考博客:http://blog.csdn.net/acdreamers/article/details/8811201#include#includeusing namespace std;#define max(

2016-05-16 21:11:36 274

原创 计算几何

http://dev.gameres.com/Program/Abstract/Geometry.htm#矢量的概念

2016-05-16 20:33:08 312

原创 扩展欧几里德算法

http://www.acmerblog.com/extend-gcd-5610.html

2016-05-16 16:58:07 352

原创 欧拉函数模版

http://www.cnblogs.com/E-star/archive/2012/08/03/2621025.html

2016-05-16 16:47:56 280

原创 hdu 2824 The Euler function(欧拉函数)

欧拉函数模版#include #include #include #include #include using namespace std;#define LL __int64const LL maxn=3e6+10;LL phi[maxn+10];void phi_table()//求欧拉函数{ LL i,j,k; for(i=2;i<maxn;i++)

2016-05-16 16:43:35 383

原创 UVa 10200 Prime Time(素数)

题意:通过公式计算出一个数,判断这个数是否为素数。在区间[a,b]上通过公式算出素数占总数的百分比。#include #include int prime(int n){ int i; for(i=2;i*i<=n;i++) { if((n%i)==0) return 0; } return 1;}int

2016-05-16 13:50:21 319

原创 UVa 11827 Maximum GCD

题意:给你一组数,求出其中两两最大公约数中最大的值。思路:数据较小,直接枚举。#includeint gcd(int a,int b){//求最大公约数 return b?gcd(b,a%b):a;}int main(){ int T; int a[105]; char c; scanf("%d",&T); while (getchar() != '\n'); whil

2016-05-16 13:12:06 352

原创 hdu 2161 Primes(素数)

题意:输入n,是素数输出yes,不是则输出no。#include #include #include #include using namespace std;int p[16001];int main(){ int n,k=0; memset(p,-1,sizeof(p)); p[1]=0; p[2]=0; for(int i=3;

2016-05-16 12:12:08 395

原创 memset初始化问题

http://blog.csdn.net/my_business/article/details/40537653

2016-05-16 12:09:54 446

原创 2012年第三届蓝桥杯C/C++程序设计本科B组决赛 方块填数(编程大题)

方块填数“数独”是当下炙手可热的智力游戏。一般认为它的起源是“拉丁方块”,是大数学家欧拉于1783年发明的。如图[1.jpg]所示:6x6的小格被分为6个部分(图中用不同的颜色区分),每个部分含有6个小格(以下也称为分组)。开始的时候,某些小格中已经填写了字母(ABCDEF之一)。需要在所有剩下的小格中补填字母。全部填好后,必须满足如下约束:1. 所填字母只允许是A,B,C

2016-05-14 00:13:38 1446

原创 2012年第三届蓝桥杯C/C++程序设计本科B组决赛 DNA比对(编程大题)

DNA比对脱氧核糖核酸即常说的DNA,是一类带有遗传信息的生物大分子。它由4种主要的脱氧核苷酸(dAMP、dGMP、dCMT和dTMP)通过磷酸二酯键连接而成。这4种核苷酸可以分别记为:A、G、C、T。DNA携带的遗传信息可以用形如:AGGTCGACTCCA.... 的串来表示。DNA在转录复制的过程中可能会发生随机的偏差,这才最终造就了生物的多样性。为了简化问题,我们假设,DNA在复

2016-05-14 00:13:20 1426

原创 2012年第三届蓝桥杯C/C++程序设计本科B组决赛 拼音字母(编程大题)

拼音字母在很多软件中,输入拼音的首写字母就可以快速定位到某个词条。比如,在铁路售票软件中,输入: “bj”就可以定位到“北京”。怎样在自己的软件中实现这个功能呢?问题的关键在于:对每个汉字必须能计算出它的拼音首字母。GB2312汉字编码方式中,一级汉字的3755个是按照拼音顺序排列的。我们可以利用这个特征,对常用汉字求拼音首字母。GB2312编码方案对每个汉字采用两个字节表示。第一个字

2016-05-14 00:13:10 1568

原创 2012年第三届蓝桥杯C/C++程序设计本科B组决赛 数据压缩(代码填空)

数据压缩某工业监控设备不断发回采样数据。每个数据是一个整数(0到1000之间)。各个数据间用空白字符(空格,TAB或回车换行)分隔。这些数据以文本形式被存储在文件中。因为大多数时候,相邻的采样间隔数据是相同的,可以利用这个特征做数据的压缩存储。其方法是:对n(n>1)个连续相同的数字只记录n和该数字本身;对m(m>0)个连续不重复的数字,则记录 m*-1 和这些数字本身(之所以用负数,是为

2016-05-14 00:12:39 1394

原创 2012年第三届蓝桥杯C/C++程序设计本科B组决赛 星期几(结果填空)

星期几1949年的国庆节(10月1日)是星期六。 今年(2012)的国庆节是星期一。那么,从建国到现在,有几次国庆节正好是星期日呢?只要答案,不限手段!可以用windows日历,windows计算器,Excel公式,。。。。。当然,也可以编程!不要求写出具体是哪些年,只要一个数目!千万不要提交源代码!

2016-05-14 00:12:12 1538

原创 2012年第三届蓝桥杯C/C++程序设计本科B组决赛

1.星期几2.数据压缩3.拼音字母4.DNA比对5.方块填数

2016-05-14 00:10:43 2625

原创 2015年第六届蓝桥杯C/C++程序设计本科B组决赛

1.积分之谜2.完美正方形3.关联账户4.密文搜索5.居民集会6.模型染色

2016-05-14 00:03:20 5128

原创 2015年第六届蓝桥杯C/C++程序设计本科B组决赛 模型染色(编程大题)

模型染色在电影《超能陆战队》中,小宏可以使用他的微型机器人组合成各种各样的形状。现在他用他的微型机器人拼成了一个大玩具给小朋友们玩。为了更加美观,他决定给玩具染色。小宏的玩具由n个球型的端点和m段连接这些端点之间的边组成。下图给出了一个由5个球型端点和4条边组成的玩具,看上去很像一个分子的球棍模型。由于小宏的微型机器人很灵活,这些球型端点可以在空间中任意移动,同时连接相邻两个球型端

2016-05-13 21:38:49 3643

原创 2015年第六届蓝桥杯C/C++程序设计本科B组决赛 居民集会(编程大题)

居民集会蓝桥村的居民都生活在一条公路的边上,公路的长度为L,每户家庭的位置都用这户家庭到公路的起点的距离来计算,第i户家庭距起点的距离为di。每年,蓝桥村都要举行一次集会。今年,由于村里的人口太多,村委会决定要在4个地方举行集会,其中3个位于公路中间,1个位最公路的终点。已知每户家庭都会向着远离公路起点的方向去参加集会,参加集会的路程开销为家庭内的人数ti与距离的乘积。给定每户家庭

2016-05-13 21:37:24 4319

原创 2015年第六届蓝桥杯C/C++程序设计本科B组决赛 密文搜索(编程大题)

密文搜索福尔摩斯从X星收到一份资料,全部是小写字母组成。他的助手提供了另一份资料:许多长度为8的密码列表。福尔摩斯发现,这些密码是被打乱后隐藏在先前那份资料中的。请你编写一个程序,从第一份资料中搜索可能隐藏密码的位置。要考虑密码的所有排列可能性。数据格式:输入第一行:一个字符串s,全部由小写字母组成,长度小于1024*1024紧接着一行是一个整数n,表示以下有n行密码,

2016-05-13 21:35:57 4617 2

原创 2015年第六届蓝桥杯C/C++程序设计本科B组决赛 关联账户(代码填空)

关联账户为增大反腐力度,某地警方专门支队,对若干银行账户展开调查。如果两个账户间发生过转账,则认为有关联。如果a,b间有关联, b,c间有关联,则认为a,c间也有关联。对于调查范围内的n个账户(编号0到n-1),警方已知道m条因转账引起的直接关联。现在希望知道任意给定的两个账户,求出它们间是否有关联。有关联的输出1,没有关联输出0小明给出了如下的解决方案:#includ

2016-05-13 21:34:25 2262

原创 2015年第六届蓝桥杯C/C++程序设计本科B组决赛 完美正方形(结果填空)

完美正方形如果一些边长互不相同的正方形,可以恰好拼出一个更大的正方形,则称其为完美正方形。历史上,人们花了很久才找到了若干完美正方形。比如:如下边长的22个正方形2 3 4 6 7 8 12 13 14 15 16 17 18 21 22 23 24 26 27 28 50 60如【图1.png】那样组合,就是一种解法。此时,紧贴上边沿的是:60 50紧贴下边沿的是:26

2016-05-13 21:31:00 5675

历年北京理工大学计算机初试专业课

历年北京理工大学计算机初试专业课,包括2004年到2008年的部分初试专业课题目,以及813计算机专业课和885软件工程专业课的考试内容、知识点等。

2020-05-13

图解密码技术(第三版)

本书以图配文的形式,详细讲解了6种最重要的密码技术:对称密码、公钥密码、单向散列函数、消息认证码、数字签名和伪随机数生成器。 第1部分 密码 1   第1章 环游密码世界 3   1.1 本章学习的内容 4   1.2 密码 4   1.2.1 Alice与Bob 4   1.2.2 发送者、接收者和窃听者 4   1.2.3 加密与解密 6   1.2.4 密码保证了消息的机密性 7   1.2.5 破译 7   1.3 对称密码与公钥密码 8   1.3.1 密码算法 8   1.3.2 密钥 8   1.3.3 对称密码与公钥密码 9   1.3.4 混合密码系统 10   1.4 其他密码技术 10   1.4.1 单向散列函数 10   1.4.2 消息认证码 10   1.4.3 数字签名 11   1.4.4 伪随机数生成器 11   1.5 密码学家的工具箱 12   1.6 隐写术与数字水印 13   1.7 密码与信息安全常识 14   1.7.1 不要使用保密的密码算法 14   1.7.2 使用低强度的密码比不进行任何加密更危险 15   1.7.3 任何密码总有一天都会被破解 15   1.7.4 密码只是信息安全的一部分 16   1.8 本章小结 16   1.9 小测验的答案 17   第2章 历史上的密码——写一篇别人看不懂的文章 19   2.1 本章学习的内容 20   2.2 恺撒密码 20   2.2.1 什么是恺撒密码 21   2.2.2 恺撒密码的加密 21   2.2.3 恺撒密码的解密 22   2.2.4 用暴力破解来破译密码 23   2.3 简单替换密码 24   2.3.1 什么是简单替换密码 24   2.3.2 简单替换密码的加密 25   2.3.3 简单替换密码的解密 26   2.3.4 简单替换密码的密钥空间 26   2.3.5 用频率分析来破译密码 26   2.4 Enigma 31   2.4.1 什么是Enigma 31   2.4.2 用Enigma进行加密通信 31   2.4.3 Enigma的构造 32   2.4.4 Enigma的加密 34   2.4.5 每日密码与通信密码 36   2.4.6 避免通信错误 36   2.4.7 Enigma的解密 36   2.4.8 Enigma的弱点 38   2.4.9 Enigma的破译 38   2.5 思考 40   2.5.1 为什么要将密码算法和密钥分开呢 40   2.6 本章小结 41   2.7 小测验的答案 42   第3章 对称密码(共享密钥密码)——用相同的密钥进行加密和解密 45   3.1 炒鸡蛋与对称密码 46   3.2 本章学习的内容 46   3.3 从文字密码到比特序列密码 46   3.3.1 编码 46   3.3.2 XOR 47   3.4 一次性密码本——绝对不会被破译的密码 50   3.4.1 什么是一次性密码本 50   3.4.2 一次性密码本的加密 50   3.4.3 一次性密码本的解密 51   3.4.4 一次性密码本是无法破译的 51   3.4.5 一次性密码本为什么没有被使用 52   3.5 DES 53   3.5.1 什么是DES 53   3.5.2 加密和解密 54   3.5.3 DES的结构(Feistel网络) 54   3.6 三重DES 60   3.6.1 什么是三重DES 60   3.6.2 三重DES的加密 60   3.6.3 三重DES的解密 63   3.6.4 三重DES的现状 64   3.7 AES的选定过程 64   3.7.1 什么是AES 65   3.7.2 AES的选定过程 65   3.7.3 AES最终候选算法的确定与AES的最终确定 65   3.8 Rijndael 66   3.8.1 什么是Rijndael 66   3.8.2 Rijndael的加密和解密 66   3.8.3 Rijndael的破译 68   3.8.4 应该使用哪种对称密码呢 68   3.9 本章小结 70   3.10 小测验的答案 71   第4章 分组密码的模式——分组密码是如何迭代的 73   4.1 本章学习的内容 74   4.2 分组密码的模式 75   4.2.1 分组密码与流密码 75   4.2.2 什么是模式 75   4.2.3 明文分组与密文分组 76   4.2.4 主动攻击者Mallory 76   4.3 ECB模式 77   4.3.1 什么是ECB模式 77   4.3.2 ECB模式的特点 78   4.3.3 对ECB模式的攻击 78   4.4 CBC模式 80   4.4.1 什么是CBC模式 80   4.4.2 初始化向量 81   4.4.3 CBC模式的特点 82   4.4.4 对CBC模式的攻击 82   4.4.5 CBC的应用实例 84   4.5 CFB模式 85   4.5.1 什么是CFB模式 85   4.5.2 初始化向量 86   4.5.3 CFB模式与流密码 86   4.5.4 CFB模式的解密 87   4.5.5 对CFB模式的攻击 87   4.6 OFB模式 88   4.6.1 什么是OFB模式 88   4.6.2 初始化向量 89   4.6.3 CFB模式与OFB模式的对比 89   4.7 CTR模式 90   4.7.1 计数器的生成方法 92   4.7.2 OFB模式与CTR模式的对比 92   4.7.3 CTR模式的特点 92   4.7.4 错误与机密性 93   4.8 应该使用哪种模式呢 93   4.9 本章小结 94   4.10 小测验的答案 95   第5章 公钥密码——用公钥加密,用私钥解密 97   5.1 投币寄物柜的使用方法 98   5.2 本章学习的内容 98   5.3 密钥配送问题 98   5.3.1 什么是密钥配送问题 98   5.3.2 通过事先共享密钥来解决 100   5.3.3 通过密钥分配中心来解决 101   5.3.4 通过Diffie-Hellman密钥交换来解决密钥配送问题 102   5.3.5 通过公钥密码来解决密钥配送问题 102   5.4 公钥密码 103   5.4.1 什么是公钥密码 103   5.4.2 公钥密码的历史 104   5.4.3 公钥通信的流程 104   5.4.4 各种术语 106   5.4.5 公钥密码无法解决的问题 106   5.5 时钟运算 106   5.5.1 加法 107   5.5.2 减法 109   5.5.3 乘法 110   5.5.4 除法 110   5.5.5 乘方 114   5.5.6 对数 114   5.5.7 从时钟指针到RSA 115   5.6 RSA 116   5.6.1 什么是RSA 116   5.6.2 RSA加密 116   5.6.3 RSA解密 117   5.6.4 生成密钥对 118   5.6.5 具体实践一下吧 121   5.7 对RSA的攻击 124   5.7.1 通过密文来求得明文 124   5.7.2 通过暴力破解来找出D 124   5.7.3 通过E和N求出D 125   5.7.4 中间人攻击 126   5.8 其他公钥密码 128   5.8.1 ElGamal方式 128   5.8.2 Rabin方式 128   5.8.3 椭圆曲线密码 128   5.9 关于公钥密码的问答 128   5.9.1 公钥密码的机密性 129   5.9.2 公钥密码与对称密码的密钥长度 129   5.9.3 对称密码的未来 129   5.9.4 RSA与质数 130   5.9.5 RSA与质因数分解 130   5.9.6 RSA的长度 131   5.10 本章小结 132   5.11 小测验的答案 133   第6章 混合密码系统——用对称密码提高速度,用公钥密码保护会话密钥 135   6.1 混合动力汽车 136   6.2 本章学习的内容 136   6.3 混合密码系统 136   6.3.1 对称密码与公钥密码 136   6.3.2 混合密码系统 137   6.3.3 加密 138   6.3.4 解密 140   6.3.5 混合密码系统的具体例子 141   6.4 怎样才是高强度的混合密码系统 141   6.4.1 伪随机数生成器 141   6.4.2 对称密码 142   6.4.3 公钥密码 142   6.4.4 密钥长度的平衡 142   6.5 密码技术的组合 142   6.6 本章小结 143   6.7 小测验的答案 144   第2部分 认证 145   第7章 单向散列函数——获取消息的“指纹” 147   7.1 本章学习的内容 148   7.2 什么是单向散列函数 148   7.2.1 这个文件是不是真的呢 148   7.2.2 什么是单向散列函数 151   7.2.3 单向散列函数的性质 153   7.2.4 关于术语 156   7.3 单向散列函数的实际应用 157   7.3.1 检测软件是否被篡改 157   7.3.2 基于口令的加密 159   7.3.3 消息认证码 159   7.3.4 数字签名 159   7.3.5 伪随机数生成器 159   7.3.6 一次性口令 159   7.4 单向散列函数的具体例子 160   7.4.1 MD4、MD5 160   7.4.2 SHA-1、SHA-256、SHA-384、SHA-512 160   7.4.3 RIPEMD-160 160   7.4.4 AHS(Advanced Hash Standard)与SHA-3 161   7.5 单向散列函数SHA-1 161   7.5.1 整体流程 161   7.5.2 (1) SHA-1:填充 162   7.5.3 (2) SHA-1:计算W0~W79 164   7.5.4 (3) SHA-1:分组处理 165   7.5.5 (4) SHA-1:单步处理 167   7.6 对单向散列函数的攻击 168   7.6.1 暴力破解(攻击故事1) 168   7.6.2 生日攻击(攻击故事2) 170   7.7 单向散列函数无法解决的问题 172   7.8 本章小结 173   7.9 小测验的答案 173   第8章 消息认证码——消息被正确传送了吗 177   8.1 本章学习的内容 178   8.2 消息认证码 178   8.2.1 汇款请求是正确的吗 178   8.2.2 什么是消息认证码 179   8.2.3 消息认证码的使用步骤 180   8.2.4 消息认证码的密钥配送问题 180   8.3 消息认证码的应用实例 181   8.3.1 SWIFT 181   8.3.2 IPsec 181   8.3.3 SSL/TLS 182   8.4 消息认证码的实现方法 182   8.4.1 使用单向散列函数实现 182   8.4.2 使用分组密码实现 182   8.4.3 其他实现方法 182   8.5 HMAC的详细介绍 182   8.5.1 什么是HMAC 182   8.5.2 HMAC的步骤 183   8.6 对消息认证码的攻击 185   8.6.1 重放攻击 185   8.6.2 密钥推测攻击 187   8.7 消息认证码无法解决的问题 188   8.7.1 对第三方证明 188   8.7.2 防止否认 188   8.8 本章小结 189   8.9 小测验的答案 189   第9章 数字签名——消息到底是谁写的 191   9.1 羊妈妈的认证 192   9.2 本章学习的内容 192   9.3 数字签名 192   9.3.1 Alice的借条 192   9.3.2 从消息认证码到数字签名 193   9.3.3 签名的生成和验证 194   9.3.4 公钥密码与数字签名 195   9.4 数字签名的方法 197   9.4.1 直接对消息签名的方法 197   9.4.2 对消息的散列值签名的方法 199   9.5 对数字签名的疑问 202   9.5.1 密文为什么能作为签名使用 202   9.5.2 数字签名不能保证机密性吗 202   9.5.3 这种签名可以随意复制吗 203   9.5.4 消息内容会不会被任意修改 203   9.5.5 签名会不会被重复使用 204   9.5.6 删除签名也无法“作废合同”吗 204   9.5.7 如何防止否认 205   9.5.8 数字签名真的能够代替签名吗 205   9.6 数字签名的应用实例 206   9.6.1 安全信息公告 206   9.6.2 软件下载 207   9.6.3 公钥证书 208   9.6.4 SSL/TLS 208   9.7 通过RSA实现数字签名 208   9.7.1 用RSA生成签名 208   9.7.2 用RSA验证签名 209   9.7.3 具体实践一下吧 209   9.8 其他的数字签名 210   9.8.1 ElGamal方式 210   9.8.2 DSA 210   9.8.3 Rabin方式 211   9.9 对数字签名的攻击 211   9.9.1 中间人攻击 211   9.9.2 对单向散列函数的攻击 212   9.9.3 利用数字签名攻击公钥密码 212   9.9.4 其他攻击 213   9.10 各种密码技术的对比 213   9.10.1 消息认证码与数字签名 213   9.10.2 混合密码系统与对散列值签名 214   9.11 数字签名无法解决的问题 214   9.12 本章小结 215   9.13 小测验的答案 216   第10章 证书——为公钥加上数字签名 217   10.1 本章学习的内容 218   10.2 证书 218   10.2.1 什么是证书 218   10.2.2 证书的应用场景 218   10.3 实际生成一张证书 221   10.3.1 VeriSign的免费试用服务 221   10.3.2 生成证书 221   10.3.3 将证书从Web浏览器中导出 224   10.3.4 证书的内容 224   10.3.5 证书标准规范X.509 224   10.4 公钥基础设施(PKI) 228   10.4.1 什么是公钥基础设施 228   10.4.2 PKI的组成要素 228   10.4.3 认证机构的工作 230   10.4.4 证书的层级结构 231   10.4.5 各种各样的PKI 233   10.5 对证书的攻击 234   10.5.1 在公钥注册之前进行攻击 234   10.5.2 注册相似人名进行攻击 234   10.5.3 窃取认证机构的私钥进行攻击 235   10.5.4 攻击者伪装成认证机构进行攻击 235   10.5.5 钻CRL的空子进行攻击(1) 236   10.5.6 钻CRL的空子进行攻击(2) 237   10.6 关于证书的Q&A 238   10.6.1 为什么需要证书 238   10.6.2 通过自己的方法进行认证是不是更安全 239   10.6.3 为什么要相信认证机构 240   10.7 本章小结 241   10.8 小测验的答案 242   第3部分 密钥、随机数与应用技术 243   第11章 密钥——秘密的精华 245   11.1 本章学习的内容 246   11.2 什么是密钥 246   11.2.1 密钥就是一个巨大的数字 246   11.2.2 密钥与明文是等价的 248   11.2.3 密码算法与密钥 248   11.3 各种不同的密钥 248   11.3.1 对称密码的密钥与公钥密码的密钥 248   11.3.2 消息认证码的密钥与数字签名的密钥 249   11.3.3 用于确保机密性的密钥与用于认证的密钥 250   11.3.4 会话密钥与主密钥 251   11.3.5 用于加密内容的密钥与用于加密密钥的密钥 252   11.4 密钥的管理 252   11.4.1 生成密钥 252   11.4.2 配送密钥 253   11.4.3 更新密钥 253   11.4.4 保存密钥 254   11.4.5 作废密钥 256   11.5 Diffie-Hellman密钥交换 256   11.5.1 什么是Diffie-Hellman密钥交换 256   11.5.2 Diffie-Hellman密钥交换的步骤 257   11.5.3 Eve能计算出密钥吗 259   11.5.4 生成元的意义 259   11.5.5 具体实践一下 260   11.6 基于口令的密码(PBE) 262   11.6.1 什么是基于口令的密码 262   11.6.2 PBE加密 263   11.6.3 PBE解密 264   11.6.4 盐的作用 266   11.6.5 口令的作用 266   11.6.6 PBE的改良 267   11.7 如何生成安全的口令 268   11.7.1 使用只有自己才能知道的信息 268   11.7.2 将多个不同的口令分开使用 269   11.7.3 有效利用笔记 269   11.7.4 理解口令的局限性 269   11.8 本章小结 270   11.9 小测验的答案 271   第12章 随机数——不可预测性的源泉 273   12.1 骡子的锁匠铺 274   12.2 本章学习的内容 274   12.3 使用随机数的密码技术 274   12.3.1 随机数是干什么用的 274   12.4 随机数的性质 275   12.4.1 对随机数的性质进行分类 275   12.4.2 随机性 276   12.4.3 不可预测性 277   12.4.4 不可重现性 277   12.5 伪随机数生成器 278   12.5.1 伪随机数生成器的结构 278   12.6 具体的伪随机数生成器 280   12.6.1 杂乱的方法 280   12.6.2 线性同余法 280   12.6.3 单向散列函数法 283   12.6.4 密码法 286   12.6.5 ANSI X9.17 287   12.7 对伪随机数生成器的攻击 290   12.7.1 对种子进行攻击 290   12.7.2 对随机数池进行攻击 290   12.8 本章小结 290   12.9 小测验的答案 291   第13章 PGP ——密码技术的完美组合 293   13.1 本章学习的内容 294   13.2 PGP简介 294   13.2.1 什么是PGP 294   13.2.2 PGP的功能 295   13.3 生成密钥对 297   13.4 加密与解密 299   13.4.1 加密 299   13.4.2 解密 301   13.5 生成和验证数字签名 304   13.5.1 生成数字签名 304   13.5.2 验证数字签名 306   13.6 生成数字签名并加密以及解密并验证数字签名 309   13.6.1 生成数字签名并加密 309   13.6.2 解密并验证数字签名 309   13.7 信任网 313   13.7.1 公钥合法性 313   13.7.2 场景1:通过自己的数字签名进行确认 313   13.7.3 场景2:通过自己完全信任的人的数字签名进行确认 314   13.7.4 场景3:通过自己有限信任的多个人的数字签名进行确认 315   13.7.5 公钥合法性与所有者信任是不同的 316   13.7.6 所有者信任级别是因人而异的 316   13.8 本章小结 318   13.9 小测验的答案 318   第14章 SSL/TLS ——为了更安全的通信 321   14.1 本章学习的内容 322   14.2 什么是SSL/TLS 322   14.2.1 Alice在Bob书店买书 322   14.2.2 客户端与服务器 323   14.2.3 用SSL/TLS承载HTTP 324   14.2.4 SSL/TLS的工作 325   14.2.5 SSL/TLS也可以保护其他的协议 326   14.2.6 密码套件 326   14.2.7 SSL与TLS的区别 327   14.3 使用SSL/TLS进行通信 327   14.3.1 层次化的协议 327   14.3.2 1 TLS记录协议 329   14.3.3 2-1 握手协议 330   14.3.4 2-2 密码规格变更协议 336   14.3.5 2-3 警告协议 337   14.3.6 2-4 应用数据协议 337   14.3.7 主密码 337   14.3.8 TLS中使用的密码技术小结 338   14.4 对SSL/TLS的攻击 339   14.4.1 对各个密码技术的攻击 339   14.4.2 对伪随机数生成器的攻击 339   14.4.3 利用证书的时间差进行攻击 340   14.5 SSL/TLS用户的注意事项 340   14.5.1 不要误解证书的含义 340   14.5.2 密码通信之前的数据是不受保护的 340   14.5.3 密码通信之后的数据是不受保护的 340   14.6 本章小结 341   14.7 小测验的答案 342   第15章 密码技术与现实社会——我们生活在不完美的安全中 .343   15.1 本章学习的内容 344   15.2 密码技术小结 344   15.2.1 密码学家的工具箱 344   15.2.2 密码与认证 346   15.2.3 密码技术的框架化 346   15.2.4 密码技术与压缩技术 346   15.3 追寻完美的密码技术 348   15.3.1 量子密码 349   15.3.2 量子计算机 350   15.3.3 哪一种技术会率先进入实用领域 350   15.4 只有完美的密码,没有完美的人 350   15.4.1 理论是完美的,现实是残酷的 351   15.4.2 防御必须天衣无缝,攻击只需突破一点 351   15.4.3 攻击实例1:经过PGP加密的电子邮件 352   15.4.4 攻击实例2:用SSL/TLS加密的信用卡号 353   15.5 本章小结 354   附录 密码技术综合测验 355   参考文献 365[2]

2018-02-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除