陰符加密法
1. 世界上最難破解的密碼數字是什麼
密碼主要用於軍事,無論古今中外,概莫能外。據《六韜》所載,3000年前由姜子牙發明了「陰符」,這就是最初的密碼。後被廣泛運用於我國古代維護國家安全的軍事活動和情報活動中。
相傳姜太公帶領的周軍指揮大營被叛兵包圍,情況危急。姜太公令信使突圍,他怕信使遺忘機密,又怕周文王不認識信使,耽誤軍務大事。於是就將自己珍愛的魚竿折成數節,每節長短不一,各代表一件軍機,令信使牢記,不得外傳。
信使回到朝中,文王令左右將幾節魚竿合在一起,親自檢驗。他辨認出是姜太公的心愛之物,便親率大軍解了姜太公之危。事後,姜太公妙思如泉湧,他將魚竿傳信的辦法加以改進,便發明了「陰符」。後來又演化成皇帝和大將各執一半的「虎符」,作為調兵遣將的憑證。
宋朝時,官方便將常用的40個軍事短語,分別用40個字來代替,然後編出一首40個字的詩,作為破譯的「密碼本」。到了明朝,戚繼光發明了反切碼,他還專門編了兩首詩歌,作為「密碼本」。這兩首詩歌是反切碼全部秘密所在,它使用漢字注音方法中的「反切法」,取聲母和韻母按照順序進行編號,再進行讀取。其原理與現代密電碼的設計原理完全一樣,但卻比現代密碼更難破譯。
那麼西方的情況又是如何呢?
在古希臘,人們用一條帶子纏繞在一根木棍上,沿木棍縱軸方向寫好明文,解下來的帶子上就只有雜亂無章的密文字母。解密者只需找到相同直徑的木棍,再把帶子纏上去,沿木棍縱軸方向即可讀出有意義的明文。
公元前1世紀,凱撒密碼被用於高盧戰爭中,這是一種簡單易行的單字母替代密碼。戰前凱撒設計了一種對重要的軍事信息進行加密的方法,即使這些信息被截獲,敵方也不一定能看懂。其實,凱撒密碼字母移位的位數就是一種簡單易行的單字母替代密碼。密碼輪是利用凱撒密碼來應用的,通過把字母移動一定的位數來實現加密和解密。
計算機因解碼而誕生
工業革命後,密碼學也進入了機器時代、電子時代。上世紀20年代,人們發明了各種機械設備來自動進行加解密,於是就出現了密碼機。因為大多數密碼機使用連線接通各個機械轉輪,實現密碼代換,所以也稱之為「轉輪機時代」。
世界上最著名的密碼機是德國在第一次世界大戰時發明的「謎」。
「謎」是世界上第一部機械密碼機,其工作原理奠定了當今計算機加密的基礎。這種密碼融數學、物理、語言、歷史、國際象棋原理、縱橫填字游戲等為一體,被希特勒稱為「神都沒辦法破譯的世界第一密碼」。一份德國報告稱:「謎」能產生220億種不同的密鑰組合,假如一個人日夜不停地工作,每分鍾測試一種密鑰的話,需要約4.2萬年才能將所有的密鑰可能組合試完。
二戰期間,「謎」被德軍大量用於鐵路、企業當中,令德軍保密通訊技術處於領先地位。
盟軍在破譯「謎」密碼過程中,吸納了大批語言學家、人文學家、數學家、科學家加入解碼隊伍。電腦之父圖靈, 1912~1954)也在其列。在圖靈的領導下,這支優秀的隊伍設計了人類的第一部電腦來協助破解工作。1939年8月,解碼隊伍完成了一部針對「謎」型機的密碼破譯機,每秒鍾可處理2000個字元,綽號叫「炸彈」。半年後,它幾乎可以破譯所有被截獲的德國情報,這使得德國的許多重大軍事行動對盟軍都不成為秘密。
雖然計算機因破譯密碼而誕生,而計算機的發展速度遠遠超過人類的想像。上世紀70年代,三位科學家和電腦專家設計了一個世界上最難破解的密碼鎖,意圖利用長長的數學密碼,保護儲存在電腦資料庫里的絕密資料,例如可口可樂配方、核武器方程式等。他們宣稱,人類要想解開他們的密碼,需要4萬億年。
當然,編制密碼鎖的三位專家沒有想到,科學會發展得這樣快。僅僅過了17年,世界五大洲600位專家利用1600部電腦,並且藉助電腦網路,埋頭苦幹8個月,終於攻克了這個號稱千億年難破的超級密碼鎖。結果發現,藏在密碼鎖下的,並非可口可樂配方、核武器方程式,而是這樣一句話:「魔咒是神經質的禿鷹。」
密碼的民用不到30年
你恐怕沒有想到,這樣一個密碼演算法竟讓發明者接受了長達5年的審判。因為,那時的密碼還由軍方壟斷。1991年,美國學者齊默爾曼設計出一種經濟而有效的產品。當時,美國法律規定,密碼演算法屬於軍火,但齊默爾曼還是鋌而走險免費發放了這些加密軟體。齊默爾曼被美國海關當局起訴的罪名是:「非法出口軍火,給敵對國家和恐怖分子提供進攻美國的工具。」
當時,執政者認為,密碼演算法的廣泛應用給恐怖分子、販毒集團以可乘之機。而支持加密公眾化的公民和密碼學家認為,人們亟須使用密碼來保護個人隱私。
隨著電子商務的發展,大的商業公司也加入進來,他們需要強大的密碼演算法使他們能在網路時代保證業務的安全。經過5年的斗爭,柯林頓政府被迫更改了法律,大陪審團也放棄了對齊默爾曼定罪的想法。
隨著網路時代的到來,密碼成了現代都市生活中最普遍運用的個人信息認證手段,它以最簡單的數字組合方式,取代各種煩瑣的個人認證方法。
1993年,銀行業務實行電腦聯網。其中,與個人關系最緊密的是活期存款,銀行從那時開始讓儲戶設置個人密碼。為了方便記憶,身份證的後幾位數、生日、電話號碼、門牌號等,是那時候老百姓最常用的密碼。1996年,全國銀行系統普及了密碼的使用和設備更新。1999年開始,銀行存取款必須使用密碼就變成了硬性規定。現在,多數銀行只要輸入密碼,憑存摺或儲蓄卡,就能進行5萬元以下的支取,無需身份證。
2000年前後,國內各大網站開始大規模開發電子郵箱,那時候網站對郵箱密碼的要求並不太嚴格,規定只要三個字元以上即可,有許多人就用ABC、123等做密碼。在收到了用戶郵箱被盜的反饋後,網站將密碼最少數位提升至6位。現在這些以數字和字母搭配的「軟密碼」也越來越不安全了。例如,前不久國內就有某大型網站被黑客侵入,泄露客戶的大量隱私。
目前大多銀行等涉及高隱私的部門都開發出針對自己安全系統的「硬密碼」,即非要在客戶端插上一個類似於U盤那樣的「密碼」,然後再輸入相應的軟密碼才能登錄相應的網站。
經過數千年的演化,我們又回到了「虎符」的年代,只不過現在的虎符是電子的了。
2. 密碼學的學科分類
Autokey密碼
置換密碼
二字母組代替密碼 (by Charles Wheatstone)
多字母替換密碼
希爾密碼
維吉尼亞密碼
替換式密碼
凱撒密碼
摩爾斯電碼
ROT13
仿射密碼
Atbash密碼
換位密碼
Scytale
Grille密碼
VIC密碼 (一種復雜的手工密碼,在五十年代早期被至少一名蘇聯間諜使用過,在當時是十分安全的)
流密碼
LFSR流密碼
EIGamal密碼
RSA密碼
對傳統密碼學的攻擊
頻率分析
重合指數
經典密碼學
在近代以前,密碼學只考慮到信息的機密性(confidentiality):如何將可理解的信息轉換成難以理解的信息,並且使得有秘密信息的人能夠逆向回復,但缺乏秘密信息的攔截者或竊聽者則無法解讀。近數十年來,這個領域已經擴展到涵蓋身分認證(或稱鑒權)、信息完整性檢查、數字簽名、互動證明、安全多方計算等各類技術。
古中國周朝兵書《六韜.龍韜》也記載了密碼學的運用,其中的《陰符》和《陰書》便記載了周武王問姜子牙關於征戰時與主將通訊的方式: 太公曰:「主與將,有陰符,凡八等。有大勝克敵之符,長一尺。破軍擒將之符,長九寸。降城得邑之符,長八寸。卻敵報遠之符,長七寸。警眾堅守之符,長六寸。請糧益兵之符,長五寸。敗軍亡將之符,長四寸。失利亡士之符,長三寸。諸奉使行符,稽留,若符事聞,泄告者,皆誅之。八符者,主將秘聞,所以陰通言語,不泄中外相知之術。敵雖聖智,莫之能識。」
武王問太公曰:「… 符不能明;相去遼遠,言語不通。為之奈何?」
太公曰:「諸有陰事大慮,當用書,不用符。主以書遺將,將以書問主。書皆一合而再離,三發而一知。再離者,分書為三部。三發而一知者,言三人,人操一分,相參而不相知情也。此謂陰書。敵雖聖智,莫之能識。」 陰符是以八等長度的符來表達不同的消息和指令,可算是密碼學中的替代法(en:substitution),把信息轉變成敵人看不懂的符號。至於陰書則運用了移位法,把書一分為三,分三人傳遞,要把三份書重新拼合才能獲得還原的信息。
除了應用於軍事外,公元四世紀婆羅門學者伐蹉衍那(en:Vatsyayana) 所書的《欲經》4 中曾提及到用代替法加密信息。書中第45項是秘密書信(en:mlecchita-vikalpa) ,用以幫助婦女隱瞞她們與愛郞之間的關系。其中一種方法是把字母隨意配對互換,如套用在羅馬字母中,可有得出下表: A B C D E F G H I J K L M Z Y X W V U T S R Q P O N 由經典加密法產生的密碼文很容易泄漏關於明文的統計信息,以現代觀點其實很容易被破解。阿拉伯人津帝(en:al-Kindi)便提及到如果要破解加密信息,可在一篇至少一頁長的文章中數算出每個字母出現的頻率,在加密信件中也數算出每個符號的頻率,然後互相對換,這是頻率分析的前身,此後幾乎所有此類的密碼都馬上被破解。但經典密碼學仍未消失,經常出現在謎語之中(見en:cryptogram)。這種分析法除了被用在破解密碼法外,也常用於考古學上。在破解古埃及象形文字(en:Hieroglyphs)時便運用了這種解密法。 標准機構
the Federal Information Processing Standards Publication program (run by NIST to proce standards in many areas to guide operations of the US Federal government; many FIPS Pubs are cryptography related,ongoing)
the ANSI standardization process (proces many standards in many areas; some are cryptography related,ongoing)
ISO standardization process (proces many standards in many areas; some are cryptography related,ongoing)
IEEE standardization process (proces many standards in many areas; some are cryptography related,ongoing)
IETF standardization process (proces many standards (called RFCs) in many areas; some are cryptography related,ongoing)
See Cryptography standards
加密組織
NSA internal evaluation/selections (surely extensive,nothing is publicly known of the process or its results for internal use; NSA is charged with assisting NIST in its cryptographic responsibilities)
GCHQ internal evaluation/selections (surely extensive,nothing is publicly known of the process or its results for GCHQ use; a division of GCHQ is charged with developing and recommending cryptographic standards for the UK government)
DSD Australian SIGINT agency - part of ECHELON
Communications Security Establishment (CSE) - Canadian intelligence agency.
努力成果
the DES selection (NBS selection process,ended 1976)
the RIPE division of the RACE project (sponsored by the European Union,ended mid-'80s)
the AES competition (a 'break-off' sponsored by NIST; ended 2001)
the NESSIE Project (evaluation/selection program sponsored by the European Union; ended 2002)
the CRYPTREC program (Japanese government sponsored evaluation/recommendation project; draft recommendations published 2003)
the Internet Engineering Task Force (technical body responsible for Internet standards -- the Request for Comment series: ongoing)
the CrypTool project (eLearning programme in English and German; freeware; exhaustive ecational tool about cryptography and cryptanalysis)
加密散列函數 (消息摘要演算法,MD演算法)
加密散列函數
消息認證碼
Keyed-hash message authentication code
EMAC (NESSIE selection MAC)
HMAC (NESSIE selection MAC; ISO/IEC 9797-1,FIPS and IETF RFC)
TTMAC 也稱 Two-Track-MAC (NESSIE selection MAC; K.U.Leuven (Belgium) & debis AG (Germany))
UMAC (NESSIE selection MAC; Intel,UNevada Reno,IBM,Technion,& UCal Davis)
MD5 (系列消息摘要演算法之一,由MIT的Ron Rivest教授提出; 128位摘要)
SHA-1 (NSA開發的160位摘要,FIPS標准之一;第一個發行發行版本被發現有缺陷而被該版本代替; NIST/NSA 已經發布了幾個具有更長'摘要'長度的變種; CRYPTREC推薦 (limited))
SHA-256 (NESSIE 系列消息摘要演算法,FIPS標准之一180-2,摘要長度256位 CRYPTREC recommendation)
SHA-384 (NESSIE 列消息摘要演算法,FIPS標准之一180-2,摘要長度384位; CRYPTREC recommendation)
SHA-512 (NESSIE 列消息摘要演算法,FIPS標准之一180-2,摘要長度512位; CRYPTREC recommendation)
RIPEMD-160 (在歐洲為 RIPE 項目開發,160位摘要;CRYPTREC 推薦 (limited))
Tiger (by Ross Anderson et al)
Snefru
Whirlpool (NESSIE selection hash function,Scopus Tecnologia S.A. (Brazil) & K.U.Leuven (Belgium))
公/私鑰加密演算法(也稱 非對稱性密鑰演算法)
ACE-KEM (NESSIE selection asymmetric encryption scheme; IBM Zurich Research)
ACE Encrypt
Chor-Rivest
Diffie-Hellman(key agreement; CRYPTREC 推薦)
El Gamal (離散對數)
ECC(橢圓曲線密碼演算法) (離散對數變種)
PSEC-KEM (NESSIE selection asymmetric encryption scheme; NTT (Japan); CRYPTREC recommendation only in DEM construction w/SEC1 parameters) )
ECIES (Elliptic Curve Integrated Encryption System; Certicom Corp)
ECIES-KEM
ECDH (橢圓曲線Diffie-Hellman 密鑰協議; CRYPTREC推薦)
EPOC
Merkle-Hellman (knapsack scheme)
McEliece
NTRUEncrypt
RSA (因數分解)
RSA-KEM (NESSIE selection asymmetric encryption scheme; ISO/IEC 18033-2 draft)
RSA-OAEP (CRYPTREC 推薦)
Rabin cryptosystem (因數分解)
Rabin-SAEP
HIME(R)
XTR
公/私鑰簽名演算法
DSA(zh:數字簽名;zh-tw:數位簽章演算法) (來自NSA,zh:數字簽名;zh-tw:數位簽章標准(DSS)的一部分; CRYPTREC 推薦)
Elliptic Curve DSA (NESSIE selection digital signature scheme; Certicom Corp); CRYPTREC recommendation as ANSI X9.62,SEC1)
Schnorr signatures
RSA簽名
RSA-PSS (NESSIE selection digital signature scheme; RSA Laboratories); CRYPTREC recommendation)
RSASSA-PKCS1 v1.5 (CRYPTREC recommendation)
Nyberg-Rueppel signatures
MQV protocol
Gennaro-Halevi-Rabin signature scheme
Cramer-Shoup signature scheme
One-time signatures
Lamport signature scheme
Bos-Chaum signature scheme
Undeniable signatures
Chaum-van Antwerpen signature scheme
Fail-stop signatures
Ong-Schnorr-Shamir signature scheme
Birational permutation scheme
ESIGN
ESIGN-D
ESIGN-R
Direct anonymous attestation
NTRUSign用於移動設備的公鑰加密演算法,密鑰比較短小但也能達到高密鑰ECC的加密效果
SFLASH (NESSIE selection digital signature scheme (esp for smartcard applications and similar); Schlumberger (France))
Quartz
秘密鑰演算法 (也稱 對稱性密鑰演算法)
流密碼
A5/1,A5/2 (GSM行動電話標准中指定的密碼標准)
BMGL
Chameleon
FISH (by Siemens AG)
二戰'Fish'密碼
Geheimfernschreiber (二戰時期Siemens AG的機械式一次一密密碼,被布萊奇利(Bletchley)庄園稱為STURGEON)
Schlusselzusatz (二戰時期 Lorenz的機械式一次一密密碼,被布萊奇利(Bletchley)庄園稱為[[tunny)
HELIX
ISAAC (作為偽隨機數發生器使用)
Leviathan (cipher)
LILI-128
MUG1 (CRYPTREC 推薦使用)
MULTI-S01 (CRYPTREC 推薦使用)
一次一密 (Vernam and Mauborgne,patented mid-'20s; an extreme stream cypher)
Panama
Pike (improvement on FISH by Ross Anderson)
RC4 (ARCFOUR) (one of a series by Prof Ron Rivest of MIT; CRYPTREC 推薦使用 (limited to 128-bit key))
CipherSaber (RC4 variant with 10 byte random IV,易於實現)
SEAL
SNOW
SOBER
SOBER-t16
SOBER-t32
WAKE
分組密碼
分組密碼操作模式
乘積密碼
Feistel cipher (由Horst Feistel提出的分組密碼設計模式)
Advanced Encryption Standard (分組長度為128位; NIST selection for the AES,FIPS 197,2001 -- by Joan Daemen and Vincent Rijmen; NESSIE selection; CRYPTREC 推薦使用)
Anubis (128-bit block)
BEAR (由流密碼和Hash函數構造的分組密碼,by Ross Anderson)
Blowfish (分組長度為128位; by Bruce Schneier,et al)
Camellia (分組長度為128位; NESSIE selection (NTT & Mitsubishi Electric); CRYPTREC 推薦使用)
CAST-128 (CAST5) (64 bit block; one of a series of algorithms by Carlisle Adams and Stafford Tavares,who are insistent (indeed,adamant) that the name is not e to their initials)
CAST-256 (CAST6) (128位分組長度; CAST-128的後繼者,AES的競爭者之一)
CIPHERUNICORN-A (分組長度為128位; CRYPTREC 推薦使用)
CIPHERUNICORN-E (64 bit block; CRYPTREC 推薦使用 (limited))
CMEA - 在美國行動電話中使用的密碼,被發現有弱點.
CS-Cipher (64位分組長度)
DESzh:數字;zh-tw:數位加密標准(64位分組長度; FIPS 46-3,1976)
DEAL - 由DES演變來的一種AES候選演算法
DES-X 一種DES變種,增加了密鑰長度.
FEAL
GDES -一個DES派生,被設計用來提高加密速度.
Grand Cru (128位分組長度)
Hierocrypt-3 (128位分組長度; CRYPTREC 推薦使用))
Hierocrypt-L1 (64位分組長度; CRYPTREC 推薦使用 (limited))
International Data Encryption Algorithm (IDEA) (64位分組長度--蘇黎世ETH的James Massey & X Lai)
Iraqi Block Cipher (IBC)
KASUMI (64位分組長度; 基於MISTY1,被用於下一代W-CDMAcellular phone 保密)
KHAZAD (64-bit block designed by Barretto and Rijmen)
Khufu and Khafre (64位分組密碼)
LOKI89/91 (64位分組密碼)
LOKI97 (128位分組長度的密碼,AES候選者)
Lucifer (by Tuchman et al of IBM,early 1970s; modified by NSA/NBS and released as DES)
MAGENTA (AES 候選者)
Mars (AES finalist,by Don Coppersmith et al)
MISTY1 (NESSIE selection 64-bit block; Mitsubishi Electric (Japan); CRYPTREC 推薦使用 (limited))
MISTY2 (分組長度為128位:Mitsubishi Electric (Japan))
Nimbus (64位分組)
Noekeon (分組長度為128位)
NUSH (可變分組長度(64 - 256位))
Q (分組長度為128位)
RC2 64位分組,密鑰長度可變.
RC6 (可變分組長度; AES finalist,by Ron Rivest et al)
RC5 (by Ron Rivest)
SAFER (可變分組長度)
SC2000 (分組長度為128位; CRYPTREC 推薦使用)
Serpent (分組長度為128位; AES finalist by Ross Anderson,Eli Biham,Lars Knudsen)
SHACAL-1 (256-bit block)
SHACAL-2 (256-bit block cypher; NESSIE selection Gemplus (France))
Shark (grandfather of Rijndael/AES,by Daemen and Rijmen)
Square (father of Rijndael/AES,by Daemen and Rijmen)
3-Way (96 bit block by Joan Daemen)
TEA(小型加密演算法)(by David Wheeler & Roger Needham)
Triple DES (by Walter Tuchman,leader of the Lucifer design team -- not all triple uses of DES increase security,Tuchman's does; CRYPTREC 推薦使用 (limited),only when used as in FIPS Pub 46-3)
Twofish (分組長度為128位; AES finalist by Bruce Schneier,et al)
XTEA (by David Wheeler & Roger Needham)
多表代替密碼機密碼
Enigma (二戰德國轉輪密碼機--有很多變種,多數變種有很大的用戶網路)
紫密(Purple) (二戰日本外交最高等級密碼機;日本海軍設計)
SIGABA (二戰美國密碼機,由William Friedman,Frank Rowlett,等人設計)
TypeX (二戰英國密碼機)
Hybrid code/cypher combinations
JN-25 (二戰日本海軍的高級密碼; 有很多變種)
Naval Cypher 3 (30年代和二戰時期英國皇家海軍的高級密碼)
可視密碼
有密級的 密碼 (美國)
EKMS NSA的電子密鑰管理系統
FNBDT NSA的加密窄帶話音標准
Fortezza encryption based on portable crypto token in PC Card format
KW-26 ROMULUS 電傳加密機(1960s - 1980s)
KY-57 VINSON 戰術電台語音加密
SINCGARS 密碼控制跳頻的戰術電台
STE 加密電話
STU-III 較老的加密電話
TEMPEST prevents compromising emanations
Type 1 procts
雖然頻率分析是很有效的技巧,實際上加密法通常還是有用的。不使用頻率分析來破解一個信息需要知道是使用何種加密法,因此才會促成了諜報、賄賂、竊盜或背叛等行為。直到十九世紀學者們才體認到加密法的演算法並非理智或實在的防護。實際上,適當的密碼學機制(包含加解密法)應該保持安全,即使敵人知道了使用何種演算法。對好的加密法來說,鑰匙的秘密性理應足以保障資料的機密性。這個原則首先由奧古斯特·柯克霍夫(Auguste Kerckhoffs)提出並被稱為柯克霍夫原則(Kerckhoffs' principle)。資訊理論始祖克勞德·艾爾伍德·香農(Claude Shannon)重述:「敵人知道系統。」
大量的公開學術研究出現,是現代的事,這起源於一九七零年代中期,美國國家標准局(National Bureau of Standards,NBS;現稱國家標准技術研究所,National|Institute of Standards and Technology,NIST)制定數字加密標准(DES),Diffie和Hellman提出的開創性論文,以及公開釋出RSA。從那個時期開始,密碼學成為通訊、電腦網路、電腦安全等上的重要工具。許多現代的密碼技術的基礎依賴於特定基算問題的困難度,例如因子分解問題或是離散對數問題。許多密碼技術可被證明為只要特定的計算問題無法被有效的解出,那就安全。除了一個著名的例外:一次墊(one-time pad,OTP),這類證明是偶然的而非決定性的,但是是目前可用的最好的方式。
密碼學演算法與系統設計者不但要留意密碼學歷史,而且必須考慮到未來發展。例如,持續增加計算機處理速度會增進暴力攻擊法(brute-force attacks)的速度。量子計算的潛在效應已經是部份密碼學家的焦點。
二十世紀早期的密碼學本質上主要考慮語言學上的模式。從此之後重心轉移,數論。密碼學同時也是工程學的分支,但卻是與別不同,因為它必須面對有智能且惡意的對手,大部分其他的工程僅需處理無惡意的自然力量。檢視密碼學問題與量子物理間的關連也是熱門的研究。
現代密碼學大致可被區分為數個領域。對稱鑰匙密碼學指的是傳送方與接收方都擁有相同的鑰匙。直到1976年這都還是唯一的公開加密法。
現代的研究主要在分組密碼(block cipher)與流密碼(stream cipher)及其應用。分組密碼在某種意義上是阿伯提的多字元加密法的現代化。分組密碼取用明文的一個區塊和鑰匙,輸出相同大小的密文區塊。由於信息通常比單一區塊還長,因此有了各種方式將連續的區塊編織在一起。DES和AES是美國聯邦政府核定的分組密碼標准(AES將取代DES)。盡管將從標准上廢除,DES依然很流行(3DES變形仍然相當安全),被使用在非常多的應用上,從自動交易機、電子郵件到遠端存取。也有許多其他的區塊加密被發明、釋出,品質與應用上各有不同,其中不乏被破解者。
流密碼,相對於區塊加密,製造一段任意長的鑰匙原料,與明文依位元或字元結合,有點類似一次一密密碼本(one-time pad)。輸出的串流根據加密時的內部狀態而定。在一些流密碼上由鑰匙控制狀態的變化。RC4是相當有名的流密碼。
密碼雜湊函數(有時稱作消息摘要函數,雜湊函數又稱散列函數或哈希函數)不一定使用到鑰匙,但和許多重要的密碼演算法相關。它將輸入資料(通常是一整份文件)輸出成較短的固定長度雜湊值,這個過程是單向的,逆向操作難以完成,而且碰撞(兩個不同的輸入產生相同的雜湊值)發生的機率非常小。
信息認證碼或押碼(Message authentication codes,MACs)很類似密碼雜湊函數,除了接收方額外使用秘密鑰匙來認證雜湊值。
3. 古代的密碼鎖也使用數字作為密碼嗎
我國使用鎖的歷史已經有5000多年了。起初,鎖並沒有安裝機關,而是做成豹子、獅子等兇猛動物的形狀,達到震懾的目的。後來,鎖的結構越來越復雜,開始運用各種安全防範的技巧。明清時期,出現了結構復雜的密碼鎖,復雜程度一點也不比現在的密碼鎖差。
這些漢字密碼鎖造型優美,儼然是一種藝術作品,它們既美觀又實用,體現了我國古人的聰明才智。
4. 中國古代是怎麼做到讓傳遞的信息保密的呢求解答
古代信息大部分就是信函了,所使用的保密方式就是火漆封緘,其實仔細一想除了封的嚴實點也沒別的辦法。
封緘形式的演變
(一)竹簡封:簡,是戰國至魏晉時代的書寫材料,是削製成狹長的竹片和木片,竹片稱簡,木片稱札或牘,統稱為簡;稍寬的長方形木片叫方;若干簡編綴在一起的叫策(冊)。竹簡封是指將方或策(冊)卷好用繩子把它捆紮、封泥固封的一種形式。封泥,是指鈐有印章的土塊,也稱「泥封」:是將繩端或交叉結扎處放入挖有方槽的「檢木」,封以粘土,蓋上印章,作為信驗,以防私拆。
(二)木牘封:是木牘信函的封緘形式,是指先在木板上寫好文字,再在木板上復蓋一塊木板,或另用兩塊相似木板,稱「外木板」,兩面夾住;木板上雕有3條線槽,用繩子在線槽上捆紮3圈,穿過一個方孔,把木板縛牢,然後在木板外側封上粘土,蓋上印章,防止私拆。如今信封落款的「緘」,最初就是指用繩子捆紮木牘的方式。
上述兩種信函封緘形式,主要流行於秦、漢、魏時期,但都以「粘土」封口,若以封口材質來說,應該統稱「粘土封」。晉後,紙帛盛行,簡牘封緘逐漸廢止,當然,也就不用「粘土封口」了。
(三)棉紙封:是紙帛盛行時期信函封緘的常用形式,普遍用於平常信函與家書。信封由多層薄紙裱糊成型,形似當代直式信封。棉紙封使用方便,原意是專指信封上下封舌之處,加貼棉紙鈐印封口,以資保護,同時也泛指紙質信封。
(四)火漆封:是用以防範信封被拆的主要封緘形式,特別用於機要信函的保護。
火漆,亦名「封蠟」,又叫「封口漆」。以松脂、石蠟、焦油加顏料混合加熱製成塊條狀,一般呈紅色或棕紅色,也可按要求製成藍、白等特殊顏色,遇熱則軟,面粘,專供瓶口、信件封粘之用。封粘時,用燭火引燃火漆,於熔成稠狀瞬間滴注於需要封粘之處,在將待凝固之前加蓋印章,冷卻後留下清晰鈐記圖案。既美觀又能有效地防止私拆。此外,火漆還應用於雞毛信的雞毛粘合,以防雞毛脫落。
火漆封是相對於「粘土封」的封緘形式,火漆章是適用於火漆封緘條件的一種鈐記,為便於觀察與檢驗,常以機關單位名稱或標志陰文鐫制。奧博會標志選擇「祥雲火漆章」就是火漆封條件下的特定產物。
棉紙封隨著制紙工藝的發展和紙質的提高,信封由多層改為單層,沿用至今。火漆封明、清時期官民之間均皆盛行;民國時期沿用於政府機關,民間則較少使用。
封泥是我國古代封緘簡牘、封存財物所使用的蓋有印章的泥塊,和印章一樣是一種憑信物,它的用途是作為封緘憑信,封泥在古書中不乏記載,如《後漢書·百官志》載,少府的屬官中有守宮令一人,「主御紙筆墨及尚書財用諸物及封泥」;衛宏《漢舊儀》「有天子信璽皆以武都紫泥封」,後稱皇帝詔書為紫泥封或紫泥;李白《玉壺吟》詩有「鳳凰初下紫泥詔,謁帝稱觴登御筵」。鳳凰指鳳凰詔,即是皇帝詔書,紫泥即縈色封泥,用來封詔書。這兩句詩寫李白奉詔進京,皇帝賜宴的隆遇;《東觀漢記·鄧訓傳》:「知訓好以青泥封書……載青泥一穙,至上谷遺訓」即知道鄧訓喜歡用青泥作書信的封泥,於是用車送去青泥一堆,至上谷送與鄧訓。既然古書有眾多的記載,為什麼後人反而不明白呢?因為封泥之法在古代是人人都明白的常識,古書中一般不加註釋,隋唐以後,封泥的方法不再使用,到明清時人們對「封泥」是怎麼一回事,就不甚瞭然了。
封泥主要用途是用於封緘公文、書信。
古代公文書信大多寫在竹簡木牘上,為了保密和防止偽造,要嚴密封藏起來。封緘的方法是在竹木簡扎外面加一鑿有小方槽的木片,再用繩子將它和簡牘一起捆縛好,將繩結置於木槽,然後將一團軟泥捺入木槽將繩結蓋住,再用印章在泥上蓋印,這個有小方槽的木片就叫檢(後人把裝有封泥的檢叫封泥匣),封緘的全過程叫檢封,在封泥上加印叫檢署或封印、封記,公文送到後要查驗封泥是否完好、封印是否真實,這叫檢驗,這種作法很象過去郵政局的火漆封,可以防止傳遞過程中私拆。1973年甘肅省博物館在發掘金塔縣漢代「肩水金關」遺址時,出土了一個封緘文書的「封泥匣」,封泥上有「居延右尉」的四字封記。若一份文書的簡牘較多,還可以放在絹囊中,口上用繩扎住加檢封緘。據《漢舊儀》載,在東漢時,群臣給皇帝上奏章,如果事及機密,皆「封以皂囊」。《後漢書》公孫瓚傳中載有他彈劫袁紹的奏章,說袁紹「矯刻金王玉,以為印璽,每有所下,輒皂囊施檢,文稱詔書」,指責袁紹私自刻制玉璽,下發公文時,用黑絹口袋檢封,人們稱為詔書。由此可知,古代封城公文書信的方法有兩種,一種是直接封檢,一種是用口袋封檢。
火漆,又稱為 封蠟,英文名:SEALING WAX
火漆(即封蠟,用於郵政信件,文件或密件封口,以防止被他人打開),
是一種比較古老的東西,古代人們在重要的文件或信件、密件、包裹等的封口處滴上燒化後的火漆,乘熱蓋上章,這樣任何人訖圖私自打開,都會造成火漆破損。
公元前3000年,亞述人和埃及人的泥版信裝在泥制的外套內,這是世界上最早的信封。
後來人們把用動物皮和羊皮紙寫成的信捲成一卷,外邊用窄皮條(經常取自同一張動物皮)捆紮,再用火漆封緘。隨著紙張的出現,信被折疊起來,信紙背面用於書寫姓名、地址和有關的郵寄說明,信紙各邊封口用火漆封緘,這種做法在歐洲一直延續到19世紀60年代,在世界的其他地方甚至還要晚一些。
火漆封緘的盛行
火漆是形成火漆封的基礎條件,火漆印是防止火漆封被拆的主要保證。有人說火漆法國人發明於1626年;有人說中國人發明,於公元11世紀,經由印度傳入歐洲,很快就成為歐洲人保守通信秘密的法寶。也有人說,漢高祖劉邦(公元前206——公元前195)用過火漆印,在香港某拍賣會上,以四十萬港幣拍賣成交(《維基網路·火漆起源》)。眾說紛紜,有待查證。然而,有一點是可以肯定的,火漆封是替代竹簡封、本牘封的封緘形式,是相對於「粘土封」的延伸與發展,應當在竹簡封之後使用。也就是說,火漆封應該啟用於公元二、三世紀的晉後時期,顯然說法國人發明於1626年,未免過於遲滯了。至於由中國發明經印度傳入歐洲,當然可以查證;但是漢劉邦用過火漆印,應該是不爭的事實,原因是在火漆封之前的「粘土封」是同樣需要鈐印的。所不同的是前者蓋在粘土上,後者鈐在火漆上,隨著時間的推移,稱它「火漆印」也無不可。其實,回顧火漆封的存在形態,關鍵還在於認識它在傳遞機要信函和保護信息權益方面的歷史功績。
晉代以來,紙帛盛行,火漆封緘,沿用至今,歷史悠久,並且在各類重要文件、貴重物品、文物出境與文物鑒定保護的應用中發揮著積極作用。清光緒二十二年(1896年)開辦國家郵政,規定信封要有紅色條封,用毛筆規矩書寫,蓋上鈐記,貴重的用火漆封口。民國時期雖有變革,但繼延舊制,也廣泛用於政府機要文件。法國人用火漆加封,以火漆顏色區分內容,紅漆為官方文件,棕漆為赴宴請柬,白漆為婚嫁喜慶。值得關注的是,火漆封緘也為萬國郵聯採用,規定用於各國的有價函件,以及貴重文物包裝的封粘。
新中國建立初期,一些機關、企事業單位以及學校個人檔案和重要單證的傳遞,也曾使用過火漆封。然而,隨著郵政運行體系的完善與發展,也為機要信函封緘形式的改革創造了極為有利的條件。「火漆封」盡管有形似嚴密的保密形式,但是強調火漆封緘,實際上是「見物不見人」,人品不好,(火漆)封有何用。特別是以火漆封緘明白標示信函性質,未免過度暴露。同時火漆封粘封繁瑣,點燃熔化,滴液鈐印,早則模糊,晚則淡漠,也導致火漆封的逐漸消逝。
5. 間諜情報運用密碼進行傳遞通訊的方法有哪五種
一是陰符、陰書。東漢許慎《說文解字》對"符"的釋義是:"符,信也......分而相合。"《孫子兵法·九地篇》已指出"夷關折符",曹操與杜牧分別注道:"謀定,則閉關以絕其符信,勿通其使","夷關折符者,不令國人出入。蓋恐敵人有間使潛來,或藏形隱跡,由危歷險,或竊符盜信,假託姓名,而來窺我也。"陰符是刻畫有特殊符號或製成不規則牙狀邊緣的信物憑證,其作用為傳遞情報,調兵遣將。《六韜·陰符第二十四》有專章論述古代陰符的密碼:"主與將有陰符凡八等:有大勝克敵之符,長一尺。破軍擒將之符,長九寸。降城得邑之符,長八寸。卻敵報遠之符,長七寸。警眾堅守之符,長六寸。請糧益兵之符,長五寸。敗軍亡將之符,長四寸。失利亡士之符,長三寸。諸奉使行符,稽留者,若符事泄,聞者、告者皆誅之。八符者,主將秘聞。所以陰通言語不泄中外相知之術,敵雖聖智,莫之能識。"
這種由主將事先暗自規定尺寸長短的陰符,其所代表的"言語"就是一種情報密碼。陰符有銅制、玉制、木製、竹製等。陰符也可以作為一種臨時的特殊通行證。《墨子·號令第七十》中說:"有分守者,大將必與為信符。大將使人行守,操信符,信符不合及號不相應者,伯長以上輒止之,以聞大將。"一般銅符是為傳遞情報調動部隊之用;木、竹符為特使"出入征險"通行之用。譬如戰國信陵君派女間諜如姬竊取魏王銅符,然後"矯魏王令代晉鄙",奪兵權而救趙國。楚懷王發給鄂君竹符,遣其巡歷長江沿岸。
陰書是比陰符更進一步的情報傳遞密碼。《六韜·陰書第二十五》也有專章論述:"武王問太公曰:其事煩多,符不能明,相去遼遠,言語不通;為之奈何?太公曰:諸有陰事大慮當用書不用符。主以書遣將,將以書問主,書皆一合而再離,三發而一知。再離者分書為三部;三發而一知者,言三人,人操一分,相參而不相知情也。此謂陰書。敵總聖智,莫之能識。"所謂"一合而再離",即將一份完整的情報截成三份,分寫在三枚竹簡上;所謂"三發而一知",即派三個人分別持此三枚竹簡,分別出發,到達目的地後,再將三枚竹簡合而為一,便能讀通其意義了。這樣,送情報的人互不得知傳送情報的內容,即使有一人或二人被敵方捕獲,也不會泄密。
二是暗號。以暗號互通信息或傳遞情報,古已有之。記之較詳的是明代無名氏兵書《草廬經略·軍號》:"軍營有夜號也,恃以防奸也。或以物,或以字暮夜往來邏軍,必低聲詢問,不知號者,必奸細也。號須記載,以便稽查,毋得重復,亦勿有心,恐有心則為人所覺,而重復則雷同,尤使敵易測也。營外巡視,伏路之軍,亦別有號,盤詰外奸,使無所容。先發外號,遣之使出,始發內號,勿令預聞,恐敵擒獲因而泄露也。"
"路符"也是一種秘密暗號。譬如在某人必經途中,在泥土上畫一個大圓圈,表示前面有人接頭;畫一條蛇,表示執行任務時有人協助;畫五個並排三角形,表示將進行刺殺行動。
"體態語"有多種多樣,有手勢語、身勢語、情態語等。譬如遇有緊急情況,則舉扇過頭,輕搖三下,表示招人參加戰事;又如把右手拇指握在其餘四指之外,放在頭上,則表示"處境危險,緊急求助"的含意。
此外,還有一種以物品讀音的諧聲來作為一種情報暗號。譬如北宋種世衡派間諜法崧前往西夏進行反間,"遣法崧以棗及畫龜為書置蠟丸中,遺旺榮,喻以'早'、'歸'之意"。"棗"諧"早"音,"龜"諧"歸"音。這一類傳遞情報的暗號需事先約定,但它與陰符一樣,所容納的信息量很小,因此所傳遞的情報內容也就很有限了。
三是字驗。宋仁宗時詔令天章閣待制曾公亮編撰的《武經總要》卷十五曾詳細記載了這一情報通訊方法。所謂"字驗",即將各種情報用四十字的一首詩中的一些字來表示。具體要求是:所選的詩不得有重復之字,詩中的每一個字依次表示某一情報。如需報告某一情報,便在詩中規定的某一個字下加上一個符號即可。對方收到後,只需查對密碼本即可譯出情報內容。譬如《武經總要》記載道:先將軍中聯絡的有關情報編為四十項,即:請弓、請箭、請刀、請甲、請槍旗、請鍋幕、請馬、請衣賜、請糧料、請草料、請牛車、請船、請攻城守具、請添兵、請移營、請進軍、請退軍、請固守、未見賊、見賊訖、賊多、賊少、賊相敵、賊添兵、賊移營、賊進兵、賊退軍、賊固守、圍得賊城、解圍城、被賊圍、賊圍解、戰不勝、戰大勝、戰大捷、將土投降、將士叛、士卒病、都將病、戰小勝。
如果出現了四十項中的某一項或幾項的情況,則書寫一首五言律詩(五字一句,共八句,正好四十個字),按四十項的次序,用一個記號寫在五言律詩的第幾個字下即可。譬如出現了"被賊圍"的情況,按四十項的次序是第三十一項,於是隨意寫一首五言律詩,譬如用白居易的《賦得古原草送別》一詩:"離離原上草,一歲一枯榮。野火燒不盡,春風吹又生。遠芳侵古道,晴翠接荒城。又送王孫去,萋萋滿別情。"然後在這首詩的第三十一個字"又送王孫去"的"又"字下加個記號,即表示"被賊圍"的情報。
四是反切密碼。這是明代名將戚繼光所發明創制。它是用古代反切的注音方法來編制密碼。反切注音方法為:用兩個字拼合成另一個字的音。即取反切上字的聲母和反切下字的韻母及聲調,切出所需注釋字的字音。譬如要注"諜"這個字音,則用"得斜"兩個字來注音,即取"得"字的聲母"d";取"斜"字的韻母"ie"及"斜"宇的聲調,拼切成dié音,就是"諜"的字音。
反切密碼法利用反切的原理編了兩首歌:
柳邊求氣低,波他爭日時。鶯蒙語出喜,打掌與君知。
用這首歌的前十五個字作為不同聲母的代表字。即柳字代表"1";邊字代表"b",以下依次類推(注意:古字的讀音有些與現代漢語讀音不同)。
另一首歌是:
春花香,秋山開,嘉賓歡歌須金杯,孤燈光輝燒銀缸。之東郊,過西橋,雞聲催初天,奇梅歪遮溝。
用這首歌的三十六個字作為不同韻母的代表字(注意:其中的金與賓、梅與杯、遮與奇的韻母相同,實際上只有三十三個不同韻母的代表字)。
然後將十五個聲母代表字和三十六個韻母代表字按次編上號碼,再將當時字音的八個聲調也按順序編上號碼。這就形成了傳遞情報的反切密碼,可以用此注出任何字的讀音。戚繼光由此還編了一本《八音字義便覽》來作為教材,進行專門訓練。
五是明碼加密。清末時,電報技術輸入中國。1871年由上海大北水線電報公司,選用了六千八百九十七個漢字,代以四碼數字,編成中國最早的電報明碼本。但是為了保密,又設計了將明碼本加密的方法,形成了較復雜的密碼。這一密碼被清末軍事及商業情報機構使用,傳遞發送了眾多方面的間諜情報。
明碼加密的具體方法是:譬如"布"這個字的電報電碼為1530,加密和減密的鑰匙均為9853。先用明碼的四個數字分別與加密鑰匙的四個數字相加:1加9為"10",凡"10"都作"0";5加8為"13",須隱去"10",只作"3";3加5為"8";0(看作"10")加3為"13",須隱去"10",只作3。那麼"布"的明碼1530就成了密碼0383。接收到這四個密碼後,再以此減去解密鑰匙的四個數字,即:0(看作"10")減9為"1";3(看作前已隱去的"10"再加上3為13)減8為"5";8減5為"3";3減3為"0",解密後的數字為1530,又回到明碼上去了。