ML-DSA
ML-DSA нь lattice суурилсан, квант компьютерт тэсвэртэй байхаар зохион бүтээгдсэн пост-квант тоон гарын үсгийн алгоритм бөгөөд мэдээллийн бүрэн бүтэн байдал болон гарын үсгийн хүчинтэй эсэхийг шалгахад ашиглагддаг.
- Стандарт
- FIPS 204
- Түлхүүрийн урт
- Параметрийн багцаас хамаарна; нийтийн болон хувийн түлхүүрийн хэмжээг тусад нь харуулна
Чухал анхааруулга
- ML-DSA нь пост-квант криптографийн тоон гарын үсгийн алгоритм боловч зөв хэрэгжүүлэлт, түлхүүрийн хамгаалалт болон системийн бусад хамгаалалт зайлшгүй шаардлагатай.
- Хувийн түлхүүрийг хамгаалах: Хувийн түлхүүр алдагдвал халдагч тухайн түлхүүрээр хүчинтэй гарын үсэг үүсгэх боломжтой.
- Стандарттай нийцсэн хэрэгжүүлэлт ашиглах: FIPS 204-т нийцсэн, шалгагдсан криптографийн сан сонгох хэрэгтэй.
- Параметрийн багцыг зөв сонгох: ML-DSA-44, ML-DSA-65 болон ML-DSA-87 нь өөр өөр аюулгүй байдлын түвшин, түлхүүр болон гарын үсгийн хэмжээтэй.
- Гарын үсгийн хэмжээг тооцох: ML-DSA-ийн гарын үсэг нь олон уламжлалт гарын үсгээс том байж болох тул сүлжээний зурвас, хадгалалт болон протоколын хязгаарлалтыг тооцох шаардлагатай.
- Квантын хамгаалалтыг хэтрүүлэн ойлгохгүй байх: ML-DSA нь квант компьютерт тэсвэртэй байхаар зохион бүтээгдсэн ч бүх төрлийн халдлагаас бүрэн хамгаална гэсэн үг биш.
- Нийтийн түлхүүрийн эзэмшигчийг баталгаажуулах: Гарын үсэг хүчинтэй байх нь түлхүүрийн бодит эзэмшигчийн хэн болохыг дангаараа батлахгүй.
- Хэрэглээний нийцтэй байдлыг шалгах: ML-DSA ашиглах системүүд түлхүүрийн формат, гарын үсгийн формат болон алгоритмын параметрүүдийг ижил журмаар боловсруулах шаардлагатай.
Юу вэ?
ML-DSA (Module-Lattice-Based Digital Signature Algorithm) нь модуль торлог бүтцэд суурилсан пост-квант тоон гарын үсгийн алгоритм юм. Өмнө нь CRYSTALS-Dilithium нэрээр хөгжүүлэгдсэн бөгөөд NIST байгууллагын FIPS 204 стандартаар тодорхойлогддог.
ML-DSA-ийн зорилго нь мэдээллийн бүрэн бүтэн байдлыг шалгах, гарын үсэг нь тухайн нийтийн түлхүүрт харгалзах хувийн түлхүүрээр үүссэн эсэхийг баталгаажуулах явдал юм.
ML-DSA нь хоёр төрлийн түлхүүр ашигладаг:
Private Key: тоон гарын үсэг үүсгэхэд ашигладаг нууц түлхүүр.
Public Key: гарын үсгийг шалгахад ашигладаг нийтийн түлхүүр.
ML-DSA нь lattice буюу торлог бүтэцтэй холбоотой математик бодлогуудын тооцооллын хүндрэлийг ашигладаг. Энэ нь хангалттай хүчин чадалтай квант компьютерийн улмаас уламжлалт RSA болон ECC алгоритмууд эрсдэлд орох нөхцөлд ашиглах пост-квант криптографийн шийдлүүдийн нэг юм.
ML-DSA нь өгөгдлийг шууд шифрлэдэггүй. RSA-PSS болон ECDSA-ийн нэгэн адил тоон гарын үсэг үүсгэх, шалгах зориулалттай боловч математик үндэс болон түлхүүрийн бүтэц нь өөр.
Хэрхэн ажилладаг вэ?
ML-DSA нь Fiat–Shamir with Aborts схемд суурилан гарын үсэг үүсгэж, нийтийн түлхүүрээр шалгадаг.
1. Түлхүүрийн хос үүсгэх
Криптографийн зориулалттай санамсаргүй үүсгүүр ашиглан нийтийн болон хувийн түлхүүр үүсгэнэ.
2. Мессежийг боловсруулах
Гарын үсэг зурах мессеж болон шаардлагатай нэмэлт мэдээллийг алгоритмын тодорхойлсон журмаар боловсруулна. Зарим хэрэгжүүлэлт мессежийг шууд боловсруулахаас өмнө хэшлэх боломжтой.
3. Гарын үсэг үүсгэх
Хувийн түлхүүрийг ашиглан гарын үсэг үүсгэнэ. Алгоритмын дотоод ажиллагаанд сорилтын утга, санамсаргүй эсвэл тодорхойлогдсон аргаар гаргасан утгууд болон хариу векторууд оролцдог.
4. Гарын үсгийг шалгах
Хүлээн авагч мессеж, гарын үсэг болон нийтийн түлхүүрийг ашиглан шалгалт хийнэ. Шалгалт нь гарын үсэг алгоритмын шаардлагыг хангаж байгаа эсэхийг тогтооно.
5. Үр дүнг баталгаажуулах
Гарын үсэг хүчинтэй бол тухайн гарын үсэг нийтийн түлхүүр болон мессежтэй нийцэж байгааг батална. Харин нийтийн түлхүүр яг хэнийх болохыг тогтоохын тулд сертификат эсвэл өөр итгэмжлэгдсэн баталгаажуулалт шаардлагатай.
Хаана ашиглагддаг вэ?
- Пост-квант тоон гарын үсэг Ирээдүйн квант компьютерийн эрсдэлийг тооцсон системүүдэд мэдээллийн бүрэн бүтэн байдал болон гарын үсгийг баталгаажуулахад ашиглаж болно. Программ хангамжийн гарын үсэг Программ хангамжийн багц
- суулгагч болон шинэчлэлтийн файлыг зөв эх сурвалжаас ирсэн эсэхийг шалгахад ашиглаж болно. Firmware гарын үсэг Төхөөрөмжийн firmware шинэчлэлтийг баталгаажуулж
- зөвшөөрөлгүй өөрчилсөн файлыг илрүүлэхэд ашиглаж болно. PKI болон сертификатын систем Пост-квант криптографийг дэмждэг нийтийн түлхүүрийн дэд бүтцэд гарын үсэг үүсгэх болон шалгахад ашиглаж болно. Баримт бичгийн баталгаажуулалт Цахим баримт бичиг
- өгөгдлийн багц болон бусад дижитал артефактын бүрэн бүтэн байдлыг шалгахад ашиглаж болно.
Түгээмэл алдаа
- ML-DSA-г шифрлэлтийн алгоритм гэж ойлгох: Энэ нь мэдээллийг нууцлах бус, тоон гарын үсэг үүсгэх болон шалгах зориулалттай.
- Түлхүүрийн хэмжээ болон гарын үсгийн хэмжээг андуурах: Эдгээр нь тусдаа техникийн үзүүлэлтүүд юм.
- Nonce size болон tag size-ийг заавал бөглөх: Эдгээр нь ML-DSA-ийн үндсэн үзүүлэлт биш тул хамаарахгүй гэж тэмдэглэх нь зөв.
- Параметрийн багцыг тодорхой заахгүй байх: ML-DSA-44, ML-DSA-65 эсвэл ML-DSA-87 гэдгийг тодорхойлох хэрэгтэй.
- Нийтийн түлхүүрийг баталгаажуулахгүй байх: Буруу нийтийн түлхүүр ашиглавал гарын үсгийн эзэмшигчийг буруу тодорхойлох эрсдэлтэй.
- Хуучин криптографийн хэрэгжүүлэлтэд шууд найдах: Пост-квант алгоритмыг зөвхөн нэрээр нь дэмждэг эсэх бус, стандарттай нийцсэн хэрэгжүүлэлт мөн эсэхийг шалгах хэрэгтэй.
- Бүх квант халдлагаас хамгаална гэж үзэх: Аюулгүй байдал нь алгоритмын хэрэгжүүлэлт, түлхүүрийн хамгаалалт болон системийн бусад хэсгээс мөн хамаарна.
Жишээ код
/ Ерөнхий жишээ — бодит сангийн API-д тохируулна.
const { publicKey, privateKey } =
mlDsaLibrary.generateKeyPair("ML-DSA-65");
const message = Buffer.from("Hello, ML-DSA!");
// Гарын үсэг үүсгэх
const signature = mlDsaLibrary.sign(
message,
privateKey
);
// Гарын үсэг шалгах
const isValid = mlDsaLibrary.verify(
message,
signature,
publicKey
);
console.log("Signature valid:", isValid);