將兩個大質數相乘得到乘積極易,但給定乘積反推兩個質因數(分解質因數)在計算上極難,這是 RSA 加密演算法的數學基礎。我們可借鑑此原理設計個人密碼體系。
選擇兩個較大的質數(可從質數表查詢),例如:
8861 和 9973 皆為質數。8861 × 9973 = 88,370,753。88370753 設為第一層密碼(主密碼)。將兩個質數直接連寫:88619973 作為第二層密碼。即使駭客破解第一層並嘗試分解質因數,若手邊無完整質數表,逐一試除到 8861 極其耗時,多半會中途放棄。
將質數編碼為易記語句:
8861 → 「爸爸留意」9973 → 「舅舅漆傘」8861 與 9973,隨時可重構兩層密碼。1977 年,Rivest、Shamir、Adleman 三位學者設計 127 位數(約 426 位元)的 RSA-129 密碼鎖,估計需 40 兆年才能破解。1994 年,全球 600 位專家利用 1600 台電腦分散運算 8 個月終於破解,解出訊息:「The magic words are squeamish ossifrage.」(魔咒是神經質的禿鷹)。這證明了質因數分解難度隨位數增長呈指數級上升,也展示了分散式運算的威力。
Correct-Horse-Battery-Staple-2024!(四個隨機單字+符號+年份),兼具高熵值與易記性。