{"blog_title":"\u306f\u307e\u3084\u3093\u306f\u307e\u3084\u3093\u306f\u307e\u3084\u3093","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fblog.hamayanhamayan.com%2Fentry%2F2025%2F07%2F06%2F185435\" title=\"AlpacaHack Round 12 (Crypto) Writeup - \u306f\u307e\u3084\u3093\u306f\u307e\u3084\u3093\u306f\u307e\u3084\u3093\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","blog_url":"https://blog.hamayanhamayan.com/","description":"RSARSARSARSARSARSA OTEC k0 k1 bytes(c0 ^ c1 for c0, c1 in zip(k0, k1)) \u30bd\u30eb\u30d0 RSARSARSARSARSARSA You don't have to say it again and again... \u554f\u984c\u306f\u7c21\u6f54\u3002 from math import gcd import os from Crypto.Util.number import getPrime, bytes_to_long e = 19 while True: p = getPrime(2048) q = getPrime(2048) if gcd((p - \u2026","url":"https://blog.hamayanhamayan.com/entry/2025/07/06/185435","height":"190","provider_name":"Hatena Blog","version":"1.0","title":"AlpacaHack Round 12 (Crypto) Writeup","categories":["Security"],"width":"100%","image_url":null,"type":"rich","published":"2025-07-06 18:54:35","author_url":"https://blog.hatena.ne.jp/hamayanhamayan/","author_name":"hamayanhamayan","provider_url":"https://hatena.blog"}