Keys

生成私鑰

  • January 4, 2020

首先,我想說我對如何用 Python 編寫東西的知識完全為零。但我有一些數學知識,尤其是有限域。這就是為什麼我想了解更多關於為項目編寫工具的知識。

這是該工具應執行的操作的列表:

  • 生成隨機私鑰。
  • 在一個範圍內(我可以改變)
  • 給出十六進制 X 點
  • 與給定的 X 點進行比較

現在的問題是:這對新手來說太難了嗎?C++ 是否比 Python 更好?

在玩橢圓曲線加密時,你絕對應該堅持使用 Python 或我最喜歡的SageMath (基於 Python)。

私鑰通常只是一個很大的標量值,當與曲線基點相乘時(換句話說,當我們反復將基點加倍時),結果點就是公鑰。

這裡沒有捕捉到一些細微之處,這些細微之處因曲線和生產實施而異。

我會從 SageMath 開始,這是一個很容易開始的地方。查看此連結作為入門。

Python 3 非常適合探索非對稱密碼學:它乾淨、簡潔、強大;具有對任意大整數的內置支持;易於安裝、學習和使用;它最大限度地減少了想法到結果的延遲;它有足夠的工業牽引力,知道它具有市場價值。

從 Python 3.6 開始,有一個內置secrets模組旨在生成加密強隨機數(在以前的版本中建構或添加類似功能是可行的)。這將使*“生成隨機私鑰……在一個範圍內”*變得輕而易舉。

雖然內置整數對於大多數用途來說足夠快,但如果您需要更快的速度,可以使用gmpy2 ,其中包含預編譯的 Windows 二進製文件。

請注意:

  • 在 Python 中很難防止側通道洩漏(例如通過時間變化),這對於既可以被對手觀察(可能是遠端)又可以操縱諸如私鑰之類的秘密的密碼程式碼來說可能是一個問題。
  • Python 執行時和包的大小和頻繁更新增加了配置審計和在現實世界中安全部署加密的噩夢。
  • Python 不適用於必須可從其他語言呼叫或在小型微控制器中執行的程式碼。

引用自:https://crypto.stackexchange.com/questions/76203