MODULI(5) File Formats Manual MODULI(5)
moduli - پایگاه‌داده اعداد اول برای تبادل کلید دیفی-هلمن در OpenSSH

پرونده‌ی /etc/ssh/moduli حاوی اعداد اول و مولدهایی برای استفاده توسط sshd(8) در روش تبادل کلید مبادله گروهی دیفی-هلمن (Diffie-Hellman Group Exchange) است.

مدول‌های جدید را می‌توان با یک فرآیند دومرحله‌ای توسط ssh-keygen(1) تولید کرد. مرحله‌ی نخست، تولید کاندیدا (candidate generation) با استفاده از ssh-keygen -M generate ، اعدادی را محاسبه می‌کند که به احتمال زیاد مفید هستند. مرحله‌ی دوم، آزمون اول بودن (primality testing) با استفاده از ssh-keygen -M screen ، درجه اطمینان بالایی را فراهم می‌کند مبنی بر اینکه اعداد اول بوده و برای استفاده در عملیات دیفی-هلمن توسط sshd(8) امن هستند. این قالب moduli به عنوان خروجی هر مرحله استفاده می‌شود.

این پرونده شامل رکوردهایی است که با خط جدید از یکدیگر جدا شده‌اند (یک رکورد برای هر مدول)، و شامل هفت فیلد هستند که با فاصله از هم جدا می‌شوند. این فیلدها به شرح زیر هستند:

timestamp
زمان آخرین پردازش مدول در قالب YYYYMMDDHHMMSS.
type
عدد ده‌دهی که ساختار درونی مدول اول را مشخص می‌کند. انواع پشتیبانی‌شده عبارتند از:
0
ناشناخته، آزمایش‌نشده.
2
عدد اول «امن» (Safe prime)؛ که در آن (p-1)/2 نیز اول است.
4
سوفی ژرمن (Sophie Germain)؛ که در آن 2p+1 نیز اول است.

کاندیداهای مدول که در ابتدا توسط ssh-keygen(1) تولید می‌شوند، اعداد اول سوفی ژرمن (نوع 4) هستند. آزمون‌های اول بودن بعدی با ssh-keygen(1) مدول‌های عدد اول امن (نوع 2) را تولید می‌کنند که برای استفاده در sshd(8) آماده هستند. سایر انواع توسط OpenSSH استفاده نمی‌شوند.

tests
عدد ده‌دهی که نشان‌دهنده نوع آزمون‌های اول بودنی است که عدد تحت آن قرار گرفته است، و به صورت یک ماسک بیتی از مقادیر زیر نمایش داده می‌شود:
0x00
آزمایش‌نشده.
0x01
عدد مرکب – اول نیست.
0x02
غربال اراتستن (Sieve of Eratosthenes).
0x04
آزمون‌های احتمالاتی اول بودن میلر-رابین (Miller-Rabin).

تولید کاندیدای مدول در ssh-keygen(1) از غربال اراتستن (پرچم 0x02) استفاده می‌کند. آزمون‌های اول بودن بعدی در ssh-keygen(1) از نوع آزمون‌های میلر-رابین (پرچم 0x04) هستند.

trials
عدد ده‌دهی که نشان‌دهنده تعداد دفعات آزمایش اول بودن انجام‌شده روی مدول است.
size
عدد ده‌دهی که اندازه عدد اول را به بیت مشخص می‌کند.
generator
مولد توصیه‌شده برای استفاده با این مدول (در مبنای شانزده‌شانزدهی).
modulus
خود مدول در مبنای شانزده‌شانزدهی (هگزادسیمال).

هنگام انجام تبادل گروهی دیفی-هلمن (Diffie-Hellman Group Exchange)، sshd(8) ابتدا اندازه مدول مورد نیاز را برای تولید خروجی دیفی-هلمن کافی جهت کلیدگذاری رمز متقارن انتخاب‌شده تخمین می‌زند. سپس sshd(8) به‌طور تصادفی مدولی را از /etc/ssh/moduli انتخاب می‌کند که بهترین تطابق را با الزامات اندازه داشته باشد.

ssh-keygen(1), sshd(8)

M. Friedl, N. Provos, and W. Simpson, Diffie-Hellman Group Exchange for the Secure Shell (SSH) Transport Layer Protocol, RFC 4419, March 2006.

April 16, 2022 Linux 6.12.107+deb13-amd64