導航:首頁 > 文檔加密 > 數據加密與解密的步驟

數據加密與解密的步驟

發布時間:2023-03-28 11:42:52

A. 公司文檔加密如何在自己電腦解除

公司文檔加密如何在自己電腦解除

公司文檔加密如何在自己電腦解除,現在電腦已經基本普及了,不管是家庭還是公司都離不開電腦,然而很多用戶往往忽視了電腦文件安全方面,以下分享公司文檔加密如何在自己電腦解除。

公司文檔加密如何在自己電腦解除1

在win7中,可參考以下步驟解密文件夾

1、找到被加密的文件夾。

2、右擊滑鼠,找到【屬性】,然後直接點擊進入即可。

3、在常規選項的【屬性】那一欄,找到【高級】。

4、可以看到此時【加密內容以便保護數據】的左邊是有打勾的。

5、將勾去掉,然後點擊下方的【確定】。

6、再點擊一次【確定】。

7、可以看到剛才的文件夾此時已經沒有上鎖了。

公司文檔加密如何在自己電腦解除2

文件夾加密怎麼解除

步驟1、首先,我們首先打開電腦桌面上的辦公軟體,在這里我們用excel來舉例說明;

步驟2、打開之後我們進去選選擇文件——在文件里我們選擇下拉菜單另存為;

步驟3、選擇另存為對話框之後我們看見了保存——加密——取消這幾個選項,我們點擊加密選項;

有三種加密方法可以同時選擇也可以選擇其中的一種

1、賬號加密設置的許可權是在你注冊賬號的情況下,只允許你制定的賬號登陸;

2、密碼加密就是只你對這個文件通過密碼設置進行保護,只有輸入正確密碼的人才能查看這個文件;

3、硬體加密時指你通過外接的設備如U盤進行對U盤的保護進行文件保護,大家可以根據自己的情況進行設置,這里我介紹一下文件加密;

步驟5、點擊密碼加密我們看到兩種情況一種是打開許可權一種是編輯許可權,打開許可權是只有輸入你設置的密碼才能查看文件,我們在裡面輸入點擊應用即可;

步驟6、編輯許可權是只只有輸入正確的密碼才能對你的文件進行修改,你可以兩個許可權同時設置也可以只設置其中的.一個,根據自己的情況,然後點擊應用即可;

以上就是文件夾加密怎麼解除的總結,希望能對大家有幫助。

公司文檔加密如何在自己電腦解除3

如何給文檔加密及如何取消加密

常用的加密方法

選擇「文件」選項下的「信息」找到「保護文檔」,選擇「用密碼進行加密」。

然後在彈出的對話框中輸入我們想要設定的密碼即可搞定。

另存為加密方法

在文件另存為時進行加密,選擇「文件」選項下「另存為」,選擇「工具」旁邊的下拉三角按鈕,選中「常規選項」。

打開在「常規選項」對話框,設置密碼。

取消文檔密碼

Word 文檔添加密碼以後,如何解除密碼呢?

同樣的方法,選擇「文件」選項中的「信息」,選擇「保護文檔」,再次點擊

「用密碼進行加密」,然後加密碼刪除,設為空,確定以後,即可將文檔密碼就解除。

限制內容設置格式樣式

如果一份文檔設置好格式樣式,不希望收到的人隨意去修改上面的格式樣式, 那麼,我們應該進行「限制內容設置格式樣式」。

選擇「文件」-「信息」-「保護文檔」-「限制編輯」。

此時,Word 文檔右側會彈出「格式設置限制」的選項。

勾選第一項「1.限制對選定的樣式設置格式」,然後勾選第三項「是,啟動強制保護」,然後設置一下密碼即可。

設置後,我們再次選中文中的內容,你會發現,所有設定格式樣式的功能按鈕,全部變成灰色未激活狀態,不能進行格式樣式的設定了。

限制修改內容

如果我們的文檔是發給用戶預覽的,而不希望用戶在上面隨意修改重要的內容,那麼,我們應該怎麼樣設置許可權呢?

如果對部分內容可以修改,部分重要內容不能修改。我們首先選中不重要可修改內容,然後進入「文件」-「信息」-「保護文檔」-「限制編輯」,勾選第二項「僅允許在文檔中進行此類的編輯:」-「不允許任何更改(只讀)」;勾選「每個人」;然後勾選第三項「是,啟動強制保護」。設置完畢後,我們回到文檔看看, 被選中的不重要可修改的段落是完全可以修改的。

沒有選中的重要內容,我們無論怎麼刪除修改,都會提示:由於所選內容已被鎖定,您無法進行此更改。

總結:

1.常用的加密方法;

2.另存為加密方法;

3.取消文檔密碼;

4.限制內容設置格式樣式;

5.限制修改內容。

B. 請簡述數字加密的過程

在對稱加密中,數據發送方將明文(原始數據)和加密密鑰一起經過特殊加密演算法處理後,使其變成復雜的加密密文發送出去。

接收方收到密文後,若想解讀原文,則需要使用加密密鑰及相同演算法的逆演算法對密文進行解密,才能使其恢復成可讀明文。在對稱加密演算法中,使用的密鑰只有一個,發收信雙方都使用這個密鑰對數據進行加密和解密。

(2)數據加密與解密的步驟擴展閱讀:

數字加密注意事項:

通過TCP三次握手進行連接,然後客戶端發送hello包到服務端,服務端回應一個hello包,如果客戶端需要再次發送數字證書, 則發送數字證書到客戶端。

客戶端得到伺服器的證書後通過CA服務驗證真偽、驗證證書的主體與訪問的主體是否一致,驗證證書是否在吊銷證書列表中。如果全部通過驗證則與伺服器端進行加密演算法的協商。

用證書中伺服器的公鑰加密對稱秘鑰發送給伺服器端,對稱秘鑰只能用伺服器的私鑰進行解密,當伺服器通過私鑰解密對稱秘鑰後。使用對稱秘鑰將客戶端請求的數據發送到客戶端,客戶端在用對稱秘鑰進行解密,從而得到想要的數據。

C. 1.什麼是數據加密簡述加密和解密的過程。

Sesoffice隱形加密技術具有強制加密、自動加密、實時加密、動態加密和無損加密的特點,對文件加密和解密是自動進行的,無需用戶干預,用戶實際上是無知覺的,在文件編輯和使用過程中,不需要明文過渡,不產生明文。一旦離開使用環境,加密的文件無法打開或打開是亂碼。隱形加密從根源上解決文檔安全問題。客戶端只加密,不解密,軟體里無解密函數,無法利用客戶端軟體來破解解密,理論上增加了破解難度。

D. 加密和解密過程是怎樣進行的

這有很多中加密演算法啊,對稱和非對稱,細分下去還有很多,提出這樣的問題是沒有意義的.對稱的大致的就這蘆灶樣 (key1)--------傳送(key2)
明文--------加密 --------------解密---------原明文
-------發送端-------- -----接收端-------
而非對稱的是這樣的,有兩種情歲激況
(1)明文----加密------密文-----解密------明文
甲方 | | 乙方
私鑰 公鑰
(2)明文-----加密-----密文------解密-------明文
甲方乎嘩襪 | 乙方
公鑰 私鑰
雖然看這簡單,但加密解密過程是不簡單的,需要經過許多運算

E. 怎樣解密加密文件

問題一:word文檔加密了怎麼解密啊 10分 方法一:插入文件法
啟動WORD,新建一個空白文檔,執行「插入――〉文件」命令,打開「插入文件」對話框,定位到需要解除保護的文檔所在的文件夾,選中相應文檔,單擊「插入駭按鈕,將加密保護的文檔插入到新文檔中,文檔保護會被自動撤銷。
方法二:文件另存法
打開保護的文檔,執行「文件――〉另存為」命令,打開「另存為」對話框,將「文件類型」選定為「WORD97―2003&6.0/95―RTF(*.doc)」,然後取名保存,關閉該文檔,重新打開一下,執行「工具――〉取消文檔保護」命令即可。
或者將文件類型另存為HTML,然後將其中的內容,復制粘貼到新建文檔中。
方法三:寫字板法
啟動寫字板,打開保護的WORD文檔,另存為WORD文檔,同時可以取消對文檔的保護。
但此方法可能會使文檔中的圖片等要素丟失。

問題二:加密文件夾如何解密 一、加密文件或文件夾
步驟一:打開Windows資源管理器。
步驟二:右鍵單擊要加密的文件或文件夾,然後單擊「屬性」。
步驟三:在「常規」選項卡上,單擊「高級」。選中「加密內容以便保護數據」復選框
在加密過程中還要注意以下五點:
1.要打開「Windows 資源管理器」,請單擊「開始→程序→附件」,然後單擊「Windows 資源管理器」。
2.只可以加密NTFS分區卷上的文件和文件夾,FAT分區卷上的文件和文件夾無效。
3.被壓縮的文件或文件夾也可以加密。如果要加密一個壓縮文件或文件夾,則該文件或文件夾將會被解壓
4.無法加密標記為「系統」屬性的文件,並且位於systemroot目錄結構中的文件也無法加密。
5.在加密文件夾時,系統將詢問是否要同時加密它的子文件夾。如果選擇是,那它的子文件夾也會被加密,以後所有添加進文件夾中的文件和子文件夾都將在添加時自動加密。
二、解密文件或文件夾
步驟一:打開Windows資源管理器。
步驟二:右鍵單擊加密文件或文件夾,然後單擊「屬性」。
步驟三:在「常規」選項卡上,單擊「高級」。
步驟四:清除「加密內容以便保護數據」復選框。
同樣,我們在使用解密過程中要注意以下問題:
1.要打開「Windows資源管理器」,請單擊「開始→程序→附件」,然後單擊「Windows資源管理器」。
2.在對文件夾解密時,系統將詢問是否要同時將文件夾內的所有文件和子文件夾解密。如果選擇僅解密文件夾,則在要解密文件夾中的加密文件和子文件夾仍保持加密。但是,在已解密文件夾內創立的新文件和文件夾將不會被自動加密。
以上就是使用文件加、解密的方法!而在使用過程中我們也許會遇到以下一些問題,在此作以下說明:
1.高級按鈕不能用
原因:加密文件系統(EFS)只能處理NTFS文件系統卷上的文件和文件夾。如果試圖加密的文件或文件夾在FAT或FAT32卷上,則高級按鈕不會出現在該文件或文件夾的屬性中。
解決方案:
將卷轉換成帶轉換實用程序的NTFS卷。
打開命令提示符。
鍵入:Convert [drive]/fs:ntfs
(drive 是目標驅動器的驅動器號)
2.當打開加密文件時,顯示「拒絕訪問」消息
原因:加密文件系統(EFS)使用公鑰證書對文件加密,與該證書相關的私鑰在本計算機上不可用。
解決方案:
查找合適的證書的私鑰,並使用證書管理單元將私鑰導入計算機並在本機上使用。
3.用戶基於NTFS對文件加密,重裝系統後加密文件無法被訪問的問題的解決方案(注意:重裝Win2000/XP前一定要備份加密用戶的證書):
步驟一:以加密用戶登錄計算機。
步驟二:單擊「開始→運行」,鍵入「mmc」,然後單擊「確定」。
步驟三:在「控制台」菜單上,單擊「添加/刪除管理單元」,然後單擊「添加」。
步驟四:在「單獨管理單元」下,單擊「證書」,然後單擊「添加」。
步驟五:單擊「我的用戶賬戶」,然後單擊「完成」(如圖2,如果你加密用戶不是管理員就不會出現這個窗口,直接到下一步) 。
步驟六:單擊「關閉」,然後單擊「確定」。
步驟七:雙擊「證書――當前用戶」,雙擊「個人」,然後雙擊「證書」。
步驟八:單擊「預期目的」欄中顯示「加密文件」字樣的證書。
步驟九:右鍵單擊該證書,指向「所有任務」,然後單擊「導出」。
步驟十:按照證書導出向導的指示將證書及相關的私鑰以PFX文件格式導出(注意:推薦使用「導出私鑰」方式導出,這樣可以保證證書受密碼保護,以防別......>>

問題三:加密文件夾解密後裡面沒內容。怎樣才能找到加密前的文件? 打開我的電腦,在」工具」選項的下拉菜單」文件夾選項」選項中有個」顯示隱藏文件」前面打勾,按確定

問題四:電腦文件加密 怎麼解密啊 你都折騰了兩遍重裝系統的事兒了,現在那些個文件你放棄吧,徹底無法打開了,你用的是系統自帶的EFS加密功能,該功能非常強大,幾乎沒有破解的方法,本來你應該在加密之後馬上導出加密證書的,這樣就能在重裝系統後導入加密證書以解密文件,至少能夠打開文件,現在是不行了。就算是你第一次剛重裝完系統,也已經非常危險了,完全得靠你的運氣,除非你運氣非常好,才能用數據恢復軟體找到以前的所需的所有加密文件,並構造一個與原加密用戶名相同的用戶,並用NewSid更改該用戶的SID為原來那個用戶的SID,進行適當更改後才能打開加密文件。

問題五:如何破解系統加密文件 EFS(Encrypting File System,加密文件系統)是Windows XP內置的一個實用功能,可以對NTFS分區上的文件和數據進行加密,在很大程度上提高了數據的安全性。小李之所以可以打破EFS加密演算法的保護,關鍵是使用了系統提供的「策略代理」方法,該方法可以讓特定的用戶讀取所有的加密文件。當然,該方法是針對多帳戶環境而言的。因為在該公用電腦中存在多個擁有管理員許可權的帳號。小王使用的是「Administrator」賬戶,而另一個同事在該機上使用的賬戶名稱是「hongyun」,該賬戶同樣擁有管理員許可權。小李正是藉助於「hongyun」賬戶,才輕松突破了加密的束縛。小李首先以「hongyun」賬戶登錄系統,之後在「開始」→「運行」中執行「cmd.exe」程序,在CMD窗口首先切換到C盤根目錄,之後執行命令「cipher /r:mykey」,注意其中的「mykey」為導出密鑰文件名。隨後系統提示輸入密碼(如圖1),小李輸入的密碼為「key123456789」。當然,該密碼的可以隨意設置。

這樣,就在C盤根目錄下生成兩個文件,擴展名分別為「cer」和「pfx」。本例中生成的文件為「mykey.cer」和「mykey.pfk」,其中「mykey.cer」為公鑰證書文件,「mykey.pfk」為代理人的私鑰證書文件。在「開始」→「運行」中運行「gpedit.msc」命令,打開組策略編輯器窗口。在窗口左側的列表中依次展開「計算機配置」→「Windows設置」→「安全設置」→「公鑰策略」→「正在加密文件系統」分支,在其右鍵菜單上點擊「添加數恢復代理程序」項,彈出操作向導界面(如圖2)。在其中的「選擇故障恢復代理」窗口中點擊「瀏覽文件夾」按鈕,在文件選擇窗口中導入前面創建的「mykey.cer」文件,之後依次點擊「下一步」按鈕完成操作。

在資源管理器中進入D盤中的「小王的文件」文件夾,在其中任意文件的屬性窗口中打開「常規」面板,點擊「高級」按鈕,在高級屬性窗口中點擊「詳細信息」按鈕,在信息窗口(如圖3)中可以看到剛才創建的恢復代理項目。
雙擊前面生成的文件「mykey.pfk」,彈出證書導入向導界面(如圖4),依次點擊「Next」按鈕,在「密碼」窗口中輸入預設的密碼「key123456789」,完成證書的導入操作。當完成上述操作後。在資源管理器中D盤中的「小王的文件」文件夾,雙擊其中的加密文件,即可正常訪問其內容了。這樣,小李幾乎沒有花費什麼力氣,就成功的找回了小王的加密文件了。

問題六:Win7 如何實現加密文件的解密? 不知道你是用的是不是win7上的bitlocker加密的文件,你需要解密文件,解密需要打開控制面板,再選擇系統與安全,打開它,你就能看見bitlocker了,然後單擊管理bitlocker,就能解密了,需要你先前設定的密碼才能解密,用bitlocker加密的軟體在xp系統里只能復制出來,不能往u盤里裝東西。

問題七:求救 如何解密手機加密文件??????? 如是加了密,不關那種密,與電腦聯機也是無濟於事,打不開的。只有通過刷機軟體解密。不過這樣下來你手機所有的信息都沒有了,自然照片也沒有了。建議你用東震,它可以掃描密碼,而不破壞其內存數據。

問題八:電腦上的文件加密了怎麼解密啊 使用的是EFS加密,如果沒有備份加密證書的話,那就你節哀順變吧!恢復的可能性很小。
你可以試一下下面的小方法:

1.工具-文件夾選項-查看-使用簡單文件夾共享 (把前面的勾勾去掉)
2.在加密的文件上點右鍵-屬性-安全-高級-所有者-替換所有者(把下面替換子容器的選項打上勾) 替換成你自己的用戶
這個方法能用,你就算運氣好,不行的話我也沒有辦法 了!
EFS加密非常危險,我推薦你使用專業的文件夾加密軟體文件夾加密超級大師來加密您的文件夾。

問題九:文件以前加密更換電腦後怎樣解密 步驟一:打開Windows資源管理器。
步驟二:右鍵單擊加密文件或文件夾,然後單擊「屬性」。
步驟三:在「常規」選項卡上,單擊「高級」。
步驟四:清除「加密內容以便保護數據」復選框。
同樣,我們在使用解密過程中要注意以下問題:
1.要打開「Windows資源管理器」,請單擊「開始→程序→附件」,然後「Windows資源管理器」。
2.在對文件夾解密時,系統將詢問是否要同時將文件夾內的所有文件和子文件夾解密。如果選擇僅解密文件夾,則在要解密文件夾中的加密文件和子文件夾仍保持加密。但是,在已解密文件夾內創立的新文件和文件夾將不會被自動加密。
以上就是使用文件加、解密的方法!而在使用過程中我們也許會遇到以下一些問題,在此作以下說明:
1.高級按鈕不能用
原因:加密文件系統EFS只能處理NTFS 文件系統卷上的文件和文件夾。如果試圖加密的文件或文件夾在 FAT 或 FAT32 卷上,則高級按鈕不會出現在該文件或文件夾的屬性中。
解決方案:
將卷轉換成帶轉換實用程序的 NTFS 卷。 打開命令提示符。 鍵入:Convert drive/fs ntfs
(drive 是目標驅動器的驅動器號)
2.當打開加密文件時,顯示「拒絕訪問」消息
原因:加密文件系統 EFS用公鑰證書對文件加密,與該證書相關的私鑰在本計算機上不可用。
解決方案:
查找合適的證書的私鑰,並使用證書管理單元將私鑰導入計算機並在本機上使用。
3.用戶基於NTFS對文件加密,重裝系統後加密文件無法被訪問的問題的解決方案(注意:重裝Win2000/XP前一定要備份加密用戶的證書):
步驟一:以加密用戶登錄計算機。
步驟二:單擊「開始→運行」,鍵入「mmc」,然後單擊「確定」。
步驟三:在「控制台」菜單上,單擊「添加/刪除管理單元」,然後單擊「添加」。
步驟四:在「單獨管理單元」下,單擊「證書」,然後單擊「添加」。
步驟五:單擊「我的用戶賬戶」,然後單擊「完成」(如圖2,如果你加密用戶不是管理員就不會出現這個窗口,直接到下一步) 。
步驟六:單擊「關閉」,然後單擊「確定」。
步驟七:雙擊「證書――當前用戶」,雙擊「個人」,然後雙擊「證書」。
步驟八:單擊「預期目的」欄中顯示「加密文件」字樣的證書。
步驟九:右鍵單擊該證書,指向「所有任務」,然後單擊「導出」。
步驟十:按照證書導出向導的指示將證書及相關的私鑰以PFX文件格式導出(注意:推薦使用「導出私鑰」方式導出,這樣可以保證證書受密碼保護,以防別人盜用。另外,證書只能保存到你有讀寫許可權的目錄下)。
4.保存好證書
注意將PFX文件保存好。以後重裝系統之後無論在哪個用戶下只要雙擊這個證書文件,導入這個私人證書就可以訪問NTFS系統下由該證書的原用戶加密的文件夾(注意:使用備份恢復功能備份的NTFS分區上的加密文件夾是不能恢復到非NTFS分區的)。
這個證書還可以實現下述用途:
(1)給予不同用戶訪問加密文件夾的許可權
將我的證書按「導出私鑰」方式導出,將該證書發給需要訪問這個文件夾的本機其他用戶。然後由他登錄,導入該證書,實現對這個文件夾的訪問。
(2)在其也WinXP機器上對用「備份恢復」程序備份的以前的加密文件夾的恢復訪問許可權
將加密文件夾用「備份恢復」程序備份,然後把生成的Backup.bkf連同這個證書拷貝到另外一台WinXP機器上,用「備份恢復」程序將它恢復出來(......>>

F. 如何對資料庫進行加密和解密

資料庫賬號密碼加密詳解及實例
資料庫中經常有對資料庫賬號密碼的加密,但是碰到一個問題,在使用UserService對密碼進行加密的時候,spring security 也是需要進行同步配置的,因為spring security 中驗證的加密方式是單獨配置的。如下:
<authentication-manager>
<authentication-provider user-service-ref="userDetailService">
<password-encoder ref="passwordEncoder" />
</authentication-provider>
</authentication-manager>

<beans:bean class="com.sapphire.security.MyPasswordEncoder" id="passwordEncoder">
<beans:constructor-arg value="md5"></beans:constructor-arg>
</beans:bean>

如上述配置文件所示,passwordEncoder才是在spring security對賬號加密校驗的地方。
spring security在攔截之後,會首先對用戶進行查找,通過自己定義的userDetailService來找到對應的用戶,然後由框架進行密碼的匹配驗證。
從userDetailService得到user以後,就會進入到DaoAuthenticationProvider中,這是框架中定義的 ,然後跳入其中的authenticate方法中。
該方法會進行兩個檢查,分別是
* preAuthenticationChecks : 主要進行的是對用戶是否過期等信息的校驗,調用的方法在userDetail中有定義的。
* : 這個就是用戶名密碼驗證的過程了。
而PasswordEncoder是我們xml中注入的bean,所以了,我們調用的則是我們自己完成的passwordEncoder
public class MyPasswordEncoder extends MessageDigestPasswordEncoder {
public MyPasswordEncoder(String algorithm) {
super(algorithm);
}

@Override
public boolean isPasswordValid(String encPass, String rawPass, Object salt) {
return encPass.equals(DigestUtils.md5DigestAsHex(rawPass.getBytes()));
}
}

這是我對其實現的一個簡單版本,調用的就是spring自帶的加密演算法,很簡單了,當然也可以使用復雜的加密方法,這個就靠自己了
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

G. 數據加密原理是什麼 數據解密原理介紹【詳解】

數據加密和解密,數據加密和解密原理是什麼?

隨著Internet 的普及,大量的數據、文件在Internet 傳送,因此在客觀上就需要一種強有力的安全措施來保護機密數據不被竊取或篡改。我們有幾種方法來加密數據流。所有這些方法都可以用軟體很容易的實現,但是當我們只知道密文的時候,是不容易破譯這些加密演算法的(當同時有原文和密文時,破譯加密演算法雖然也不是很容易,但已經是可能的了) 。最好的加密演算法對系統性能幾乎沒有影響,並且還可以帶來其他內在的優點。例如,大家都知道的pkzip ,它既壓縮數據又加密數據。又如,dbms 的一些軟體包總是包含一些加密方法以使復制文件這一功能對一些敏感數據是無效的,或者需要用戶的密碼。所有這些加判啟悔密演算法都要有高效的加密和解密能力。幸運的是,在所有的加密演算法中最簡單的一種就是“置換表”演算法,這種演算法也能很好達到加密的需要。每一個數據段(總是一個位元組) 對應著“置換表”中的一個偏移量,偏移量所對應的值就輸出成為加密後的文件。加密程序和解密程序都需要一個這樣的“置換表”。事實上,80x86 cpu 系列就有一個指令‘xlat’在硬體級來完成這樣的工作。這種加密演算法比較簡單,加密解密速度都很快,但是一旦這個“置換表”被對方獲得,那這個加密方案就完全被識破了。更進一步講,這種加密演算法對於黑客破譯來講是相當直接的,只要找到一個“置換表”就可以了。對這種“置換表”方式的一個改進就是使用2 個或者更多的“置換表”,這些表都是基於數據流中位元組的位置的,或者基於數據流本身。這時,破譯變的更加困難,因為黑客必須正確的做幾旁皮次變換。通過使用更多的“置換表”,並且按偽隨機的方式使用每個表,這種改進的加密方法已經變的很難破譯。比如,我們可以對所有的偶數位置的數據使用a 表,對所有的奇數位置使用b 表,即使黑客獲得了明文和密文,他想破譯這個加密方案也是非常困難的,除非黑客確切的知道用了兩張表。與使用“置換表”相類似“, 變換數據位置”也在計算機加密中使用。但是,這需要更多的執行時間。從輸入中讀入明文放到一個buffer 中,再在buffer 中對他們重排序,然後按這個順序再輸出。解密程序按相反的順序還原數據。這種方法總是和一些別的加密演算法混合使用,這就使得破譯變的特別的困難,幾乎有些不可能了。例如,有這樣一個詞,變換起字母的順序,slient 可以變為listen ,但所有的字母都沒有變化,沒有增加也沒有減少,但是字母之間的順序已經變化了。但是,還有一種更好的加密演算法,只有計算機可以做,就是字/ 位元組循環移位和xor 操作。如果我們把一個字或位元組在一個數據流內做循環移位,使用多個或變化的方向(左移或右移) ,就可以迅速的產生一個加密的數據流。這種方法是很好的,破譯它就更加困難! 而且,更進一步的是,如果再使用xor操作,按位做異或操作,就就使破譯密碼更加困難了。如果再使用偽隨機的方法,這涉及到要產生一系列的數字,我們可以使用fibbonaci 數列。對數列所產生的數做模運算(例如模3) ,得到一個結果,然後循環移位這個結果的次數,將使破譯次密碼變的幾乎不可能! 但是,使用fibbonaci 數列這種偽隨機的掘正方式所產生的密碼對我們的解密程序來講是非常容易的。在一些情況下,我們想能夠知道數據是否已經被篡改了或被破壞了,這時就需要產生一些校驗碼,並且把這些校驗碼插入到數據流中。這樣做對數據的防偽與程序本身都是有好處的。但是感染計算機程序的病毒才不會在意這些數據或程序是否加過密,是否有數字簽名。所以,加密程序在每次load 到內存要開始執行時,都要檢查一下本身是否被病毒感染,對與需要加、解密的文件都要做這種檢查! 很自然,這樣一種方法體制應該保密的,因為病毒程序的編寫者將會利用這些來破壞別人的程序或數據。因此,在一些反病毒或殺病毒軟體中一定要使用加密技術。

循環冗餘校驗是一種典型的校驗數據的方法。對於每一個數據塊,它使用位循環移位和xor 操作來產生一個16 位或32 位的校驗和,這使得丟失一位或兩個位的錯誤一定會導致校驗和出錯。這種方式很久以來就應用於文件的傳輸,例如xmodem - crc。這是方法已經成為標准,而且有詳細的文檔。但是,基於標准crc 演算法的一種修改演算法對於發現加密數據塊中的錯誤和文件是否被病毒感染是很有效的。

一個好的加密演算法的重要特點之一是具有這種能力:可以指定一個密碼或密鑰,並用它來加密明文,不同的密碼或密鑰產生不同的密文。這又分為兩種方式:對稱密鑰演算法和非對稱密鑰演算法。所謂對稱密鑰演算法就是加密解密都使用相同的密鑰,非對稱密鑰演算法就是加密解密使用不同的密鑰。非常著名的pgp公鑰加密以及rsa 加密方法都是非對稱加密演算法。加密密鑰,即公鑰,與解密密鑰,即私鑰,是非常的不同的。從數學理論上講,幾乎沒有真正不可逆的演算法存在。例如,對於一個輸入‘a’執行一個操作得到結果‘b’,那麼我們可以基於‘b’,做一個相對應的操作,導出輸入‘a’。在一些情況下,對於每一種操作,我們可以得到一個確定的值,或者該操作沒有定義(比如,除數為0) 。對於一個沒有定義的操作來講,基於加密演算法,可以成功地防止把一個公鑰變換成為私鑰。因此,要想破譯非對稱加密演算法,找到那個唯一的密鑰,唯一的方法只能是反復的試驗,而這需要大量的處理時間。

rsa 加密演算法使用了兩個非常大的素數來產生公鑰和私鑰。即使從一個公鑰中通過因數分解可以得到私鑰,但這個運算所包含的計算量是非常巨大的,以至於在現實上是不可行的。加密演算法本身也是很慢的,這使得使用rsa 演算法加密大量的數據變的有些不可行。這就使得一些現實中加密演算法都基於rsa 加密演算法。pgp 演算法(以及大多數基於rsa 演算法的加密方法) 使用公鑰來加密一個對稱加密演算法的密鑰,然後再利用一個快速的對稱加密演算法來加密數據。這個對稱演算法的密鑰是隨機產生的,是保密的,因此,得到這個密鑰的唯一方法就是使用私鑰來解密。

我們舉一個例子: 假定現在要加密一些數據使用密鑰‘12345’。利用rsa 公鑰,使用rsa 演算法加密這個密鑰‘12345’,並把它放在要加密的數據的前面(可能後面跟著一個分割符或文件長度,以區分數據和密鑰) ,然後,使用對稱加密演算法加密正文,使用的密鑰就是‘12345’。當對方收到時,解密程序找到加密過的密鑰,並利用rsa 私鑰解密出來,然後再確定出數據的開始位置,利用密鑰‘12345’來解密數據。這樣就使得一個可靠的經過高效加密的數據安全地傳輸和解密。但並不是經過加密的數據就是絕對安全的,數據加密是肯定可以被破解的,但我們所想要的是一個特定時期的安全,也就是說,密文的破解應該是足夠的困難,在現實上是不可能的,尤其是短時間內。

H. 加密基礎知識二 非對稱加密RSA演算法和對稱加密

上述過程中,出現了公鑰(3233,17)和私鑰(3233,2753),這兩組數字是怎麼找出來的呢?參考 RSA演算法原理(二)
首字母縮寫說明:E是加密(Encryption)D是解密(Decryption)N是數字(Number)。

1.隨機選擇兩個不相等的質數p和q。
alice選擇了61和53。(實際應用中,這兩個質數越大,就越難破解。)

2.計算p和q的乘積n。
n = 61×53 = 3233
n的長度就是密鑰長度。3233寫成二進制是110010100001,一共有12位,所以這個密鑰就是12位。實際應用中,RSA密鑰一般是1024位,重要場合則為2048位。

3.計算n的歐拉函數φ(n)。稱作L
根據公式φ(n) = (p-1)(q-1)
alice算出φ(3233)等於60×52,即3120。

4.隨機選擇一個整數e,也就是公鑰當中用來加密的那個數字
條件是1< e < φ(n),且e與φ(n) 互質。
alice就在1到3120之間,隨機選擇了17。(實際應用中,常常選擇65537。)

5.計算e對於φ(n)的模反元素d。也就是密鑰當中用來解密的那個數字
所謂"模反元素"就是指有一個整數d,可以使得ed被φ(n)除的余數為1。ed ≡ 1 (mod φ(n))
alice找到了2753,即17*2753 mode 3120 = 1

6.將n和e封裝成公鑰,n和d封裝成私鑰。
在alice的例子中,n=3233,e=17,d=2753,所以公鑰就是 (3233,17),私鑰就是(3233, 2753)。

上述故事中,blob為了偷偷地傳輸移動位數6,使用了公鑰做加密,即6^17 mode 3233 = 824。alice收到824之後,進行解密,即824^2753 mod 3233 = 6。也就是說,alice成功收到了blob使用的移動位數。

再來復習一下整個流程:
p=17,q=19
n = 17 19 = 323
L = 16 18 = 144
E = 5(E需要滿足以下兩個條件:1<E<144,E和144互質)
D = 29(D要滿足兩個條件,1<D<144,D mode 144 = 1)
假設某個需要傳遞123,則加密後:123^5 mode 323 = 225
接收者收到225後,進行解密,225^ 29 mode 323 = 123

回顧上面的密鑰生成步驟,一共出現六個數字:
p
q
n
L即φ(n)
e
d
這六個數字之中,公鑰用到了兩個(n和e),其餘四個數字都是不公開的。其中最關鍵的是d,因為n和d組成了私鑰,一旦d泄漏,就等於私鑰泄漏。那麼,有無可能在已知n和e的情況下,推導出d?
(1)ed≡1 (mod φ(n))。只有知道e和φ(n),才能算出d。
(2)φ(n)=(p-1)(q-1)。只有知道p和q,才能算出φ(n)。
(3)n=pq。只有將n因數分解,才能算出p和q。
結論:如果n可以被因數分解,d就可以算出,也就意味著私鑰被破解。
可是,大整數的因數分解,是一件非常困難的事情。目前,除了暴力破解,還沒有發現別的有效方法。維基網路這樣寫道:"對極大整數做因數分解的難度決定了RSA演算法的可靠性。換言之,對一極大整數做因數分解愈困難,RSA演算法愈可靠。假如有人找到一種快速因數分解的演算法,那麼RSA的可靠性就會極度下降。但找到這樣的演算法的可能性是非常小的。今天只有短的RSA密鑰才可能被暴力破解。到2008年為止,世界上還沒有任何可靠的攻擊RSA演算法的方式。只要密鑰長度足夠長,用RSA加密的信息實際上是不能被解破的。"

然而,雖然RSA的安全性依賴於大數的因子分解,但並沒有從理論上證明破譯RSA的難度與大數分解難度等價。即RSA的重大缺陷是無法從理論上把握它的保密性能如何。此外,RSA的缺點還有:
A)產生密鑰很麻煩,受到素數產生技術的限制,因而難以做到一次一密。
B)分組長度太大,為保證安全性,n 至少也要 600bits以上,使運算代價很高,尤其是速度較慢,較對稱密碼演算法慢幾個數量級;且隨著大數分解技術的發展,這個長度還在增加,不利於數據格式的標准化。因此, 使用RSA只能加密少量數據,大量的數據加密還要靠對稱密碼演算法

加密和解密是自古就有技術了。經常看到偵探電影的橋段,勇敢又機智的主角,拿著一長串毫無意義的數字苦惱,忽然靈光一閃,翻出一本厚書,將第一個數字對應頁碼數,第二個數字對應行數,第三個數字對應那一行的某個詞。數字變成了一串非常有意義的話:
Eat the beancurd with the peanut. Taste like the ham.

這種加密方法是將原來的某種信息按照某個規律打亂。某種打亂的方式就叫做密鑰(cipher code)。發出信息的人根據密鑰來給信息加密,而接收信息的人利用相同的密鑰,來給信息解密。 就好像一個帶鎖的盒子。發送信息的人將信息放到盒子里,用鑰匙鎖上。而接受信息的人則用相同的鑰匙打開。加密和解密用的是同一個密鑰,這種加密稱為對稱加密(symmetric encryption)。

如果一對一的話,那麼兩人需要交換一個密鑰。一對多的話,比如總部和多個特工的通信,依然可以使用同一套密鑰。 但這種情況下,對手偷到一個密鑰的話,就知道所有交流的信息了。 二戰中盟軍的情報戰成果,很多都來自於破獲這種對稱加密的密鑰。

為了更安全,總部需要給每個特工都設計一個不同的密鑰。如果是FBI這樣龐大的機構,恐怕很難維護這么多的密鑰。在現代社會,每個人的信用卡信息都需要加密。一一設計密鑰的話,銀行怕是要跪了。

對稱加密的薄弱之處在於給了太多人的鑰匙。如果只給特工鎖,而總部保有鑰匙,那就容易了。特工將信息用鎖鎖到盒子里,誰也打不開,除非到總部用唯一的一把鑰匙打開。只是這樣的話,特工每次出門都要帶上許多鎖,太容易被識破身份了。總部老大想了想,乾脆就把造鎖的技術公開了。特工,或者任何其它人,可以就地取材,按照圖紙造鎖,但無法根據圖紙造出鑰匙。鑰匙只有總部的那一把。

上面的關鍵是鎖和鑰匙工藝不同。知道了鎖,並不能知道鑰匙。這樣,銀行可以將「造鎖」的方法公布給所有用戶。 每個用戶可以用鎖來加密自己的信用卡信息。即使被別人竊聽到,也不用擔心:只有銀行才有鑰匙呢!這樣一種加密演算法叫做非對稱加密(asymmetric encryption)。非對稱加密的經典演算法是RSA演算法。它來自於數論與計算機計數的奇妙結合。

1976年,兩位美國計算機學家Whitfield Diffie 和 Martin Hellman,提出了一種嶄新構思,可以在不直接傳遞密鑰的情況下,完成解密。這被稱為"Diffie-Hellman密鑰交換演算法"。這個演算法啟發了其他科學家。人們認識到,加密和解密可以使用不同的規則,只要這兩種規則之間存在某種對應關系即可,這樣就避免了直接傳遞密鑰。這種新的加密模式被稱為"非對稱加密演算法"。

1977年,三位數學家Rivest、Shamir 和 Adleman 設計了一種演算法,可以實現非對稱加密。這種演算法用他們三個人的名字命名,叫做RSA演算法。從那時直到現在,RSA演算法一直是最廣為使用的"非對稱加密演算法"。毫不誇張地說,只要有計算機網路的地方,就有RSA演算法。

1.能「撞」上的保險箱(非對稱/公鑰加密體制,Asymmetric / Public Key Encryption)

數據加密解密和門鎖很像。最開始的時候,人們只想到了那種只能用鑰匙「鎖」數據的鎖。如果在自己的電腦上自己加密數據,當然可以用最開始這種門鎖的形式啦,方便快捷,簡單易用有木有。

但是我們現在是通信時代啊,雙方都想做安全的通信怎麼辦呢?如果也用這種方法,通信就好像互相發送密碼保險箱一樣…而且雙方必須都有鑰匙才能進行加密和解密。也就是說,兩個人都拿著保險箱的鑰匙,你把數據放進去,用鑰匙鎖上發給我。我用同樣的鑰匙把保險箱打開,再把我的數據鎖進保險箱,發送給你。

這樣看起來好像沒什麼問題。但是,這裡面 最大的問題是:我們兩個怎麼弄到同一個保險箱的同一個鑰匙呢? 好像僅有的辦法就是我們兩個一起去買個保險箱,然後一人拿一把鑰匙,以後就用這個保險箱了。可是,現代通信社會,絕大多數情況下別說一起去買保險箱了,連見個面都難,這怎麼辦啊?

於是,人們想到了「撞門」的方法。我這有個可以「撞上」的保險箱,你那裡自己也買一個這樣的保險箱。通信最開始,我把保險箱打開,就這么開著把保險箱發給你。你把數據放進去以後,把保險箱「撞」上發給我。撞上以後,除了我以外,誰都打不開保險箱了。這就是RSA了,公開的保險箱就是公鑰,但是我有私鑰,我才能打開。

2.數字簽名
這種鎖看起來好像很不錯,但是鎖在運輸的過程中有這么一個嚴重的問題:你怎麼確定你收到的開著的保險箱就是我發來的呢?對於一個聰明人,他完全可以這么干:
(a)裝作運輸工人。我現在把我開著的保險箱運給對方。運輸工人自己也弄這么一個保險箱,運輸的時候把保險箱換成他做的。
(b)對方收到保險箱後,沒法知道這個保險箱是我最初發過去的,還是運輸工人替換的。對方把數據放進去,把保險箱撞上。
(c)運輸工人往回運的時候,用自己的鑰匙打開自己的保險箱,把數據拿走。然後復印也好,偽造也好,弄出一份數據,把這份數據放進我的保險箱,撞上,然後發給我。
從我的角度,從對方的角度,都會覺得這數據傳輸過程沒問題。但是,運輸工人成功拿到了數據,整個過程還是不安全的,大概的過程是這樣:

這怎麼辦啊?這個問題的本質原因是,人們沒辦法獲知,保險箱到底是「我」做的,還是運輸工人做的。那乾脆,我們都別做保險箱了,讓權威機構做保險箱,然後在每個保險箱上用特殊的工具刻上一個編號。對方收到保險箱的時候,在權威機構的「公告欄」上查一下編號,要是和保險箱上的編號一樣,我就知道這個保險箱是「我」的,就安心把數據放進去。大概過程是這樣的:

如何做出刻上編號,而且編號沒法修改的保險箱呢?這涉及到了公鑰體制中的另一個問題:數字簽名。
要知道,刻字這種事情吧,誰都能幹,所以想做出只能自己刻字,還沒法讓別人修改的保險箱確實有點難度。那麼怎麼辦呢?這其實困擾了人們很長的時間。直到有一天,人們發現:我們不一定非要在保險箱上刻規規矩矩的字,我們乾脆在保險箱上刻手寫名字好了。而且,刻字有點麻煩,乾脆我們在上面弄張紙,讓人直接在上面寫,簡單不費事。具體做法是,我們在保險箱上嵌進去一張紙,然後每個出產的保險箱都讓權威機構的CEO簽上自己的名字。然後,CEO把自己的簽名公開在權威機構的「公告欄」上面。比如這個CEO就叫「學酥」,那麼整個流程差不多是這個樣子:

這個方法的本質原理是,每個人都能夠通過筆跡看出保險箱上的字是不是學酥CEO簽的。但是呢,這個字體是學酥CEO唯一的字體。別人很難模仿。如果模仿我們就能自己分辨出來了。要是實在分辨不出來呢,我們就請一個筆跡專家來分辨。這不是很好嘛。這個在密碼學上就是數字簽名。

上面這個簽字的方法雖然好,但是還有一個比較蛋疼的問題。因為簽字的樣子是公開的,一個聰明人可以把公開的簽字影印一份,自己造個保險箱,然後把這個影印的字也嵌進去。這樣一來,這個聰明人也可以造一個相同簽字的保險箱了。解決這個問題一個非常簡單的方法就是在看保險箱上的簽名時,不光看字體本身,還要看字體是不是和公開的字體完全一樣。要是完全一樣,就可以考慮這個簽名可能是影印出來的。甚至,還要考察字體是不是和其他保險櫃上的字體一模一樣。因為聰明人為了欺騙大家,可能不影印公開的簽名,而影印其他保險箱上的簽名。這種解決方法雖然簡單,但是驗證簽名的時候麻煩了一些。麻煩的地方在於我不僅需要對比保險箱上的簽名是否與公開的筆跡一樣,還需要對比得到的簽名是否與公開的筆跡完全一樣,乃至是否和所有發布的保險箱上的簽名完全一樣。有沒有什麼更好的方法呢?

當然有,人們想到了一個比較好的方法。那就是,學酥CEO簽字的時候吧,不光把名字簽上,還得帶上簽字得日期,或者帶上這個保險箱的編號。這樣一來,每一個保險箱上的簽字就唯一了,這個簽字是學酥CEO的簽名+學酥CEO寫上的時間或者編號。這樣一來,就算有人偽造,也只能偽造用過的保險箱。這個問題就徹底解決了。這個過程大概是這么個樣子:

3 造價問題(密鑰封裝機制,Key Encapsulation Mechanism)
解決了上面的各種問題,我們要考慮考慮成本了… 這種能「撞」門的保險箱雖然好,但是這種鎖造價一般來說要比普通的鎖要高,而且鎖生產時間也會變長。在密碼學中,對於同樣「結實」的鎖,能「撞」門的鎖的造價一般來說是普通鎖的上千倍。同時,能「撞」門的鎖一般來說只能安裝在小的保險櫃裡面。畢竟,這么復雜的鎖,裝起來很費事啊!而普通鎖安裝在多大的保險櫃上面都可以呢。如果兩個人想傳輸大量數據的話,用一個大的保險櫃比用一堆小的保險櫃慢慢傳要好的多呀。怎麼解決這個問題呢?人們又想出了一個非常棒的方法:我們把兩種鎖結合起來。能「撞」上的保險櫃裡面放一個普通鎖的鑰匙。然後造一個用普通的保險櫃來鎖大量的數據。這樣一來,我們相當於用能「撞」上的保險櫃發一個鑰匙過去。對方收到兩個保險櫃後,先用自己的鑰匙把小保險櫃打開,取出鑰匙。然後在用這個鑰匙開大的保險櫃。這樣做更棒的一個地方在於,既然對方得到了一個鑰匙,後續再通信的時候,我們就不再需要能「撞」上的保險櫃了啊,在以後一定時間內就用普通保險櫃就好了,方便快捷嘛。

以下參考 數字簽名、數字證書、SSL、https是什麼關系?
4.數字簽名(Digital Signature)
數據在瀏覽器和伺服器之間傳輸時,有可能在傳輸過程中被冒充的盜賊把內容替換了,那麼如何保證數據是真實伺服器發送的而不被調包呢,同時如何保證傳輸的數據沒有被人篡改呢,要解決這兩個問題就必須用到數字簽名,數字簽名就如同日常生活的中的簽名一樣,一旦在合同書上落下了你的大名,從法律意義上就確定是你本人簽的字兒,這是任何人都沒法仿造的,因為這是你專有的手跡,任何人是造不出來的。那麼在計算機中的數字簽名怎麼回事呢?數字簽名就是用於驗證傳輸的內容是不是真實伺服器發送的數據,發送的數據有沒有被篡改過,它就干這兩件事,是非對稱加密的一種應用場景。不過他是反過來用私鑰來加密,通過與之配對的公鑰來解密。
第一步:服務端把報文經過Hash處理後生成摘要信息Digest,摘要信息使用私鑰private-key加密之後就生成簽名,伺服器把簽名連同報文一起發送給客戶端。
第二步:客戶端接收到數據後,把簽名提取出來用public-key解密,如果能正常的解密出來Digest2,那麼就能確認是對方發的。
第三步:客戶端把報文Text提取出來做同樣的Hash處理,得到的摘要信息Digest1,再與之前解密出來的Digist2對比,如果兩者相等,就表示內容沒有被篡改,否則內容就是被人改過了。因為只要文本內容哪怕有任何一點點改動都會Hash出一個完全不一樣的摘要信息出來。

5.數字證書(Certificate Authority)
數字證書簡稱CA,它由權威機構給某網站頒發的一種認可憑證,這個憑證是被大家(瀏覽器)所認可的,為什麼需要用數字證書呢,難道有了數字簽名還不夠安全嗎?有這樣一種情況,就是瀏覽器無法確定所有的真實伺服器是不是真的是真實的,舉一個簡單的例子:A廠家給你們家安裝鎖,同時把鑰匙也交給你,只要鑰匙能打開鎖,你就可以確定鑰匙和鎖是配對的,如果有人把鑰匙換了或者把鎖換了,你是打不開門的,你就知道肯定被竊取了,但是如果有人把鎖和鑰匙替換成另一套表面看起來差不多的,但質量差很多的,雖然鑰匙和鎖配套,但是你卻不能確定這是否真的是A廠家給你的,那麼這時候,你可以找質檢部門來檢驗一下,這套鎖是不是真的來自於A廠家,質檢部門是權威機構,他說的話是可以被公眾認可的(呵呵)。
同樣的, 因為如果有人(張三)用自己的公鑰把真實伺服器發送給瀏覽器的公鑰替換了,於是張三用自己的私鑰執行相同的步驟對文本Hash、數字簽名,最後得到的結果都沒什麼問題,但事實上瀏覽器看到的東西卻不是真實伺服器給的,而是被張三從里到外(公鑰到私鑰)換了一通。那麼如何保證你現在使用的公鑰就是真實伺服器發給你的呢?我們就用數字證書來解決這個問題。數字證書一般由數字證書認證機構(Certificate Authority)頒發,證書裡麵包含了真實伺服器的公鑰和網站的一些其他信息,數字證書機構用自己的私鑰加密後發給瀏覽器,瀏覽器使用數字證書機構的公鑰解密後得到真實伺服器的公鑰。這個過程是建立在被大家所認可的證書機構之上得到的公鑰,所以這是一種安全的方式。

常見的對稱加密演算法有DES、3DES、AES、RC5、RC6。非對稱加密演算法應用非常廣泛,如SSH,
HTTPS, TLS,電子證書,電子簽名,電子身份證等等。
參考 DES/3DES/AES區別

I. 簡述RSA演算法中密鑰的產生,數據加密和解密的過程,並簡單說明RSA演算法安全性的原理。

RSA演算法的數學原理

RSA演算法的數學原理:
先來找出三個數, p, q, r,

其中 p, q 是兩個相異的質數, r 是與 (p-1)(q-1) 互質的數。

p, q, r 這三個數便是 private key。接著, 找出m, 使得 rm == 1 mod (p-1)(q-1)..... 這個 m 一定存在, 因為 r 與 (p-1)(q-1) 互質, 用輾轉相除法就可以得到了..... 再來, 計算 n = pq....... m, n 這兩個數便是 public key。

編碼過程是, 若資料為 a, 將其看成是一個大整數, 假設 a < n.... 如果 a >= n 的話, 就將 a 表成 s 進位 (s <= n, 通常取 s = 2^t), 則每一位數均小於 n, 然後分段編碼...... 接下來, 計算 b == a^m mod n, (0 <= b < n), b 就是編碼後的資料...... 解碼的過程是, 計算 c == b^r mod pq (0 <= c < pq), 於是乎, 解碼完畢...... 等會會證明 c 和 a 其實是相等的 :) 如果第三者進行竊聽時, 他會得到幾個數: m, n(=pq), b...... 他如果要解碼的話, 必須想辦法得到 r...... 所以, 他必須先對 n 作質因數分解......... 要防止他分解, 最有效的方法是找兩個非常的大質數 p, q, 使第三者作因數分解時發生困難......... <定理> 若 p, q 是相異質數, rm == 1 mod (p-1)(q-1), a 是任意一個正整數, b == a^m mod pq, c == b^r mod pq, 則 c == a mod pq 證明的過程, 會用到費馬小定理, 敘述如下: m 是任一質數, n 是任一整數, 則 n^m == n mod m (換另一句話說, 如果 n 和 m 互質, 則 n^(m-1) == 1 mod m) 運用一些基本的群論的知識, 就可以很容易地證出費馬小定理的........ <證明> 因為 rm == 1 mod (p-1)(q-1), 所以 rm = k(p-1)(q-1) + 1, 其中 k 是整數 因為在 molo 中是 preserve 乘法的 (x == y mod z and u == v mod z => xu == yv mod z), 所以, c == b^r == (a^m)^r == a^(rm) == a^(k(p-1)(q-1)+1) mod pq 1. 如果 a 不是 p 的倍數, 也不是 q 的倍數時, 則 a^(p-1) == 1 mod p (費馬小定理) => a^(k(p-1)(q-1)) == 1 mod p a^(q-1) == 1 mod q (費馬小定理) => a^(k(p-1)(q-1)) == 1 mod q 所以 p, q 均能整除 a^(k(p-1)(q-1)) - 1 => pq | a^(k(p-1)(q-1)) - 1 即 a^(k(p-1)(q-1)) == 1 mod pq => c == a^(k(p-1)(q-1)+1) == a mod pq 2. 如果 a 是 p 的倍數, 但不是 q 的倍數時, 則 a^(q-1) == 1 mod q (費馬小定理) => a^(k(p-1)(q-1)) == 1 mod q => c == a^(k(p-1)(q-1)+1) == a mod q => q | c - a 因 p | a => c == a^(k(p-1)(q-1)+1) == 0 mod p => p | c - a 所以, pq | c - a => c == a mod pq 3. 如果 a 是 q 的倍數, 但不是 p 的倍數時, 證明同上 4. 如果 a 同時是 p 和 q 的倍數時, 則 pq | a => c == a^(k(p-1)(q-1)+1) == 0 mod pq => pq | c - a => c == a mod pq Q.E.D. 這個定理說明 a 經過編碼為 b 再經過解碼為 c 時, a == c mod n (n = pq).... 但我們在做編碼解碼時, 限制 0 <= a < n, 0 <= c < n, 所以這就是說 a 等於 c, 所以這個過程確實能做到編碼解碼的功能.....

閱讀全文

與數據加密與解密的步驟相關的資料

熱點內容
免費成人影院網站是多少 瀏覽:156
hp伺服器閃紅燈什麼意思 瀏覽:243
php加入購物車代碼 瀏覽:921
奇跡男孩電影完整版免費播放 瀏覽:663
羅曼史生孩子在那一段在幾分鍾 瀏覽:953
成龍40部經典電影 瀏覽:795
程序員連出兩次線上事故 瀏覽:427
啄木鳥電影什麼意思 瀏覽:292
主角叫柱子的鄉村小說 瀏覽:962
肉特別多的電影 瀏覽:970
好的在觀看網站 瀏覽:307
vip免費影視劇網站 瀏覽:924
恐怖鬼片免費版在線觀看 瀏覽:539
印度神話電影排行前十 瀏覽:510
主角開飛機重生流 瀏覽:760
java函數式編程教程 瀏覽:271
天正圖紙加密後的效果 瀏覽:909
泰安汽車解壓郵政網點 瀏覽:410
泰國鬼片在線觀看免費收看 瀏覽:695
彼時曾相伴免費觀看完整版 瀏覽:254