CTF暗号学チャレンジ:RSA攻撃と古典暗号の解析

RDSA派生アルゴリズムと攻撃手法 連続素数を利用したRSA (MRCTF2020 babyRSA) この課題では、RSAの鍵生成に連続する素数と特殊な演算が使用されています。まず、公開情報から17個の連続した小さな素数を復元し、それらの積からなる $n$ を算出する必要があります。与えられた $p^{65537} \pmod n$ という値を利用し、離散対数問題的なアプローチあるいは既知の構造を利用 ...

7月10日 20:25 投稿

PythonでPDFをWord文書に変換する実践ガイド

PDFからWordへの変換は、業務効率化のための代表的な自動化タスクです。しかし、PDFの種類によって最適なアプローチが異なります。本稿では、「テキスト埋込型PDF」と「スキャン画像型PDF」の2種類に対応したPython実装を、技術的背景と実装の意図を含めて解説します。 PDFの二つの性質 PDFは見た目が同じでも内部構造が大きく異なります。 テキスト埋込型PDF:Wordや ...

7月10日 19:47 投稿

Pythonプログラミング学習のためのゲーム開発例

教育向けミニゲームの実装パターン Pythonを活用したプログラミング学習には、実践的なゲーム開発が効果的です。以下に2つの教育用ミニゲームの実装例を紹介します。Pygameライブラリを用いたコードは、基本的なゲームロジックの理解に適しています。 対戦型シューティングゲーム 2人同時プレイ可能な宇宙戦闘シミュレーションです。プレイヤーは自機を操作し、隕石を撃墜 ...

7月10日 18:39 投稿

Pythonの特殊メソッド実装パターン

Pythonの特殊メソッド(ダンダーメソッド)は、言語機能とオブジェクトの相互作用を可能にするコアメカニズムです。これらのメソッドは__で始まり__で終わる名前を持ち、演算子のオーバーロードや組み込み関数の動作をカスタマイズします。 基本的な特殊メソッド実装例 オブジェクト初期化 <code>class ユーザー: def __init__(self, 名前, 年齢): sel ...

7月10日 17:43 投稿

マルチプロセスとコルーチン

目次 1.イテレータ 2.ジェネレータ 3.コルーチン-yield 4.コルーチン-greenlet 5.コルーチン-gevent 6.プロセス、スレッド、コルーチンの違い 7.ケーススタディ:並列ダウンローダー 一.イテレータ イテレーションはコレクションの要素にアクセスする一つの方法です。イテレータは、イテレーションの位置を記憶できるオブジェクトです。イテレータオブジェクトはコレクショ ...

7月10日 00:13 投稿

Pythonのモジュールインポートの仕組みとよくある問題

モジュールインポートのルール Pythonがモジュールをインポートする際、厳格なルールに従ってファイルを検索します。指定されたディレクトリ内のPythonファイル(.py)を探します。 モジュールの検索場所 Pythonは通常、以下の3つの主要な場所を順番に検索します。 優先的に、現在実行中のスクリプトと同じディレクトリ(この部分で問題が発生しやすい) Python ...

7月9日 23:11 投稿

Pythonのloggingモジュールの詳細な使い方

loggingモジュールは、アプリケーションの動作状況を記録し、デバッグや問題解析に役立てるための標準ライブラリです。主な利用方法には以下の2つがあります: logging.basicConfig() logging.getLogger() 基本的なログ出力 import logging logging.debug("デバッグメッセージ") logging.info("情報メッセージ") logging.warning("警告メッセージ") logging.error( ...

7月9日 21:46 投稿

DeepSeek APIを活用したSQL最適化ツールの構築

DeepSeek APIキーの取得手順 1. DeepSeek公式サイトへのアクセス 以下のURLから公式サイトにアクセスします: https://www.deepseek.com/ 2. APIキーの作成 生成されたAPIキーは以下の通りです: sk-dbd3e5790bab4e5ea244f2a535af7665 3. 本人確認とチャージ API呼び出しには本人確認手続きとチャージが必要です。ここでは10元をチャージしました。 4. 環境変数の設 ...

7月9日 18:44 投稿

DynamoDBとの基本的なインタラクションとPythonによるバックアップ・リストア

以下の内容は、Pythonのboto3ライブラリを使用してDynamoDBとやり取りし、テーブルをバックアップおよびリストアする方法について説明します。 まず、boto3をインストールする必要があります。次のコマンドを実行してください: sudo pip install boto3 boto3はDynamoDBと通信するための多くのメソッドを提供しており、主な操作として次のようなものがあります: batch ...

7月9日 16:53 投稿

Python開発環境のセットアップガイド:Anacondaと仮想環境管理

Anaconda #パッケージ管理システム https://www.anaconda.com/products/individual#Downloads Jupyter Notebook #インタラクティブなWeb環境 conda install jupyter notebook conda install nb_conda #condaの仮想環境をNotebookで利用するためのパッケージ matplotlib #グラフ描画ライブラリ conda install matplotlib pandas #データ操作ライブラリ conda ins ...

7月9日 16:45 投稿