标签: public-key-encryption

密码保护嵌入式固件下载

我需要防止我们产品的用户下载与他们尝试下载的硬件版本不兼容的固件.我将描述现在存在的东西以及我正在寻找的东西.

我们有一个字母数字硬件部件号和修订版存储在EEPROM中,只能在工厂编程.当客户尝试下载固件文件时,他必须输入随固件版本一起分发的密码.现有固件需要能够使用此密码来验证新固件是否与当前硬件版本兼容.请记住,多个硬件版本可能与单个已发布的固件版本兼容.

是否存在某种形式的公钥加密,可用于验证固件构建过程中生成的密钥的多个硬件版本号?硬件版本号将作为私钥,而客户输入的用于解锁下载机制的密码将是公钥.

嵌入式固件是用C语言编写的,如果加密算法相同则会很好.它可以是C++,只要它有一个适合从C函数调用的接口.

有一些硬件版本在野外,但我们可以忽略现在存在的那些.假设将发布包含此功能的全新产品,因此它将是0版.

密码将从客户端的计算机传输到嵌入式硬件,无需任何修改.因此,解密和密码匹配需要在嵌入式固件中进行,然后嵌入式固件将成功/失败报告给客户端.这样做的原因是它可能并不总是用于下载固件的笔记本电脑.它更可能是一个手持式下载工具,因此执行自定义软件的选项有限.

c c++ embedded cryptography public-key-encryption

0
推荐指数
1
解决办法
751
查看次数

JavaScript中的RSA加密,具有可用模数

我有一些Java代码通过json将公共指数和模数(非常,非常长整数)发送到javascript.

我需要在JavaScript中使用这些值对文本字段(密码)应用RSA加密.

我在网上尝试了很多可用的东西,但还没有成功.我在应用程序中没有SSL.

有人可以帮我这个吗?一些样本/精确代码将是一种祝福.

javascript encryption rsa public-key-encryption

0
推荐指数
1
解决办法
3249
查看次数

C的PGP库

我正在用C开发客户端服务器通信应用程序.我想在之间使用一些公钥加密来加密消息.我发现PGP(相当不错的隐私)是一个很好的政策.那么有没有可用于在我的应用程序中嵌入PGP的库.我需要密钥生成,文本消息加密(最大1024字节长度的文本),消息解密.

提前致谢

c pgp public-key-encryption

0
推荐指数
1
解决办法
4409
查看次数

使用PKCS#7加密

我正在使用Bouncy Castle提供的库来加密,解密,签名和验证标志.我这样做
1.加密数据
2.签名数据
3.将签名字节写入文件
4.从文件中读取签名字节
5.验证签名
6.解密数据

我参考了Beginning Cryptography with Java

当我验证数据时,我的问题出在第5步

org.bouncycastle.cms.CMSException:message-digest属性值与计算值不匹配

我的代码如下

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.math.BigInteger;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.KeyStore;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.SecureRandom;
import java.security.cert.CertPathBuilder;
import java.security.cert.CertStore;
import java.security.cert.Certificate;
import java.security.cert.CollectionCertStoreParameters;
import java.security.cert.PKIXBuilderParameters;
import java.security.cert.PKIXCertPathBuilderResult;
import java.security.cert.TrustAnchor;
import java.security.cert.X509CertSelector;
import java.security.cert.X509Certificate;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.Iterator;

import javax.security.auth.x500.X500Principal;
import javax.security.auth.x500.X500PrivateCredential;

import org.bouncycastle.asn1.x509.BasicConstraints;
import org.bouncycastle.asn1.x509.KeyUsage;
import org.bouncycastle.asn1.x509.X509Extensions;
import org.bouncycastle.cms.CMSEnvelopedData;
import org.bouncycastle.cms.CMSEnvelopedDataGenerator;
import org.bouncycastle.cms.CMSEnvelopedDataParser; …
Run Code Online (Sandbox Code Playgroud)

java cryptography keystore public-key-encryption pkcs#7

0
推荐指数
1
解决办法
2万
查看次数

证书和哈希检查?

我问这个问题是为了 100% 确定。

关联

为了验证证书以确保它包含由证书颁发机构数字签名的信息,Web 浏览器会验证数字签名。由于数字签名是根据证书内容计算的加密哈希值,因此 Web 浏览器需要比较哈希值。Web 浏览器根据它收到的证书的内容计算哈希值。然后解密数字签名以确定证书颁发机构计算的哈希值。如果两个哈希值匹配,则 Web 浏览器确信该证书包含证书颁发机构验证和数字签名的信息。

问题 :

Web 浏览器根据收到的证书内容计算哈希值

浏览器知道证书在哪个摘要算法中使用,因此他使用它来计算哈希 - 基于证书内容。

然后解密数字签名以确定证书颁发机构计算的哈希值

浏览器知道哪个 CA 创建了证书,因此他从适当的计算机存储位置获取公钥并将其应用于加密的哈希值。结果是解密的哈希值。

然后看看两者是否相同。

我对吗 ?

security ssl certificate public-key-encryption

0
推荐指数
1
解决办法
9240
查看次数

在RSA cryptograohy中加密时间是否比解密时间短?

我将实现RSA加密.我想知道.加密比RSA加密中的解密快多少倍.我通过使用System.currentTimeMillis()尝试在java中计算经过的时间; 但是给我时间加密= 0.05毫秒,而时间解密0.55毫秒意味着从1:11.我认为这个结果不合理我的代码是如下

//here my key has 256 bits
 for (;;) {
            long begin = System.currentTimeMillis();

            for (int i = 0; i < num; i++) {

            decrypt();
            }

            long end = System.currentTimeMillis();

            long time = end - begin;

            if (time >= 10000) {
                System.out.printf("Average Encryption takes: %.2f ms\n",
                        (double) time / num);
                break;
            }

            num *= 2;
        }

p = BigInteger.probablePrime(128, random);
q = BigInteger.probablePrime(128, random);
N = (p.subtract(one)).multiply(q.subtract(one));
e = BigInteger.probablePrime(32, random);
d = e.modInverse(N);

private void encrypt()
{ …
Run Code Online (Sandbox Code Playgroud)

benchmarking cryptography rsa public-key-encryption

0
推荐指数
1
解决办法
1088
查看次数

RSA算法示例

在这个简单的示例中,假设一个权限使用公共RSA密钥(e = 11,n = 85)来签署文档.你希望他们签署你的消息(这是号码42),但你不希望他们知道他们签署了什么,所以你使用11的盲目因子"r".在你的计算中你可能希望使用以下结果:

11 ? 35 = 1 mod 64
11 ? 31 = 1 mod 85
Run Code Online (Sandbox Code Playgroud)

显示简短的工作.

1)您应该授权签署什么号码?

2)当局会给你多少号码?

3)从该号码中提取42的签名.

4)使用私钥验证此答案.

我已经看过了,如果有人能和我一起指导这个例子,我将非常感激.

security encryption cryptography rsa public-key-encryption

0
推荐指数
1
解决办法
2271
查看次数

Base64是加密或编码算法吗?

我必须使用Base64的加密算法,但是当我在线研究时,我发现论坛说它是一种编码算法.这让我很困惑.:(

Base64是加密或编码算法吗?我们如何区分这两者,除了一个是公开可辨认而另一个需要关键的事实?

encryption base64 encoding public-key-encryption

0
推荐指数
1
解决办法
3120
查看次数

公钥和私钥关系

我向您发送使用pvt1(私钥)加密的数据。

那么如何打开此文档?

没有我pvt1,你怎么能打开它?

如果您可以使用pvt2钥匙打开,那么pvt1pvt2钥匙之间是否应该没有关系?

否则,如何打开我的文档?

如果您需要我pvt1打开文件,那么在交换钥匙之前我们会见面吗?

cryptography public-key-encryption private-key

0
推荐指数
1
解决办法
609
查看次数

在PHP中使用公钥字符串解密

我有公钥字符串:

----- BEGIN PUBLIC KEY ----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvL + UegLeWJ1KLh6WEfbW KGCA + vj4G / k6iIz9OWCb9t3maokH +盎司/ bNB8PGlwmH2aCBmqXPv9p3hexcujUsNC jFahCAz84tT7M4rR2GGwVWyY9PJ98rZbbvD9PLG380cqZs + vlwYT16bv5t + braiJ WhrAgwKF0eZyID6DzRnDCG7HbKr6sL1h7QD1WHBljplV + TinIeWoyBIWPJdqEAUs js1wXWkFPIb5x0W7kAzWc0 + oH3gDD3kGv + T / p2DsbUuOYYSZgZB8Lx1AKiWVRERt 90tWH9uytulSxvwoONBriasH7VlSXyi5ve6AA4 + FG / HExiPNN5Lh34kNP6l5CTc + yaCDHewYQeqDdgP + GurgdV9ZCM4P7c6Ky7GZBs8sAAAXevch8ggf9XGjEsLl ++ C7 G5E4FO6kNmloL3nogRLJ8P8w / s53Y0g4ih2hdJFfqJ3l / fIolvldR17nA3oZBHTo OuOSR / JK1KWvkl / C9I1lHO70zrgvr7wtpW2YbdBHvvTu5aTK8oIMNoZ8lhWdKFYG aiQWvfsM / IPXbFKQbDQachn5ZHYLc4wXi1uBHYnPCjZM3Fq6wc1oSnRZ77CI8crf To7TJFfXO20VtSdwUq0SCrQ1wxttK8uH22c / YUXPld + K6fW13tspWz653gnw5FPd 8bFQQByVkrcihbyuXWjUSMkCAwEAAQ == ----- END PUBLIC KEY -----

并想用它来加密消息,但是当我运行下面的代码时,它给了我以下错误:

警告:openssl_public_encrypt(): key 参数不是有效的公钥 i ...

<?php 

$unformatted_pub= "-----BEGIN PUBLIC KEY----- MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvL+UegLeWJ1KLh6WEfbW kGcA+vj4G/k6iIz9OWCb9t3maokH+Oz/bNB8PGlwmH2aCBmqXPv9p3hexcujUsNC …
Run Code Online (Sandbox Code Playgroud)

php encryption public-key-encryption

0
推荐指数
1
解决办法
3133
查看次数