時間:2023-06-18|瀏覽:231
第二次世界大戰(zhàn)后,互聯(lián)網(wǎng)從軍方中演化而來,并逐漸進入尋常百姓家。所有交易都可以通過網(wǎng)絡(luò)進行電子化處理,交易也不例外。然而,隨著互聯(lián)網(wǎng)用戶數(shù)量不斷增加,新的問題也隨之產(chǎn)生。加密需要雙方共享一個秘密的隨機數(shù),也就是秘鑰,但從未謀面的兩個人,如何在不讓第三方監(jiān)聽的情況下達成共享密鑰的一致性,成為現(xiàn)代密碼學(xué)的目標。
1976年,維特菲爾德和馬丁赫爾曼找到了一種巧妙的解決方法,用顏色比喻來講解該技巧如何實現(xiàn)。首先,明確目標,發(fā)送者和接收者就秘密顏色達成一致,而不讓竊聽者知道。于是,采用一種技巧,該技巧基于兩點:混合兩種顏色得到第三種顏色很容易,但在此基礎(chǔ)上知道原來的顏色就很難了,這就是鎖的原理。朝一個方向容易,朝反方向難。這就是單向函數(shù)。解決方案是,首先他們公開對某種顏色達成一致,假設(shè)是黃色,然后發(fā)送者和接收者隨機選取私有顏色,混到公共的黃色中,從而掩飾掉他們的私有顏色,并將混合顏色發(fā)給接收者,接收者知道自己的私有顏色,并將它的混合顏色發(fā)給發(fā)送者。然后發(fā)送者和接收者將各自私有顏色加入到另一個人的混合色中,然后得到一種共享秘密顏色,此時,竊聽者無法確定這種顏色,她必須有一種私有顏色才能確定,技巧就是這樣。
離散函數(shù)問題:我們需要一種朝一方向易,反方向難的數(shù)值過程,于是密碼學(xué)家找到了模算數(shù),也就是取余的函數(shù)。假設(shè)我們考慮用質(zhì)數(shù)做模型,比如17,我們找到17的一個原根,這里是3,它具有如下重要性質(zhì),取不同冪次時,結(jié)果會在時鐘上均勻分布,3是一個生成元,取3的X次方,結(jié)果會等可能地出現(xiàn)在0和17中間的任何整數(shù)上。相反的過程就難了,比如給定12,要求這是3的多少次方,這被稱為離散對數(shù)問題,這樣我們就有了單向函數(shù)。一個方向計算很容易,但反方向就很難了。離散函數(shù)問題的強度取決于反向過程所需的時間。
迪菲赫爾曼密鑰交換:解決方案是,首先,發(fā)送者和接收者公開質(zhì)模數(shù)和生成元,比如17和3,然后發(fā)送者選擇一個私有的隨機數(shù),比如15,計算315mod17,然后公開將此結(jié)果發(fā)送給接收者,之后接收者選擇自己的私有隨機數(shù),比如13,計算313mod17,然后公開將此結(jié)果發(fā)送給對方。關(guān)鍵在于將接收者的公開結(jié)果,取她的私有數(shù)字次方,以獲得共享密鑰。接收者將發(fā)送者的公開結(jié)果取她的私有數(shù)字次方,結(jié)果得到相同的共享密鑰。
現(xiàn)在區(qū)塊鏈常用的算法,如sha256,都是繼承單向函數(shù)的設(shè)計思維,一個方向計算容易,反過來幾乎不能破解,來保證安全。
熱點:區(qū)塊鏈