【问题标题】:Calculating BigO Notation计算大 O 表示法
【发布时间】:2017-01-15 12:45:41
【问题描述】:

我正在为一篇计算机科学论文做实验,我的主题是加密。我想比较使用 AES Crypt 和 Blowfish 加密的文件的文件大小。我需要计算这两个的 BigO 作为我论文的要求。我不确定如何做到这一点,如果有人可以帮助我,我将不胜感激。

我也想对这个主题的理由提出一些意见,我正在研究哪种算法产生最小的文件大小并查看结果是否是线性的。我有一些理由,例如企业可能希望减少内存和资源的使用,谈论文件越小传输越快,下载越快。谢谢。

【问题讨论】:

    标签: encryption aes big-o filesize memory-efficient


    【解决方案1】:

    AES 和 Blowfish 等加密算法本身为每个输入字节生成一个输出字节,因此 AES 和 Blowfish 生成相同的输出大小。

    除了:两者都是基于块的算法,根据加密模式,输入大小可能需要填充到块大小的倍数,因此输出要大得多。对于 AES,块大小为 16 字节,而对于 Blowfish,块大小为 8 字节,因此输出可能比输入大一个块大小。

    尝试一些加密,有在线工具如Online encrypt tool 支持多种加密算法。注意:AES 本质上是 Rijndael-128。

    意见:这个主题没有任何理由,它被很好地理解和记录,基本上没有加密大小的理由来选择一个而不是另一个。但是,Blowfish 不像 AES 那样安全,因此应该选择 AES,即使 Blowfish 的作者也表示他使用了 AES。

    注意:许多 CPU 都有针对 AES 的优化指令,因此 AES 通常是最佳选择。

    【讨论】:

    • 好的,非常感谢。我知道密文的大小与明文的大小不会有任何不同。我知道这只是填充。然而,由于填充确实在加密时给文件增加了一些大小,我想对此进行调查以查看是否存在任何模式,并查看明文和密文的文件大小之间是否存在共同比率.另外,我主要需要帮助来计算这两种算法的 BigO。
    • 每个加密都有一个设置时间,超过这个时间和计算基本上是线性的 O(n)。随着数据长度的增加,填充(8 或 16 字节)变得微不足道。总而言之,这里没什么可看的。
    • @TreyAesthetics Zaph 是正确的,您选择的主题会给您带来非常无聊的结果。没有填充模式,因为它只是四舍五入到 16 的倍数,并且几乎所有加密算法都在 O(n) 中运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-23
    • 2020-05-01
    • 2022-07-18
    • 1970-01-01
    • 2013-11-25
    相关资源
    最近更新 更多