问题标签 [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.
c# - 为什么 TransformBlock(byte[1]) 两次与 TransformBlock(byte[2]) 不同?
在salsa20 的 C# 实现中,如果我在大小为 1 的块上调用方法 TransformBlock 两次,这与在大小为 2 的块上调用它一次不同,当您使用此类加密对象时,这是有问题的通过 BinaryFormatter 发送。
这是设计使然吗?
为了解决这个问题,我将 salsa20 包装在另一个类(装饰器设计模式)中,它一次生成和缓存 64 字节的块,基本上像这样(在简化的伪代码中):
在安全方面我应该关注什么吗?
java - 如何处理 HC 128(流密码)以从中间字节开始加密到流内容的结尾?
我的情况:我有一个视频流服务,允许用户暂停/恢复他们的视频,还可以并行观看其中的多个部分(如 IDM),每个部分都可以暂停和恢复。性能在这里是一个重要的问题,所以我们选择了HC-128 ,根据这个比较,它是性能最好的。
在 HC 中,与大多数流密码一样,其中一种安全技术是在启动算法时设置一个计数器,并随着更多数据被加密而增加该计数器。
当流完全下载(从 index0
到content.length()
)时,我的解决方案工作正常,但当我想在给定位置(例如在 byte 处10000
)恢复时失败。
我使用默认的 HC 初始化过程,将计数器设置为0
. 我试图阅读的代码,HC
但无法提出解决方案。
如何使用给定的计数器位置初始化 HC-128?
我也有一个解密 APP 来解密我的流,但如果计数器随着传入字节的增加而增加,这是可行的。
有一个从充气城堡图书馆复制的 HC 128 样本,效果很好
您可以在此处在线运行此代码在主要方法“Hello World”中是输入
encryption - 对基于 LFSR 的流密码的已知明文攻击
我正在读一本关于密码学的书,我陷入了一个问题。我真的想解决它好几个星期。但我认为问题是我无法理解整个画面。问题是这样的:
我们对基于 LFSR 的流密码进行已知明文攻击。我们知道发送的明文是:
1001 0010 0110 1101 1001 0010 0110
通过点击频道,我们观察到以下流:
1011 1100 0011 0001 0010 1011 0001
非常感谢您帮助我了解密码学和 LFSR。
random - 英特尔的 RDRAND 有任何合法用途吗?
今天我想:好吧,即使对NIST SP 800-90A的 RDRAND 实现有很大的怀疑,它仍然是伪随机数生成器 (PRNG) 的硬件实现,对于非敏感应用程序来说必须足够好。所以我想在我的游戏中使用它而不是 Mersenne Twister。
因此,为了查看使用该指令是否有任何性能提升,我比较了以下两个代码的时间:
和
通过运行这两个我得到:
因此,Mersenne Twister 在我的 CPU 上比 RDRAND 快得多。好吧,我很失望,被排除在我的比赛之外。但是 RDRAND 是一种加密安全的 PRNG (CSPRNG),所以它在幕后做了很多事情……更公平的是,将它与其他 CSPRNG 进行比较。所以我采用了我的Rabbit实现(将 RFC 简单翻译为 C,没有花哨的性能技巧),并编写了以下测试:
令我惊讶的是,生成的伪随机数据是前两个的两倍,我得到了比 RDRAND 更好的时间:
这三个都是在启用优化的情况下编译的。
因此,我们普遍怀疑 RDRAND 是为了将 NSA 后门嵌入到每个人的软件密码学中。此外,我们至少有一个软件 CSPRNG 比 RDRAND 快,并且使用最广泛的体面 PRNG Mersenne Twister比 RDRAND快得多。最后,我们有开源的可审计软件熵池,比如/dev/random
和/dev/urandom
,它们没有隐藏在 AES 的双重加扰器层之后,比如 RDRAND。
那么问题来了:人们应该使用 RDRAND 吗?它有什么合法用途吗?还是我们应该完全停止使用它?
encryption - 块或流加密?
我想知道以加密形式存储的数据是通过块密码还是流密码加密的?
我有加密数据,如何检查它来自块密码还是流密码?
encryption - 加密算法分组密码和流密码
流密码和分组密码有什么区别?因为在分组密码中数据在卡盘中,而在流密码中逐位加密,所以在流密码中输入了多少数据?
c - C RC4 超级怪异的行为
所以我在我的网站上使用纯 C 语言找到了 RC4 的实现。它工作得非常好,除非我输入了一个 6 个字符的字符串。然后我得到内部错误页面。发现只有这个长度会导致问题。
1.Crypt.c
2.主要
非常欢迎任何建议或想法。只是想知道是函数本身不好还是我的 C 代码的其余部分不好。感谢!
aes - 如何为 RC4 256 使用 RSA 2048 密钥?
RSA 是公钥密码系统 2048 密钥大小,但它用于使用 AES 256 块大小的块系统密码,但使用流系统密码就像 RC4 256 位一样,密码流的前 256 位是不是有点奇怪?
security - GSM A5 加密重新初始化每一帧?
在 A5 算法中,在为下行和上行分别生成 114 位之后,伪随机数生成器是否在每帧结束时设置为 0000?所以它在下一帧用 64-Bit-Kc、22-Bit-Frame-COUNT 重新初始化,然后是 100 个周期,其输出被丢弃,最后再次产生输出?还是生成器只是暂停并在下一次突发时从保存状态继续?
java - Java Stream Cipher(带有输入和输出txt文件)输出随机字符不完整的解密字符串
不知道我哪里出错了,但我的程序应该是一个流密码,它接受一个 input.txt 文件chars
并将其加密为数字,然后将其解密回chars
.
我的问题是我输入:
(将 txt 加密到输出文件并且工作正常,)输入文件如下所示:
输出文件如下所示:
然后当我解密文件时..
结果是这样的:
我不知道我做错了什么,但我猜这与我的解密方法有关,或者我的加密如何在某些值上给出相同的数字?我真的很感激任何帮助!