moqingsong
论坛版主
论坛版主
  • 注册日期2002-04-07
  • 最后登录2011-02-03
  • 粉丝0
  • 关注0
  • 积分74分
  • 威望71点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
阅读:1245回复:0

RSA 演算法 (1)

楼主#
更多 发布于:2002-05-29 09:38
〖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.  
按第一贴的“给分”键,给分。
游客

返回顶部