Тоон гарын үсэг
Дижитал гарын үсэг нь цахим мэдээллийн эх сурвалжийг баталгаажуулах болон өөрчлөлтийг илрүүлэхэд ашиглагддаг. Харин мэдээллийг нууцлах шаардлагатай бол шифрлэлтийг тусад нь ашиглана.
- Зохиогч:
- Turmandakh
- Нийтэлсэн:

Тоон гарын үсэг гэж юу вэ?
Digital Signature буюу тоон гарын үсэг нь цахим мэдээллийг хэн илгээснийг баталгаажуулах, мөн мэдээлэл өөрчлөгдсөн эсэхийг шалгахад ашигладаг криптографын арга юм.
Үндсэн хоёр зорилготой:
- Authentication: Гарын үсэг үүсгэсэн түлхүүрийг эзэмшигчтэй холбон баталгаажуулах.
- Integrity: Мэдээлэл гарын үсэг зурсан үеэс хойш өөрчлөгдсөн эсэхийг шалгах.
Тоон гарын үсэг нь мэдээллийг нууцлахгүй. Өөрөөр хэлбэл, бусад хүн мэдээллийг уншиж болох ч гарын үсгийг зөв үүсгэж чадахгүй байх ёстой.
2. Гарын үсгийг хэрхэн үүсгэж, шалгадаг вэ?
Бат Болорт 100,000₮ гэсэн мэдээлэл илгээх гэж байна гэж бодъё.
1. Мэдээлэл бэлтгэх
100,000₮
▼
Бат хувийн түлхүүрээ ашиглана
2. Гарын үсэг үүсгэх
Message + Private Key → Signature
▼
3. Болор шалгах
Message + Signature + Батын Public Key
Зөв гарын үсэг, өөрчлөгдөөгүй мэдээлэл бол шалгалт амжилттай.Батын хувийн түлхүүр (Private Key) зөвхөн гарын үсэг үүсгэхэд ашиглагдана. Харин Болор Батын нийтийн түлхүүр (Public Key)-ээр гарын үсгийг шалгана.
Гэхдээ Public Key үнэхээр Батынх мөн гэдгийг найдвартай эх сурвалж эсвэл сертификатаар баталгаажуулах шаардлагатай.
3. Мэдээлэл өөрчлөгдвөл яах вэ?
Бат дараах мэдээлэлд гарын үсэг зурсан гэж үзье.
100,000₮Халдагч үүнийг:
900,000₮гэж өөрчилбөл анхны гарын үсэг шинэ мэдээлэлтэй тохирохгүй. Иймээс гарын үсгийн шалгалт амжилтгүй болно.
Энэ нь гүйлгээ, цахим гэрээ, программын шинэчлэл зэрэгт мэдээллийг зөвшөөрөлгүй өөрчилсөн эсэхийг илрүүлэхэд чухал.
4. Node.js жишээ
Доорх код нь RSA түлхүүр үүсгэж, мэдээлэлд гарын үсэг зураад шалгана.
import crypto from "node:crypto";
const { publicKey, privateKey } =
crypto.generateKeyPairSync("rsa", {
modulusLength: 2048
});
const message = Buffer.from("100,000₮");
const signature = crypto.sign(
"sha256", message, privateKey
);
const valid = crypto.verify(
"sha256", message, publicKey, signature
);
console.log(valid); // trueКодын тайлбар:
generateKeyPairSync()— хувийн болон нийтийн түлхүүр үүсгэнэ.crypto.sign()— хувийн түлхүүрээр гарын үсэг үүсгэнэ.crypto.verify()— нийтийн түлхүүрээр гарын үсгийг шалгана.trueгарвал тухайн мэдээлэлд гарын үсэг хүчинтэй байна. Энэ нь түлхүүрийн эзэмшигчийг дангаараа бодит хүнтэй холбон батлахгүй.
5. Encryption ба Digital Signature-ийн ялгаа
Бататгах асуулт
Асуулт 1/3
Тоон гарын үсгийн үндсэн зорилго юу вэ?
Энэ нийтлэл танд таалагдсан уу?