大话RSA

 

大话RSA
     我们接触过诸多的数学趣题,下面我们看以数学黑洞的例子
123 黑洞
  (即 西西弗斯 串)
  数学中的 123 就跟英语中的 ABC 一样平凡和简单。然而,按以下运算顺序,就可以观察到这个最简单的
  黑洞值:
  设定一个任意数字串,数出这个数中的偶数个数,奇数个数,及这个数中所包含的所有位数的总数,
  例如: 1234567890
  偶:数出该数数字中的偶数个数,在本例中为 2 4 6 8 0 ,总共有 5 个。
  奇:数出该数数字中的奇数个数,在本例中为 1 3 5 7 9 ,总共有 5 个。
  总:数出该数数字的总个数,本例中为 10 个。
  新数:将答案按 - - 的位序,排出得到新数为: 5510
  重复:将新数 5510 按以上算法重复运算,可得到新数: 134
  重复:将新数 134 按以上算法重复运算,可得到新数: 123
结论:对数 1234567890 ,按上述算法,最后必得出 123 的结果,我们可以用计算机写出程序,测试出对任意一个数经有限次重复后都会是 123 。换言之,任何数的最终结果都无法逃逸 123 黑洞。
 
夫妻数
接下来我给各位两组“夫妻数”(此名由我随便命名的)
KU=(7,303839617),KR=(86801359,303839617)
KU和KR配合会产生神奇的效果:我们设任意正整数N它在KU和KR的作用下有如下效果:
(N^7)mod(303839617)=X
(X^86801359)mod(303839617)=N;
如果你不信可以找个正整数试试.
 
猜想公钥加密算法
我们做个大胆的猜想,我们用KU做加密密钥算法如上面,KR做解密密钥算法也如上是否可以实现我们上一节说的公钥加密的算法,可以但是有个问题我们如果只找到了这么一组数那是没有加密意义的,如果我们可以找到有限对这样的数也是没有安全可言的,但是这个发现时可喜的,至少我们找到了一种加密密钥和解密密钥不同的算法。我们的问题就不在是这种设想是否正确而是,我们想办法解决如何产生“夫妻数”,如果我们找到了产生无限个“夫妻数”的算法,那么问题就解决了,公钥加密算法产生了,至少产生了一种公钥加密算法。
 
RSA 算法
很幸运,有人真的发现了这种算法(不是发明,我们要承认,数学的先天存在性),对于做工程而言我们只要套套公式就可以了,下面我们记忆这种公式(要说学习也可以)。
 
 

1,密钥的产生

   选择大素数:p,q    p和q互异
   计      算 :n=p*q
   计      算 :φ(n)=(p-1)*(q-1)
   选择整数 :e, gcd(φ(n),e)=1;1<e<φ(n)
   计      算 :d, d=e^(-1)modφ(n);
   公      钥 :KU = {e,,n}
   私      钥 :KR = {d,n}
2,加      密
   明      文 :0≤M<n
   密      文 :C=M^e(mod n)
3,脱      密
   密      文 :0≤C<n
   明      文 :M=C^d(mod n)
 
 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

条理很清晰了,由于是算法我们如果大话将误人子弟。
看到这里各位是否有如下疑问(为了方便各位,我以问答的方式给出):
第一:RSA加密和解密都针对数字的运算如何用于非数字的加密?
答:如果你看过《大话计算机加密技术》你就应该知道,在计算机内部都属对数字的操作,那么第二个问题就来了。
第二:如何把非自然数的信息变化为自然数?
答:编码方式,如果以ASCII编码方式读入数据那么就可以将其化为对应的整数值,解密输出的时候再以ASCII编码输出。下面举例加密“I LOVE YOU”信息以ASCII读入
字符
ASCII值
I
73
空格
32
L
76
O
79
V
86
E
69
空格
32
Y
89
O
79
U
85
我们利用其对应值逐个加密。还有个问题一般的n值都非常大,就是说我们逐个加密太浪费时间了,我们可以将几个合并起来加密使它更接近n值,这样就减少了加密的算法的执行次数。接着的问题“如何合并”,比如要合并”I”和“空格”。你有多少种合并的方法,可行的有几种,试试吧,想知道答案和评测你的方法联系hdusec@126.com.用中国的阴阳对立学说可以推出另一个问题:如果合并的结果或者转化的结果不满足“0≤M<n”,请看下面问题。
第三:“0≤M<n”这样的限制如何处理?
答:分块加密。如果加密信息化为自然数时不满足要求,就要分块加密。问题是多多的,自己想想如何分块。有问题还是那个邮箱。
如果你是个爱刨根问底的人,你最大的疑惑就是RSA算法的道理何在。这是一个相对专业的问题,专业在数学上,如果学过数论也不是太大的问题,我三言两语也说不明白,你还是自己到http://en.wikipedia.org/wiki/RSA看看.
 
 
夫妻数
接下来我给各位两组“夫妻数”(此名由我随便命名的)
KU=(7,303839617),KR=(86801359,303839617)
KU和KR配合会产生神奇的效果:我们设任意正整数N它在KU和KR的作用下有如下效果:
(N^7)mod(303839617)=X
(X^86801359)mod(303839617)=N;
如果你不信可以找个正整数试试.
 
猜想公钥加密算法
我们做个大胆的猜想,我们用KU做加密密钥算法如上面,KR做解密密钥算法也如上是否可以实现我们上一节说的公钥加密的算法,可以但是有个问题我们如果只找到了这么一组数那是没有加密意义的,如果我们可以找到有限对这样的数也是没有安全可言的,但是这个发现时可喜的,至少我们找到了一种加密密钥和解密密钥不同的算法。我们的问题就不在是这种设想是否正确而是,我们想办法解决如何产生“夫妻数”,如果我们找到了产生无限个“夫妻数”的算法,那么问题就解决了,公钥加密算法产生了,至少产生了一种公钥加密算法。
 
RSA 算法
很幸运,有人真的发现了这种算法(不是发明,我们要承认,数学的先天存在性),对于做工程而言我们只要套套公式就可以了,下面我们记忆这种公式(要说学习也可以)。
 
 

1,密钥的产生

   选择大素数:p,q    p和q互异
   计      算 :n=p*q
   计      算 :φ(n)=(p-1)*(q-1)
   选择整数 :e, gcd(φ(n),e)=1;1<e<φ(n)
   计      算 :d, d=e^(-1)modφ(n);
   公      钥 :KU = {e,,n}
   私      钥 :KR = {d,n}
2,加      密
   明      文 :0≤M<n
   密      文 :C=M^e(mod n)
3,脱      密
   密      文 :0≤C<n
   明      文 :M=C^d(mod n)
 
 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
条理很清晰了,由于是算法我们如果大话将误人子弟。
看到这里各位是否有如下疑问(为了方便各位,我以问答的方式给出):
第一:RSA加密和解密都针对数字的运算如何用于非数字的加密?
答:如果你看过《大话计算机加密技术》你就应该知道,在计算机内部都属对数字的操作,那么第二个问题就来了。
第二:如何把非自然数的信息变化为自然数?
答:编码方式,如果以ASCII编码方式读入数据那么就可以将其化为对应的整数值,解密输出的时候再以ASCII编码输出。下面举例加密“I LOVE YOU”信息以ASCII读入

字符

 
ASCII值
I
73
空格
32
L
76
O
79
V
86
E
69
空格
32
Y
89
O
79
U
85

 

我们利用其对应值逐个加密。还有个问题一般的n值都非常大,就是说我们逐个加密太浪费时间了,我们可以将几个合并起来加密使它更接近n值,这样就减少了加密的算法的执行次数。接着的问题“如何合并”,比如要合并”I”和“空格”。你有多少种合并的方法,可行的有几种,试试吧,想知道答案和评测你的方法联系hdusec@126.com.用中国的阴阳对立学说可以推出另一个问题:如果合并的结果或者转化的结果不满足“0≤M<n”,请看下面问题。
第三:“0≤M<n”这样的限制如何处理?
答:分块加密。如果加密信息化为自然数时不满足要求,就要分块加密。问题是多多的,自己想想如何分块。有问题还是那个邮箱。
如果你是个爱刨根问底的人,你最大的疑惑就是RSA算法的道理何在。这是一个相对专业的问题,专业在数学上,如果学过数论也不是太大的问题,我三言两语也说不明白,你还是自己到http://en.wikipedia.org/wiki/RSA看看.
 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值