Pinned Repositories
aes
A pure Python implementation of AES
api-v1-client-python
Blockchain Bitcoin Developer APIs - Python
awesome-gpt3
awesome-graph-explainability-papers
Papers about explainability of GNNs
bert_language_understanding
Pre-training of Deep Bidirectional Transformers for Language Understanding: pre-train TextCNN
bitcoin-abe
Abe: block browser for Bitcoin and similar currencies
bitcoinbook
Mastering Bitcoin 2nd Edition - Programming the Open Blockchain
CryptoChallenge
密码算法和密码破译挑战题
DSA
MD4-Collision
MD4 Collisions MD4 is a 128-bit cryptographic hash function, meaning it should take a work factor of roughly 2^64 to find collisions. It turns out we can do much better. The paper "Cryptanalysis of the Hash Functions MD4 and RIPEMD" by Wang et al details a cryptanalytic attack that lets us find collisions in 2^8 or less. Given a message block M, Wang outlines a strategy for finding a sister message block M', differing only in a few bits, that will collide with it. Just so long as a short set of conditions holds true for M. What sort of conditions? Simple bitwise equalities within the intermediate hash function state, e.g. a[1][6] = b[0][6]. This should be read as: "the sixth bit (zero-indexed) of a[1] (i.e. the first update to 'a') should equal the sixth bit of b[0] (i.e. the initial value of 'b')". It turns out that a lot of these conditions are trivial to enforce. To see why, take a look at the first (of three) rounds in the MD4 compression function. In this round, we iterate over each word in the message block sequentially and mix it into the state. So we can make sure all our first-round conditions hold by doing this: # calculate the new value for a[1] in the normal fashion a[1] = (a[0] + f(b[0], c[0], d[0]) + m[0]).lrot(3) # correct the erroneous bit a[1] ^= ((a[1][6] ^ b[0][6]) << 6) # use algebra to correct the first message block m[0] = a[1].rrot(3) - a[0] - f(b[0], c[0], d[0]) Simply ensuring all the first round conditions puts us well within the range to generate collisions, but we can do better by correcting some additional conditions in the second round. This is a bit trickier, as we need to take care not to stomp on any of the first-round conditions. Once you've adequately massaged M, you can simply generate M' by flipping a few bits and test for a collision. A collision is not guaranteed as we didn't ensure every condition. But hopefully we got enough that we can find a suitable (M, M') pair without too much effort. Implement Wang's attack.
HMY626's Repositories
HMY626/aes
A pure Python implementation of AES
HMY626/bitcoinbook
Mastering Bitcoin 2nd Edition - Programming the Open Blockchain
HMY626/btcd
An alternative full node bitcoin implementation written in Go (golang)
HMY626/chainstate
Bitcoin & altcoins chainstate (old & new formats) parser
HMY626/DynamicGEM
HMY626/edge2vec
Learning node representation using edge semantics
HMY626/electrum
Electrum Bitcoin Wallet
HMY626/faceswap
Deepfakes Software For All
HMY626/GEM
HMY626/GNN_Review
GNN综述阅读报告
HMY626/IPProxyTool
python ip proxy tool scrapy crawl. 抓取大量免费代理 ip,提取有效 ip 使用
HMY626/lihang-code
《统计学习方法》的代码实现
HMY626/neural_collaborative_filtering
Neural Collaborative Filtering
HMY626/pycoin
Python-based Bitcoin and alt-coin utility library.
HMY626/python-bitcoinlib
Python3 library providing an easy interface to the Bitcoin data structures and protocol.
HMY626/pytorch-tutorial
PyTorch Tutorial for Deep Learning Researchers
HMY626/setup-ipsec-vpn
Scripts to build your own IPsec VPN server, with IPsec/L2TP and Cisco IPsec on Ubuntu, Debian and CentOS
HMY626/shedskin
Shed Skin is a Python to C++ compiler. Read the introduction below to learn about the restrictions.
HMY626/v2ray-core
A platform for building proxies to bypass network restrictions.
HMY626/YoutubeGraph-Dyn
Dynamic Youtube graphs
HMY626/anomaly-detection-resources
Anomaly detection related books, papers, videos, and toolboxes
HMY626/Awesome-PyTorch-Chinese
【干货】史上最全的PyTorch学习资源汇总
HMY626/awesome-seu
😎天呐,这所学校真厉害
HMY626/bitcoin
Bitcoin Core integration/staging tree
HMY626/blockchain-anomaly-detection
HMY626/H5MusicPlayer
模拟网易云的纯CSS、JS的H5音乐播放器
HMY626/PyQt5-Chinese-tutorial
PyQt5中文教程
HMY626/Python
All Algorithms implemented in Python
HMY626/python-bitcoin-blockchain-parser
A Python 3 Bitcoin blockchain parser
HMY626/Qt-AES
Native Qt AES encryption class