小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

一問到底:一般密碼10個(gè)數(shù)字和26個(gè)字母組合如果我或有關(guān)重要部門造了50新字母,黑客鍵盤上沒有這些字母如何破解?

 半佛肉夾饃 2023-10-20 發(fā)布于河南

比如一個(gè)非常有實(shí)力的公司的絕密專利技術(shù)內(nèi)部存儲(chǔ)的話,,,能不能自己造服務(wù)器,使用新造的字母加密

答:

從題主的問法看,你需要補(bǔ)足的知識(shí)還不是一般的多……

好吧,看我從頭給你科普。

你需要補(bǔ)足的第一個(gè)基礎(chǔ)叫做“編碼”。

恰好,我之前回答過這樣一個(gè)問題:知乎用戶:假如有無限種可能,一加一會(huì)不會(huì)等于三?

其中提到,對于“1”這個(gè)抽象概念,人類可能用“壹、一、幺、Ⅰ、①、one、un/une”等諸多光學(xué)符號(hào)來記錄它。

事實(shí)上,每個(gè)人都知道,不僅“1”這個(gè)抽象概念可以用光學(xué)符號(hào)來記錄,我們還可以用一個(gè)特定的音頻序列(yi、yao、one等)來表示它。

學(xué)術(shù)點(diǎn)說,“抽象概念”可以叫做“所指”;而拿來代表這個(gè)“所指”的聲音信號(hào)/光學(xué)符號(hào)則為“能指”。

我們可以進(jìn)一步擴(kuò)展這個(gè)關(guān)系:對英語這樣的拼音文字,我們可以用一個(gè)三位十進(jìn)制數(shù)字(實(shí)際小于128,本質(zhì)上是7位二進(jìn)制數(shù)字;計(jì)算機(jī)里,8個(gè)二進(jìn)制位被稱為一個(gè)字節(jié))給它們編碼——比如“a”的編碼可能是“97”,“b”的編碼可能是“98”……而阿拉伯?dāng)?shù)字“0”的編碼則是“48”……

事實(shí)上,這個(gè)編碼規(guī)則就是:ascii - 國內(nèi)版 Bing

現(xiàn)在,“ab0”這個(gè)字符串,我們就可以用“979848”表示了……

換句話說,在我們這個(gè)“基于ASCII碼的文本體系”里,“能指”“979848”的“所指”就是英文中的“ab0”——至于英文中的“ab0”這個(gè)“能指”真正代表著什么樣的“所指”,需要根據(jù)上下文確定。

比如說,“ab0”可能是某款集成電路的某個(gè)引腳;那么,英文文檔中的“ab0”、磁盤文件中的“979848”、電路中的“低高高低低……”,歸根結(jié)底都是在說這個(gè)引腳。

這也是個(gè)典型的“編碼現(xiàn)實(shí)事物”的例證。只不過日常生活中,我們把它叫做“起名字”——新發(fā)現(xiàn)個(gè)物種,給它起個(gè)名字;家里買了只狗娃,給它起個(gè)名字;你生了個(gè)小孩,也起個(gè)名字……嗯,就這么回事,沒啥神秘的。

事實(shí)上,你的身份證號(hào)、銀行卡號(hào)、工作單位的工號(hào)等等,也是國家/銀行/工廠給你(的身份/賬號(hào))起的一個(gè)名字。

你已經(jīng)有名字了,他們?yōu)槭裁催€要拿數(shù)字給你起個(gè)名字呢?

因?yàn)槟愕拿挚赡芎蛣e人重復(fù),區(qū)分不了誰是誰。所以才不得不拿數(shù)字按嚴(yán)格規(guī)則給你起個(gè)新的名字,確保一個(gè)名字對應(yīng)唯一一個(gè)客觀實(shí)體。

“按嚴(yán)格規(guī)則起名字”就是所謂的“編碼”;編碼的目的除了避免重復(fù)外,也可能有其它目的,比如方便機(jī)器管理等等。

注意編碼和實(shí)體的對應(yīng)關(guān)系只是一種約定。你是你,(在工廠里)你也是9527;和你同名同姓者犯了死罪,被槍斃的可絕對不能是你。因此切不可把編碼本身和它代表的實(shí)體混淆。

類似的,我們也可以給每個(gè)漢字一個(gè)編碼——漢字太多,所以至少需要16位二進(jìn)制才行;同時(shí)為了和ASCII碼區(qū)分,規(guī)定編碼漢字的第一個(gè)字節(jié)必須大于等于128……

著名的GB2312就采用了類似的方案:信息交換用漢字編碼字符集_百度百科

再后來,隨著計(jì)算機(jī)的普及,專家們又做了個(gè)巨大無比的編碼表,把全世界幾乎所有人類語言使用的文字符號(hào)編了進(jìn)去——這就是著名的Unicode編碼。

這個(gè)編碼也有幾種不同的方案。目前最常用的可能是utf-8。utf-8是一種變長編碼:UTF-8_百度百科

計(jì)算機(jī)里面,一切都是二進(jìn)制。

一切語言文字,都需要先編碼成二進(jìn)制才能被計(jì)算機(jī)處理(事實(shí)上,這些二進(jìn)制碼還會(huì)被轉(zhuǎn)換成電路中的高低電平、信號(hào)的上升沿、光線的有無,等等);然后,這些二進(jìn)制編碼需要經(jīng)過“解碼”,最終才會(huì)變成我們?nèi)搜劭勺R(shí)別的光學(xué)符號(hào)顯示到屏幕上。

因此,所謂“獨(dú)特的、無法輸入的符號(hào)”是不存在的。

歸根結(jié)底,所有符號(hào)都是一種編碼而已;隨便制定個(gè)編碼方案就能把它二進(jìn)制化。

其中,我們習(xí)慣的報(bào)刊/雜志/小說中使用的文字,屬于“光學(xué)編碼”;我們聽收音機(jī)和人交談,這叫“聲學(xué)編碼”;盲人用的盲文則是一套基于觸覺的編碼;莫爾斯電碼則是利用長短對比搞的一套編碼,從根本上說也是一種二進(jìn)制編碼。

不同編碼之間可以相互轉(zhuǎn)換——只要把代表相同意義的“碼點(diǎn)”聯(lián)系起來即可。

比如說,壹、一、幺、Ⅰ、①、one、un/une,這些來自相同/不同語言的光學(xué)/音頻符號(hào),它們的“所指”都是抽象概念“1”;假設(shè)我們不懂漢語也不懂英語,但只要把它們放進(jìn)一組二維表里,從“壹”查到“1”,然后再從“1”查到“one”,就可以完成漢語到英語的翻譯了——需要翻譯到俄語/德語,說白了也不過是幾次類似的查表運(yùn)算而已(當(dāng)然了,湊合能懂而已,語法結(jié)構(gòu)就別想了)。

嗯,說的這么高大上,其實(shí)不就是查字典嘛。

很多古典密碼,比如著名的凱撒密碼,其實(shí)就是這種“符號(hào)替換”思路:凱撒密碼 - 國內(nèi)版 Bing

中國古代,武將出征時(shí),也會(huì)和國君約定某本經(jīng)典,比如《易經(jīng)》;將來需要通報(bào)軍情了,不直接寫漢字,而是寫數(shù)字:28 6 5  32 7 4……

國君一看,哦,易經(jīng)第28頁第6行第5字,然后是第32頁第7行第4字……拼起來一看,“救”“命”……(這段是胡扯的,我手邊真沒放易經(jīng))

這封信如果被外人搶到了,他不知道雙方約定的是哪本書、哪個(gè)版本,就不可能明白這一堆奇怪的數(shù)字是什么意思……

類似的,還有人腦洞大開,通過畫小人來傳信息——小人端正站著是字母A,小人抬左手是字母B……依此類推,就把所有英文字母編碼了。

然后,外人搞到密信了,他還以為是一本武(舞)學(xué)秘籍呢:你看,第一招分明是黑虎掏心,第二招猴子摘桃,第三招過肩摔,第四招鎖喉……咦?過肩摔了還怎么站著鎖喉?其中微言大義實(shí)難索解……

其實(shí)翻譯過來可能是 I love U……

但是,對近現(xiàn)代人來說,一切古典密碼都是紙老虎——它甚至都不配叫加密,至多算是一種“編碼”而已。

比如說吧,畫小人的密碼,我們可以統(tǒng)計(jì)它一共有多少個(gè)姿勢,然后給每個(gè)姿勢一個(gè)編號(hào),于是就把它轉(zhuǎn)換成“1、2、3...”了。

然后,我們知道,不同語言里面不同字符的出現(xiàn)頻率是不一樣的。比如英文里字符“e”出現(xiàn)頻率最高,中文里“的”字最喜歡刷存在感……

那么,如果加密前的信息是英文寫的,只要我們多截獲一些這類信息,很容易就能分辨出“編碼23就是字母e”(中文類似,以后不再專門說明)。

此外,我們還可以“選擇明文攻擊”——比如,當(dāng)年日軍以“AF”指代中途島,美國人大惑不解,不知道這個(gè)“AF”究竟是哪里:但根據(jù)種種蛛絲馬跡可以斷定,它或者是中途島,或者是阿留申群島。

于是,他們就故意放出假消息,說中途島缺乏淡水;日本人果然上當(dāng),在機(jī)密情報(bào)里說“AF缺乏淡水”……

中途島戰(zhàn)役(美日戰(zhàn)役)_百度百科

你看,我甚至壓根不需要懂你的語言,只需尋找你經(jīng)常重復(fù)出現(xiàn)的“信號(hào)序列”(字符/語音都是一種信號(hào));然后,把特定序列和現(xiàn)實(shí)世界的事物正確對應(yīng)起來,你們在說什么,我就了解的七七八八了

這個(gè)思路甚至可以拿來破解失傳的古文字——?dú)w根結(jié)底,古文字也不過是已經(jīng)消失了的某個(gè)古代民族對地球上各種客觀事物抽象概念的“編碼”嘛。

只要搜集的資料夠多,搭配文字配套的圖畫(相當(dāng)于“選擇明文攻擊”),很容易借助統(tǒng)計(jì)等技術(shù)手段,在正確的單詞和它指代的事物之間連上線——甚至包括這種古語言的時(shí)態(tài)變化語法結(jié)構(gòu),都可能借此破解。

你看,理工科的思路總是這么簡單粗暴、直指根本;你們想當(dāng)然搞出來的虛頭八腦,我們只當(dāng)花架子看。

題外話:其實(shí)古典加密術(shù)也不單純是這么簡單的逐字替換,后期也有更為復(fù)雜、可以部分破壞統(tǒng)計(jì)學(xué)特征的一些加密方法。

其中一些相當(dāng)于搞若干個(gè)編碼表格,加密第一個(gè)字母用表格1,加密第二個(gè)用表格2……依此類推。

但這種依靠人力搞的“蠻力輪換法”復(fù)雜度有限;破解者只需收集稍多密文,觀察其中兩個(gè)相鄰的重復(fù)字符串的出現(xiàn)間隔,就可以猜出一共多少個(gè)表格輪換(比如一共10個(gè)表格,那么恰好間隔10個(gè)字符的the/ing/ed等等字母組合,在加密后就會(huì)得到一樣的密文序列);然后把密文歸類到這10個(gè)表格分別統(tǒng)計(jì),就可以一舉破解其中用到的10套不同編碼方案、從而完成徹底解密了。

到此,已經(jīng)完全可以回答題主的問題了:自己制造怪異的符號(hào)能否影響破解?甚至像托爾金那樣,自己設(shè)計(jì)符號(hào)、語法搞一套“精靈語”,能不能抵抗破解?

精靈語_百度百科

答案是,那至多算是編碼,壓根就不配叫加密。哪怕在古代都稱不上先進(jìn);對現(xiàn)代人來說,那更已經(jīng)是落后NNN個(gè)時(shí)代的技術(shù)了。

如果你這個(gè)符號(hào)體系創(chuàng)建出來、只用來向準(zhǔn)女朋友傳遞一句I 【心】 U然后就沒有然后的話,那的確拿你沒辦法。但想要像現(xiàn)在這樣支持加密的日常通信……這種固定編碼方案壓根不存在任何保密性。

PS:以密碼學(xué)視角看,二戰(zhàn)中美軍用的納瓦霍語同樣算是一種“古典加密術(shù)”;只是它采用了“音頻編碼”而不是“光學(xué)字符編碼”,因此分析起來更難一些:不熟悉這門語言的外人甚至壓根無法把未知語言錄音里的一個(gè)個(gè)語素正確拆分出來,后續(xù)分析自然就沒法進(jìn)行下去了——尤其語音識(shí)別不夠成熟的過去,給一個(gè)音頻流分詞本身就是個(gè)無法解決的技術(shù)難題。

但現(xiàn)代可以借助強(qiáng)大的機(jī)器學(xué)習(xí)相關(guān)算法(比如聚類算法),把音頻信息中的各種信息提取歸類(相當(dāng)于自動(dòng)為其編碼);然后通過“選擇明文攻擊”識(shí)別其意義(這實(shí)際上和人工智能搞的“同聲傳譯”是一回事了)。

換句話說,找一種未知語言以語音方式通信,的確能給破解者帶來一定的麻煩;但這個(gè)麻煩并不是無法解決的;且通信的量越大,保密性就越差。

好奇心旺盛的你可能會(huì)問,那,現(xiàn)在是怎么加密的呢?

嗯……這個(gè)問題可太大了。

真正“配”稱為現(xiàn)代加密術(shù)的、又最易理解的,大概就是二戰(zhàn)德國的ENIGMA機(jī)了:德國密碼機(jī)ENIGMA的興亡_圖文_百度文庫

這個(gè)機(jī)器只靠3個(gè)轉(zhuǎn)子的不同初始位置便可以提供17576種不同的替換方案;三個(gè)轉(zhuǎn)子間不同的相對位置又有6種可能性;每次加密前,先按照當(dāng)日密鑰設(shè)置轉(zhuǎn)子初始狀態(tài)(也就是從17576X6種編碼表格中選取其中一組17576種方案、然后再從這17576種方案其中之一開始);每加密一個(gè)字符,轉(zhuǎn)子旋轉(zhuǎn)一格,替換方案便隨之一變……除非連續(xù)加密17576個(gè)字符,否則不會(huì)像古典加密法那樣出現(xiàn)重復(fù)(但哪有那么長的密信)。

事實(shí)上,ENIGMA還有個(gè)連接板,可以調(diào)整其上六條連線,從而使得替換方案的可能性進(jìn)一步暴增到若干億(不過,這個(gè)設(shè)計(jì)后來被圖靈想辦法抵消掉了,從而大幅降低了破解難度)。

面對這種怪物,“傳統(tǒng)”的破解技術(shù)就徹底失去了效用——這種東西,壓根就不是人力可破解的……

不過,ENIGMA雖然一只腳已經(jīng)邁進(jìn)現(xiàn)代加密學(xué)的大門,但它的密鑰空間還太小、加解密規(guī)則的漏洞還太多……

人力不可破解?機(jī)器能破解豈不照樣白瞎?!

不過,它的思路還是正確的:加密不僅需要把原始信息、信息的編碼方案等等盡量擾亂,不要留一丁點(diǎn)信息給破解者;還要做到“可能性爆炸”,把加密者-破解者的對抗變成純計(jì)算力的比拼——絕不能讓破解者找出“可以節(jié)約計(jì)算力”的漏洞來。

如果打個(gè)比方的話,古典加密術(shù)就好像設(shè)計(jì)一個(gè)非常非常難的“華容道”游戲,解不了這個(gè)游戲你就打不開鎖。
這種情況下,“解鎖的方法”和“鎖的結(jié)構(gòu)”是互相綁定的。因此必須保密“鎖的結(jié)構(gòu)”,不然別人一旦從中揣摩到“鎖的設(shè)計(jì)思路”,這把鎖就形同虛設(shè)了。

而自ENIGMA開始,人們明確的把加密術(shù)分成兩個(gè)部分,一是密碼(鑰匙),二是加密方法(鎖)。
這時(shí)候,鎖的機(jī)械結(jié)構(gòu)可以任你拆解、揣摩,越是被人揣摩的透,就越是可以針對性的彌補(bǔ)缺陷,從而把鎖的機(jī)械結(jié)構(gòu)設(shè)計(jì)的極端完美,確?!氨仨毮玫借€匙才能開鎖,不存在其它突破方式”。
當(dāng)然,對機(jī)械鎖,哪怕優(yōu)質(zhì)鋼/鈦/金剛石,也總有辦法對其進(jìn)行物理破壞;但對加密算法這種抽象的東西,卻完全可以先設(shè)計(jì)到“除了蠻力破解沒有其他辦法”的程度;然后再提高“破解所需的蠻力級(jí)別”,直到它徹底超出人類(以及人類所能得到的工具)的能力極限。
如此一來,現(xiàn)代加密術(shù)就可以保證“不可破解”了。

反之,如果你自己做了把鎖,憑你自己的能力破解不了;但你怎么保證“你下不贏的棋別人全都下不贏”呢?
想保證別人也破解不了,你就只能拿出來讓大家挑戰(zhàn),直到所有挑戰(zhàn)者都愿意在自己家保險(xiǎn)柜上裝你這把鎖(采用為業(yè)界標(biāo)準(zhǔn),在銀行等要害部門的通信協(xié)議中使用)——顯然,他們必須先得承認(rèn)“這玩意兒我挑戰(zhàn)不了,比我自己設(shè)計(jì)的好”,不然肯定不會(huì)同意在自家錢箱上用你的鎖,對吧。

把所有的鎖都拿出來,給銀行軍事等要害部門以及全世界所有的天才評判,找出它們所有的設(shè)計(jì)缺陷,直到他們都可以放心的把自己的財(cái)產(chǎn)安全交給它,這就挑出了最最安全的那把——這也是現(xiàn)代加密學(xué)要求“算法公開”的意義所在。

WIFI的“一鍵加密”就有個(gè)經(jīng)典的漏洞:它把密碼分成兩部分分別提交,每部分4個(gè)數(shù)字。

這本身不是問題;要命的是,他們還搞了個(gè)想當(dāng)然的“優(yōu)化”:當(dāng)?shù)谝徊糠?個(gè)數(shù)字提交上去后,如果密碼不對,它會(huì)立即返回“密碼錯(cuò)誤”!

這就使得,攻擊者只需遍歷4位數(shù)字的所有可能,就可以找到密碼的前4個(gè)數(shù)字是什么;然后再尋找后4個(gè)數(shù)字即可(實(shí)際只需找后3位)。

換句話說,這個(gè)設(shè)計(jì)把原本10^7的密鑰空間(10000000種可能)縮減到了10^4+10^3(共11000種可能)。
假設(shè)每秒可以攻擊一次,攻擊者只需1~3小時(shí)就能攻破你的WiFi。

WPS技術(shù)淺談:Wi-Fi WPS安全設(shè)置有漏洞

這就是一個(gè)典型的因?yàn)樘幚聿划?dāng)、導(dǎo)致攻擊者可以大幅節(jié)約計(jì)算力的案例。這種錯(cuò)誤,是任何略懂密碼學(xué)的人都不應(yīng)該犯的。

但,另一方面,這么隱蔽的錯(cuò)誤,如果不是放到公開社區(qū),允許全社會(huì)研究評判,僅靠一兩個(gè)專家小組,也是很難找出來的。

善于利用全人類的智力,這才是現(xiàn)代科學(xué)技術(shù)最為優(yōu)越之處。

換句話說,現(xiàn)代加密學(xué)把加密操作看作一個(gè)“函數(shù)求值”過程;經(jīng)過數(shù)字編碼的明文通過加密函數(shù),被映射成密文編碼。

對這個(gè)函數(shù)有很多很嚴(yán)苛的要求。最最基本的一點(diǎn)是,通過明文(+密碼)計(jì)算密文要很容易;但如果不知道密碼,從密文反推明文/密碼就極端困難——滿足這一點(diǎn)的函數(shù)被稱為“單向函數(shù)”。

單向函數(shù)確保破解者需要付出許多許多倍的努力,才能揭破加密者隱藏的信息。這個(gè)“倍增效應(yīng)”必須非常非常的大,比如加密時(shí)候的一個(gè)毫秒就要換加密者的幾千幾萬甚至幾萬億年,這才能使得攻擊者不僅無法人力攻破,甚至利用專門的機(jī)械、電子破解工具也無法攻破。

典型如RSA,把幾個(gè)大數(shù)字乘起來很容易;但要把它因式分解就不是一般的困難(你需要嘗試用它去除很多很多的數(shù)字,這才有可能找出它的因子)。

前些年RSA還是用1024個(gè)二進(jìn)制位的大數(shù)字;隨著計(jì)算機(jī)性能的發(fā)展,現(xiàn)在已經(jīng)普遍使用2048甚至4096位了——理論上說,憑現(xiàn)在計(jì)算機(jī)的能力,全世界的計(jì)算機(jī)一起跑幾百億年,都不可能破解2048位的密鑰Just How Strong is 2048-bit SSL Certificate Encryption?。

和笨重緩慢的RSA原理不同,AES等加密算法只需128位密鑰就可以達(dá)到相同甚至更高的強(qiáng)度;不過,RSA是非對稱的公鑰加密體系,適用領(lǐng)域不同,AES等對稱加密算法是無法替代它的。

同時(shí),現(xiàn)代加密還必須能夠破壞明文的統(tǒng)計(jì)學(xué)特征(以及能量/時(shí)間特征),并且需要應(yīng)對來自現(xiàn)代解密技術(shù)(比如差分分析_百度百科等等)的各種挑戰(zhàn),避免像古典加密術(shù)那樣輕易暴露死穴,使得攻擊者可通過自己的腦力找出突破點(diǎn)……

舉例來說,對DES這樣的分組加密算法,“abcdefgh”這8個(gè)字節(jié)會(huì)同時(shí)替換成另外一組8個(gè)密文;你把它改成"bbcdefgh",哪怕只有一位的差異,加密后的結(jié)果也必須面目全非、絕無半點(diǎn)規(guī)律可言(此所謂“雪崩效應(yīng)”)——如果做不到這一點(diǎn),就很容易受到“選擇明文攻擊”的影響。

再比如,加解密算法比較兩個(gè)字符串不能用“strcmp”或“==”,因?yàn)樗鼈冇龅降谝粋€(gè)不同的字母就會(huì)返回。這樣攻擊者就可以通過提交-返回時(shí)間差估計(jì)自己猜對了多少。甚至,哪怕你自己設(shè)計(jì)strcmp,強(qiáng)制比較每一個(gè)字符,但條件跳轉(zhuǎn)/分支預(yù)測等方面的細(xì)微差異也可能多少透露出一些關(guān)于密碼的細(xì)節(jié)來。對于加解密這種敏感應(yīng)用,這就是不可接受的。正確做法是逐字節(jié)異或然后檢查結(jié)果是否為0,確保任何情況下消耗時(shí)間一致。

此外還有利用CPU消耗功率的細(xì)微變化、顯示器信號(hào)泄露等等完成攻擊的成功案例。這類旁路攻擊與主題無關(guān),就不多說了。

總之,現(xiàn)代密碼學(xué)是一個(gè)非常專業(yè)非常高端的學(xué)科。沒有足夠的數(shù)學(xué)水平、計(jì)算機(jī)水平,甚至連理解的門檻都過不了,更不要說研究了……

和過去“隱藏編碼規(guī)則”就以為天下無敵的古典加密術(shù)不同,現(xiàn)代密碼學(xué)可以說是一種“數(shù)學(xué)律武器”,它追求的是“自然規(guī)律上的不可破解”。

因此,現(xiàn)代密碼學(xué)要求“加密算法公開”——只有經(jīng)受過全世界最最聰明的大腦們的檢驗(yàn),才能確?!疤魬?zhàn)它等同于挑戰(zhàn)數(shù)學(xué)/自然規(guī)律”,才能確保它的安全。

RECOMMEND

- 點(diǎn)個(gè)在看你最好看 -

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多