資料完整性演算法 Schnorr數字簽名方案

2021-09-02 05:20:19 字數 861 閱讀 3748

和elgama數字簽名一樣,schnorr數字簽名方案也是基於離散對數。

schnorr數字簽名主要工作不依賴於訊息,生成簽名過程與訊息相關的部分需要進行2n位長度的整數與n位長度的整數相乘。

演算法引數分析

該方案基於素數模p,且p-1包含大素數因子q,即 p-1≡0(mod q), p一般大約取 p=2^1024, q一般大約取 q=2^160,

p是1024位整數,q是160位整數,正好等於sha-1中hash值的長度。

具體演算法流程

第一步生成公鑰和私鑰對,如下:

選擇素數p和q,使得q是p-1的素因子

選擇整數a,使 α^q=1 mod p, 使a,p,q 構成全域性公鑰引數,在使用者組內的每個使用者都可以取此值

選擇隨機整數s,0計算 v=a^-s mod p, 作為使用者的公鑰

簽名

選擇隨機整數r,0將x附在訊息後面一起計算hash值e, e=h(m||x)

計算 y=(r+ s*e) mod q , 簽名包括(e,y)對

其他使用者驗證簽名:

計算 x'= a^y * v^e mod p

驗證是否 e=h(m||x')

對於該驗證過程有:

x'≡a^y * v^e ≡a^y *a^-se ≡a^ y-se ≡ a^r ≡x mod p

所以 h(m||x')=h(m||x)

reference:《encryptography and networking security》6th william stalling

MySQL資料完整性(實體完整性 域完整性)

資料完整性 為保證插入到資料庫中的資料是正確的,防止使用者輸入錯誤的資料 分為實體完整性 域完整性 參照完整性 下節再說 1 實體完整性 實體指的是表中的一行,一行記錄對應乙個實體 通過主鍵實現 主鍵 關鍵字 primary key 特點 不能為null,並且唯一。邏輯主鍵 推薦 例如id,不代表實...

資料完整性

資料完整性定義 是指資料庫中的資料的正確性和完整性。資料完整性的型別 要求的資料。not null。有效檢查。資料的有效範圍檢查。字段檢查約束。資料域。實體完整性。主鍵欄位唯 一 非空。引用完整性引發的問題 1 插入 更新子表記錄的外鍵值在主表主鍵中不存在。2 刪除 更新父表的主鍵記錄有關聯外來鍵記...

資料完整性

quote b 更新丟失 b 當有兩個寫程序同時修改相同的資料時,往往會出現乙個寫程序做的修改覆蓋了另乙個寫程序的修改。這種情況是完整性問題最常見的型別。互斥鎖的設計就是防範這種問題的出現。b 髒讀 b 乙個事務修改的資料在提交前被另乙個事務讀取,就會發生髒讀。由於事務提交的修改有可能會被回滾,因而...