一、數字簽名怎么簽
(一)Java簽名步驟
1、將applet的class文件打包成(cheng)*.jar(可以在命(ming)令(ling)行中輸入jar查看幫助)。
2、首先我們要生成(cheng)一個(ge)keystore,否則(ze)在簽名的時候報如下錯誤:
jarsigner錯誤(wu):java.lang.RuntimeException:密鑰庫裝入:C:Documents and Settingsij2ee.keystore(系統找(zhao)不到指定(ding)的文件。). (這(zhe)邊的ij2ee是當前系統用戶名(ming))
生成keystore的語(yu)句:keytool-genkey-alias 別名你可以自己寫-keyalg RSA-keystore.keystore
下面是(shi)會(hui)出現(xian)的數字(zi)簽名的一(yi)些步驟操(cao)作(zuo):
輸入keystore密碼:
再次(ci)輸入新(xin)密(mi)碼:
您的名字與姓(xing)氏(shi)是什么(me)?
[Unknown]:ij2ee
您(nin)的組織單位名稱是什么?
[Unknown]:mtk
您的組織名稱是什么?
[Unknown]:mtk
您(nin)所在的城市(shi)或(huo)區域名稱是什么(me)?
[Unknown]:suzhou
您(nin)所在(zai)的州或省份名稱是什(shen)么?
[Unknown]:jiangsu
該單位的兩字母國(guo)家代碼是(shi)什么
[Unknown]:cn
CN=ij2ee,OU=mtk,O=mtk,L=suzhou,ST=jiangsu,C=cn正確(que)嗎(ma)?
[否]:y
輸入的主密碼
(如果和(he)keystore密碼相同,按回車):
這時候會在jdk的bin目(mu)錄下生(sheng)成(cheng).keystore。把這個.keystore文(wen)件移(yi)動(dong)到(dao)C:Documents and Settings當前(qian)系統用戶的目(mu)錄下面。
3、創(chuang)建一個數(shu)字證書(shu)
在命令(ling)行中輸(shu)入(ru)如下指令(ling),peakCA和peakCALib自己起名字好了(le),3650是(shi)(shi)有效(xiao)天(tian)數(shu),就(jiu)是(shi)(shi)10年左右(you),在創建證(zheng)書(shu)的(de)的(de)時候(hou),需要填寫證(zheng)書(shu)的(de)一些(xie)信息和證(zheng)書(shu)對應的(de)私(si)鑰密碼。
keytool -genkey -alias peakCA -keyalg RSA -keysize 1024 -keystore peakCALib -validity 3650
4、將證(zheng)書導出到(dao)證(zheng)書文件中
在命(ming)令(ling)行中輸(shu)入如下指令(ling),peakCA和peakCALib任意(yi)起名字(zi),******是(shi)輸(shu)入的密碼。
keytool -export -alias peakCA -file peakCA.cer-keystore peakCALib-storepass******-rfc
5、授權jar文件(jian),在命令行中輸入(ru)如(ru)下指令
jarsigner -keystore peakCALib myapplet.jar peakCA
(二)office簽名步驟
1、要保護文(wen)(wen)檔內容的真實性,可以添加不(bu)可見的數(shu)字簽(qian)(qian)名(ming)。已簽(qian)(qian)名(ming)文(wen)(wen)檔的底部(bu)有“簽(qian)(qian)名(ming)”按鈕。
2、單擊“文件”選(xuan)項卡。
3、單擊“信(xin)息(xi)”。
4、在“權限”下(xia),單(dan)擊“保護文(wen)(wen)檔”、“保護工作簿(bu)”或(huo)“保護演示(shi)文(wen)(wen)稿”。
5、單擊“添加數字簽名(ming)”。
6、閱讀Word、Excel或(huo)PowerPoint中顯示(shi)的消息(xi),然后單擊“確定”。
7、在“簽名”對(dui)話框中的“簽署(shu)此(ci)文檔(dang)的目(mu)的”框中,鍵(jian)入目(mu)的。
8、單(dan)擊“簽名(ming)”。
9、在(zai)對文件進(jin)行(xing)數字簽(qian)名(ming)后,將出現(xian)“簽(qian)名(ming)”按(an)鈕,并且(qie)文件會變為只讀以(yi)防止修改。
二、數字簽名應用例子
假(jia)如Alice向Bob傳(chuan)送(song)數字(zi)信(xin)息(xi),為了(le)保證信(xin)息(xi)傳(chuan)送(song)的保密性、真實性、完整性和(he)不可否認性,需要對傳(chuan)送(song)的信(xin)息(xi)進行數字(zi)加密和(he)簽名,其傳(chuan)送(song)過(guo)程(cheng)為:
Alice準(zhun)備(bei)好要(yao)傳送(song)的數字信息(明文(wen));
Alice對數字信息進行(xing)哈希運算,得(de)到一個信息摘要;
Alice用自己的(de)私鑰對(dui)信息摘(zhai)要(yao)進行加(jia)密(mi)得到(dao)Alice的(de)數(shu)字簽名,并將其附(fu)在數(shu)字信息上;
Alice隨機產生一個加密(mi)密(mi)鑰,并用此密(mi)碼對(dui)要發送的信息進行加密(mi),形成密(mi)文;
Alice用(yong)Bob的公鑰(yao)對剛才隨機產生的加(jia)密密鑰(yao)進行加(jia)密,將加(jia)密后(hou)的DES密鑰(yao)連(lian)同密文一起傳送給Bob;
Bob收(shou)到(dao)Alice傳(chuan)送來的(de)(de)密(mi)(mi)文和加(jia)(jia)密(mi)(mi)過的(de)(de)DES密(mi)(mi)鑰,先(xian)用自己的(de)(de)私鑰對加(jia)(jia)密(mi)(mi)的(de)(de)DES密(mi)(mi)鑰進(jin)行解(jie)密(mi)(mi),得到(dao)Alice隨機產生(sheng)的(de)(de)加(jia)(jia)密(mi)(mi)密(mi)(mi)鑰;
Bob然(ran)(ran)后用(yong)隨(sui)機密鑰對(dui)收到的密文(wen)進行解密,得到明文(wen)的數(shu)字信(xin)息,然(ran)(ran)后將隨(sui)機密鑰拋棄;
Bob用Alice的公鑰對Alice的數字簽名進(jin)行解密,得(de)到信息摘要;
Bob用相同的(de)哈希算法對收(shou)到的(de)明文再進行一(yi)次(ci)哈希運算,得到一(yi)個(ge)新的(de)信(xin)息摘要;
Bob將收到(dao)(dao)的信(xin)息摘要和新(xin)產(chan)生(sheng)的信(xin)息摘要進行比較,如果一致,說明(ming)收到(dao)(dao)的信(xin)息沒有(you)被修改過。