<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
		<id>http://75.2.66.110/mediawiki/index.php?action=history&amp;feed=atom&amp;title=%E5%88%A9%E7%94%A8%E8%80%85%3AMeauk%2F%E6%9A%97%E5%8F%B720221225</id>
		<title>利用者:Meauk/暗号20221225 - 変更履歴</title>
		<link rel="self" type="application/atom+xml" href="http://75.2.66.110/mediawiki/index.php?action=history&amp;feed=atom&amp;title=%E5%88%A9%E7%94%A8%E8%80%85%3AMeauk%2F%E6%9A%97%E5%8F%B720221225"/>
		<link rel="alternate" type="text/html" href="http://75.2.66.110/mediawiki/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Meauk/%E6%9A%97%E5%8F%B720221225&amp;action=history"/>
		<updated>2026-04-09T22:14:11Z</updated>
		<subtitle>このウィキのこのページに関する変更履歴</subtitle>
		<generator>MediaWiki 1.25.1</generator>

	<entry>
		<id>http://75.2.66.110/mediawiki/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Meauk/%E6%9A%97%E5%8F%B720221225&amp;diff=403326&amp;oldid=prev</id>
		<title>Meauk: 加筆</title>
		<link rel="alternate" type="text/html" href="http://75.2.66.110/mediawiki/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Meauk/%E6%9A%97%E5%8F%B720221225&amp;diff=403326&amp;oldid=prev"/>
				<updated>2022-12-26T13:34:33Z</updated>
		
		<summary type="html">&lt;p&gt;加筆&lt;/p&gt;
&lt;a href=&quot;http://75.2.66.110/mediawiki/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Meauk/%E6%9A%97%E5%8F%B720221225&amp;amp;diff=403326&amp;amp;oldid=403325&quot;&gt;差分を表示&lt;/a&gt;</summary>
		<author><name>Meauk</name></author>	</entry>

	<entry>
		<id>http://75.2.66.110/mediawiki/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Meauk/%E6%9A%97%E5%8F%B720221225&amp;diff=403325&amp;oldid=prev</id>
		<title>Meauk: 加筆等</title>
		<link rel="alternate" type="text/html" href="http://75.2.66.110/mediawiki/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Meauk/%E6%9A%97%E5%8F%B720221225&amp;diff=403325&amp;oldid=prev"/>
				<updated>2022-12-26T11:39:56Z</updated>
		
		<summary type="html">&lt;p&gt;加筆等&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;←前の版&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;2022年12月26日 (月) 11:39時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;L3&quot; &gt;3行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;3行目:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 暗号の構成 ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 暗号の構成 ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== 鍵生成 by Alice ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== 鍵生成 by Alice ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# 同じ桁数だが互いに異なる2つの素数 '''p''' と '''q''' をそれぞれ選択。&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;（コメントアウト中）&amp;lt;!--&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# '''n''' &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;= pq &lt;/del&gt;を計算。&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# 同じ桁数だが互いに異なる2つの素数 &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;/ins&gt;'''p'''&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/span&amp;gt; &lt;/ins&gt;と &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;/ins&gt;'''q'''&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/span&amp;gt; &lt;/ins&gt;をそれぞれ選択。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# p &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;を法とする原始根として &lt;/del&gt;'''g''' を設定。&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;/ins&gt;'''n &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;= pq&lt;/ins&gt;'''&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/span&amp;gt; &lt;/ins&gt;を計算。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# {(g&amp;lt;sup&amp;gt;p - 1&amp;lt;/sup&amp;gt; mod p&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;) - 1} / p に等しい値を仮に ''a'' と置くとき、'&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;'ad&lt;/del&gt;'' ≡ 1 (mod p) となるような '''d''' を計算。&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;法 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''&lt;/ins&gt;p&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''&amp;lt;/span&amp;gt; における原始根として &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;/ins&gt;'''g'''&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/span&amp;gt; &lt;/ins&gt;を設定。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''&lt;/ins&gt;{(g&amp;lt;sup &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;style=&amp;quot;font-size: 80%;&amp;quot;&lt;/ins&gt;&amp;gt;p - 1&amp;lt;/sup&amp;gt; mod p&amp;lt;sup &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;style=&amp;quot;font-size: 80%;&amp;quot;&lt;/ins&gt;&amp;gt;2&amp;lt;/sup&amp;gt;) - 1} / p&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''&amp;lt;/span&amp;gt; &lt;/ins&gt;に等しい値を仮に &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'&lt;/ins&gt;''a''&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'&amp;lt;/span&amp;gt; &lt;/ins&gt;と置くとき、&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;/ins&gt;'''&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ad &lt;/ins&gt;≡ 1 (mod p)&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''&amp;lt;/span&amp;gt; &lt;/ins&gt;となるような &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;/ins&gt;'''d'''&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/span&amp;gt; &lt;/ins&gt;を計算。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# ''(n, g)'' の組を'''公開鍵'''に、''(p, q, d)'' の組を'''秘密鍵'''に設定。ただし、q は直接的には不使用。&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# ''(n, g)'' の組を'''公開鍵'''に、''(p, q, d)'' の組を'''秘密鍵'''に設定。ただし、q は直接的には不使用。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# 公開鍵 ''(n, g)'' をボブ宛に送信。&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# 公開鍵 ''(n, g)'' をボブ宛に送信。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;--&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== 暗号化 by Bob ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== 暗号化 by Bob ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# n&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; 未満の正整数 '''r''' を無作為に選択。&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# n&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; 未満の正整数 '''r''' を無作為に選択。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;L16&quot; &gt;16行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;18行目:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# '''D''' = {(C&amp;lt;sup&amp;gt;p - 1&amp;lt;/sup&amp;gt; mod p&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;) - 1} / p を計算。&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# '''D''' = {(C&amp;lt;sup&amp;gt;p - 1&amp;lt;/sup&amp;gt; mod p&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;) - 1} / p を計算。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Dd = m (mod p) により、平文 ''m'' を入手。&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Dd = m (mod p) により、平文 ''m'' を入手。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== 成立の証拠 ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=== 値 d の正体 ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''a'''&amp;lt;/span&amp;gt; が &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''{(g&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;p - 1&amp;lt;/sup&amp;gt; mod p&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;2&amp;lt;/sup&amp;gt;) - 1} / p'''&amp;lt;/span&amp;gt; に等しいということは、&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''g&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;p - 1&amp;lt;/sup&amp;gt; mod p&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;2&amp;lt;/sup&amp;gt;'''&amp;lt;/span&amp;gt; が &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''ap + 1'''&amp;lt;/span&amp;gt; に等しいことを意味する。これには次の2点が関わる。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''g'''&amp;lt;/span&amp;gt; と &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''p'''&amp;lt;/span&amp;gt; が互いに素（最大公約数が1）である時、フェルマーの小定理によれば &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''g&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;p - 1&amp;lt;/sup&amp;gt; ≡ 1 (mod p)'''&amp;lt;/span&amp;gt; が成立するということ。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# 任意の非負整数 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''N&amp;lt;sub style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;1&amp;lt;/sub&amp;gt;'''&amp;lt;/span&amp;gt; を考える時、&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''N&amp;lt;sub style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;1&amp;lt;/sub&amp;gt; mod p&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;2&amp;lt;/sup&amp;gt;'''&amp;lt;/span&amp;gt; において &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''p&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;2&amp;lt;/sup&amp;gt;'''&amp;lt;/span&amp;gt; を含む全ての項は &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''0'''&amp;lt;/span&amp;gt; になるので、その結果は「&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''p&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;1&amp;lt;/sup&amp;gt;'''&amp;lt;/span&amp;gt; の項」よりも大きいことはないということ。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;したがって、&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''a'''&amp;lt;/span&amp;gt; とは「&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''g&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;p - 1&amp;lt;/sup&amp;gt;'''&amp;lt;/span&amp;gt; を &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''p&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;2&amp;lt;/sup&amp;gt;'''&amp;lt;/span&amp;gt; で割った時の &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''p&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;1&amp;lt;/sup&amp;gt;'''&amp;lt;/span&amp;gt; の項の係数」であると述べることができる。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;その上で、&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''d'''&amp;lt;/span&amp;gt; が &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''ad ≡ 1 (mod p)'''&amp;lt;/span&amp;gt; によって求められるというので、この &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''d'''&amp;lt;/span&amp;gt; は「法 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''p'''&amp;lt;/span&amp;gt; における &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''a'''&amp;lt;/span&amp;gt; の逆元」に相当することになる。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=== 値 D の正体 ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;初めに &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''C&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;p - 1&amp;lt;/sup&amp;gt; mod p&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;2&amp;lt;/sup&amp;gt;'''&amp;lt;/span&amp;gt; について考える。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;そもそも暗号文は &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''C ≡ g&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;m + nr&amp;lt;/sup&amp;gt; (mod n&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;2&amp;lt;/sup&amp;gt;)'''&amp;lt;/span&amp;gt; によって求められるが、これは言い換えると &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''C ≡ g&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;m&amp;lt;/sup&amp;gt; × g&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;pqr&amp;lt;/sup&amp;gt; (mod p&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;2&amp;lt;/sup&amp;gt;q&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;2&amp;lt;/sup&amp;gt;)'''&amp;lt;/span&amp;gt; である。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;この時、次の3点に注意する。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# 任意の非負整数 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''N&amp;lt;sub style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;2&amp;lt;/sub&amp;gt;'''&amp;lt;/span&amp;gt; を用いて &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''(N&amp;lt;sub style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;2&amp;lt;/sub&amp;gt; mod p&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;2&amp;lt;/sup&amp;gt;q&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;2&amp;lt;/sup&amp;gt;) mod p&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;2&amp;lt;/sup&amp;gt;'''&amp;lt;/span&amp;gt; を計算することを考える時、それは初めから&amp;#160; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''N&amp;lt;sub style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;2&amp;lt;/sub&amp;gt;&amp;#160; mod p&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;2&amp;lt;/sup&amp;gt;'''&amp;lt;/span&amp;gt; を計算することと同じである。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# 任意の3つの非負整数 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''x'''&amp;lt;/span&amp;gt;、&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''y'''&amp;lt;/span&amp;gt;、&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''z'''&amp;lt;/span&amp;gt; を考える時、任意の法において少なくとも次の2つが成り立つ。なお、その2つの間には直接的な関連性はない。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''(xy)&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;z&amp;lt;/sup&amp;gt; ≡ x&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;z&amp;lt;/sup&amp;gt;y&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;z&amp;lt;/sup&amp;gt;'''&amp;lt;/span&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''x&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;yz&amp;lt;/sup&amp;gt; ≡ (x&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;y&amp;lt;/sup&amp;gt;)&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;z&amp;lt;/sup&amp;gt; ≡ (x&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;z&amp;lt;/sup&amp;gt;)&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;y&amp;lt;/sup&amp;gt;'''&amp;lt;/span&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# 任意の非負整数 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''N&amp;lt;sub style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;3&amp;lt;/sub&amp;gt;'''&amp;lt;/span&amp;gt; を用いて &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''N&amp;lt;sub style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;3&amp;lt;/sub&amp;gt;&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;p(p - 1)&amp;lt;/sup&amp;gt; mod p&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;2&amp;lt;/sup&amp;gt;'''&amp;lt;/span&amp;gt; を計算することを考えると、&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''p&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;2&amp;lt;/sup&amp;gt;'''&amp;lt;/span&amp;gt; に対応するカーマイケル数が &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''p(p - 1)'''&amp;lt;/span&amp;gt; であることとカーマイケルの定理から、その結果は常に &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''1'''&amp;lt;/span&amp;gt; となる。つまりその部分 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''p(p - 1)'''&amp;lt;/span&amp;gt; は、法 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''p&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;2&amp;lt;/sup&amp;gt;'''&amp;lt;/span&amp;gt; において指数法則的に &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''0'''&amp;lt;/span&amp;gt; であることを意味している。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;この時点で、&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''C&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;p - 1&amp;lt;/sup&amp;gt; mod p&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;/span&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''≡ (g&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;m&amp;lt;/sup&amp;gt; × g&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;pqr&amp;lt;/sup&amp;gt;)&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;p - 1&amp;lt;/sup&amp;gt; mod p&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;2&amp;lt;/sup&amp;gt;'''&amp;lt;/span&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''≡ g&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;m(p - 1)&amp;lt;/sup&amp;gt; × g&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;p(p - 1)qr&amp;lt;/sup&amp;gt; mod p&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;2&amp;lt;/sup&amp;gt;'''&amp;lt;/span&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''≡ (g&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;m&amp;lt;/sup&amp;gt;)&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;p - 1&amp;lt;/sup&amp;gt; × 1 mod p&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;2&amp;lt;/sup&amp;gt;'''&amp;lt;/span&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:: &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''≡ (g&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;p - 1&amp;lt;/sup&amp;gt;)&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;m&amp;lt;/sup&amp;gt; mod p&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;2&amp;lt;/sup&amp;gt;'''&amp;lt;/span&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;と述べられる。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ところで、節「[[#値 d の正体|値 d の正体]]」で既に出てきた次の2つを思い出したい。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''g&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;p - 1&amp;lt;/sup&amp;gt; mod p&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;2&amp;lt;/sup&amp;gt;'''&amp;lt;/span&amp;gt; が &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''ap + 1'''&amp;lt;/span&amp;gt; に等しいということ。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# 任意の非負整数 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''N&amp;lt;sub style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;1&amp;lt;/sub&amp;gt;'''&amp;lt;/span&amp;gt; を考える時、&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''N&amp;lt;sub style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;1&amp;lt;/sub&amp;gt; mod p&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;2&amp;lt;/sup&amp;gt;'''&amp;lt;/span&amp;gt; において &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''p&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;2&amp;lt;/sup&amp;gt;'''&amp;lt;/span&amp;gt; を含む全ての項は &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''0'''&amp;lt;/span&amp;gt; になるので、その結果は「&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''p&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;1&amp;lt;/sup&amp;gt;'''&amp;lt;/span&amp;gt; の項」よりも大きいことはないということ。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ゆえに上記の過程を踏まえれば、 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''C&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;p - 1&amp;lt;/sup&amp;gt; mod p&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;2&amp;lt;/sup&amp;gt;'''&amp;lt;/span&amp;gt; が &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''(ap + 1)&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;m&amp;lt;/sup&amp;gt; mod p&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;2&amp;lt;/sup&amp;gt;'''&amp;lt;/span&amp;gt; に等しく、さらに &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''amp + 1'''&amp;lt;/span&amp;gt; に等しいと述べることができる。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ここでやっと &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''D'''&amp;lt;/span&amp;gt; の中身たる &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''{(C&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;p - 1&amp;lt;/sup&amp;gt; mod p&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;2&amp;lt;/sup&amp;gt;) - 1} / p'''&amp;lt;/span&amp;gt; に触れることができるわけであるが、これまでの議論から、&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''C&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;p - 1&amp;lt;/sup&amp;gt; mod p&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;2&amp;lt;/sup&amp;gt;'''&amp;lt;/span&amp;gt; が &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''amp + 1'''&amp;lt;/span&amp;gt; に等しいことが判明している。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;したがって、&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''{(amp + 1) - 1} / p'''&amp;lt;/span&amp;gt; を計算することで、 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''D'''&amp;lt;/span&amp;gt; の正体が&amp;#160; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''am'''&amp;lt;/span&amp;gt; であると分かる。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=== 復号の仕組み ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;復号の最終過程は &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Dd mod p'''&amp;lt;/span&amp;gt; を計算することであった。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ここで次の3点を確認する。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''D'''&amp;lt;/span&amp;gt; は&amp;#160; &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''am'''&amp;lt;/span&amp;gt; に等しい。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''m'''&amp;lt;/span&amp;gt; は &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''p'''&amp;lt;/span&amp;gt; 未満である。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''d'''&amp;lt;/span&amp;gt; は法 &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''p'''&amp;lt;/span&amp;gt; において、&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''a'''&amp;lt;/span&amp;gt; の逆元、すなわち &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''a&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;- 1&amp;lt;/sup&amp;gt;'''&amp;lt;/span&amp;gt; である。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;このようであるから、&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''Dd mod p'''&amp;lt;/span&amp;gt; を計算することは &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''am × a&amp;lt;sup style=&amp;quot;font-size: 80%;&amp;quot;&amp;gt;- 1&amp;lt;/sup&amp;gt; mod p'''&amp;lt;/span&amp;gt; を計算することを意味し、結果的に平文たる &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;'''m'''&amp;lt;/span&amp;gt; を得られる。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Meauk</name></author>	</entry>

	<entry>
		<id>http://75.2.66.110/mediawiki/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Meauk/%E6%9A%97%E5%8F%B720221225&amp;diff=403302&amp;oldid=prev</id>
		<title>Meauk: 2022年12月25日に Meauk が作成した暗号について</title>
		<link rel="alternate" type="text/html" href="http://75.2.66.110/mediawiki/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Meauk/%E6%9A%97%E5%8F%B720221225&amp;diff=403302&amp;oldid=prev"/>
				<updated>2022-12-24T15:41:59Z</updated>
		
		<summary type="html">&lt;p&gt;2022年12月25日に &lt;a href=&quot;/wiki/%E5%88%A9%E7%94%A8%E8%80%85:Meauk&quot; title=&quot;利用者:Meauk&quot;&gt;Meauk&lt;/a&gt; が作成した暗号について&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;2022年12月25日に [[利用者:Meauk|Meauk]] が作成した暗号について記されている。&lt;br /&gt;
&lt;br /&gt;
== 暗号の構成 ==&lt;br /&gt;
=== 鍵生成 by Alice ===&lt;br /&gt;
# 同じ桁数だが互いに異なる2つの素数 '''p''' と '''q''' をそれぞれ選択。&lt;br /&gt;
# '''n''' = pq を計算。&lt;br /&gt;
# p を法とする原始根として '''g''' を設定。&lt;br /&gt;
# {(g&amp;lt;sup&amp;gt;p - 1&amp;lt;/sup&amp;gt; mod p&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;) - 1} / p に等しい値を仮に ''a'' と置くとき、''ad'' ≡ 1 (mod p) となるような '''d''' を計算。&lt;br /&gt;
# ''(n, g)'' の組を'''公開鍵'''に、''(p, q, d)'' の組を'''秘密鍵'''に設定。ただし、q は直接的には不使用。&lt;br /&gt;
# 公開鍵 ''(n, g)'' をボブ宛に送信。&lt;br /&gt;
=== 暗号化 by Bob ===&lt;br /&gt;
# n&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; 未満の正整数 '''r''' を無作為に選択。&lt;br /&gt;
# p 未満の平文 '''m''' を用意し、暗号文 '''C''' ≡ g&amp;lt;sup&amp;gt;m + nr&amp;lt;/sup&amp;gt; (mod n&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;) を計算。&lt;br /&gt;
# 暗号文 ''C'' をアリス宛に送信。&lt;br /&gt;
=== 復号 by Alice ===&lt;br /&gt;
# '''D''' = {(C&amp;lt;sup&amp;gt;p - 1&amp;lt;/sup&amp;gt; mod p&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;) - 1} / p を計算。&lt;br /&gt;
# Dd = m (mod p) により、平文 ''m'' を入手。&lt;/div&gt;</summary>
		<author><name>Meauk</name></author>	</entry>

	</feed>