GNFS
这是GNFS的复杂性(摘自链接的Wikipedia文章):
哪里 𝑛ñ是要考虑的数字。评估以上表达式 2𝑏2b 是因数a所需的时间的近似值 𝑏b位整数。下表显示了评估的位长21024,22048,…21024,22048,…:
Strength RSA modulus size Complexity bit-length
80 1024 86.76611925028119
112 2048 116.8838132958159
128 3072 138.7362808527251
192 7680 203.01873594417665
256 15360 269.38477262128384
Those appear to be based on the complexity of the General Number Field Sieve, one of the fastest (if not the fastest) classical factoring algorithms. I confirmed this in Mathematica.
Here is the complexity for the GNFS (source):
where 𝑛n is a number to factor. Evaluating the above expression at 2𝑏2b is a rough approximation of the the time needed to factor a 𝑏b-bit integer. Here's a table showing the bit-length of the evaluation at 21024,22048,…21024,22048,…:
Strength RSA modulus size Complexity bit-length
80 1024 86.76611925028119
112 2048 116.8838132958159
128 3072 138.7362808527251
192 7680 203.01873594417665
256 15360 269.38477262128384
I generated these numbers with the following Mathematica code:
({#, N@Log2@gnfsComplexity[2^#]} &) /@ {1024, 2048, 3072, 7680, 15360}
where gnfsComplexity
is defined as:
gnfsComplexity[n_] := Exp[(64/9 * Log[n])^(1/3) * (Log[Log[n]])^(2/3)]
which is not the prettiest thing I've ever written, but it seems accurate. (For those unfamiliar with Mathematica, the second code snippet defines a function that's a transliteration of the above GNFS complexity for a number 𝑛n. The first code snippet evaluates that complexity at 𝑛=21024,22048n=21024,22048, etc., takes the logarithm base 2, and converts it to a numerical approximation — a decimal number — instead of an exact result like a fraction.)
As for the reasoning behind the larger key sizes for RSA, the explanation's not too difficult. If you look at the document in the question, you will notice that the "bits of security" for block ciphers correlate almost perfectly with the size (in bits) of the keys for that block cipher (with rare exceptions). This is because our best attack on a secure block cipher essentially is a brute-force search for the key, which on average takes 2𝑛−12n−1 time where 𝑛n is the bit-length of the key.
However, for RSA, our best line of attack is not to execute a brute-force search for the key; instead, we "simply" factor the (public) modulus, so the security of the scheme revolves around the efficiency of factoring. The GNFS has a sub-exponential but still super-polynomial time complexity, and one can use this time complexity to roughly approximate the security offered by the scheme. I believe that's what the NIST is doing here.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理