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/bitcoin-abe
Abe: block browser for Bitcoin and similar currencies
HMY626/btcd
An alternative full node bitcoin implementation written in Go (golang)
HMY626/epidemic-sentence-pair
天池 疫情相似句对判定大赛 线上第一名方案
HMY626/gcn
Implementation of Graph Convolutional Networks in TensorFlow
HMY626/GNN_Review
GNN综述阅读报告
HMY626/IPProxyTool
python ip proxy tool scrapy crawl. 抓取大量免费代理 ip,提取有效 ip 使用
HMY626/pytorch_geometric
Geometric Deep Learning Extension Library for PyTorch
HMY626/albert
ALBERT: A Lite BERT for Self-supervised Learning of Language Representations
HMY626/awesome-seu
😎天呐,这所学校真厉害
HMY626/blockchain-anomaly-detection
HMY626/Chinese-BERT-wwm
Pre-Training with Whole Word Masking for Chinese BERT(中文BERT-wwm系列模型)
HMY626/Chinese-ELECTRA
Pre-trained Chinese ELECTRA(中文ELECTRA预训练模型)
HMY626/CLUE
中文语言理解基准测评 Chinese Language Understanding Evaluation Benchmark: datasets, baselines, pre-trained models, corpus and leaderboard
HMY626/codeLib
储存经典代码
HMY626/EvolveGCN
Code for EvolveGCN: Evolving Graph Convolutional Networks for Dynamic Graphs
HMY626/FastBERT
The score code of FastBERT (ACL2020)
HMY626/ganbert
Enhancing the BERT training with Semi-supervised Generative Adversarial Networks
HMY626/GraphEmbedding
Implementation and experiments of graph embedding algorithms.
HMY626/hmy626.github.io
HMY626/intelligent_risk_control
智能风控:原理、算法与工程实践 代码
HMY626/MOSEI_UMONS
HMY626/PyQt
PyQt Examples(PyQt各种测试和例子) PyQt4 PyQt5
HMY626/python-fire
Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object.
HMY626/PyTorch-Tutorial-1
Build your neural network easy and fast
HMY626/research-aml-elliptic
HMY626/RSAlgorithms
Some algorithms about traditional and social recommendation.
HMY626/sgt
Sequence Graph Transform
HMY626/stellargraph
StellarGraph - Machine Learning on Graphs
HMY626/tianshou
An elegant, flexible, and superfast PyTorch deep Reinforcement Learning platform.
HMY626/vscode-drawio
This unofficial extension integrates Draw.io into VS Code.