在密碼學里,有一種理想的加密方案,叫做一次一密亂碼本(one-time pad)。

          one-time pad的算法有以下要求:
          1、密鑰必須隨機產生
          2、密鑰不能重復使用
          3、密鑰和密文的長度是一樣的。

          one-time pad是最安全的加密算法,雙方一旦安全交換了密鑰,之后交換信息的過程就是絕對安全的啦。這種算法一直在一些要求高度機密的場合使用,據說美國和前蘇聯之間的熱線電話、前蘇聯的間諜都是使用One-time pad的方式加密的。不管超級計算機工作多久,也不管多少人,用什么方法和技術,具有多大的計算能力,都不可能破解。

          一次一密的一種實現方式,如下:
          public class OneTimePadUtil {
              
          public static byte[] xor(byte[] bytes, byte[] keyBytes) {
                  
          if (keyBytes.length != bytes.length) {
                      
          throw new IllegalArgumentException();
                  }


                  
          byte[] resultBytes = new byte[bytes.length];

                  
          for (int i = 0; i < resultBytes.length; ++i) {
                      resultBytes[i] 
          = (byte) (keyBytes[i] ^ bytes[i]);
                  }


                  
          return resultBytes;
              }

          }

          使用例子:
          String plainText = "溫少";
          String keyText 
          = "密碼";

          byte[] plainBytes = plainText.getBytes();
          byte[] keyBytes = keyText.getBytes();

          assert plainBytes.length 
          == keyBytes.length;

          //加密
          byte[] cipherBytes = OneTimePadUtil.xor(plainBytes, keyBytes);

          //解密
          byte[] cipherPlainBytes = OneTimePadUtil.xor(cipherBytes, keyBytes);


          這是最簡單的加密算法,但也是最安全的機密算法。前天和朋友討論到了這個問題,所以寫了這篇文章。

          posted on 2005-03-27 11:28 溫少的日志 閱讀(952) 評論(2)  編輯  收藏
          Comments
          • # re: 最安全的加密算法
            Curvesoft
            Posted @ 2006-03-23 16:18
            那么最關鍵的也最容易出問題的就在于“密鑰的交換”,呵呵  回復  更多評論   
          • # re: 最安全的加密算法
            masuz
            Posted @ 2006-10-23 15:29
            嗯,這個方法不錯!  回復  更多評論   

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
           
          主站蜘蛛池模板: 扎赉特旗| 酉阳| 桐梓县| 扎赉特旗| 灯塔市| 临泉县| 澎湖县| 崇左市| 仙桃市| 洮南市| 崇阳县| 进贤县| 大埔县| 金川县| 子长县| 历史| 历史| 通道| 泸西县| 青川县| 吴桥县| 玛多县| 康保县| 丹巴县| 高唐县| 奉贤区| 同德县| 迁西县| 深圳市| 鸡东县| 顺平县| 菏泽市| 黄平县| 灵丘县| 同江市| 颍上县| 凤山县| 金平| 图们市| 宜城市| 历史|