阅读:1245回复:0
RSA 演算法 (1)
〖Encrypt〗
上一篇|下一篇|回文章 分类讨论区 全部讨论区 本讨论区 发信人: Bird_Bird.pbbs@bbs.nju.edu.cn (Bird Bird), 信区: Encrypt 标 题: RSA 演算法 (1) 发信站: PowerBBS NJU Station (Wed Dec 24 04:04:47 1997) 转信站: whbbs!ustcnews!nju_pbbs 最近大家经常在网路上讨论 security 的问题........ 有一个地方讲起来非常头大, 就是网路窃听的问题....... 因为现今大部分的资料传递是使用明码, 所以, 有心人只要组一台 PC 上网, 就可以窃听到许许多多有用的资讯, 即使机器的 su 密码也不能幸免........ 所以, 人们就想在资料上做加密解密的工作.... 在网路上所传输的都是经过加密之後资料, 来防止第三者窃听..... 其实, 对资料作加密解密的工作并不困难, 只要会写程式的人就可以想出许许多多千奇百怪的方法...... 但问题是, 如果这个演算法一但外流了, 那这个方法就破功了...... 所传的码顿时之间成为明码...... 所以, 在一般公用的 service, 如 telnet, ftp..... 等, 作者不可能使用自定的演算法作加密解密的工作...... 现今, 大家最常用的方法是 DES 演算法..... DES 是一个公开的演算法, 但它在加密解密的过程中需要一个 key...... 解码时如果 key 不对, 那还是没效...... 所以, 只要 key 不要外流, 即使传输过程中有人窃听, 也不怕资料曝光...... 但 DES 有个问题, 因为加密解密需用同一个 key, 所以在传输时, 要如何使双方都使用同一个 key? 这个问题实在很头大, 因为如果不靠其它方法, 比如你自己到对方耳边亲口告诉他, 或是寄一封挂号信给对方等等. 单靠网路的话, 这个 key 是无法不被第三者所知......... 所以, 像 KERBEROS 这类的安全系统 (它也是使用 DES 演算法), 就必须作一些人工设定 (也就是有些动作不能透过网路设定) 有个演算法, RSA, 可以解决上述的问题........ 它的做法大概如下: 假设资料要由 A 机器传至 B 机器, 那, 由 B 机器用乱数决定一个 key, 我们称之为 private key, 这个 key 自始至终都只留在 B 机器里不送出来....... 然後, 由这个 private key 计算出另一个 key, 我们称之为 public key...... 这个 public key 的特性是几乎不可能反演算出 private key 来....... 然後将这个 public key 透过网路丢给 A 机器......... A 机器将资料用这个 public key 编码, 这个编码过的资料一定得使用 private key 才解得开....... 然後 A 机器将编码过的资料透过网路传给 B, B 再用 private key 将资料解码........... 这时, 如果有第三者窃听资料时, 他只得到 B 传给 A 的 public key, 以及 A 用这个 public key 编码後的资料........ 没有 private key, 第三者根本无法解码............. 所以这个方法确实能防止第三者的窃听........ 小鸟 -- * Origin: NJU PowerBBS 上一篇|下一篇|回文章 分类讨论区 全部讨论区 本讨论区 Copyright(c)2000 白云黄鹤BBS站 All Rights Reserved. |
|
|