電子署名を行うために、ecdsaをインストール
$ pip3 install ecdsa
from ecdsa import SigningKey, BadSignatureError, SECP256k1 secret_key = SigningKey.generate(curve = SECP256k1) print("秘密鍵:" + secret_key.to_string().hex()) public_key = secret_key.verifying_key print("公開鍵:" + public_key.to_string().hex()) doc = "これは送信したい文章です。" signature = secret_key.sign(doc.encode('utf-8')) print("電子署名" + signature.hex()) try: public_key.verify(signature, doc.encode('utf-8')) print("文章は改竄されていません。") except BadSignatureError: print("文章が改竄されています")
SECP256k1は楕円曲線
電子署名は元の文章から作成されたか否かの判別を行う
秘密鍵:47c5c280197c691be3f80462b72d60b7b2915753f1a81a6eedbfbb2f01f55cae
公開鍵:02cfbf50fe5873ac6e5352e7524c4934e32f01281fc7d6112fed86cf58e72b09bb302f1f7d10d7c37d13eb7e62fd8bb1950b263c51ac76581f8b0a38d0d8853e
電子署名d17955d7f850edf05dde3e363a23dd0452420ec351dccd203f15479970a011c3dcb60b5629a33a7846727d9041e1b6d7be796b909b8ba803c490ace73a1c18e4
文章は改竄されていません。