加密算法的版权问题

信息安全 密码学 加密 合法的
2021-08-25 15:27:28

我正在为 Android/Java 开发应用程序。应用程序是一种密码管理器,因此我将加密密码存储在主密码的底层。加密算法有DES/AES/BlowFish/TwoFish等多种。我的目的是开发没有商业版权问题的应用程序。所以问题是:

  • 如果我将使用内置的 Java 加密 API(例如 DES/AES)——这是否意味着我将不受 DES/AES 类似版权所有者的可能商业利益的影响?

任何其他想法,含义也会有所帮助。

4个回答

算法没有版权算法就像想法;适用于他们的知识产权是专利,而不是版权。有一些密码算法获得了专利,但大多数都没有,有些曾经获得专利(但专利最终会过期)。DES、AES、Blowfish 或 Twofish 均未获得专利。获得专利的对称加密系统的一个例子是 IDEA(美国专利将于 2012 年到期)。RSA 算法(非对称加密和数字签名)获得了专利,但该专利在十年前就到期了。基本上,如果通过已安装的 Java VM 提供加密算法,那么它可能没有获得专利(不再获得专利,或者根本没有)。

实现上可能有版权使用已经存在的实现不受版权的影响(它是版权,而不是使用权)。当您在应用程序中包含外部代码时,您必须担心版权问题,而不是当您使用已安装的 Java VM 通过其发布的 API 提供的外部代码

软件系统可以通过许可证进一步控制可以想象一个特定的许可证,它根据使用上下文或任意条件禁止使用某些软件。可以想象这样一种用于实施加密算法的软件许可证。这将是使用您的软件的人的问题,而不是您的问题。Java VM 许可证是适用于此的许可证。但是,据我所知,Java VM 组件没有使用限制,无论它们是否加密。VM 供应商通常不希望限制其 API 的使用。

当地法律可能适用,尤其是在加密问题上。根据国家/地区的不同,法律可能会限制使用加密算法的软件的使用、分发、出口和/或进口。Java VM(至少是 Sun/Oracle 的那个)包括一个相对复杂的权限和安全规则系统,它决定了哪些算法可用,以及使用哪些密钥长度。因此,可以假设 VM 向应用程序提供的任何算法都已经针对密钥长度进行了调整,以符合当地法律。在某些情况下总会有例外(如果你是一名朝鲜特工,正在南达科他州某处努力制造核弹,那么使用加密算法,即使由安装的 Java VM 合法提供,也可能意味着额外的几年联邦调查局抓到你时入狱)。

总结:使用 Java VM 提供的加密算法无需担心与知识产权相关的问题。您应该询问有关加密软件分发和出口的规定。您可以从有关加密导出导入的维基百科页面开始

Android 平台包括 Legion of the Bouncy Castle 加密库,您可以使用它,然后您自己不会分发任何加密 - 授权 Bouncy Castle 代码进行分发由开放手机联盟处理。请注意,仍然可能存在出口限制——例如,在美国使用加密的产品,即使它本身不包含加密算法,仍然是 EAR 下的受控产品。

它是像勾股定理一样的公共领域。发疯。

例如,来自 Blowfish.h,即使是加密库也可能是无版权的:

  • 该库可免费用于商业和非商业用途,只要
  • 满足以下条件。以下条件
  • 适用于此发行版中的所有代码,无论是 RC4、RSA、
  • lhash、DES等,代码;不仅仅是 SSL 代码。SSL 文档
  • 包含在此分发中的受相同版权条款的保护
  • 除了持有人是 Tim Hudson (tjh@mincom.oz.au)。

算法本身只是数学:-)