如何使用salsa20计数器随机数?

2024-04-18

  1. 我不确定我是否做对了:消息计数器可以用作/代替随机数?

我的意思是这样的消息:

标头(2 字节)|计数器(8字节)|正文(n 字节加密) | HMAC-SHA1

计数器= 1(63位= 0)可以吗?

  1. 我知道我不应该两次使用相同的密钥和相同的随机数。 当新的连接启动并且计数器再次从1开始时我该怎么办?

我知道我不应该两次使用相同的密钥和相同的随机数。当新的连接启动并且计数器再次从1开始时我该怎么办?

如果您重复使用具有相同密钥的随机数,有时候是这样的 https://crypto.stackexchange.com/a/108/13022。您应该将用作随机数的计数器存储在客户端的某个位置,为您发送的每条消息递增该计数器,并在发送该消息之前将其写回到存储中。这很重要,因为如果您未能将其写回,但发送了消息,则下一条消息将使用相同的计数器。如果您无法写回计数器,您确实不应该发送该消息。

If you cannot store something like a counter on the client, then you can randomly generate the nonce. 64 bit does not provide much space for good collision resistance. You should expect to get the first nonce collision after 232 messages with the same key. If you have much much fewer messages than this, then you can simply generate a random nonce and be fairly sure that there won't be a collision. If you want to be extra sure, use XSalsa20, which uses a 192 bit IV/nonce.

我不确定我是否做对了:消息计数器可以用作/代替随机数?

Nonce means 使用过一次的号码。如果您总是递增计数器,那么您将始终使用不同的数字once。所以,是的,计数器可以用作随机数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用salsa20计数器随机数? 的相关文章

  • 使用 PHP 的 JavaScript atob 操作

    我想知道是否可以使用 PHP 解密 JavaScript 加密文本 使用 JavaScript 的 btoa 函数加密 看一下base64 decode http php net manual en function base64 deco
  • 从 X509Certificate2 获取私钥时偶尔出现异常“指定的提供程序类型无效”或“密钥不存在”

    我在尝试从 X509Certificate2 证书获取私钥时遇到以下异常之一 System Security Cryptography CryptographicException 指定的提供程序类型无效 OR System Securit
  • iOS:获取 iPhone 密码以生成用于加密的对称密钥

    我正在开发一个 iOS 应用程序 该应用程序分发到所有用密码锁定的设备 有没有办法获取设备密码 或其某种形式 来动态生成对称密钥 例如使用 PBKDF2 来加密 解密数据 否 没有 API 可以确定是否设置了设备密码或获取密码 如果已设置
  • 如何混淆整数?

    我需要从 C 中的整数列表生成唯一值的列表 我以为是 MD5 或类似的 但它们生成了太多字节 整数大小为 2 个字节 例如 我想获得单向通信 0 gt ARY812Q3 1 gt S6321Q66 2 gt 13TZ79K2 因此 在证明哈
  • Java GuardedString - 用于加密的随机密钥是否存储在 Java 堆内存中?如果不是,那么密钥保存在哪里?

    Oracle 的 org identityconnectors common security GuardedString 要转换为 GuardedString 的原始数据需要由 EncryptorImpl class 随机生成的加密密钥
  • 获取证书链

    我正在 Java 中使用 X509 证书 给定一个证书 是否可以在签名层次结构中找到所有其他证书 直到找到根证书 我有一个证书文件 带有 cer扩展名 我想提取父签名证书 我想继续查找该证书的父证书 直到获得最终的自签名根证书 我已经检查了
  • Delphi 的免费加密库 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在为 Delphi 2010 寻找一个免费且最新的加密库 该库实现 RSA 和 AES Rijnda
  • 如何在将数据发送到 Firebase 数据库之前对其进行加密?

    我正在使用 Firebase 实时数据库制作聊天应用程序 我知道 Firebase 非常安全 只要您的规则正确 但我自己可以阅读使用我的应用程序的人的所有聊天记录 我想阻止这种情况 为此我需要一种解密和加密方法 我尝试使用凯撒解密 但失败了
  • 如何在 C# 中创建 PKCS12 .p12 文件?

    这可能是一个n00b问题 但我在这方面确实没有任何经验 我需要创建一个包含 X509 证书和私钥的 p12 捆绑包 我当前有两个对象 X509Certificate2 和包含关键信息的 RSAParameters 对象 如何将它们合并到 p
  • Android 中的字符串加密

    我正在使用代码进行加密和加密 它没有给出字符串结果 字节数组未转换为字符串 我几乎尝试了所有方法将字节数组转换为字符 但没有给出结果 public class EncryptionTest extends Activity EditText
  • 在同步函数中使用 javascript `crypto.subtle`

    在javascript中 是否可以使用浏览器内置的sha256哈希 https developer mozilla org en US docs Web API SubtleCrypto digest Converting a digest
  • 使用 SSL 设置 .Net IBM.XMS 客户端

    我必须创建一个客户端来侦听队列上的消息 正在使用 SSL 我正在 dot net 中进行开发 我浏览了数百页的文档和论坛 找到了一些清晰简洁的内容 但看起来事实并非如此 我有一个 jks 并且我能够 telnet 到正在发布队列的服务器 下
  • Java 9:AES-GCM 性能

    我进行了一个简单的测试来测量AES GCM https en wikipedia org wiki Galois Counter Mode表现在Java 9 通过在循环中加密字节缓冲区 结果有些令人困惑 本机 硬件 加速似乎有效 但并非总是
  • 在 Android 中加密/解密字符串的简单方法

    我的问题是如何加密String String AndroidId Override public void onCreate Bundle savedInstanceState super onCreate savedInstanceSta
  • 为什么AES java解密返回额外的字符?

    请原谅我英语不好 我使用 mcrypt 我从这里得到它用于 php 和 java 的 MCrypt https snipt net raw ee573b6957b7416f28aa560ead71c3a2 nice 在我的android应用
  • Android 中的 RSA 加密

    我正在编写一个在 Android 中使用 RSA 的程序 我有以下问题 我正在获取 RSA 密钥 KeyPair kp kpg genKeyPair publicKey kp getPublic privateKey kp getPriva
  • 直接使用从密钥库加载的 SecretKey 时,密钥用户未经过身份验证

    我正在尝试使用 Cipher 和在 KeyStore 中加载的 SecretKey 来加密数据 但总是收到此错误 导致 android security KeyStoreException 关键用户未经过身份验证 我尝试自己创建 Secre
  • 使用 AES 解密时输入数据不是完整的块

    我正在尝试加密来自 oracle 的数据 然后使用 C 解密它 到目前为止 我设法编写了一个在 C 和 Oracle 中加密数据的代码 并且得到了匹配的结果 我试图用 C 解密数据 但收到错误 输入数据不是一个完整的块 甲骨文加密 SELE
  • 如何在 Python 中加密并在 Java 中解密?

    我正在尝试在 Python 程序中加密一些数据并将其保存 然后在 Java 程序中解密该数据 在Python中 我像这样加密它 from Crypto Cipher import AES KEY 1234567890123456789012
  • 数据加密

    存储大量信用卡信息的数据库是我们刚刚完成的系统中不可避免的一部分 不过 我想要的是卡号的最终安全性 我们可以设置一种加密和解密机制 但我们自己无法解密任何给定的号码 我所追求的是一种即使在数据库级别也能保护这些信息的方法 这样任何人都无法进

随机推荐

  • 在多个子文件夹中搜索文件的VBA宏

    我有宏 如果我放入文件的单元格 E1 名称 则通过 C Users Marek Desktop Makro 目录进行宏搜索 找到它并将所需的值放入带有宏的原始文件的特定单元格中 是否可以在没有特定文件夹位置的情况下完成这项工作 我需要一些可
  • GCC ARM 汇编预处理器宏

    我正在尝试使用汇编 ARM 宏进行定点乘法 define MULT a b asm volatile SMULL r2 r3 0 1 n t ADD r2 r2 0x8000 n t ADC r3 r3 0 n t MOV 0 r2 ASR
  • 将集合从后台工作者 DoWork 传递到后台工作者已完成并执行 foreach

    我的目标是 用户在组合框中键入完整或部分计算机名 按钮单击事件启动后台工作人员将计算机名传递给 DoWork 方法 DoWork 方法在 ActiveDirectory 中搜索计算机名并将集合传递给 WorkerCompleted 方法 W
  • 动态IP地址的用户可以被阻止吗?

    现在我正在尝试构建一些东西 我的客户想要阻止某些向 Web 服务发出许多请求的 IP 地址 现在我想知道的是 如果我用动态 IP 地址阻止用户 他不能重置调制解调器并重新开始吗 你是对的 如果IP是动态的 尽管路由器重置可能不会立即改变它
  • sybase @@error 捕获错误的替代方法

    通常我会遇到这样的错误 EXECUTE STATEMENT SELECT ERR CODE ERROR 它处理简单的错误 如下面的查询 ERROR 返回值 insert into tab1 values 1 error attempt to
  • 如何从本地创建全局变量并存储其先前的值?

    在我的 pygame 游戏中 我希望子弹能够检测到它何时位于给定的命中框中 为此 我需要从本地创建一个全局变量 但是 每次出现新对象时 全局变量都会更新为新的碰撞盒 这不允许我跟踪之前的碰撞箱并检测子弹何时位于屏幕上的旧对象内 我该如何防止
  • 无法使用 JPA 获取与数据库的连接 - 缺少 derby 嵌入式驱动程序类

    我正在尝试使用 jpa 创建本地 derby 数据库 作为 JPA 实现 我使用 openjpa 并作为 sql 实现 derby 这是 persistence xml
  • Ruby 数组上未定义的方法“to_h”

    As per Ruby 数组文档 http ruby doc org core 2 2 0 Array html method i to h 有一个方法to h只要数组的每个元素是另一个包含两个元素的数组 就可以使用它将数组转换为哈希 以下
  • Android ListView,OnListItemClick,查找行id?

    我似乎无法找到如何获取我的 ListView OnListItemClick 以打开不同的活动 我知道我需要为 ListView 获取一些 row id 但我不知道如何做 现在 ListView 中的每一行都打开相同的活动 抱歉我的英语不好
  • JavaScript 的 for...in 循环如何处理多维数组?

    我在玩了一下 JavaScript 发现 至少对我来说 在通过 for in 循环处理多维数组时有奇怪的行为 所以我有这段代码
  • 在 C++ 中创建可修改的字符串文字

    是否可以在 C 中创建可修改的字符串文字 例如 char foo foo foo char afoo foo 0 afoo 2 g access violation 这会产生访问冲突 因为 foo 是在只读内存中分配的 我相信是 rdata
  • 什么时候应该使用各个线程同步对象?

    在什么情况下应该使用以下每个同步对象 读写锁 信号 Mutex 由于每次调用 post 时 wait 都会返回一次 因此信号量是一种基本的生产者 消费者模型 除了信号之外最简单的线程间消息形式 使用它们是为了让一个线程可以告诉另一个线程发生
  • 格式字符串参数不足

    我在Python中有这样的代码 def send start self player for p in self players player socket send cmd
  • 类型错误:“未定义”不是函数(评估“sinon.spy()”)

    我正在尝试使用sinon js http sinonjs org 在测试骨干应用程序时 但不幸的是 由于错误 我无法使用间谍方法 TypeError undefined is not a function evaluating sinon
  • 如何将 WPF 用户控件的宽度拉伸到其窗口?

    我有一个带有用户控件的窗口 我想让用户控件宽度等于窗口宽度 怎么做 用户控件是一个水平菜单 包含一个包含三列的网格
  • 系统windows窗体定时器参数

    如何将参数传递给System Windows Forms Timer private System Windows Forms Timer timer timer Interval 1000 timer Tick new EventHand
  • 如何将数据绑定到Spring表单中的列表

    我有一个带有支撑物体的弹簧形式 形式是这样的
  • 什么是 .htaccess 文件?

    我是 Zend 框架的初学者 我想了解更多关于 htaccess 文件及其用途 有人可以帮助我吗 我找到了一个这样的例子 htaccess 文件 AuthName Member s Area Name AuthUserFile path t
  • 转换为具体类并调用 Java 中的方法

    假设我们有一个名为A和一些子类 B C D ETC 大多数子类都有这个方法do 但基类没有 班级AA提供了一个方法叫做getObject 这将创建一个类型的对象B or C or D等 但将对象作为类型返回A 如何将返回的对象转换为具体类型
  • 如何使用salsa20计数器随机数?

    我不确定我是否做对了 消息计数器可以用作 代替随机数 我的意思是这样的消息 标头 2 字节 计数器 8字节 正文 n 字节加密 HMAC SHA1 计数器 1 63位 0 可以吗 我知道我不应该两次使用相同的密钥和相同的随机数 当新的连接启