タグ

ブックマーク / zenn.dev/herumi (2)

  • Xbyakライクなx64用静的ASM生成ツールs_xbyak

    初めに これはx64用JITアセンブラXbyakに慣れてしまい、JITでなく静的なアセンブリ言語(以下ASM)もXbyakライクに書きたいという人(つまり私)がPython上で似た開発体験を求めて作ったツールです。 s_xbyakの"s_"は静的(static)からつけました。 s_xbyakの特徴 Pythonで作られたASMコードジェネレータ gas (GNU Assembler), Netwide Assembler (NASM), Microsoft Macro Assemblerに対応 Win64 ABIとAMD64 (Linux)に(一部)対応 XbyakライクなDSL 背景 私はC++上でJITコードを書きたくてXbyakを作りました。するとJIT機能だけでなく、ASMC++の文法で記述できるのはとても便利なことが分かりました。既存のアセンブラの文法は制約が多かったり、擬似

    Xbyakライクなx64用静的ASM生成ツールs_xbyak
  • RSA署名を正しく理解する

    初めに 「署名とはメッセージのハッシュ値を秘密鍵で暗号化したものであり、検証は署名を公開鍵で復号してハッシュ値と等しいかを確認することである」という説明(×)をよく見かけます。 正しい署名の定義と実際のRSA署名がどのようなものであり、上記説明(×)がなぜよくないのかを理解しましょう。 署名の定義 署名の解説は署名の概要でも解説しましたが、再掲します。 署名(方式)は鍵生成(KeyGen)、署名(Sign)、検証(Verify)の3個のアルゴリズムからなります。 KeyGenではアリスが署名鍵sと検証鍵Sを生成します。署名鍵sは自分だけの秘密の値なので秘密鍵、検証鍵Sは他人に渡して使ってもらう鍵なので公開鍵ともいいます。 Signは署名したいデータmに対して署名鍵sを使って署名と呼ばれるデータσを作ります。 データmと署名σのペアを他人(ボブ)に渡します。 Verifyはボブが検証鍵Sを使

    RSA署名を正しく理解する
    igrep
    igrep 2022/12/17
    “署名はデータを秘匿するための暗号化とは独立な概念です。歴史的な背景に触れるのでなければ、RSA暗号化の関数の特殊性を用いた説明は避けるべき”
  • 1