Hash
如何創建一個簡短的簽名?(例如小於 100 字節)
我想將資訊放入二維碼並簽名,以便驗證資訊的真實性。但是二維碼的儲存容量有限,當我使案例如 gpg 時,我得到的簽名通常大約 500 字節長。
對於此應用程序,可以接受一些安全性以換取空間和便利性。
如果有一種方法可以使用標准或易於獲得的工具(例如 gpg、openssl 或類似工具)來完成,那將是更可取的。
通常的推薦是 ECDSA,或者如果你需要一個非常短的簽名,BLS。請參閱*“Security.SE:什麼不對稱方案提供最短的簽名,同時又是安全的?”* , “Security.SE:如何使用非對稱加密將短字元串加密為短密文?” 和*“Crypto.SE:短長度非對稱加密?”* 詳情。
ECDSA 應該給你一個 320 位的簽名和大約 80 位的安全性。BLS 可以將簽名減少到大約 160 位。換句話說,使用 ECDSA,您可以減少大約 40 個字節的簽名;BLS 讓您減少到 20 個字節。
如果這還不夠短,那麼研究文獻中還有其他方案聲稱可以提供更短的簽名(例如,SFLASH、Quartz),儘管我聽說一些密碼學家對它們的安全性表示懷疑,所以使用它們真的是推動它,可能會損壞的前沿技術。