タグ

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

  • x64用主要アセンブラの構文差異クイズ

    初めに これはx64用JITアセンブラXbyakや静的アセンブラs_xbyakを開発するときに、各種アセンブラの差異についてはまったり調べたりしたことをまとめるにあたり、せっかくなのでクイズ形式にしたものです。 中級以降は主にAVX-512に関するかなりマニアックで瑣末な知識です。何を聞かれてるのか分からなくても殆どの場合、何の問題もありません。 前置き ここで扱うアセンブラは GAS (GNU Assembler) 2.38 Netwide Assembler (NASM) 2.16 Microsoft Macro Assembler 14.35.32217.1 です。MASMWindows専用、GASは主にLinuxで扱われますが、Windowsでもmingwなどで使えます。NASMはwin64, elf64, macho64 (Intel macOS)用のオブジェクトコードを生成で

    x64用主要アセンブラの構文差異クイズ
    s_ryuuki
    s_ryuuki 2023/05/18
  • 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署名を正しく理解する
  • 1