比特币私匙暴力
㈠ 比特币公钥,私钥与地址的关系是怎样的
我把我家地址(地址)给你,你有可以查到我家邮编(公钥),你用我家邮编(公钥)+地址写信给我,邮件到我家邮递柜里面,我用只有我有的钥匙打开邮递柜(私钥)。
1、邮递柜被盗(数据库被盗)
2、钥匙被盗(私钥被盗)
3、知道我家地址(公钥被盗),邮递柜锁被暴力打开(私钥被暴力破解)。
㈡ 比特币基础知识 你绝对想不到
椭圆曲线数字签名算法
椭圆曲线数字签名算法(ECDSA)是使用椭圆曲线对数字签名算法(DSA)的模拟,该算法是构成比特币系统的基石。
私钥
非公开,拥有者需安全保管。通常是由随机算法生成的,说白了,就是一个巨大的随机整数,32字节,256位。
大小介于1 ~ 0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4141之间的数,都可以认为是一个合法的私钥。
于是,除了随机方法外,采用特定算法由固定的输入,得到32字节输出的算法就可以成为得到私钥的方法。于是,便有了迷你私钥(Mini Privkey),原理很简单,例如,采用SHA256的一种实现:
private key = SHA256()1
迷你私钥存在安全问题,因为输入集合太小,易被构造常见组合的彩虹表暴力破解,所以通常仿轮纳还是使用系统随机生成的比较好,无安全隐患。
公钥
公钥与私钥是相对应的,一把私钥可以推出唯一的公钥,但公钥却无法推导出私钥。公钥有两种形式:压缩与非压缩。
早期比特币均使用非压缩公钥,现大部分客户端已默认使用压缩公钥。
这个貌似是比特币系统一个长得像feature的bug,早期人少活多代码写得不够精细,openssl库的文档又不足够好,导致Satoshi以为必须使用非压缩的完整公钥,后来大家发现其实公钥的左右两个32字节是有关联的,左侧(X)可以推出右侧(Y)的平方值,有左侧(X)就可以了。
现在系统里两种方式共存,应该会一直共存下去。两种公钥的首个字节为标识位,压缩为33字节,非压缩为65字节。以0x04开头为非压缩,0x02/0x03开头为压缩公钥,0x02/0x03的选取由右侧Y开方后的奇偶决定。
压缩形式可以减小Tx/Block的体积,每个Tx Input减少32字节。
签名
使用私钥对数据进行签署(Sign)会得到签名(Signature)。通常会将数据先生成Hash值,然后对此Hash值进行签名。签名(signature)有两部分组成: R + S。由签名(signature)与Hash值,便可以推出一个公钥,验证此公钥,便可知道此签名是否由公钥对应的私钥签名。
通常,每个签名会有三个长度:73、72、71,符合校验的概率为25%、50%、25%。所以每次签署后,需要找出符合校验的签名长度,再提供给验证方。
地址
地址是为了人们交换方便而弄出来的一个方案,因为公钥太长了(130字符串或66字符串)。地址长度为25字节,转为base58编码后,为34或35个字符。base58是类似base64的编码,但去掉了易引起视觉混淆的字符,又在地址末尾添加了4个字节校验位,保障在人们交换个别字符错误时,也能够因地址校验失败而制止了误操作。
由于存在公钥有两种形式,那么一个公钥便对应两个地址。这两个地址都可由同一私钥签署交易。
公钥生成地址的算法:
Version = 1 byte of 0 (zero); on the test network, this is 1 byte of 111
Key hash = Version concatenated with RIPEMD-160(SHA-256(public key))
Checksum = 1st 4 bytes of SHA-256(SHA-256(Key hash))
Bitcoin Address = Base58Encode(Key hash concatenated with Checksum)1234
下图是非压缩公钥生成地址的过程:
对于压缩公钥生成地址时,则只取公钥的X部分即可。
推导关系
三者推导关系:私钥
公钥
两个地址。过程均不可逆。拥有私钥便拥有一切,但通常为了方便,会把对应的公钥、地址也存储起来。
交易
比特币的交易(Transation,缩写Tx),并不是通常意义的桐散交易,例如一手交钱一手交货,而是转账。交易由N个输入和M个输出两部分组成。交易的每个输入便是前向交易的某个输出,那么追踪到源头,必然出现一个没有输入的交易,此类交易称为CoinBase Tx。CoinBase类备没交易是奖励挖矿者而产生的交易,该交易总是位于Block块的第一笔。
拥有一个输入与输出的Tx数据:
Input:
Previous tx:
Index: 0
scriptSig:
241501
Output:
Value: 5000000000
scriptPubKey: OP_DUP OP_HASH160
OP_EQUALVERIFY OP_CHECKSIG12345678910
一旦某个Tx的第N个输出成为另一个Tx的输入,那么该笔比特币即为已花费。每个交易有唯一Hash字符串来标识,通过对交易数据做两次SHA256哈希运算而来:
Tx Hash ID = SHA256(SHA256(Tx Data))1
矿工费
矿工费(Transaction Fee)是鼓励矿工将Tx打包进Block的激励报酬。计算一笔交易的矿工费:
Transaction Fee = SUM(Inputs amount) - SUM(Outputs amount)1
每笔Tx的矿工费必然大于等于零,否则该笔Tx即为非法,不会被网络接收。
数据块
数据块(Block)是存储Block Meta与Tx的地方。Block的第一笔Tx总是CoinBase Tx,因此Block中的交易数量总是大于等于1,随后是这段时间内网络广播出来的Tx。
找到合适的Block是一件非常困难的事情,需要通过大量的数学计算才能发现,该计算过程称为“挖矿”。首个发现者,会得到一些比特币作为奖励。
数据链
多个Block连接起来成为数据链(Block Chain)。
为了引入容错与竞争机制,比特币系统允许Block Chain出现分叉,但每个节点总是倾向于选择最高的、难度最大的链,并称之为Best Chain,节点只认可Best Chain上的数据。
首个Block称为Genesis Block,并设定高度为零,后续每新增一个Block,高度则递增一。目前是不允许花费Genesis Block中的比特币的。
每个Block中的Tx在此Block中均唯一
一个Tx通常只会在一个Block里,也可能会出现在多个Block中,但只会在Best Chain中的某一个Block出现一次
货币存储
比特币是密码货币、纯数字化货币,没有看得见摸得着的硬币或纸币。一个人持有比特币意味着:
其拥有一些地址的私钥
这些地址是数笔交易的输出,且未花费
所有货币记录均以交易形式存储在整个blockchain数据块中,无交易无货币。货币不会凭空产生,也不会凭空消失。遗失了某个地址的私钥,意味着该地址上的Tx无法签署,无法成为下一个Tx的输入,便认为该笔比特币永久消失了。
货币发行
既然所有交易的输入源头都是来自CoinBase,产生CoinBase时即意味着货币发行。比特币采用衰减发行,每四年产量减半,第一个四年每个block的coinbase奖励50BTC,随后是25btc, 12.5btc, 并最终于2140年为零,此时总量达到极限为2100万个btc。
减半周期,严格来说,并不是准确的四年,而是每生成210000个block。之所以俗称四年减半,是因为比特币系统会根据全网算力的大小自动调整难度系统,使得大约每两周产生2016个block,那么四年约21万块block。
该函数GetBlockValue()用于计算挖得Block的奖励值:
int64 static GetBlockValue(int nHeight, int64 nFees)
{
int64 nSubsidy = 50 * COIN;
// Subsidy is cut in half every 210000 blocks, which will occur approximately every 4 years
nSubsidy = (nHeight / 210000);
return nSubsidy + nFees;
}123456789
当达到2100万btc以后,不再有来自CoinBase的奖励了,矿工的收入来源仅剩下交易的矿工费。此时,每个block的收入绝对值btc很低,但此时比特币应当会非常繁荣,币值也会相当的高,使得矿工们依然有利可图。
杜绝多重支付
传统货币存在多重支付(Double Spending)问题,典型的比如非数字时代的支票诈骗、数字时代的信用卡诈骗等。在比特币系统里,每笔交易的确认均需要得到全网广播,并收录进Block后才能得到真正确认。每笔钱的花销,均需要检测上次输入交易的状态。数据是带时间戳的、公开的,BlockChain由巨大的算力保障其安全性。所以比特币系统将货币的多重支付的风险极大降低,几近于零。通过等待多个Block确认,更是从概率上降低至零。一般得到6个确认后,可认为非常安全。但对于能影响你人生的重大支付,建议等待20~30个确认。
匿名性
任何人均可以轻易生成大量的私钥、公钥、地址。地址本身是匿名的,通过多个地址交易可进一步提高匿名性。但该匿名性并不像媒体宣传的那样,是某种程度上的匿名。因为比特币的交易数据是公开的,所以任何一笔资金的流向均是可以追踪的。
不了解比特币的人为它的匿名性产生一些担忧,比如担心更利于从事非法业务;了解比特币的人却因为它的伪匿名性而苦恼。传统货币在消费中也是匿名的,且是法律保障的,大部分国家都不允许个人涂画纸币。
地址本身是匿名的,但你可以通过地址对应的私钥签名消息来向公众证明你拥有某个比特币地址。
其他名词
哈希
哈希(Hash)是一种函数,将一个数映射到另一个集合当中。不同的哈希函数映射的空间不同,反映到计算机上就是生成的值长度不一样。同一个哈希函数,相同的输入必然是相同的输出,但同一个输出却可能有不同的输入,这种情况称为哈希碰撞。
常见的哈希函数有CRC32, MD5, SHA1, SHA-256, SHA-512, RIPEMD-160等,哈希函数在计算中有着非常广泛的用途。比特币里主要采用的是SHA-256和RIPEMD-160。
脑钱包纸钱包
前面提到过的脑钱包与纸钱包,这其实不算是钱包的分类,只是生成、存储密钥的方式而已。脑钱包属于迷你私钥的产物。脑钱包就是记在脑袋里的密钥,纸钱包就是打印到纸上的密钥,仅此而已。
有同学提到过,以一个计算机文件作为输入,例如一个数MB大小的照片,通过某种Hash运算后得到私钥的方法。这个方案的安全性还是不错的,同时可以防止盗私钥木马根据特征扫描私钥。文本形式存储私钥是有特征的,而一个照片文件却难以察觉,即使放在云盘等第三方存储空间中都是安全的。
㈢ 为什么比特币的私钥无法被攻破
关于:为什么比特币的私钥无法被破解?
以下为正文:
破解比特币私钥,实际上就是要在 1 到 2²⁵⁶ 之间找到一个数,这个数对应的钱包里面有比特币。
2²⁵⁶ 约等于 10⁷⁷,这是个巨大的数字,对比的话,人类可观测宇宙的基本粒子也就是在 10⁸⁰ 这个数量级上。
人类现有的超级计算机,前 500 强加起来的算力,大约是每秒进行 10¹⁸ 次浮点运算,有兴趣的人可以算一算,就算每次浮点运算能完成一次破解比特币的尝试,那完成破解需要多少时间。简单说,一年约有 3.1536 × 10⁷ 秒,按上文的假设,破解一个比特币需要的时间在 10⁵¹ 年这个数量级上。
实际上要花的时间比这多的多,比特币网络计算的是哈希值,现在比特币全网每秒可以做约 1.51 × 10¹⁸ 次哈希运算,这差不多相当于每秒做 1.91 × 10²² 次浮点运算,这远超过现有的超级计算机的算力(换句话说就是超级计算机没法对比特币网络进行攻击,能力差距太大,这和比特币网络解决的是一个专门问题,超级计算机要解决的是各种不同问题有关系)。
无论如何,我觉得超过 10⁴ 年(也就是一万年)的时间对我们的意义都不大了,甚至超过 10² 年(也就是一百年)的时间对我们都没有多大意义。想想,要花那么多年,只是破解一个钱包的私钥,还不知道这钱包里有多少比特币,这事情实在没有做的意义,就算是知道某个钱包里有很多比特币,投入产出也不可能合算。
这些年间,被盗的比特币都是从人类这边搞的,都是什么从持币人手里盗取了私钥之类的事情,直接攻击比特币网络尝试破解私钥的,闻所未闻,未来估计也不可能有了。
有些人担心量子计算机,首先,量子计算机现在还是早期,解决的都是特定问题,没有针对处理比特币网络的问题,其次,量子计算机的算力现在还是比较低的,远远威胁不到比特币网络,第三,就算量子计算机将来发展起来了,比特币网络也会一并演进的,到时肯定会有针对性的升级。总之,量子计算机并不是比特币的一个威胁。
以下为该文的参考文献;
How Hard Is It to Brute Force a Bitcoin Private Key?
https://news.bitcoin.com/how-hard-is-it-to-brute-force-a-bitcoin-private-key/
超级计算机 500 强
https://en.wikipedia.org/wiki/TOP500
PetaFLOPS and how it relates to Bitcoin
https://bitcointalk.org/index.php?topic=50720.0
Bitcoin Total Hash Rate(比特币全网算力)
https://www.blockchain.com/charts/hash-rate
Observable universe(可观测宇宙)
https://en.wikipedia.org/wiki/Observable_universe
㈣ 【猫说】打开比特币钱包的两把钥匙:私钥、公钥
如果不了解区块链,不知道公钥、私钥这些最基本的概念,拥有钱包对币圈新人来讲,就好像拿手指头去捅鳄鱼的脑袋,风险极高。此文谨献给币圈新朋友,帮助大家梳理比特币钱包的基本常识。
区块链观察网在 《区块链是什么》 一文中提到过,在区块链世界里,每个人都拥有两把独一无二的虚拟钥匙:公钥和私钥。
“公钥”,可以简单理解为银行卡,这是可以发给交易对方看的,银行卡号则相当于比特币转账中要用到的“地址”。
讲得专业一点,公钥就是一个65字节的字符串,多长呢?130个字母和数字堆在一起。公钥太长的话,第一交易起来忒麻烦,第二干嘛非得暴露公钥的真实内容呢,这就好像把自己的银行卡拿出来到处给人看。因此,我们现在看到的地址,就是经过摘要算法生成的、更短一点的公钥。
对方知道你的地址才能给你打钱;而且,任何人有了你的地址,都能在Blockchain.info官网查询这个钱包地址交易了多少次(No. Transactions),收过多少个比特币(Total Received),以及钱包里还剩下多少个比特币(Final Balance),如下图:
“私钥”,就像打死不能告诉别人的银行卡密码。它是一串256位的随机数。因为让非IT用户去记住这个满屏0 和 1的二进制私钥是特别不人道的事儿,所以对这一大串私钥进行了处理,最后私钥就以5 / K / L 开头的字符串呈现在我们面前。
公钥、私钥、地址之间的关系是:
1)私钥 → 公钥 → 地址
私钥生成唯一对应的公钥,公钥再生成唯一对应的地址;
2)私钥加密,公钥解密
也就是说,A使用私钥对交易信息进行加密(数字签名),B则使用A的公钥对这个数字签名进行解密。
其中,私钥是极度私密的东西。如果你把私钥发给别人,现在就开始写一部长篇小说吧,名字都帮你想好了,就叫《永别了,比特币》。
如果是李笑来老师(网传拥有数十万个BTC)这类币圈大佬,强烈建议使用冷钱包(离线钱包),分开储存;电视里的富豪在银行有自己的保险箱,有条件的话也可以参考。
当时,上述方法是安全系数最高的做法。但作为韭菜接班人,暂且假设我们最初只用闲置资金、持有少量的比特币,比如,小于5个。那么,动辄上千成本、操作复杂的冷钱包就有点杀鸡用牛刀了;因此,区块链观察网把选择范围限定在交易所和轻钱包2项:
在交易平台上买了(极少量)比特币,可以先不提出来,继续存在交易所。这种方式最适合币圈新手。在没有深入了解每种加密货币背后的故事之前,鲜嫩的我们总是充满了好奇,而放在交易所的比特币,可以直接进行币币交易,交易简单快捷,不用经数字钱包导来导去;另一方面,平台上币种齐全,可以满足我们的尝鲜心理,方便随时小试牛刀。
而且像火币、币安(已被墙)这些大型交易所,不仅安全等级比某些专为收割韭菜而生的小平台高很多,而且操作简单,很快就能上手,只需保管好自己的账号、密码就行了(再安全一级的话,开启谷歌二次验证),其他的就交给平台。
值得注意的是,存在交易所上的资产并不完全属于自己,更确切地说是借给平台的,我们在资产那一栏看到的数字,相当于平台向我们借钱而打的白条。此外,交易平台本身不是去中心化的,如果安全措施不到位,用户的账号密码有可能被黑客拿到。
轻钱包是相对于“全节点”钱包来说的。
全节点钱包,比如 Bitcoin-Core(核心钱包),运行时需要同步所有区块链数据,占用相当大内存空间(目前至少50GB以上),完全去中心化;
轻钱包虽然也依赖比特币网络上其他全节点,但其仅仅同步跟自己有关的交易数据,基本实现去中心化的同时,也提升了用户体验。
根据不同的设备类型,我们把轻钱包分为:
1)PC钱包:适用于电脑桌面操作系统(如Windows/MacOS/Linus);
2)手机钱包:适用于安卓、iOS智能手机,比如比太钱包(以太也有PC端);
3)网页钱包:通过浏览器访问,比如上文提过的blockchain网页版。
轻钱包操作比较简单,一般是免费获取。申请钱包的时候,系统会生成一个私钥。准备敲黑板!
1)不要截图、拍照存在手机里;
2)不要把私钥信息发给任何人;
3)最好手写(几份)抄下,藏在你觉得最安全的地方。
总之一句话,谁掌握了钱包的私钥,谁就拥有钱包的绝对控制权。私钥只要掌握在你的手里,比特币就绝不会丢。
最后多说几句,作为普通投资者,我们需要做的并不多:
1)走点心,不要把手机弄丢了,毕竟丢了对手机里的比特币钱包有风险;
2)不要手痒删掉设备上的钱包应用,除非你决定再也不用这个钱包了,否则后期很麻烦;
3)设置复杂的密码(原因见第1点),并用心去记牢,这是私钥弄丢以后留的一手。
对于记不住密码,又懒得科学备份私钥的朋友,咱还是把钱存在银行里吧。
㈤ 比特币如何防止篡改
比特币网络主要会通过以下两种技术保证用户签发的交易和历史上发生的交易不会被攻击者篡改:
非对称加密可以保证攻击者无法伪造账户所有者的签名;
共识算法可以保证网络中的历史交易不会被攻击者替换;
- 非对称加密算法3是目前广泛应用的加密技术,TLS 证书和电子签名等场景都使用了非对称的加密算法保证安全。非对称加密算法同时包含一个公钥(Public Key)和一个私钥(Secret Key),使用私钥加密的数据只能用公钥解密,而使用公钥解密的数据也只能用私钥解密。
- 1使用如下所示的代码可以计算在无限长的时间中,攻击者持有 51% 算力时,改写历史 0 ~ 9 个区块的概率9:
- #include
- #include
- double attackerSuccessProbability(double q, int z) {
- double p = 1.0 - q;
- double lambda = z * (q / p);
- double sum = 1.0;
- int i, k;
- for (k = 0; k <= z; k++) {
- double poisson = exp(-lambda);
- for (i = 1; i <= k; i++)
- poisson *= lambda / i;
- sum -= poisson * (1 - pow(q / p, z - k));
- }
- return sum;
- }
- int main() {
- for (int i = 0; i < 10; i++) {
- printf("z=%d, p=%f\n", i, attackerSuccessProbability(0.51, i));
- }
- return 0;
- }
- 通过上述的计算我们会发现,在无限长的时间中,占有全网算力的节点能够发起 51% 攻击修改历史的概率是 100%;但是在有限长的时间中,因为比特币中的算力是相对动态的,比特币网络的节点也在避免出现单节点占有 51% 以上算力的情况,所以想要篡改比特币的历史还是比较困难的,不过在一些小众的、算力没有保证的一些区块链网络中,51% 攻击还是极其常见的10。
- 防范 51% 攻击方法也很简单,在多数的区块链网络中,刚刚加入区块链网络中的交易都是未确认的,只要这些区块后面追加了数量足够的区块,区块中的交易才会被确认。比特币中的交易确认数就是 6 个,而比特币平均 10 分钟生成一个块,所以一次交易的确认时间大概为 60 分钟,这也是为了保证安全性不得不做出的牺牲。不过,这种增加确认数的做法也不能保证 100% 的安全,我们也只能在不影响用户体验的情况下,尽可能增加攻击者的成本。
- 研究比特币这样的区块链技术还是非常有趣的,作为一个分布式的数据库,它也会遇到分布式系统经常会遇到的问题,例如节点不可靠等问题;同时作为一个金融系统和账本,它也会面对更加复杂的交易确认和验证场景。比特币网络的设计非常有趣,它是技术和金融两个交叉领域结合后的产物,非常值得我们花时间研究背后的原理。
- 比特币并不能 100% 防止交易和数据的篡改,文中提到的两种技术都只能从一定概率上保证安全,而降低攻击者成功的可能性也是安全领域需要面对的永恒问题。我们可以换一个更严谨的方式阐述今天的问题 — 比特币使用了哪些技术来增加攻击者的成本、降低交易被篡改的概率:
比特币使用了非对称加密算法,保证攻击者在有限时间内无法伪造账户所有者的签名;
比特币使用了工作量证明的共识算法并引入了记账的激励,保证网络中的历史交易不会被攻击者快速替换;
- 通过上述的两种方式,比特币才能保证历史的交易不会被篡改和所有账户中资金的安全。
非对称加密
图 4 - 51% 攻击
总结
㈥ 比特币暴力破解真的存在吗
比特币暴力破解目前是不可能存在的。
经专家研究发现几乎不可能暴力破解比特币私钥,因为比特币采用的加密算法,是非常难破解的。
目前看来,量子计算似乎尚未做出必要的颠覆,以解决比特币的加密问题。
㈦ 比特币基础教学之:怎样保护你的私钥
私钥安全问题的重要性对比特币玩家来说不言而喻。对于比特币的重量级玩家或者比特币商家而言,如何保护好私钥更是需要仔细考虑和反复斟酌的。今天编者就和大家探讨一下如何保护比特币私钥的问题。对于bitcoin-qt客户端来说,比特币私钥一般储存在客户端的wallet.dat文件中。对于Blockchain这样的在线钱包用户来说,比特币私钥是储存在在线钱包的网络服务器上,用户也可以将私钥下载到本地。对于纸钱包的用户来说,私钥可以被打印出来。但是,怎样保护私钥的安全性呢?编者列出了几种方法供大家参考。
用对称加密的方法保管私钥 对称加密(Symmetric-key algorithm)是指加密和解密都用一个密钥。我们平时用到的加密方法一般都是对称加密,比如 winrar 中的加密,bitcoin-qt中对私钥文件的加密也是用的对称型加密算法。常用的对称加密算法有:AES、DES、RC4、RC5等等。对称加密需要用户设置相对比较复杂的密钥,以防止被暴力破解。Go to top方法一,用bitcoin-qt对私钥钱包进行加密。我们在命令模式下可以用encryptwallet命令来对钱包进行加密。命令模式的使用方法可以参见比特币基础教学之:怎样使用纸钱包私钥。这是私钥加密的最简易有效的方法。但是在使用walletpassphrase命令进行解密钱包时,密钥会被读入计算机内存中,所以存在攻击者获取密钥的可能性。加密命令: encryptwallet YOURPASSWORD解密钱包命令: walletpassphrase YOURPASSWORDTIMEOUT更改密码命令: walletpassphrasechange OLDPASSWORDNEWPASSWORDGo to top方法二,使用blockchain提供的AES加密。Blockchain为用户提供基于AES算法的私钥文件加密服务。用户可以将加密好的文件下载下来,并妥善保存。
Go to top方法三,用第三方软件Truecrypt对密钥文件加密,这也是编者比较推荐的方法。Truecrypt开源免费,软件成熟度很高,而且支持双因素认证和整个硬盘加密。另外,FBI人员在Truecrypt上面吃过亏,因此口碑很不错。Truecrypt的口碑FBI hackers fail to crack TrueCrypt The FBI has admitted defeat in attempts to break the open source encryption used to secure hard drives seized by Brazilian police ring a 2008 investigation.
The Bureau had been called in by the Brazilian authorities after the country’s own National Institute of Criminology (INC) had been unable to crack the passphrases used to secure the drives by suspect banker, Daniel Dantas.Brazilian reports state that two programs were used to encrypt the drives, one of which was the popular and widely-used free open source program TrueCrypt. Experts in both countries apparently spent months trying to discover the passphrases using a dictionary attack, a technique that involves trying out large numbers of possible character combinations until the correct sequence is found.
完整文章点击这里Truecrypt只支持对称加密算法。使用它的用户必须要将密钥牢记,如果你忘记密钥,那么没有人能够恢复你加密的文件。
Truecrypt官方网站Truecrypt使用文档 用非对称加密的方法保管私钥 非对称加密方法所采用公钥和私钥的形式来对文件进行加密。用户可以用公钥来对文件进行加密,用私钥对文件解密。常见的非对称加密算法有RSA、Elgamal、ECC等等。非对称加密的好处是密钥的复杂度一般很高,可以很有效的防止被暴力破解。缺点是有一定的使用门槛,不太适合普通级用户。Go to top 方法一、个人用户可以考虑使用RSA来进行加密。首先,可以创建公钥和私钥,点击这里生成密钥。将公钥私钥妥善保管后,便可以用公钥加密和私钥解密了,点击这里进行加密和解密。RSA公钥和私钥的产生过程RSA公钥和私钥的产生过程随意选择两个大的素数p和q,p不等于q,计算N=pq。根据欧拉函数,求得r= φ(N) = φ(p)φ(q) = (p-1)(q-1)选择一个小于r的整数e,求得e关于模r的模反元素,命名为d。(模反元素存在,当且仅当e与r互质)将p和q的记录销毁。(N,e)是公钥,(N,d)是私钥。Go to top方法二、比较成熟的非对称加密软件有我们可以采用PGP(Pretty Good Privacy)工具来对文件进行加密。PGP加密可以让每个公钥邦定到一个用户的所有信息。相比RSA来讲,PGP的功能更加完善可靠。但是随着PGP的升级,新的加密消息有可能不被旧的PGP系统解密,所以用户在使用PGP之前应该首先熟悉PGP的设置。PGP加密工具网上有很多,编者就不列举了。
wiki中关于PGP的介绍PGP在线加解密系统PGP命令FAQ 高级方法保管私钥 上述保管私钥的方式都很常见,有经验的攻击者依然可能得到用户的私钥文件。关于更加高级隐秘的私钥保管方式,参见以后的比特币高级教学内容。
㈧ 破解一个比特币钱包到底要花多长时间
这要看你破解人的水平如何,能力高的人可能也就几十分钟吧。