BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//pretalx//pretalx.com//pyconjp2026//speaker//QEQQGC
BEGIN:VTIMEZONE
TZID:Asia/Tokyo
BEGIN:STANDARD
DTSTART:20250822T000000
TZNAME:JST
TZOFFSETFROM:+0900
TZOFFSETTO:+0900
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
SUMMARY:AI時代、配布するPythonコードをどう守るか: 難読
 化の実験と判断軸 - 山本隼輔
DTSTART;TZID=Asia/Tokyo:20260822T143000
DTEND;TZID=Asia/Tokyo:20260822T150000
DTSTAMP:20260818T075621Z
UID:pretalx-pyconjp2026-AQY9EF@pretalx.com
DESCRIPTION:実務で、Pythonで開発した業務用ツールを顧客
 環境やオンプレミス環境に配布する機会がありました
 。その際、配布先でコードを動かす必要がある一方で
 、業務ロジックや実装上の工夫をそのまま開示したく
 ない、という課題がありました。そこで選択肢になっ
 たのが、Pythonコードを読みにくくして解析コストを上
 げるPyArmorによる難読化です。\n\n難読化は暗号化とは異
 なり、「読める/動くが、理解しづらい」状態にする技
 術です。完全に秘密を守るものではありません。では
 、AIによるコード生成・解析が一般化し、リバースエン
 ジニアリングの容易化が議論される現在、コードを「
 読みにくくする」対策はどこまで有効なのでしょうか
 。\n\n本発表では、PyArmorで難読化したPythonコードを題材
 に、暗号化と難読化の違い、元コードを取り戻す「復
 元」と、同じ振る舞いを作る「再現」の違いを整理し
 ます。そのうえで、pyarmor gen により生成される __pyarmor_
 _ 呼び出しとランタイムバイナリの役割、実行時のPython
 オブジェクトやコードオブジェクトに残る関数名・変
 数名・定数・型注釈などの手がかりを観察します。さ
 らに、デフォルト設定と追加の保護設定で残る情報が
 どう変わるのか、それらをAIに与えた場合に処理内容を
 どこまで推測・再現できるのかを検証します。\n\n検証
 結果をもとに、難読化に任せてよい範囲、追加の保護
 を検討すべき情報、サーバー側に寄せるべき情報を整
 理します。難読化済みコードであっても、機密性の高
 い文字列や秘密情報を埋め込んでよいわけではありま
 せん。Pythonコードを外部配布する開発者に向けて、AI時
 代に難読化を使う際の現実的な判断軸を共有します。
LOCATION:Phoenix Hall
URL:https://pretalx.com/pyconjp2026/talk/AQY9EF/
END:VEVENT
END:VCALENDAR
