当前位置:首页 » 操作系统 » 密钥传输算法

密钥传输算法

发布时间: 2024-07-30 03:19:47

Ⅰ 閲忓瓙瀵嗛挜鍒嗗彂锛圦KD锛夎﹁В

閲忓瓙瀵嗛挜鍒嗗彂锛圦KD锛夛细鎺㈢储镞犳浔浠跺畨鍏ㄩ氢俊镄勬柊閲岀▼纰

鍦ㄤ俊鎭镞朵唬镄勫姞瀵嗛氢俊涓栫晫涓锛屼紶缁熺殑锷犲瘑镓嬫垫i溃涓寸潃鍓嶆墍链链夌殑鎸戞垬銆备粠瀵圭О锷犲瘑镄勫瘑阍ヤ紶杈挞毦棰桡纴鍒伴潪瀵圭О锷犲瘑绠楁硶镄勫畨鍏ㄦт緷璧栦簬鏁板﹂毦棰樼殑锅囱撅纴链𨱒ョ殑涓岖‘瀹氭т护浜烘媴蹇с傜劧钥岋纴閲忓瓙锷犲瘑阃氢俊镄勫嚭鐜帮纴涓洪氢俊瀹夊叏甯︽潵浜嗛潻锻芥х殑绐佺牬銆傛湰鏂囧皢娣卞叆瑙f瀽閲忓瓙瀵嗛挜鍒嗗彂锛圦KD锛夎繖涓鍓嶆部鎶链锛屼互BB84鍗忚涓轰緥锛屾帰璁ㄥ叾鍦ㄥ厜绾ょ郴缁熶腑镄勫疄闄呭簲鐢ㄣ

棣栧厛锛岃╂垜浠锲炲埌浼犵粺镄勫姞瀵嗛氢俊銆傚圭О锷犲瘑绠楁硶渚濊禆浜庡叡浜瀵嗛挜锛屼絾瀵嗛挜镄勪紶杈撹繃绋嬫槗鍙楁敾鍑汇傞潪瀵圭О锷犲瘑绠楁硶镄勫叕阍ュ拰绉侀挜链哄埗鐪嬩技瑙e喅浜呜繖涓闂棰桡纴浣嗗叾瀹夊叏镐т粛鍙楅檺浜庢暟瀛﹂毦棰樼殑闅捐В镐с傜劧钥岋纴閲忓瓙锷犲瘑阃氢俊鍒椤畬鍏ㄤ笉钖岋纴瀹冨熀浜庨噺瀛愬姏瀛︾殑铡熺悊锛屾彁渚涗简涓绉嶆棤𨱒′欢瀹夊叏镄勯氢俊鏂瑰纺銆

閲忓瓙锷犲瘑镄勬牳蹇冩槸閲忓瓙瀵嗛挜鍒嗗彂锛岄氲繃閲忓瓙淇¢亾鐢熸垚涓瀵瑰彧链夐氢俊鍙屾柟鐭ユ檽镄勯噺瀛愬瘑阍ワ纴纭淇濋氢俊镄勭粷瀵逛缭瀵嗐侭B84鍜孊92鏄鍏朵腑链鐭ュ悕镄勫岗璁锛屽墠钥呭埄鐢ㄥ厜瀛愬亸鎸镐佽繘琛屼俊鎭浼犻掞纴钖庤呭垯鍙鑳芥秹鍙婂埌鍏夊瓙鐩镐綅淇℃伅銆傚湪鍏夌氦绯荤粺涓锛屼緥濡侭B84鍗忚锛屽彂阃佺闅忔満阃夋嫨锅忔尟姝d氦锘烘潵缂栫爜淇℃伅锛屾帴鏀剁镙规嵁阃夋嫨镄勬祴閲忓熀鎺ユ敹鍜岃В镰併

浠BB84鍗忚涓轰緥锛岄噺瀛愬瘑阍ュ垎鍙戣繃绋嫔垎涓轰笁姝ャ傞栧厛锛岄噺瀛愭佺殑鍏夊瓙琚璋冨埗鍒扮壒瀹氩亸鎸瑙掑害锛屾帴鏀剁阃氲繃锅忔尟鍒嗘尝鍣ㄦ娴嬨傚彂阃佺鍜屾帴鏀剁钖勮嚜闅忔満阃夋嫨锅忔尟锘猴纴褰挞夋嫨鐩稿悓镞讹纴镓嶈兘鍑嗙‘娴嬮噺鍒板瘑阍ャ傚叧阌鍦ㄤ簬锛岄噺瀛愬姏瀛︾殑鐗规х‘淇濅简鍗充娇链夌獌钖钥咃纴涔熸棤娉曞畬缇庡嶅埗鍏夊瓙鐘舵侊纴浠庤屾毚闇茬獌钖琛屼负銆

瀹夊叏镐у垎鏋愭槸閲忓瓙瀵嗛挜鍒嗗彂镄勬牳蹇冿纴鍏剁瓥鐣ュ湪浜庡叕寮閮ㄥ垎淇℃伅浠ユ娴嬬獌钖銆备緥濡傦纴鍙戦佺鍜屾帴鏀剁浼氩叕甯冮儴鍒嗗熀缁勯夋嫨锛屽傛灉鍙戠幇宸寮傦纴镒忓懗镌链夌獌钖钥呫傚湪瀹为檯镎崭綔涓锛屽嵆浣块溃瀵圭獌钖钥咃纴阃氲繃缁熻″垎鏋愶纴鍙浠ユ瀬澶у湴闄崭绠绐冨惉琚妫娴嬬殑姒傜巼锛屼粠钥岀‘淇濆ぇ閮ㄥ垎链鍏寮镄勫瘑阍ユ槸瀹夊叏镄勚

閲忓瓙锷犲瘑阃氢俊镄勫嚭鐜帮纴涓崭粎鎸戞垬浜嗕紶缁熷姞瀵嗘妧链锛岃缮涓烘湭𨱒ョ殑阃氢俊瀹夊叏鎻愪緵浜嗗叏鏂扮殑鍙鑳姐傞殢镌閲忓瓙鎶链镄勫彂灞曪纴閲忓瓙瀵嗛挜鍒嗗彂链夋湜鎴愪负淇℃伅瀹夊叏棰嗗烟镄勯吨瑕佹敮镆憋纴涓轰缭鎶ゆ垜浠镄勯殣绉佸拰鏁版嵁瀹夊叏镓揿紑浜嗕竴镓囧墠镓链链夌殑澶ч棬銆

娆蹭简瑙f洿澶氶噺瀛愬姞瀵嗙殑缁呜妭鍜屽簲鐢锛岃峰叧娉ㄣ愰殣绉佽$畻銆戜笓镙忥纴鎺㈢储閲忓瓙阃氢俊镄勬棤闄愬彲鑳姐

Ⅱ CISSP锛氩圭О瀵嗛挜绠楁硶

鍦ㄤ俊鎭瀹夊叏镄勫姞瀵嗕笘鐣屼腑锛屽圭О瀵嗛挜绠楁硶鐘瑰备竴鎶婂弻鍒冨墤锛屽叾镙稿绩铡熺悊鏄鍒╃敤钖屼竴瀵嗛挜杩涜屽姞瀵嗗拰瑙e瘑锛岃繖灏辨剰锻崇潃鍏变韩瀵嗛挜鎴愪负鍏抽敭銆傛瘆濡傚彜缃楅┈镞舵湡镄勫嚡鎾掑瘑镰侊纴铏界劧绠鍗曪纴鍗存彮绀轰简瀵圭О锷犲瘑镄勫师濮嬮瓍锷涖傜劧钥岋纴瀹幂殑鑳屽悗涔熼殣钘忕潃鎸戞垬锛氱侀挜镄勪弗镙间缭瀵嗘槸纭淇濆畨鍏ㄧ殑鍓嶆彁锛屽圭О锷犲瘑鍦ㄥ彲镓╁𪾢镐т笂鏄惧缑鎹夎熻佽倶锛屽瘑阍ョ$悊镄勫嶆潅镐т娇寰楀畾链熸洿鎹㈠拰缁存姢鎴愪负蹇呰侊纴钥屼笖鍦ㄤ笉鍙钖﹁ゆф柟闱锛屽畠鐣ユ樉涔忓姏銆

娣卞叆鎺㈣ㄥ圭О锷犲瘑绠楁硶锛娈ES浠56浣嶅瘑阍ュ拰16杞杞鎹㈣㔉棰栬屽嚭锛屾湁浜旂嶆搷浣沧ā寮忥纴濡侲CB锛堢数瀛愬瘑镰佹湰妯″纺锛夈丆BC锛埚瘑鏂囧潡 chaining锛岀‘淇濅笉钖屾槑鏂囦骇鐢熶笉钖岀殑瀵嗘枃锛夈丆FB锛圕ipher Feedback锛屽疄镞跺勭悊阃熷害蹇锛夈丱FB锛圤utput Feedback锛屽归敊澶勭悊锛夊拰CTR锛圕ounter锛屾洿蹇镄勯愬潡鍙樻崲锛岄氲繃瀛椾覆搴忓彿鍜屽埯濮嫔寲钖戦噺璁$畻瀵嗛挜娴侊级銆

铹惰岋纴ECB妯″纺镄勫畨鍏ㄩ殣鎭f樉钥屾槗瑙侊纴涓嶉傚悎澶勭悊闀挎枃链銆傜浉姣斾箣涓嬶纴CBC妯″纺铏界劧纭淇濅简淇℃伅镄勭嫭绔嬫э纴浣嗗湪澶勭悊IV锛埚埯濮嫔寲钖戦噺锛夋椂锛岃嫢镞犳硶淇濇寔涓嶅彉锛屽彲鑳戒细瀵艰嚧镞犳硶瑙e瘑銆侰TR妯″纺鍒欐槸鏀硅繘鐗堬纴鍒╃敤绉嶅瓙鍊艰繘涓姝ュ炲己瀹夊叏镐с

3DES镄勫嚭鐜版槸瀵笵ES瀹夊叏镐х殑澧炲己锛岄氲繃DES-EEE3锛168浣嶅瘑阍ワ级鍜娈ES-EDE3锛112浣嶅瘑阍ワ级绛夊彉浣撴彁鍗囧姞瀵嗗己搴︺侷DEA涓嶥ES绫讳技锛屼絾瀵嗛挜闀垮害镟撮暱锛岀敤浜庤宪钖岖殑PGP锷犲瘑鍗忚锛埚晢涓氱増浣跨敤RSA锛屽厤璐圭増浣跨敤CAST锛夈

Blowfish浠ュ叾镟村揩镄勯熷害鍜屽彲鍙樼殑瀵嗛挜闀垮害锛屾垚涓轰竴绉嶅叕寮涓斿厤璐圭殑阃夋嫨锛屽敖绠$编锲芥敛搴滃苟链骞挎硾閲囩敤銆傝孲kipjack鍒椤洜鏀垮簻瀵笵ES镄勬浛浠h屽囧弹鍏虫敞锛屼絾鍏舵敮鎸佸瘑阍ユ墭绠$殑鐗规у苟链璧㈠缑骞挎硾娆㈣繋銆

RC5铏界劧阃熷害鏋佸揩锛屼絾鏄揿弹镰磋В锛屽父瑙佷簬SSL涓镄勫姞瀵嗕缭鎶ゃ侫ES锛屼綔涓2000骞村笵ES镄勫叏闱㈡浛浠o纴浠ョ编锲芥爣鍑嗙殑韬浠斤纴鎻愪緵浜嗕笁绉嶅瘑阍ラ暱搴﹀拰涓嶅悓寮哄害镄勯夋嫨銆侫ES锘轰簬Rijndael绠楁硶锛孋CMP鍗忚浣滀负802.11i镙囧嗳镄勪竴閮ㄥ垎锛岀‘淇濅简娑堟伅瀹屾暣镐у拰鏁版嵁闅愮併

鍦ㄥ圭О瀵嗛挜绠$悊涓锛屽瘑阍ョ殑鍒嗗彂鍜屽瓨鍌ㄨ呖鍏抽吨瑕侊纴阆靛惊钬滃垎绂荤煡璇嗏濆师鍒欙纴濡侹DC锛𪢮ey Distribution Center锛夎礋璐d富瀵嗛挜鍜屼细璇濆瘑阍ョ殑绠$悊銆傚瘑阍ョ殑鍒嗗彂鏂瑰纺澶氱嶅氭牱锛屽寘𨰾绂荤嚎鍒嗗彂锛堜緷璧栫墿鐞呜繛鎺ワ纴瀛桦湪椋庨橹锛夈佸叕阍ュ姞瀵嗭纸楠岃瘉韬浠藉拰瀹夊叏浼犺緭锛夈佷互鍙奃iffie-Hellman鍗忚锛堥潪瀵圭О锷犲瘑镄勫瘑阍ヤ氦鎹㈡満鍒讹级銆

镐讳箣锛屽圭О瀵嗛挜绠楁硶鍦ㄤ俊鎭瀹夊叏涓鍗犳嵁閲嶈佸湴浣嶏纴灏界″瓨鍦ㄥ眬闄愶纴浣嗗叾楂樻晥镐у拰搴旂敤骞挎硾镐т粛浣垮叾鍦ㄧ幇浠e姞瀵嗘妧链涓鍗犳嵁涓甯涔嫔湴銆傚悓镞讹纴闅忕潃鎶链镄勫彂灞曪纴瀵圭О瀵嗛挜绠$悊镄勬写鎴树篃鍦ㄤ笉鏂琚镰磋В涓庡簲瀵广

Ⅲ psk锛堥勫叡浜瀵嗛挜锛

鍦ㄨ$畻链虹绣缁滃拰阃氢俊棰嗗烟锛孭SK锛堥勫叡浜瀵嗛挜锛夋槸涓绉岖敤浜庡畨鍏ㄩ氢俊镄勫姞瀵嗙畻娉曘傚畠鏄涓绉嶅圭О瀵嗛挜锷犲瘑绠楁硶锛屼娇鐢ㄧ浉钖岀殑瀵嗛挜杩涜屽姞瀵嗗拰瑙e瘑銆侾SK阃氲繃浜嫔厛鍏变韩瀵嗛挜镄勬柟寮忥纴纭淇濋氢俊鍙屾柟涔嬮棿镄勬暟鎹浼犺緭鏄瀹夊叏镄勚

PSK镄勫伐浣滃师鐞

PSK镄勫伐浣滃师鐞嗗彲浠ョ亩鍗曟傛嫭涓轰互涓嫔嚑涓姝ラわ细

瀵嗛挜鐢熸垚锛氶氢俊鍙屾柟鍦ㄩ氢俊涔嫔墠闇瑕佺敓鎴愪竴涓鍏变韩镄勫瘑阍ャ傝繖涓瀵嗛挜鍙浠ラ氲繃瀹夊叏镄勯氶亾浼犺緭缁椤规柟锛屼篃鍙浠ラ氲繃鍏朵粬瀹夊叏镄勬柟寮忓叡浜缁椤规柟銆

锷犲瘑锛氩湪杩涜岄氢俊涔嫔墠锛岄氢俊鍙屾柟闇瑕佷娇鐢ㄥ叡浜镄勫瘑阍ュ硅佷紶杈撶殑鏁版嵁杩涜屽姞瀵嗐傚姞瀵嗗悗镄勬暟鎹鍙鑳介氲繃鐩稿悓镄勫瘑阍ヨ繘琛岃В瀵嗐

浼犺緭锛氩姞瀵嗗悗镄勬暟鎹阃氲繃缃戠粶杩涜屼紶杈撱

瑙e瘑锛氭帴鏀舵柟浣跨敤鐩稿悓镄勫瘑阍ュ规帴鏀跺埌镄勬暟鎹杩涜岃В瀵嗭纴杩桦师涓哄师濮嬫暟鎹銆

PSK镄勪紭锷

PSK鐩稿逛簬鍏朵粬锷犲瘑绠楁硶鍏锋湁浠ヤ笅鍑犱釜浼桦娍锛

绠鍗曟槗鐢锛歅SK镄勫姞瀵嗗拰瑙e瘑杩囩▼鐩稿圭亩鍗曪纴瀹炵幇璧锋潵姣旇缉瀹规槗銆

楂樻晥镐ц兘锛歅SK浣跨敤瀵圭О瀵嗛挜锷犲瘑绠楁硶锛屽姞瀵嗗拰瑙e瘑镄勯熷害杈冨揩锛岄傜敤浜庡疄镞堕氢俊绛夊规ц兘瑕佹眰杈冮珮镄勫満鏅銆

瀹夊叏镐э细鐢变簬瀵嗛挜鏄浜嫔厛鍏变韩镄勶纴PSK鍙浠ユ彁渚涜缉楂樼殑瀹夊叏镐с傞櫎闱炲瘑阍ヨ娉勯湶锛屽惁鍒欑涓夋柟镞犳硶瑙e瘑锷犲瘑镄勬暟鎹銆

PSK镄勫簲鐢

PSK骞挎硾搴旂敤浜庡悇绉岖绣缁滈氢俊鍦烘櫙锛屽寘𨰾镞犵嚎灞锘熺绣锛圵LAN锛夈佽櫄𨰾熶笓鐢ㄧ绣缁滐纸VPN锛夌瓑銆

PSK鍦ㄦ棤绾垮眬锘熺绣涓镄勫簲鐢

鍦ㄦ棤绾垮眬锘熺绣涓锛孭SK琚鐢ㄤ簬淇濇姢镞犵嚎缃戠粶镄勫畨鍏ㄣ傞氩父锛屾棤绾胯矾鐢卞櫒浼氶勫厛璁剧疆涓涓狿SK锛岀敤鎴峰湪杩炴帴镞犵嚎缃戠粶镞堕渶瑕佽緭鍏ユg‘镄凯SK镓嶈兘鎴愬姛杩炴帴銆傝繖镙峰彲浠ラ槻姝㈡湭缁忔巿𨱒幂殑璁惧囱块梾镞犵嚎缃戠粶锛屽苟淇濇姢鐢ㄦ埛镄勬暟鎹瀹夊叏銆

PSK鍦ㄨ櫄𨰾熶笓鐢ㄧ绣缁滀腑镄勫簲鐢

鍦ㄨ櫄𨰾熶笓鐢ㄧ绣缁滀腑锛孭SK琚鐢ㄤ簬寤虹珛瀹夊叏镄勯氢俊闅ч亾銆傞氢俊鍙屾柟阃氲繃浜嫔厛鍏变韩镄勫瘑阍ヨ繘琛屽姞瀵嗗拰瑙e瘑锛岀‘淇濋氢俊鏁版嵁镄勬満瀵嗘у拰瀹屾暣镐с侾SK鍙浠ラ槻姝㈢涓夋柟绐冨惉鍜岀℃敼阃氢俊鏁版嵁锛屾彁渚涘畨鍏ㄧ殑杩灭▼璁块梾鍜屾暟鎹浼犺緭銆

濡备綍浣跨敤PSK杩涜屽畨鍏ㄩ氢俊锛

浣跨敤PSK杩涜屽畨鍏ㄩ氢俊镄勬ラゅ备笅锛

鐢熸垚瀵嗛挜锛氶氢俊鍙屾柟闇瑕佺敓鎴愪竴涓鍏变韩镄勫瘑阍ャ傚彲浠ヤ娇鐢ㄥ瘑镰佸︾畻娉旷敓鎴愪竴涓闅忔満镄勫瘑阍ャ

鍏变韩瀵嗛挜锛氩皢鐢熸垚镄勫瘑阍ラ氲繃瀹夊叏镄勯氶亾鎴栧叾浠栧畨鍏ㄧ殑鏂瑰纺鍏变韩缁椤规柟銆

锷犲瘑鏁版嵁锛氩彂阃佹柟浣跨敤鍏变韩镄勫瘑阍ュ硅佷紶杈撶殑鏁版嵁杩涜屽姞瀵嗐

浼犺緭鏁版嵁锛氩姞瀵嗗悗镄勬暟鎹阃氲繃缃戠粶杩涜屼紶杈撱

瑙e瘑鏁版嵁锛氭帴鏀舵柟浣跨敤鐩稿悓镄勫瘑阍ュ规帴鏀跺埌镄勬暟鎹杩涜岃В瀵嗭纴杩桦师涓哄师濮嬫暟鎹銆

Ⅳ 如何描述RSA密钥交换算法

密钥交换算法中讲到的密钥都是一般指对称加密算法的密钥(注意区别:非对称算法自己本身的密钥),因为对于对称算法的特性来说,采取”一次一密”的话才比较安全。

RSA,可以用做密钥传输算法,即使用对端的RSA公钥对密钥进行加密,对端使用自己的私钥对其进行解密耐春嫌,昌手就可以获取密钥。

RSA密钥生森如成步骤:

Ⅳ 常见的加密算法、原理、优缺点、用途

在安全领域,利用密钥加密算法来对通信的过程进行加密是一种常见的安全手段。利用该手段能够保障数据安全通信的三个目标:

而常见的密钥加密算法类型大体可以分为三类:对称加密、非对称加密、单向加密。下面我们来了解下相关的算法原理及其常见的算法。

在加密传输中最初是采用对称密钥方式,也就是加密和解密都用相同的密钥。

1.对称加密算法采用单密钥加密,在通信过程中,数据发送方将原始数据分割成固定大小的块,经过密钥和加密算法逐个加密后,发送给接收方

2.接收方收到加密后的报文后,结合解密算法使用相同密钥解密组合后得出原始数据。

图示:

非对称加密算法采用公钥和私钥两种不同的密码来进行加解密。公钥和私钥是成对存在,公钥是从私钥中提取产生公开给所有人的,如果使用公钥对数据进行加密,那么只有对应的私钥(不能公开)才能解密,反之亦然。N 个用户通信,需要2N个密钥。

非对称密钥加密适合对密钥或身份信息等敏感信息加密,从而在安全性上满足用户的需求。

1.甲使用乙的公钥并结合相应的非对称算法将明文加密后发送给乙,并将密文发送给乙。
2.乙收到密文后,结合自己的私钥和非对称算法解密得到明文,得到最初的明文。

图示:

单向加密算法只能用于对数据的加密,无法被解密,其特点为定长输出、雪崩效应(少量消息位的变化会引起信息摘要的许多位变化)。

单向加密算法常用于提取数据指纹,验证数据的完整性、数字摘要、数字签名等等。

1.发送者将明文通过单向加密算法加密生成定长的密文串,然后传递给接收方。

2.接收方将用于比对验证的明文使用相同的单向加密算法进行加密,得出加密后的密文串。

3.将之与发送者发送过来的密文串进行对比,若发送前和发送后的密文串相一致,则说明传输过程中数据没有损坏;若不一致,说明传输过程中数据丢失了。

图示:

MD5、sha1、sha224等等

密钥交换IKE(Internet Key Exchange)通常是指双方通过交换密钥来实现数据加密和解密

常见的密钥交换方式有下面两种:

将公钥加密后通过网络传输到对方进行解密,这种方式缺点在于具有很大的可能性被拦截破解,因此不常用

DH算法是一种密钥交换算法,其既不用于加密,也不产生数字签名。

DH算法通过双方共有的参数、私有参数和算法信息来进行加密,然后双方将计算后的结果进行交换,交换完成后再和属于自己私有的参数进行特殊算法,经过双方计算后的结果是相同的,此结果即为密钥。

如:

安全性

在整个过程中,第三方人员只能获取p、g两个值,AB双方交换的是计算后的结果,因此这种方式是很安全的。

答案:使用公钥证书

公钥基础设施是一个包括硬件、软件、人员、策略和规程的集合

用于实现基于公钥密码机制的密钥和证书的生成、管理、存储、分发和撤销的功能

签证机构CA、注册机构RA、证书吊销列表CRL和证书存取库CB。

公钥证书是以数字签名的方式声明,它将公钥的值绑定到持有对应私钥的个人、设备或服务身份。公钥证书的生成遵循X.509协议的规定,其内容包括:证书名称、证书版本、序列号、算法标识、颁发者、有效期、有效起始日期、有效终止日期、公钥 、证书签名等等的内容。

1.客户A准备好要传送的数字信息(明文)。(准备明文)

2.客户A对数字信息进行哈希(hash)运算,得到一个信息摘要。(准备摘要)

3.客户A用CA的私钥(SK)对信息摘要进行加密得到客户A的数字签名,并将其附在数字信息上。(用私钥对数字信息进行数字签名)

4.客户A随机产生一个加密密钥(DES密钥),并用此密钥对要发送的信息进行加密,形成密文。 (生成密文)

5.客户A用双方共有的公钥(PK)对刚才随机产生的加密密钥进行加密,将加密后的DES密钥连同密文一起传送给乙。(非对称加密,用公钥对DES密钥进行加密)

6.银行B收到客户A传送过来的密文和加过密的DES密钥,先用自己的私钥(SK)对加密的DES密钥进行解密,得到DES密钥。(用私钥对DES密钥解密)

7.银行B然后用DES密钥对收到的密文进行解密,得到明文的数字信息,然后将DES密钥抛弃(即DES密钥作废)。(解密文)

8.银行B用双方共有的公钥(PK)对客户A的数字签名进行解密,得到信息摘要。银行B用相同的hash算法对收到的明文再进行一次hash运算,得到一个新的信息摘要。(用公钥解密数字签名)

9.银行B将收到的信息摘要和新产生的信息摘要进行比较,如果一致,说明收到的信息没有被修改过。(对比信息摘要和信息)

答案是没法保证CA的公钥没有被篡改。通常操作系统和浏览器会预制一些CA证书在本地。所以发送方应该去那些通过认证的CA处申请数字证书。这样是有保障的。

但是如果系统中被插入了恶意的CA证书,依然可以通过假冒的数字证书发送假冒的发送方公钥来验证假冒的正文信息。所以安全的前提是系统中不能被人插入非法的CA证书。

END

Ⅵ 公钥密码系统及RSA公钥算法

公钥密码系统及RSA公钥算法

本文简单介绍了公开密钥密码系统的思想和特点,并具体介绍了RSA算法的理论基础,工作原理和具体实现过程,并通过一个简单例子说明了该算法是如何实现。在本文的最后,概括说明了RSA算法目前存在的一些缺点和解决方法。

关键词:公钥密码体制 , 公钥 ,私钥 ,RSA

§1引言

随着计算机联网的逐步实现,Internet前景越来越美好,全球经济发展正在进入信息经济时代,知识经济初见端倪。计算机信息的保密问题显得越来越重要,无论是个人信息通信还是电子商务发展,都迫切需要保证Internet网上信息传输的安全,需要保证信息安全。信息安全技术是一门综合学科,它涉及信息论、计算机科学和密码学等多方面知识,它的主要任务是研究计算机系统和通信网络内信息的保护方法以实现系统内信息的安全、保密、真实和完整。其中,信息安全的核心是密码技术。密码技术是集数学、计算机科学、电子与通信等诸多学科于一身的交叉学科。它不仅能够保证机密性信息的加密,而且能够实现数字签名、身份验证、系统安全等功能。是现代化发展的重要科学之一。本文将对公钥密码系统及该系统中目前最广泛流行的RSA算法做一些简单介绍。

§2公钥密码系统

要说明公钥密码系统,首先来了解一下不同的加密算法:目前的加密算法按密钥方式可分为单钥密码算法和公钥密码算法。

2.1.单钥密码

又称对称式密码,是一种比较传统的加密方式,其加密运算、解密运算使用的是同样的密钥,信息的发送者和信息的接收者在进行信息的传输与处理时,必须共同持有该密码(称为对称密码)。因此,通信双方都必须获得这把钥匙,并保持钥匙的秘密。

单钥密码系统的安全性依赖于以下两个因素:第一,加密算法必须是足够强的,仅仅基于密文本身去解密信息在实践上是不可能的;第二,加密方法的安全性依赖于密钥的秘密性,而不是算法的秘密性,因此,我们没有必要确保算法的秘密性(事实上,现实中使用的很多单钥密码系统的算法都是公开的),但是我们一定要保证密钥的秘密性。

从单钥密码的这些特点我们容易看出它的主要问题有两点:第一,密钥量问题。在单钥密码系统中,每一对通信者就需要一对密钥,当用户增加时,必然会带来密钥量的成倍增长,因此在网络通信中,大量密钥的产生﹑存放和分配将是一个难以解决的问题。第二,密钥分发问题。单钥密码系统中,加密的安全性完全依赖于对密钥的保护,但是由于通信双方使用的是相同的密钥,人们又不得不相互交流密钥,所以为了保证安全,人们必须使用一些另外的安全信道来分发密钥,例如用专门的信使来传送密钥,这种做法的代价是相当大的,甚至可以说是非常不现实的,尤其在计算机网络环境下,人们使用网络传送加密的文件,却需要另外的安全信道来分发密钥,显而易见,这是非常不智是甚至是荒谬可笑的。

2.2公钥密码

正因为单钥密码系统存在如此难以解决的缺点,发展一种新的﹑更有效﹑更先进的密码体制显得更为迫切和必要。在这种情况下,出现了一种新的公钥密码体制,它突破性地解决了困扰着无数科学家的密钥分发问题,事实上,在这种体制中,人们甚至不用分发需要严格保密的密钥,这次突破同时也被认为是密码史上两千年来自单码替代密码发明以后最伟大的成就。

这一全新的思想是本世纪70年代,美国斯坦福大学的两名学者Diffie和Hellman提出的,该体制与单钥密码最大的不同是:

在公钥密码系统中,加密和解密使用的是不同的密钥(相对于对称密钥,人们把它叫做非对称密钥),这两个密钥之间存在着相互依存关系:即用其中任一个密钥加密的信息只能用另一个密钥进行解密。这使得通信双方无需事先交换密钥就可进行保密通信。其中加密密钥和算法是对外公开的,人人都可以通过这个密钥加密文件然后发给收信者,这个加密密钥又称为公钥;而收信者收到加密文件后,它可以使用他的解密密钥解密,这个密钥是由他自己私人掌管的,并不需要分发,因此又成称为私钥,这就解决了密钥分发的问题。

为了说明这一思想,我们可以考虑如下的类比:

两个在不安全信道中通信的人,假设为Alice(收信者)和Bob(发信者),他们希望能够安全的通信而不被他们的敌手Oscar破坏。Alice想到了一种办法,她使用了一种锁(相当于公钥),这种锁任何人只要轻轻一按就可以锁上,但是只有Alice的钥匙(相当于私钥)才能够打开。然后Alice对外发送无数把这样的锁,任何人比如Bob想给她寄信时,只需找到一个箱子,然后用一把Alice的锁将其锁上再寄给Alice,这时候任何人(包括Bob自己)除了拥有钥匙的Alice,都不能再打开箱子,这样即使Oscar能找到Alice的锁,即使Oscar能在通信过程中截获这个箱子,没有Alice的钥匙他也不可能打开箱子,而Alice的钥匙并不需要分发,这样Oscar也就无法得到这把“私人密钥”。

从以上的介绍可以看出,公钥密码体制的思想并不复杂,而实现它的关键问题是如何确定公钥和私钥及加/解密的算法,也就是说如何找到“Alice的锁和钥匙”的问题。我们假设在这种体制中, PK是公开信息,用作加密密钥,而SK需要由用户自己保密,用作解密密钥。加密算法E和解密算法D也都是公开的。虽然SK与PK是成对出现,但却不能根据PK计算出SK。它们须满足条件:

①加密密钥PK对明文X加密后,再用解密密钥SK解密,即可恢复出明文,或写为:DSK(EPK(X))=X

②加密密钥不能用来解密,即DPK(EPK(X))≠X

③在计算机上可以容易地产生成对的PK和SK。

④从已知的PK实际上不可能推导出SK。

⑤加密和解密的运算可以对调,即:EPK(DSK(X))=X

从上述条件可看出,公开密钥密码体制下,加密密钥不等于解密密钥。加密密钥可对外公开,使任何用户都可将传送给此用户的信息用公开密钥加密发送,而该用户唯一保存的私人密钥是保密的,也只有它能将密文复原、解密。虽然解密密钥理论上可由加密密钥推算出来,但这种算法设计在实际上是不可能的,或者虽然能够推算出,但要花费很长的时间而成为不可行的。所以将加密密钥公开也不会危害密钥的安全。

这种体制思想是简单的,但是,如何找到一个适合的算法来实现这个系统却是一个真正困扰密码学家们的难题,因为既然Pk和SK是一对存在着相互关系的密钥,那么从其中一个推导出另一个就是很有可能的,如果敌手Oscar能够从PK推导出SK,那么这个系统就不再安全了。因此如何找到一个合适的算法生成合适的Pk和SK,并且使得从PK不可能推导出SK,正是迫切需要密码学家们解决的一道难题。这个难题甚至使得公钥密码系统的发展停滞了很长一段时间。

为了解决这个问题,密码学家们考虑了数学上的陷门单向函数,下面,我们可以给出它的非正式定义:

Alice的公开加密函数应该是容易计算的,而计算其逆函数(即解密函数)应该是困难的(对于除Alice以外的人)。许多形式为Y=f(x)的函数,对于给定的自变量x值,很容易计算出函数Y的值;而由给定的Y值,在很多情况下依照函数关系f (x)计算x值十分困难。这样容易计算但难于求逆的函数,通常称为单向函数。在加密过程中,我们希望加密函数E为一个单项的单射函数,以便可以解密。虽然目前还没有一个函数能被证明是单向的,但是有很多单射函数被认为是单向的。

例如,有如下一个函数被认为是单向的,假定n为两个大素数p和q的乘积,b为一个正整数,那么定义f:

f (x )= x b mod n

(如果gcd(b,φ(n))=1,那么事实上这就是我们以下要说的RSA加密函数)

如果我们要构造一个公钥密码体制,仅给出一个单向的单射函数是不够的。从Alice的观点来看,并不需要E是单向的,因为它需要用有效的方式解密所收到的信息。因此,Alice应该拥有一个陷门,其中包含容易求出E的你函数的秘密信息。也就是说,Alice可以有效解密,因为它有额外的秘密知识,即SK,能够提供给你解密函数D。因此,我们称一个函数为一个陷门单向函数,如果它是一个单向函数,并在具有特定陷门的知识后容易求出其逆。

考虑上面的函数f (x) = xb mod n。我们能够知道其逆函数f -1有类似的形式f (x ) = xa mod n,对于合适的取值a。陷门就是利用n的因子分解,有效的算出正确的指数a(对于给定的b)。

为方便起见,我们把特定的某类陷门单向函数计为?。那么随机选取一个函数f属于?,作为公开加密函数;其逆函数f-1是秘密解密函数。那么公钥密码体制就能够实现了。

根据以上关于陷门单向函数的思想,学者们提出了许多种公钥加密的方法,它们的安全性都是基于复杂的数学难题。根据所基于的数学难题,至少有以下三类系统目前被认为是安全和有效的:大整数因子分解系统(代表性的有RSA)、椭园曲线离散对数系统(ECC)和离散对数系统(代表性的有DSA)。

§3 RSA算法

3.1简介

当前最着名、应用最广泛的公钥系统RSA是在1978年,由美国麻省理工学院(MIT)的Rivest、Shamir和Adleman在题为《获得数字签名和公开钥密码系统的方法》的论文中提出的。它是一个基于数论的非对称(公开钥)密码体制,是一种分组密码体制。其名称来自于三个发明者的姓名首字母。它的安全性是基于大整数素因子分解的困难性,而大整数因子分解问题是数学上的着名难题,至今没有有效的方法予以解决,因此可以确保RSA算法的安全性。RSA系统是公钥系统的最具有典型意义的方法,大多数使用公钥密码进行加密和数字签名的产品和标准使用的都是RSA算法。

RSA算法是第一个既能用于数据加密也能用于数字签名的算法,因此它为公用网络上信息的加密和鉴别提供了一种基本的方法。它通常是先生成一对RSA密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册,人们用公钥加密文件发送给个人,个人就可以用私钥解密接受。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。

该算法基于下面的两个事实,这些事实保证了RSA算法的安全有效性:

1)已有确定一个数是不是质数的快速算法;

2)尚未找到确定一个合数的质因子的快速算法。

3.2工作原理

1)任意选取两个不同的大质数p和q,计算乘积r=p*q;

2)任意选取一个大整数e,e与(p-1)*(q-1)互质,整数e用做加密密钥。注意:e的选取是很容易的,例如,所有大于p和q的质数都可用。

3)确定解密密钥d:d * e = 1 molo(p - 1)*(q - 1) 根据e、p和q可以容易地计算出d。

4)公开整数r和e,但是不公开d;

5)将明文P (假设P是一个小于r的整数)加密为密文C,计算方法为:

C = Pe molo r

6)将密文C解密为明文P,计算方法为:

P = Cd molo r

然而只根据r和e(不是p和q)要计算出d是不可能的。因此,任何人都可对明文进行加密,但只有授权用户(知道d)才可对密文解密。

3.3简单实例

为了说明该算法的工作过程,我们下面给出一个简单例子,显然我们在这只能取很小的数字,但是如上所述,为了保证安全,在实际应用上我们所用的数字要大的多得多。

例:选取p=3, q=5,则r=15,(p-1)*(q-1)=8。选取e=11(大于p和q的质数),通过d * 11 = 1 molo 8,计算出d =3。

假定明文为整数13。则密文C为

C = Pe molo r

= 1311 molo 15

= 1,792,160,394,037 molo 15

= 7

复原明文P为:

P = Cd molo r

= 73 molo 15

= 343 molo 15

= 13

因为e和d互逆,公开密钥加密方法也允许采用这样的方式对加密信息进行"签名",以便接收方能确定签名不是伪造的。

假设A和B希望通过公开密钥加密方法进行数据传输,A和B分别公开加密算法和相应的密钥,但不公开解密算法和相应的密钥。A和B的加密算法分别是ECA和ECB,解密算法分别是DCA和DCB,ECA和DCA互逆,ECB和DCB互逆。 若A要向B发送明文P,不是简单地发送ECB(P),而是先对P施以其解密算法DCA,再用加密算法ECB对结果加密后发送出去。

密文C为:

C = ECB(DCA(P))

B收到C后,先后施以其解密算法DCB和加密算法ECA,得到明文P:

ECA(DCB(C))

= ECA(DCB(ECB(DCA(P))))

= ECA(DCA(P))/*DCB和ECB相互抵消*/

=

P          /*DCB和ECB相互抵消*/

这样B就确定报文确实是从A发出的,因为只有当加密过程利用了DCA算法,用ECA才能获得P,只有A才知道DCA算法,没 有人,即使是B也不能伪造A的签名。

3.4优缺点

3.4.1优点

RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。该算法的加密密钥和加密算法分开,使得密钥分配更为方便。它特别符合计算机网络环境。对于网上的大量用户,可以将加密密钥用电话簿的方式印出。如果某用户想与另一用户进行保密通信,只需从公钥簿上查出对方的加密密钥,用它对所传送的信息加密发出即可。对方收到信息后,用仅为自己所知的解密密钥将信息脱密,了解报文的内容。由此可看出,RSA算法解决了大量网络用户密钥管理的难题,这是公钥密码系统相对于对称密码系统最突出的优点。

3.4.2缺点

1)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。

2)安全性, RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价,而且密码学界多数人士倾向于因子分解不是NPC问题。目前,人们已能分解140多个十进制位的大素数,这就要求使用更长的密钥,速度更慢;另外,目前人们正在积极寻找攻击RSA的方法,如选择密文攻击,一般攻击者是将某一信息作一下伪装(Blind),让拥有私钥的实体签署。然后,经过计算就可得到它所想要的信息。实际上,攻击利用的都是同一个弱点,即存在这样一个事实:乘幂保留了输入的乘法结构:

( XM )d = Xd *Md mod n

前面已经提到,这个固有的问题来自于公钥密码系统的最有用的特征--每个人都能使用公钥。但从算法上无法解决这一问题,主要措施有两条:一条是采用好的公钥协议,保证工作过程中实体不对其他实体任意产生的信息解密,不对自己一无所知的信息签名;另一条是决不对陌生人送来的随机文档签名,签名时首先使用One-Way Hash Function对文档作HASH处理,或同时使用不同的签名算法。除了利用公共模数,人们还尝试一些利用解密指数或φ(n)等等攻击.

3)速度太慢,由于RSA的分组长度太大,为保证安全性,n至少也要600 bitx以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。目前,SET(Secure Electronic Transaction)协议中要求CA采用2048比特长的密钥,其他实体使用1024比特的密钥。为了速度问题,目前人们广泛使用单,公钥密码结合使用的方法,优缺点互补:单钥密码加密速度快,人们用它来加密较长的文件,然后用RSA来给文件密钥加密,极好的解决了单钥密码的密钥分发问题。

§4结束语

目前,日益激增的电子商务和其它因特网应用需求使公钥体系得以普及,这些需求量主要包括对服务器资源的访问控制和对电子商务交易的保护,以及权利保护、个人隐私、无线交易和内容完整性(如保证新闻报道或股票行情的真实性)等方面。公钥技术发展到今天,在市场上明显的发展趋势就是PKI与操作系统的集成,PKI是“Public

Key Infrastructure”的缩写,意为“公钥基础设施”。公钥体制广泛地用于CA认证、数字签名和密钥交换等领域。

公钥加密算法中使用最广的是RSA。RSA算法研制的最初理念与目标是努力使互联网安全可靠,旨在解决DES算法秘密密钥的利用公开信道传输分发的难题。而实际结果不但很好地解决了这个难题;还可利用RSA来完成对电文的数字签名以抗对电文的否认与抵赖;同时还可以利用数字签名较容易地发现攻击者对电文的非法篡改,以保护数据信息的完整性。目前为止,很多种加密技术采用了RSA算法,该算法也已经在互联网的许多方面得以广泛应用,包括在安全接口层(SSL)标准(该标准是网络浏览器建立安全的互联网连接时必须用到的)方面的应用。此外,RSA加密系统还可应用于智能IC卡和网络安全产品。

但目前RSA算法的专利期限即将结束,取而代之的是基于椭圆曲线的密码方案(ECC算法)。较之于RSA算法,ECC有其相对优点,这使得ECC的特性更适合当今电子商务需要快速反应的发展潮流。此外,一种全新的量子密码也正在发展中。

至于在实际应用中应该采用何种加密算法则要结合具体应用环境和系统,不能简单地根据其加密强度来做出判断。因为除了加密算法本身之外,密钥合理分配、加密效率与现有系统的结合性以及投入产出分析都应在实际环境中具体考虑。加密技术随着网络的发展更新,将有更安全更易于实现的算法不断产生,为信息安全提供更有力的保障。今后,加密技术会何去何从,我们将拭目以待。

参考文献:

[1] Douglas R.Stinson.《密码学原理与实践》.北京:电子工业出版社,2003,2:131-132

[2]西蒙.辛格.《密码故事》.海口:海南出版社,2001,1:271-272

[3]嬴政天下.加密算法之RSA算法.http://soft.winzheng.com/infoView/Article_296.htm,2003

[4]加密与数字签名.http://www.njt.cn/yumdq/dzsw/a2.htm

[5]黑客中级教程系列之十.http://www.qqorg.i-p.com/jiaocheng/10.html

Ⅶ 鍏阍ュ瘑镰佺郴缁熷强RSA鍏阍ョ畻娉

1. 寮曡█
闅忕潃璁$畻链虹绣缁灭殑鏅鍙婏纴淇℃伅瀹夊叏闂棰樻棩鐩婂嚫鏄俱傚瘑镰佹妧链浣滀负淇℃伅瀹夊叏镄勬牳蹇冿纴鍏堕吨瑕佹т笉瑷钥屽柣銆傛湰鏂囧皢绠瑕佷粙缁嶅叕阍ュ瘑镰佺郴缁熷强鍏跺吀鍨嬩唬琛≧SA绠楁硶銆
2. 鍏阍ュ瘑镰佺郴缁
鍏阍ュ瘑镰佺郴缁熶笌浼犵粺镄勫崟阍ュ瘑镰佺郴缁熶笉钖岋纴瀹冧娇鐢ㄤ竴瀵归潪瀵圭О镄勫瘑阍ワ细鍏阍ュ拰绉侀挜銆傚叕阍ョ敤浜庡姞瀵嗭纴绉侀挜鐢ㄤ簬瑙e瘑銆傝繖绉岖郴缁熻В鍐充简瀵嗛挜鍒嗗彂镄勯梾棰桡纴浣垮缑淇℃伅浼犺緭镟村姞瀹夊叏銆
3. RSA绠楁硶
RSA绠楁硶鏄涓绉嶅熀浜庢暟璁虹殑鍏阍ュ瘑镰佺畻娉曘傚畠鍒╃敤澶ф暣鏁板洜瀛愬垎瑙g殑锲伴毦镐ф潵淇濊瘉瀹夊叏镐с俣SA绠楁硶镞㈣兘鐢ㄤ簬锷犲瘑锛屼篃鑳界敤浜庢暟瀛楃惧悕銆傚叾宸ヤ綔铡熺悊鏄阃夊彇涓や釜澶ц川鏁帮纴璁$畻瀹冧滑镄勪箻绉锛岀劧钖庝粠涓瀵煎嚭鍏阍ュ拰绉侀挜銆
4. RSA绠楁硶镄勪紭缂虹偣
浼樼偣锛歊SA绠楁硶鏄扑簬鐞呜В鍜屾搷浣滐纴琚骞挎硾搴旂敤浜庡悇绉嶅姞瀵嗗拰鏁板瓧绛惧悕鍦烘櫙銆
缂虹偣锛氢骇鐢熷瘑阍ヨ缉楹荤储锛岄熷害杈冩参锛屽畨鍏ㄦт緷璧栦簬澶ф暟鍒呜В镄勫汹闅炬с
5. 缁撴潫璇
鍏阍ュ瘑镰佺郴缁熷湪淇℃伅瀹夊叏棰嗗烟鍙戞尌镌閲嶈佷綔鐢锛孯SA绠楁硶浣滀负鍏跺吀鍨嬩唬琛锛屽凡琚骞挎硾搴旂敤浜庡悇绉嶅満鏅銆傜劧钥岋纴闅忕潃鎶链镄勫彂灞曪纴鏂扮殑锷犲瘑绠楁硶涓嶆柇娑岀幇锛屾湭𨱒ュ叕阍ュ瘑镰佺郴缁熺殑鍙戝𪾢浠嶉渶鍏虫敞銆

热点内容
批量上传图片控件 发布:2024-11-25 19:27:12 浏览:765
黑马java就业班 发布:2024-11-25 19:10:54 浏览:714
我的世界国外小游戏服务器 发布:2024-11-25 18:52:12 浏览:646
传奇是要什么配置的手机 发布:2024-11-25 18:43:34 浏览:949
荣耀v6如何设置程序安装密码 发布:2024-11-25 18:43:25 浏览:556
C语言读盘 发布:2024-11-25 18:41:55 浏览:573
我的世界服务器被破坏了怎么恢复 发布:2024-11-25 18:27:57 浏览:330
日常电瓶叉车配置有哪些 发布:2024-11-25 18:21:17 浏览:362
java的二分查找 发布:2024-11-25 18:21:11 浏览:24
买帕萨特选哪个配置 发布:2024-11-25 18:17:23 浏览:225