问题标签 [block-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 回答
190 浏览

php - Create Transaction blockcypher/php-client 登录时出错

这是我的创建、签名和发送代码

这是我得到的错误:

PrivateKeyList.php 第 54 行中的 FatalThrowableError:类型错误:传递给 BlockCypher\Crypto\PrivateKeyList::addPrivateKey() 的参数 1 必须是 BitWasp\Bitcoin\Key\PrivateKeyInterface 的实例,BitWasp\Bitcoin\Crypto\EcAdapter\Impl\ 的实例PhpEcc\Key\PrivateKey 给定,在第 43 行的 /home/pixel/Documents/tests/vendor/blockcypher/php-client/lib/BlockCypher/Crypto/PrivateKeyList.php 中调用

这是代码

0 投票
1 回答
1916 浏览

java - 无法解密在 webcrypto api 中加密的 java 中的数据

我在 java 中生成密钥对,并使用公钥在 webcrypto API 中加密了一些纯文本。我得到的加密数据是 Uint8Array 格式,并试图用我的私钥在 java 中单独解密。

Java 代码:

用于加密数据的 Webcrypto API 代码:

0 投票
0 回答
228 浏览

solidity - Web3 和智能合约中的椭圆曲线密码学

我一直在尝试使用 web3 库对智能合约中的数据进行签名。我在 truffle 开发控制台上试了一下,我尝试在 Solidity 中使用 erecover 来取回地址。不幸的是,我无法取回签名的地址。我在 Ganache 上进行了测试。代码中是否有任何错误?

0 投票
1 回答
45 浏览

python - RC-6 密文不匹配非 0 向量

我遇到了这个问题,我的 RC-6 算法没有产生它应该(由规范文档)更好地更清楚的密文,让我举个例子

在此处输入图像描述 如您所见,当纯文本和密钥由零字节组成时,它通过了两个测试 -> 密文和解密文本测试

为了更清楚地说明这一点,密码值(正确和错误)也在加密后以小端方式排序。

所以我的问题是 -我应该在哪里查找无效代码?

我有一种感觉,在将字节排序传递给加密或密钥调度函数之前,它与字节排序有关。

我传递给密钥调度和加密函数的值是简单的 32 位字数组(例如[0x00,0x10,0x00,0x00]),然后我将一个直接移到算法(我写的查看伪代码),因此在此之前没有进行其他格式化。

它们也开始如下:

我可以使用任何帮助..

先感谢您!

顺便说一下,官方的测试向量可以在这个文件的附录中

0 投票
1 回答
206 浏览

matlab - 当前密码密钥更新的 MATLAB 实现中的错误

我正在尝试在 MATLAB 中实现 PRESENT 密码,但它没有正确加密和解​​密(解密后我没有得到明文)。在测试了密码的每个部分,即子层、播放器、添加轮密钥和密钥更新之后,我发现我的密钥更新也没有按照预期的方式工作。使用的密钥是:`'00000 00000 00000 00000' 并且每一轮的密钥更新应该是:

但是我的代码对每一轮的关键更新是这样的:

我用于密钥更新的 matlab 代码是:

0 投票
1 回答
2182 浏览

java - 具有 CBC 模式的三重 DES:java.security.InvalidAlgorithmParameterException:IV 长度错误:必须为 8 个字节长

我正在尝试在 java 中使用 CBC 模式实现 3DES 加密/解密。

初始化向量是 0000000000000000
加密字符串是 DD446C051A83BFD98144C348935C61D81398CF29CCFE1CCD
解密密钥是 DCBA4F836E45BAB04FAB2937454075D9

我收到以下错误。任何帮助都感激不尽。谢谢。

代码:

0 投票
1 回答
453 浏览

ethereum - BlockCypher 发送交易

我正在尝试按照此处的文档实现 BlockCypher Ethereum API: https ://www.blockcypher.com/dev/ethereum/#transaction-api

我正在使用测试网络/beth/test,而不是/eth/main

我成功地创建了 2 个地址,并调用了水龙头,用大约 1000000000000000000 wei 填充了一个地址。

但后来我似乎无法发送有效的交易......这是所有(测试)信息:

地址1

}

地址2

}

地址 2 包含 1000000000000000000 wei,我正在尝试将 1200000000000000 wei 发送到地址 1。

我使用 New Transaction 方法,我发送这个:

我得到了这样的回应:

}

然后我将 Signer 与来自 New Transaction 响应的 ToSign 以及地址 2 的十六进制编码私钥一起使用:

我得到这个签名:

于是我尝试了 BlockCypher 的 Send Transaction 方法,这是我的请求:

}

我得到了这个错误:

知道我在做什么错吗?

我已经尝试了几件事,在网上阅读了一些类似的问题,但仍然没有运气。

我还尝试了 BlockCypher 的 Raw Transaction 方法,但也没有运气......

我不清楚“原始十六进制编码事务”是什么意思,我尝试将我发送到新事务的十六进制编码输入发送:

所以我发送到https://api.blockcypher.com/v1/beth/test/txs/push?token=[mytoken]这个:

但我得到了错误:

请,非常感谢任何帮助!

0 投票
0 回答
174 浏览

encryption - BouncyCastle Threefish - 同等区块加密

我直接使用了 BouncyCastle 的 Threefish,而不是通过安全 API。

有趣的是,相同的块将以相同的方式加密。我预计前一个块的结果会影响下一个块的结果(因为密钥调度会产生永久不同的密钥),并且相同的块将以不同的方式加密。

在 BouncyCastle 的源代码 ThreefishEngine.java 中,tweak 用于方法 encryptBlock 中的加密,但tweak 永远不会改变。同样对于下一个块的加密,不使用前一个块,既不是原始未加密块也不是加密块。在 ThreefishEngine 中,在 ThreefishEngine 初始化后,没有任何方法可以更改调整。ThreefishEngine 中的密钥调度仅在单个块内完成,对下一个块的加密没有影响。

以下是问题。

1. 是否正确,相同的块产生相同的加密块?我的期望是错误的吗,相同的块应该以不同的方式加密?实际上,这是块密码和流密码之间的本质区别,否则就是流密码。

2. 是否只对一个区块进行密钥调度(不同的密钥应用于区块的不同部分)?每个块的键调度是否相同?这可以解释为什么加密块是相等的。

0 投票
2 回答
4382 浏览

encryption - 没有 IV 的 AES CTR - 多条消息的相同密钥 - 安全吗?

我想用js制作一个网页来加密明文,所以我可以把它发给朋友,他会用同一个网页来解密它。

我们将共享相同的密钥并将其用于多条消息。

我知道在使用 AES CBC 时,每条消息都需要随机 iv,但我喜欢使用 AES CTR。

我将使用 256 密钥,而不是密码。

我有两个问题:

  1. 我可以在 CTR 中多次使用相同的密码而没有 iv 吗?
  2. 如果我将使用 CBC,以明文形式发送 iv 和加密消息是否安全?

我正在使用 aes-js 和基本的常用操作模式:

https://github.com/ricmoo/aes-js#ctr---counter-recommended

https://github.com/ricmoo/aes-js#cbc---cipher-block-chaining-recommended

我想要最好的安全性。

0 投票
1 回答
143 浏览

encryption - Midori128 密文不正确

我有一个项目,我必须为我的 Arduino Uno R3 实施各种安全协议,例如 Present、Misty、Prince 等。目前我正在尝试实现 Midori128。我设法让 Midori64 正常工作,但对于 Midori128,加密不正确,而解密工作正常。

这是目前的代码,请记住我从 GitHub 中提取了此代码,然后对其进行更改以使其尽可能高效地在 Arduino 上工作;但就像我说的,加密不正确,我不知道为什么。

原论文复习了无数遍,对这个方法理解得很好,但我无法确定它没有输出正确密文的确切原因,即c055cbb95996d14902b60574d5e728d6。任何帮助或提示将不胜感激。谢谢你。

后期编辑:我设法找到了 Midori128 中使用的 4 个 sbox,但是,我仍然不知道如何将它们准确地合并到我的代码中,如果有人有任何想法,我将不胜感激。

以下是 sbox: