{"id":370,"date":"2018-04-24T22:12:20","date_gmt":"2018-04-24T13:12:20","guid":{"rendered":"http:\/\/tamatoyaku.com\/b\/?p=370"},"modified":"2018-04-24T22:12:20","modified_gmt":"2018-04-24T13:12:20","slug":"370","status":"publish","type":"post","link":"https:\/\/p-0.me\/b\/p\/370\/","title":{"rendered":"Montgomery curves\u3092\u7528\u3044\u305fECDSA\u3067\u306e\u5c04\u5f71\u5ea7\u6a19\u306e\u6271\u3044"},"content":{"rendered":"<p>[mathjax]y\u5ea7\u6a19\u304c\u5fc5\u8981\u3063\u3066\u8a71\uff0e<br \/>\n<!--more--><br \/>\n\u691c\u8a3c\u8005\u304c\u77e5\u308b\u60c5\u5831\u306e\u306a\u304b\u306b\uff0c\u30d9\u30fc\u30b9\u30dd\u30a4\u30f3\u30c8\\(P\\)\u3068\u516c\u958b\u9375\\(P_B\\)\u304c\u3042\u308b\uff0e\u4eca\u56de\u306f\u3053\u306e2\u3064\u306e\u70b9\u3092\u516c\u958b\u3059\u308b\u969b\u306b\uff0c\u5c04\u5f71\u5ea7\u6a19\\((X:Z)\\)\u304c\u4f7f\u7528\u53ef\u80fd\u304b\u8003\u3048\u3066\u307f\u308b\uff0e<br \/>\n\u7f72\u540d\u306e\u691c\u8a3c\u306b\u306f\\(V=dH(m)P+duP_B\\)\u3092\u884c\u3046\u5fc5\u8981\u304c\u3042\u308b\uff0e\u3064\u307e\u308a\uff0c\u70b9\u306e\u52a0\u7b97\u304c\u5fc5\u8981\u3068\u306a\u308b\uff0e\u4ee5\u4e0b\u306b\u5c04\u5f71\u5ea7\u6a19\u3067\u306e\u70b9\u306e\u52a0\u7b97\u3092\u793a\u3059\uff0e<br \/>\n$$ X_{m+n}=Z_{m-n}((X_m-Z_m)(X_n+Z_n)+(X_m+Z_m)(X_n-Z_n))^2 $$<br \/>\n$$ Z_{m+n}=X_{m-n}((X_m-Z_m)(X_n+Z_n)-(X_m+Z_m)(X_n-Z_n))^2 $$<br \/>\n\u4e0a\u8a18\u306e\u5f0f\u3067\u306f\u3042\u308b\u70b9\u3092\u57fa\u6e96\u3068\u3057\u3066\\(n\\)\u500d\u3057\u305f\u70b9\u3092\\((X_n,Z_n)\\)\u3068\u3057\u3066\u8868\u73fe\u3057\u3066\u3044\u308b\uff0e\u3053\u3053\u3067\uff0c\\(P_B=d_BP\\)\u306a\u306e\u3067\\(V=dH(m)P+dud_BP\\)\u3068\u306a\u308b\uff0e\u3064\u307e\u308a\uff0c\u4e0a\u8a18\u306e\u5f0f\u3067\u306f\\(m=dH(m),n=dud_B\\)\u3068\u306a\u308b\uff0e\u305f\u3060\u3057\uff0c\u3053\u306e\u3068\u304d\u306b\\(X_{m-n},Z_{m-n}\\)\uff0c\u3064\u307e\u308a\\(dH(m)P-dud_BP\\)\u304c\u5fc5\u8981\u3068\u306a\u308b\uff0e\u3057\u304b\u3057\\(dH(m)P-dud_BP\\)\u306f\u4e0d\u660e\u306a\u305f\u3081\u8a08\u7b97\u3067\u304d\u306a\u3044\uff0e<br \/>\n\u305d\u306e\u305f\u3081\uff0c\u52a0\u7b97\u306b\u3064\u3044\u3066\u306f\u30a2\u30d5\u30a3\u30f3\u5ea7\u6a19\u3067\u884c\u3046\u5fc5\u8981\u304c\u3042\u308b\uff0e\u30a2\u30d5\u30a3\u30f3\u5ea7\u6a19\u3067\u306e\u52a0\u7b97\u306e\u5f0f\u3092\u4ee5\u4e0b\u306b\u793a\u3059\uff0e<br \/>\n$$x_3=\\frac{B(y_2-y_1)^2}{(x_2-x_1)^2}-A-x_1-x_2$$<br \/>\n$$y_3=\\frac{(2x_1+x_2+A)(y_2-y_1)}{x_2-x_1}-\\frac{B(y_2-y_1)^3}{(x_2-x_1)^3}-y_1$$<br \/>\n\u52a0\u7b97\u306b\u306f\u30a2\u30d5\u30a3\u30f3\u5ea7\u6a19\u3067y\u5ea7\u6a19\u3092\u5fa9\u5143\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\uff0ey\u5ea7\u6a19\u306e\u5fa9\u5143\u306b\u306f\u4ee5\u4e0b\u306e\u5f0f\u3092\u7528\u3044\u308b\uff0e<br \/>\n$$y_n = \\frac{(x_1 x_n +1)(x_1 + x_n +2A)-2A-(x_1-x_n)^2x_{n+1}}{2By_1}$$<br \/>\n\u4e0a\u8a18\u306e\u5f0f\u3067\u306f\\(x_1,y_1,x_n,x_{n+1}\\)\u304c\u5fc5\u8981\u3068\u306a\u308b\uff0e\\(x_1,y_1\\)\u306f\u30b9\u30ab\u30e9\u30fc\u500d\u3059\u308b\u524d\u306e\u30a2\u30d5\u30a3\u30f3\u5ea7\u6a19\u3067\u306e\u70b9\u3067\u3042\u308b\uff0e\u3064\u307e\u308a\\(P,P_B\\)\u304c\u5c04\u5f71\u5ea7\u6a19\u3067\u516c\u958b\u3055\u308c\u305f\u5834\u5408\uff0c\\(P\\)\u306ey\u5ea7\u6a19\u304c\u5fc5\u8981\u3068\u306a\u308b(x\u5ea7\u6a19\u306f\\(X,Z)\\)\u304b\u3089\u8a08\u7b97\u53ef\u80fd)\uff0e\u307e\u305f\uff0c\u305d\u306e\u4e0a\u3067\\(x_{n+1}\\)\u304c\u5fc5\u8981\u3068\u306a\u308b\uff0e\\(x_{n+1}\\)\u304c\u516c\u958b\u3055\u308c\u306a\u3044\u5834\u5408\uff0c\u691c\u8a3c\u8005\u304c\u81ea\u3089\\(P_B+P\\)\u3092\u8a08\u7b97\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\uff0c\u624b\u9593\u3067\u3042\u308b\uff0e(\u306a\u304a\uff0c\u7f72\u540d\u8005\u306e\u5834\u5408\u306fMontgomery ladder\u306e\u7d50\u679c\u3068\u3057\u3066\\(P_n,P_{n+1}\\)\u304c\u624b\u306b\u5165\u308b\u305f\u3081\uff0c\u624b\u9593\u306f\u6e1b\u308b\uff0e)<br \/>\n\u4ee5\u4e0a\u306e\u3053\u3068\u304b\u3089\uff0c\u30d9\u30fc\u30b9\u30dd\u30a4\u30f3\u30c8\\(P\\)\u3068\u516c\u958b\u9375\\(P_B\\)\u306b\u3064\u3044\u3066\u306f\u30a2\u30d5\u30a3\u30f3\u5ea7\u6a19\u3067\u306e\u516c\u958b\u304c\u671b\u307e\u3057\u3044\u3068\u8003\u3048\u308b\uff0e<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[mathjax]y\u5ea7\u6a19\u304c\u5fc5\u8981\u3063\u3066\u8a71\uff0e<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-370","post","type-post","status-publish","format-standard","hentry","category-4"],"_links":{"self":[{"href":"https:\/\/p-0.me\/b\/wp-json\/wp\/v2\/posts\/370","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/p-0.me\/b\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/p-0.me\/b\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/p-0.me\/b\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/p-0.me\/b\/wp-json\/wp\/v2\/comments?post=370"}],"version-history":[{"count":0,"href":"https:\/\/p-0.me\/b\/wp-json\/wp\/v2\/posts\/370\/revisions"}],"wp:attachment":[{"href":"https:\/\/p-0.me\/b\/wp-json\/wp\/v2\/media?parent=370"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/p-0.me\/b\/wp-json\/wp\/v2\/categories?post=370"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/p-0.me\/b\/wp-json\/wp\/v2\/tags?post=370"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}