C/Python中的国际数据加密算法(IDEA)

0 投票
2 回答
5784 浏览
提问于 2025-04-16 09:25

我想在我的一个程序中实现IDEA算法,用于加密。起初我想自己动手实现,但觉得这太复杂了,所以放弃了这个想法。我在网上搜索了一下,想找有没有现成的库可以用,结果发现了mcrypt。不过,IDEA在mcrypt中是一个非免费包,具体可以查看这里。请问有没有办法把IDEA加到mcrypt里?或者有没有其他库可以在C/Python中提供这种加密功能?

2 个回答

2

你可以从一个网站上获取idea模块,把idea.c和相关文件放进去,然后你应该能重新构建libmcrypt(如果你用mcrypt的话,也可以重建它)。你也可以使用GPG版本,或者自己构建一个单独的库,但这两种方法都没有这么简单。

3

2015年更新: 最后一项IDEA专利在2012年到期。不过,作为一种64位块大小的加密算法,它的设计已经相当过时,因此不应该在新的系统设计中考虑使用。


IDEA被称为“非免费”的原因是,这种加密算法在欧洲、美国和日本都受专利保护。

你仍然可以下载并编译mcrypt的IDEA模块,或者编译OpenSSL并启用IDEA加密算法。确保你没有侵犯专利是你的责任。专利持有者Ascom Systec Ltd.已经允许在某些应用中免费使用:

IDEA算法由瑞士CH-5506 Maegenwil的Ascom Systec Ltd.拥有专利,他们允许在某些非营利性应用中免费使用。商业用户必须从公司获得许可证才能使用IDEA。IDEA可以在以下条件下免费使用:

私人用途的免费使用:

包含该算法的软件的免费使用仅限于私人之间不产生收入的数据传输,也就是说,不能用于商业目的。希望获得免费许可证以传播包含该算法的应用程序的免费软件开发者,必须向Ascom提出请求。

针对共享软件开发者的特别优惠:

对于共享软件开发者,有一个特别的豁免。这种豁免取消了前期费用以及在销售额前10,000美元内的版税,前提是:

  1. 产品的售价最低为10美元,最高为50美元。
  2. 共享软件的源代码对公众开放。

    研究项目的特殊条件:

    在研究项目中使用该算法是免费的,只要它服务于该项目的目的,并在项目期间内。项目结束后,包括与项目相关的活动和不直接与项目相关的目的使用该算法,都需要许可证。

    Ascom Tech要求在免费软件产品中包含以下声明:

    本软件产品包含IDEA算法,该算法在美国专利5,214,703和欧洲专利0482154(涵盖奥地利、法国、德国、意大利、荷兰、西班牙、瑞典、瑞士和英国)以及日本专利申请508119/1991中描述和声明,称为“数字块的转换装置及其使用”(以下简称“该算法”)。因此,任何商业用途的算法使用都需获得Ascom Systec Ltd.的许可证,地址为瑞士CH-5506 Maegenwil,是专利持有者和所有权的唯一拥有者,包括商标IDEA。

    商业用途指任何产生收入的用途,包括但不限于:

    i) 将该算法用于公司内部目的(需遵循场地许可证)。

    ii) 将该算法纳入任何软件并分发该软件和/或向他人提供相关服务(需遵循产品许可证)。

    iii) 使用未获得IDEA许可证的包含该算法的产品(需遵循最终用户许可证)。

    所有这些最终用户许可证协议仅可从Ascom Systec Ltd.获得,可以通过访问http://www.ascom.ch/systec或发送电子邮件至idea@ascom.ch进行请求。

    除商业用途外的使用仅限于私人之间不产生收入的数据传输。政府机构、非营利组织等的使用被视为商业用途,但可能会受到特殊条件的限制。任何不当使用将受到起诉。

撰写回答