问题标签 [stream-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.
java - 使用java的流密码
我正在尝试使用Java创建一个流密码,在其中我从文件中获取纯文本对其进行加密(使用带有种子值的随机密钥的简单异或)并将其存储在不同的文件中,然后解密,再次获取密文从文件中解密(与加密密钥相同的 XOR 操作)并存储在文件中。
但是当我尝试加密大字符串时遇到了问题。字符串的一半被正确解密,但另一半仍然是不可读的格式。
java - java中A5/1算法的实现没有给出任何输出
以下代码未提供任何解密输出
样本:
输入要加密的字符串:
hello
输入 64 位密钥
0000000000111111111100000000001111111111000000000011111111110101
密文为:
00101110100000001001010111001101101
解密后的消息是:
谁能告诉代码有什么问题?
c++ - 如何使用 git 上的 salsa20
我想在我的作业中使用 Salsa20。该实现可在everard/Salsa20 GitHub 上获得。问题是我是 git 和编程的新手。
该文件说 add Salsa20.h
and Salsa20.inl
,这是否意味着我必须在我的文件的标题中添加这些文件,*.cpp
或者有没有其他方法可以做到这一点?
我试图在我的程序的标题中添加Salsa20.h
和Salsa20.inl
(基本上只是将这些文件复制到我的当前目录并尝试编译但最终出现错误)。项目的源文件夹中也有main.cpp
,所以我应该创建 main.h 并将其作为标题添加到我的程序中。老实说,我不知道该怎么办。
我熟悉*.h
文件但不熟悉*.inl
文件,我试图阅读有关 stackoverflow 的问题,但它超出了我的头脑。如果有人也可以帮助我,我也将不胜感激。提前致谢。
security - 安全 PRG 和语义安全之间的区别
我正在斯坦福大学的 coursera 上学习密码学课程。我有以下问题。
我有一个问题,为什么在 G(k) 中附加 0,即 G'(k) = G(k) || 0 被认为是不安全的 PRG,因为消息中的 0 是在未加密的情况下复制的。而在语义安全 E'(k,m) = 0 || E(k,m) 即前置 0 被认为是语义安全的。为什么附加 0 不会破坏语义安全?
请要求澄清。
encryption - 在流密码中,如果攻击者知道 (m1 xor m2),他如何获得 m1 m2?
我们知道在流密码中 c = m xor G(k)。如果密钥被多次使用,攻击者可以获得
- c1 = m1 xor G(k)
- c2 = m2 xor G(k)
然后他知道 c1 xor c2 = m1 xor G(k) xor m2 xor G(k) = m1 xor m2。
那么有了 (m1 xor m2) 的知识,攻击者如何知道 m1 m2 呢?
networking - 如何使用流密码加密 TCP 数据?
我尝试在我的网络软件中使用 chacha20 加密,但我遇到了问题
如果我加密 4 字节数据:0x01 0x02 0x03 0x04
在服务器上
并获取密文:0xd2 0xd3 0xc4 0xd5
,然后将其发送给客户端
客户端一次可能会收到 <= 4 个字节
前提是客户0xd2 0xd3
一开始只接受recv,
它可以正确解密数据并获取明文0x01 0x02
但是当客户端接收最后 2 个字节时0xc4 0xd5
似乎无法使用相同的随机数和密钥解密数据
那么有没有办法解决这个问题
在发送之前添加长度数据作为前缀是一种解决方案,但这很奇怪,因为我使用的是流密码。
nonlinear-functions - 如何将非线性 XOR 方程系统转换为 CNF
我正在尝试用琐碎的方式分析相移故障分析,并遇到了一个非线性方程组来求解。我读过关于 sat-solvers 和 Gaussian 消元的文章,但不幸的是,我在互联网上找到的文章都没有显示如何处理具有大量变量的非线性方程组(这里 trivium 给出了 288 个变量)。所以我现在几乎被困在如何解决这些变量上。
c - Grain-128 Cipher 样本输入和输出
我从 ecrypt 网站http://www.ecrypt.eu.org/stream/grainp3.html下载了grain 128 程序代码,用于对grain-128 进行研究。我无法设置 estream 软件设置框架并运行原始grain 128。所以我修改了相同的 C 程序以独立工作,但不幸的是我没有任何示例输入输出对(密钥、IV、输出密钥流)来测试代码. 有人可以帮助我吗?
java - 使用 RC4 算法逐行加密后,解密只产生一个正确的行
我必须使用 RC4 算法逐行加密文件。
加密整个文件并解密整个文件会产生原始文件,这很好。
当我尝试一次读取一行文件,对其进行加密,然后将加密的行写入文件时,对结果文件的解密只会产生一个正确的行,即原始文件的第一行。
我尝试使用字节数组读取文件并将其提供给 rc4 例程,该字节数组的大小是密钥长度的倍数,但结果是相同的。这是我的尝试:
这是我的 RC4 函数
运行它给了我一条干净的线,其余的只是不可读。
c++ - 'ChaCha' 尚未使用 Crypto++ 在此范围内声明?
我正在尝试创建一个运行 ChaCha 加密的程序。但是,我一直遇到这个问题
testingchacha.cpp:38:5: 错误:'ChaCha' 尚未声明 ChaCha::Encryption enc;
我试图从
到
但这样做给了我一长串错误。
我也尝试使用 Crypto++ 网站上的示例代码,但我遇到了关于“ChaCha”的相同问题尚未声明。
为什么我收到编译错误?