• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于JAVA的非對(duì)稱加密算法的研究與實(shí)現(xiàn)

      2018-09-10 11:19:44賈澤鋒崔夢(mèng)天王保琴
      關(guān)鍵詞:私鑰公鑰加密算法

      賈澤鋒,崔夢(mèng)天,王保琴,謝 琪,姜 玥

      (1.西南民族大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,四川 成都 610041;2.陸軍工程大學(xué)通信士官學(xué)校信息技術(shù)基礎(chǔ)教研室,重慶 400035)

      1 Java概述

      Java是大部分研發(fā)工程師愛好的一門語言,到目前為止它的使用率排名第一.Java之所以能有這樣的成績(jī)是因?yàn)樗峁┝撕芏喙δ苣K,這使得開發(fā)過程中解決問題減少了時(shí)間.如Java在安全領(lǐng)域里就包含了在JCA[1]的基礎(chǔ)上擴(kuò)展出的Java加密擴(kuò)展包JCE(Java Cryptography Extension),提供了DES算法、AES算法、RSA算法、DSA算法等各種加密算法、消息摘要算法和密鑰管理等功能[2].利用Java API提供的安全機(jī)制很容易實(shí)現(xiàn)對(duì)稱加密算法和非對(duì)稱加密算法.本文主要對(duì)非對(duì)稱加密算法在Java環(huán)境里的使用展開研究.

      2 RSA算法

      RSA加密算法是非對(duì)稱加密算法里最為典型的加密算法,也是目前使用最廣泛的非對(duì)稱加密算法[3-4],它是可以應(yīng)用在數(shù)據(jù)加密或者數(shù)字簽名場(chǎng)景中[4].這里以甲乙雙方傳遞信息為例[3],甲為消息發(fā) 送者,乙為消息接收者,如圖1和圖2所示:

      圖1 生成RSA算法密鑰對(duì)Fig.1 Generate RSA algorithm key pair

      圖2 甲向乙傳遞RSA算法加密數(shù)據(jù)Fig.2 A passes RSA algorithm encrypted data to B

      如圖1所示,完成公開密鑰的傳送,就可以進(jìn)行對(duì)數(shù)據(jù)加密進(jìn)行發(fā)送并解密如圖2所示.在非對(duì)稱加密算法中,私鑰加密的數(shù)據(jù)只能利用對(duì)應(yīng)的公鑰解密,簡(jiǎn)稱“私鑰加密,公鑰解密”[3],那么按原理上在RSA加密算法里“公鑰加密,私鑰解密”這種方法也是成立的.這使得拿到公鑰的一方能夠利用公鑰加密數(shù)據(jù)發(fā)送數(shù)據(jù)[3].如圖3所示:

      圖3 乙向甲傳遞RSA算法加密數(shù)據(jù)Fig.3 B transmits RSA algorithm encryption data to A

      如圖3是乙(接收者)使用甲(發(fā)送者)發(fā)送的公鑰加密數(shù)據(jù),甲利用自身的私鑰實(shí)現(xiàn)解密數(shù)據(jù),稱“公鑰加密,私鑰解密”[3].但是,這種方式不推薦使用,因?yàn)樵诠€傳遞的過程中,公鑰很可能被截獲,截獲到公鑰者也有可能給甲方發(fā)送數(shù)據(jù),這時(shí)甲方不能辨別真?zhèn)?,因此,“公鑰加密,私鑰解密”這種形式存在必定的安全隱患[5].

      2.1 數(shù)學(xué)原理

      RSA加密算法的數(shù)學(xué)原理是簡(jiǎn)單易懂.設(shè)密文為C,明文為E,則數(shù)據(jù)公式如下表達(dá)式:加密公式:C=ExmodN,則公鑰為(x,N);解密公式:E = CdmodN,則私鑰為(d,N)[6-10].其中mod是取余數(shù).

      下面我們舉例模擬生成密鑰對(duì):

      通過上面一系列求值最后得到:公鑰(5,323),私鑰(29,323).

      2.2 RSA在Java API中的實(shí)現(xiàn)

      關(guān)于Java API提供安全機(jī)制[11-12]的類詳解如圖4所示,本文通過用戶注冊(cè)與登錄的實(shí)例,應(yīng)用RSA算法在使用Java API實(shí)現(xiàn)對(duì)用戶登錄密碼加密與解密的過程,進(jìn)而體現(xiàn)出RSA算法在Java API中具體實(shí)現(xiàn)及使用[13].如圖5~圖9所示:

      圖4 RSA在Java API安全類圖Fig.4 RSA in Java API Security Class Diagram

      下面以用戶注冊(cè)與登錄為例,具體流程如圖5所示:

      圖5 注冊(cè)與登錄Fig.5 Registration and login

      (1)生成RSA算法的公鑰和私鑰,如圖6所示:

      圖6 生成RSA算法密鑰對(duì)Fig.6 Generate RSA algorithm key pair

      在得到公鑰和私鑰的時(shí)候通過BASE64Encoder轉(zhuǎn)化生成字符串結(jié)果如圖7所示:

      圖7 公鑰與私鑰結(jié)果圖Fig.7 Public key and private key result graph

      (2)得到公鑰和私鑰就可以進(jìn)行對(duì)數(shù)據(jù)的加密與解密的工作,用戶輸入的密碼data=“jiazefeng”為需要加密數(shù)據(jù)的數(shù)據(jù),如圖8和圖9所示:

      圖8 公鑰加密Fig.8 Public key encryption

      圖9 私鑰解密Fig.9 Private key decryption

      圖8和圖9中的data是代表需要加密與解密的數(shù)據(jù),運(yùn)行結(jié)果如圖10所示:

      圖10 加密、解密結(jié)果圖Fig.10 Encryption and decryption result graph

      3 結(jié)束語

      通過對(duì)RSA算法在JAVA API中的研究,可以應(yīng)用在對(duì)個(gè)人信息的保密或者是企業(yè)的信息保密.因RSA算法利用一對(duì)密鑰(公開密鑰,私有密鑰)來實(shí)現(xiàn)加密與解密,其操作簡(jiǎn)單,功能強(qiáng)大可以應(yīng)用在對(duì)數(shù)據(jù)進(jìn)行加密的任何場(chǎng)景下,RSA加密算法是目前最適合的一種加密算法,它被人們稱為高級(jí)數(shù)據(jù)加密算法,通過這一特點(diǎn)完美有效的進(jìn)行對(duì)數(shù)據(jù)加密,進(jìn)而有效的保護(hù)數(shù)據(jù)安全.

      猜你喜歡
      私鑰公鑰加密算法
      比特幣的安全性到底有多高
      基于改進(jìn)ECC 算法的網(wǎng)絡(luò)信息私鑰變換優(yōu)化方法
      一種基于混沌的公鑰加密方案
      一種基于虛擬私鑰的OpenSSL與CSP交互方案
      HES:一種更小公鑰的同態(tài)加密算法
      SM2橢圓曲線公鑰密碼算法綜述
      基于小波變換和混沌映射的圖像加密算法
      Hill加密算法的改進(jìn)
      基于格的公鑰加密與證書基加密
      對(duì)稱加密算法RC5的架構(gòu)設(shè)計(jì)與電路實(shí)現(xiàn)
      土默特左旗| 临桂县| 和政县| 荥经县| 岳阳市| 康马县| 靖江市| 武乡县| 吴旗县| 黄石市| 高阳县| 彰化市| 鹤峰县| 交城县| 平泉县| 西和县| 耒阳市| 商都县| 齐齐哈尔市| 贡觉县| 陇西县| 杭州市| 体育| 大厂| 建德市| 延安市| 富源县| 凤庆县| 富民县| 仁化县| 鹿泉市| 抚顺县| 淮北市| 周口市| 呼和浩特市| 稻城县| 平邑县| 锡林浩特市| 客服| 冷水江市| 梨树县|