我希望在我的一個程序中實現IDEA算法以用於加密目的。我首先想到實施它,但很快放棄了這個想法,因爲這對我來說太複雜了。我搜索了網絡上的任何庫實現,並堅持使用mcrypt。但想法是一個非免費的mcrypt包,因爲它說here。有什麼方法可以將IDEA添加到mcrypt中?還是有任何庫在C/Python中提供這種加密功能?C/Python中的國際數據加密算法(IDEA)
回答
2015年更新: 最後IDEA的專利在2012年。但是顯然過期,作爲一個64位的塊大小密碼的設計相當陳舊,因此它不應該被認爲是新的系統設計。
IDEA的「非自由」描述是因爲密碼在歐洲,美國和日本都有專利保護。
您仍然可以下載並編譯mcrypt IDEA模塊,或使用啓用的IDEA密碼編譯OpenSSL。確保您不侵犯專利由您決定。專利權人,的Ascom Systec公司有限公司,已經將其提供免版稅的某些應用:
IDEA算法是由 的Ascom Systec公司有限公司專利CH-5506 的Maegenwil,瑞士,誰允許它 在免版稅的基礎上用於某些非營利性應用的 。 商業用戶必須從公司獲得許可 才能使用 IDEA。 IDEA可由 免稅的基礎上 下列條件下使用:
免費使用用於私人用途:
自由使用含有 軟件算法嚴格限於 非創收的數據傳輸 之間私人,即不是 服務商業目的。 免費軟件開發者請求 獲取免版稅許可證 傳播應用程序 包含 算法的非商業目的必須是 針對Ascom。
特別提供共享軟件 開發商:
沒有爲 共享軟件開發特殊豁免。這種放棄 消除了前期費用以及 含有 算法當且僅當特許權使用費爲第一$ 10,000 總銷售額的一款產品:
- 該產品被出售最少US $ 10和最多 50美元。
共享軟件的源代碼向公衆開放。免費提供
在研究中使用的算法 項目是它 服務於項目的持續時間內這樣的項目 和目的:
研究 項目的特殊條件。任何 在項目終止後包括 項目 和 需要許可證的項目終止使用該算法。
的Ascom技術需要以下 通知被列入免費
產品:該軟件產品包含所描述和 聲稱在美國專利5214703的 IDEA算法,EPO 專利0482154(包括奧地利, 法國,德國,意大利, 荷蘭,西班牙,瑞典, 瑞士和英國)和日本 專利申請508119/1991, 「用於轉換 的裝置數字塊和使用相同的「 (以下簡稱」 算法「)。任何使用 算法用於商業目的的是 因此受到來自CH-5506 Maegenwil 的(瑞士)的Ascom
Systec公司有限公司的許可,是專利權人和的一切權利 唯一所有者,包括 商標的主意。商業目的,是指包括 但不限於任何 創收目的:
i)使用該算法對公司內部 目的(受網站 許可證)。
ⅱ)結合的算法進 任何軟件和分配這種 軟件和/或提供與此有關的給他人 (受 產品許可證)服務。
iii)使用包含 算法但未包含在IDEA 許可證 (取決於最終用戶許可證)的產品。
所有這些最終用戶許可協議 是獨家提供的Ascom
Systec公司和公司可以通過 的WWW被要求在http://www.ascom.ch/systec 或電郵至[email protected]。除用於商業用途以外的其他用途 用途嚴格限制爲 非收益產生數據轉移 個人之間。政府機構使用 ,非營利組織 等被視爲 用於商業目的,但可能 受特殊條件。任何 濫用將被起訴。
問題在於,它不再是由mcrypt分發,與其他一些專利算法不同:它們幾乎在十年前將其從回購庫中移除。我上面發佈的網站是我發現的唯一一個仍然存在的網站。 – SilverbackNet 2011-01-06 03:29:35
@SilverbackNet:嗯,它肯定仍然是用OpenSSL發佈的,所以你可以使用這個庫(C接口是'
我安裝了openssl,並列出了密碼命令,但它不顯示任何想法。雖然配置想法文件已配置,但正在運行make all在創意文件夾中沒有任何內容。 – primpap 2011-01-07 04:30:06
您可以從a web site中獲得想法模塊,將idea.c和相關文件放入,並且您應該能夠重建libmcrypt(如果使用它,則使用mcrypt)。您也可以使用GPG版本,或者自己構建一個單獨的庫,但都不那麼簡單。
我使用的是Ubuntu和該站點僅列出.rpm軟件包。任何解決這個問題的方法? – primpap 2011-01-07 03:00:17
這裏沒有包含它的軟件包,而且他的RPM也是非常過時的。您必須從源代碼進行編譯,方法是將libmcrypt-idea-0.9.tar.bz2中的幾個.c文件與當前的mcrypt源代碼樹合併。如果你需要預編譯的,你應該使用OpenSSL。 – SilverbackNet 2011-01-07 03:34:44
我正在嘗試使用openssl,但它不包含idea模塊。 – primpap 2011-01-07 05:50:05
- 1. 數據加密算法
- 2. Javascript國際計算?
- 3. Oracle數據庫中的國際化
- 4. 數據庫中的國際化
- 5. SEC EDGAR(加拿大SEDAR)數據庫的國際等值數據?
- 6. 加密算法
- 7. 加密算法
- 8. 加密算法
- 9. 加密算法
- 10. JavaME國際化(國際化)
- 11. 用戶數據的國際化
- 12. 數據庫級別的國際化
- 13. 什麼是IOS中可用的最佳數據加密算法
- 14. Android中用於短數據集的最佳加密算法
- 15. 正常化/驗證數據庫中的國際數據集?
- 16. McEliece加密/解密算法
- 17. 加密算法iphone
- 18. C#加密算法
- 19. MySQL中國際化的建議方法?
- 20. 是否有像Php(PhpStorm)那樣的國際化功能(Intellij IDEA)
- 21. 如何國際化從數據庫表
- 22. MVC3國際化數據註釋
- 23. 國際電話和地址數據?
- 24. 新的加密算法,SSH
- 25. 我的加密算法
- 26. 數據加載中國
- 27. 如何從128位密鑰生成IDEA算法的解密密鑰?
- 28. 加密的加密數據
- 29. 計算前往國際國家的時間
- 30. 從電話號碼確定國際電話代碼的算法
[根據維基百科(https://en.wikipedia.org/wiki/International_Data_Encryption_Algorithm)專利已過期'最後專利在2012年到期,IDEA是現在無專利,因此可以自由地use.'我無法在Python中找到IDEA實現。 Python中是否有公開的免費可用實現? – 2015-09-18 06:45:09