Skip to main content

整數複雜度量測

1 min119 words

我們在密碼理論(Theory of Cryptology)又或者計算理論(Theory of Computation)裡需要去測量輸入的整數複雜度,通常會用整數的長度(bits)當作標準。

例如給一個整數xx會使用兩種測量方法:

  1. 數值value: val(x)val(x)或者簡化成xx也行
  2. 長度length(size): len(x)=log2(x)+1=klen(x) = \lceil log_{2}(x)+1 \rceil = k

數值就只是整數本身所以val(x)=O(2len(x))val(x) = O(2^{len(x)}),舉例來說:

val(1000000)=1000000val(1000000) = 1000000,而 len(1000000)=21bitslen(1000000) = 21 bits

...管怎麼說,RSA在當時算是非常突破性的成果。 金鑰產生 Key generation 首先選擇兩個隨機的大質數$p$和$q$,通常教科書或老師說要取大質數 那怎樣的質數才算大? 參考[[整數複雜度量測]]之後討論都使用多少bit長度為單位,以及$p$和$q$這兩個大質數的長度要很接近,用來計算$n$: $n = pq$ 並且 $\varphi(n) = (p-1)(q-1)$,如上所說挑選出來的是$len(p-1 \cdot...

Referenced in this post