问题标签 [feistel-cipher]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
673 浏览

postgresql - 在 PostgreSQL 中解密 Feistel 密码

我使用这个Feistel Cipher更新了我的数据库中的一堆字段。根据文档,可以撤消密码以获取原始值。如果需要,我如何撤消这些值?

这是原始密码函数:

0 投票
2 回答
1762 浏览

java - Java 中的 Mutliround Feistel 网络

对于一些学生的东西,我需要用 Java 实现一个 Feistel 网络。

我从 3 个手动回合开始,如下所示:

如果我想要 10 轮,我需要复制这些东西 10 次并调整变量,有没有更好的方法来做到这一点?也许为时已晚,但我想不出解决方案...

0 投票
3 回答
5716 浏览

java - Java中Feistel密码的小实现

我正在尝试做一个Feistel Cipher的小实现。这是我一直在尝试的:

圆函数scramble为:

我试图首先加密明文的左右两半,然后通过解密轮运行它 - 所以到最后,数组的值应该是 [1,2,3] 和 [4,5,6] (回到明文)。使用 8 的密钥输入,解密后我得到 [15, 13, 0] 和 [8, 12, 1] 的值。我哪里错了?

为简单起见,我现在只是使用常量作为键以及整数的输入,而不是从文件中读取/使用字节数组。

编辑:

循环计数不正确。将“加密循环”更改为:

循环现在计算第 1,2,3 轮(加密)和 3,2,1(解密)。但是,解密仍然没有得到正确的明文。

0 投票
1 回答
300 浏览

java - Feistel Cipher ararrayindexoutofbounds 与函数 F 异或后。

我正在尝试在 Java 中实现纯文本 Feistel Cipher,其中我使用硬编码的“字母”数组为原始纯文本消息的每个字符分配数值。我的问题是,一旦我将函数应用于右半部分并与左半边进行异或运算,有时我会留下一个超出“字母”数组范围的数字。

这是字母数组:

这是功能:

这是用于加密的代码块:

错误发生在这一行:

我已经尝试了 %26 the leftHalf[i] 数字,以便它适合字母数组,但这破坏了密码的要点,我无法破译它。

我也尝试了几种不同的功能,但我认为它主要与 XOR 有关。有没有办法确保 XOR 将返回字母数组范围内的某些内容,或者我是否以错误的方式处理整个事情?任何帮助表示赞赏。

另外,错误代码:

0 投票
2 回答
123 浏览

java - 如何将字符串转换为位,然后将其分成两半并在一部分上执行一些功能,然后将其与另一个进行异或,然后使用 java 进行交换?

是的,它只是 feistel 密码。我需要实现一个简单的程序来实现它,而不使用任何预先存在的代码。我认为我的主要问题是将字符串转换为位以对其执行某些功能?顺便说一句,我正在使用java,而且我不是那个专家。请帮我提供任何信息。你认为它可能会有所帮助..

这是我的代码:

0 投票
1 回答
36 浏览

r - 将字符向量 v 扩展为 8 位,如下所示:交换 v[3] 和 v[4]

我有一个矢量图

我需要取向量 v,变成一个 8 位长的字符串,然后交换第 3 个和第 4 个变量。

例如:输入向量:

输出向量:

编辑,所以很多人误解了输入/输出。数字只是表示变量的位置和切换的位置。

至于问题中的实际向量:“111000”。

编辑:对不起这个问题,这是对我的措辞。但基本上我正在尝试进行块扩展。我正在尝试创建一个函数来获取一个 6 位向量并返回一个 8 位值,其值是上面的输出。我添加了一张照片,说明正在发生的事情:

在此处输入图像描述

0 投票
1 回答
62 浏览

python - 使用 Feistel 密码和 Python 对图像进行编码

我正在尝试使用 Feistel 密码对图像进行编码。这个想法是获取一个图像文件,逐字节读取图像,用我的 Feistel 密码对每个字节进行编码,然后用密码生成的编码字节重新创建一个新图像。

不幸的是,我发现大多数常见的图像格式都使用标头,一旦编码,就会使编码的图像损坏。

查看 PIL 包,我发现该PIL.Image.frombytes函数能够在给定对象的情况下创建图像BytesIO对象。使用图像对象,我可以使用save函数重新创建图像

我现在的问题是,如何打开图像并读取我需要使用 Feistel 密码处理的实际图像有效负载(以字节为单位)。

如果我使用代码

我阅读了整个文件,包括我不需要的标题

0 投票
1 回答
25 浏览

c++ - 元胞自动机加密算法中的错误段

我一直在实施一篇论文,该论文旨在通过基本元胞自动机使用 64 位分组密码进行物联网加密。该论文位于存储库中/在自述文件中链接。

我正在尝试验证该算法的实现是否确实有效。

当前状态

第一段和第三段没有正确解密,我相信这是由于使用了规则 153。

我已经验证的事情

  • CA 的工作方式类似于 Wolfram 和论文中的指定规则
  • 拆分/连接段按预期工作

我在报纸上注意到的勘误表

  • 有未指定的 CA 边界(实现应该是正确的,因为我得到了一半的明文)
  • 选定的规则 204 本质上是一个 NOP
  • 解密中的 16x4 位拆分应该是 4x6
    • 在图表中正确(图 3),不在算法列表中
  • 解密需要反转偶/奇段校验

问题

规则 153 是否真的适用于在解密期间反转自动机?规则 51 本质上是前一个时代的 NOT,所以我希望规则 153 的逆规则在解密期间使用,但似乎不可逆。

如果有人可以查看并提供有关我哪里出错的反馈,我将不胜感激。我已经给作者发了邮件,还没有收到回复。

代码

https://github.com/optimisticninja/caencryption