現代密碼學之電子貨幣的加密

2021-10-14 03:45:27 字數 2045 閱讀 9701

rsa盲簽名

盲簽名的使用

應該由受信任的當局(即銀行)生成。

銀行可以為現金簽署數字字串,使其成為電子貨幣,數字字串包含:

錢的值,序列號,銀行id

每個電子貨幣對應著唯一的序列號和銀行id,這樣可以有效的防止偽造。

每乙個 e-coin 都必須是銀行認證過的。

然而這個系統有兩個個致命的問題:

1。 使用者可以複製數字字串(帶有銀行簽名)使乙個電子貨幣多次重複使用。

2。 無法保證使用者隱私。

因為每個數字貨幣銀行都可以通過序列號查到簽署時的擁有者,這意味著無論使用者在**消費,只要商家收到電子貨幣,向銀行求證其真實有效的時候,銀行就可以知道這個使用者在什麼時間什麼地方使用了這個電子貨幣。

因此引出了這兩個問題的解決辦法。

收款人收到電子硬幣時與銀行核對。

如果之前沒有消費,受款人接受電子硬幣和並將電子貨幣存到銀行。

如果電子貨幣已經被使用過,則拒絕付款

如果銀行離線

需要借助其他相應的演算法和技術,這裡不做介紹。

盲簽名的演算法實現:

如果不清楚rsa演算法的可以回顧下我這篇文章:

sign:

• input a message m, compute m = h(m)

• compute s = m^d mod n

• verify:

• input a message m and a signature s

• check s^e = h(m) mod n

盲籤:選擇乙個隨機值r

計算m = h(m)

計算b = (r^e m) mod n

將b傳送給簽名者

簽名者計算c = b^d mod n.

簽名者將c返回給使用者.

使用者計算s = c/r mod n.

//為什麼s = c/r mod n?

該公式由數學公式換算得到。

付款人生成電子貨幣m =(價值,序列號,銀行id)

付款方將貨幣價值和隱藏後的m傳送給銀行。

銀行從付款人的帳戶中扣除價值,並在隱藏後的m上盲籤。

付款人解除隱藏以獲得銀行在m上的正常簽名。

這存在乙個問題就是,銀行如何確保使用者給出的值與m中的值相同?

如果付款人說籤乙個10塊錢的電子貨幣,結果裡面隱藏的m是100塊怎麼辦?

通常使用的方法是讓使用者準備 n 個誒同樣價值的盲幣,之後銀行讓使用者去開啟其中 n-1 個,如果那 n-1 都沒問題,那麼就給剩下的乙個簽字。

舉個例子:準備 100 個加密後的盲幣,銀行準備簽名第 83 個,所以銀行讓使用者用 r 解

開其他 99 個,如果這 99 個都沒問題,那就籤第 83個。

這算是一種概率論的方法,這樣使用者在盲簽名上作弊的概率只有百分之一。

wenbo mao, modern cryptography, prentice-hall, 2003.

jonathan katz and yehuda lindell, introduction to modern cryptography, 2nd edition, crc press, 2015.

w stallings, cryptography and network security, fourth (or later) edition, prentice hall, 2006.

j. pieprzyk, t, hardjono and j. seberry, cryptography: an introduction to computer security,

springer verlag, 2003.

guo, f., susilo, w., mu, y. introduction to security reduction, springer, 2018.

密碼學 現代加密方式基礎

五種加密模式 cbc ecb ctr ocf cfb 思考在異或運算的時候那些數字是怎麼檢驗是最好的 有限域的概念,還有0x11b和0x101用在不同的地方,0x101用在生成sbox上。不是欺負rsa 不過他確實最容易理解嘛 但是給證明還是麻煩的。這篇文章解釋的蠻清楚的 對我來說像射影平面這種都是...

1密碼學及加密貨幣概述

1.2 雜湊指標及資料結構 三特性 能有效計算,對輸入字串,合理時間內可算出 必然會有大量可能的輸入被對映到任意特定輸出 見圖1.2 一些數對必將產生碰撞。如果用這個函式作為hash表的話,那 的我這個hash表不得有2 2562 2256 個嗎,嚇人啊,我當時太糊塗了 京東面試時候說衝突咋辦呢 這...

現代密碼學(一

0x01.分組密碼 0x02.分組密碼基本設計原則 安全原則 1.混亂 代替密碼 2.發散 移位密碼 實現原則 0x03.分組密碼設計方法 1.乘積密碼 例項 2.迭代密碼 通過簡單的密碼函式或者簡單的密碼,多次迭代,轉換為更複雜的密碼。迭代密碼常見的模型有s p模型 代替 置換網路 feistel...