อัลกอริทึมวิทยาการเข้ารหัสที่เสียหายหรือมีความเสี่ยง
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
หมวดหมู่ OWASP: MASVS-CRYPTO: การเข้ารหัส
ภาพรวม
แม้ว่าการเข้ารหัสจะใช้กันอย่างแพร่หลายเพื่อปกป้องการรักษาความลับและความสมบูรณ์ของข้อมูล แต่ก็ยังมีความเสี่ยงที่สำคัญเกิดขึ้นเมื่อนักพัฒนาแอปใช้
อัลกอริทึมการเข้ารหัสที่อ่อนแอหรือล้าสมัยโดยไม่ตั้งใจ ช่องโหว่นี้เกิดจาก
จุดอ่อนที่มีอยู่ในอัลกอริทึมเหล่านี้ ซึ่งผู้ไม่ประสงค์ดีที่มีกำลังการประมวลผลหรือความรู้ที่จำเป็นอาจใช้แสวงหาประโยชน์
ผลที่ตามมาของการใช้ประโยชน์ดังกล่าวอาจร้ายแรง ซึ่งอาจนำไปสู่
การเข้าถึงโดยไม่ได้รับอนุญาต การละเมิดข้อมูล และการดัดแปลงข้อมูลที่ละเอียดอ่อน
ผลกระทบ
ข้อมูลที่ละเอียดอ่อนอาจถูกเปิดเผย แก้ไข หรือปลอมแปลง อัลกอริทึมการเข้ารหัสที่เสียหรือมีความเสี่ยงอาจนำไปสู่ช่องโหว่และอาจถูกนำไปใช้ในทางที่ผิดเพื่อถอดรหัสข้อมูลที่ละเอียดอ่อน ดัดแปลงข้อมูล หรือแอบอ้างเป็นเอนทิตีที่ถูกต้องตามกฎหมาย ผลกระทบจากการใช้ประโยชน์จากช่องโหว่ดังกล่าวอาจมีตั้งแต่การละเมิดข้อมูลและการสูญเสียทางการเงินไปจนถึงความเสียหายต่อชื่อเสียงและการสูญเสียความไว้วางใจจากผู้ใช้
ความเสี่ยง: ฟังก์ชันแฮชแบบเข้ารหัสที่อ่อนแอหรือใช้งานไม่ได้
การใช้ฟังก์ชันแฮชการเข้ารหัสที่อ่อนแอหรือใช้งานไม่ได้ (เช่น MD5
หรือ SHA1
)
ก่อให้เกิดความเสี่ยงอย่างมากต่อความปลอดภัยและความสมบูรณ์ของข้อมูล ฟังก์ชันแฮช
ออกแบบมาเพื่อสร้างลายนิ้วมือ (แฮช) ที่ไม่ซ้ำกันและมีความยาวคงที่ของข้อมูลที่ป้อน
จึงมีประโยชน์สำหรับวัตถุประสงค์ต่างๆ รวมถึงการยืนยันความสมบูรณ์ของข้อมูล
การจัดเก็บรหัสผ่าน และลายเซ็นดิจิทัล อย่างไรก็ตาม เมื่อใช้ฟังก์ชันแฮชที่อ่อนแอหรือถูกบุกรุก อาจเกิดช่องโหว่หลายประการดังนี้
- การโจมตีแบบชนกัน: ฟังก์ชันแฮชที่อ่อนแอมีแนวโน้มที่จะถูกโจมตีแบบชนกัน ซึ่งผู้โจมตีจะค้นหาอินพุต 2 รายการที่แตกต่างกันซึ่งสร้างค่าแฮชเดียวกัน ซึ่งอาจทำให้ผู้ไม่ประสงค์ดีสามารถแทนที่ข้อมูลที่ถูกต้องด้วยข้อมูลที่เป็นอันตราย
โดยไม่ถูกตรวจพบ ซึ่งจะทำให้ความสมบูรณ์ของข้อมูลลดลง
- การละเมิดข้อมูล: หากแฮชรหัสผ่านด้วยอัลกอริทึมที่ไม่รัดกุม การละเมิดระบบที่สำเร็จอาจทำให้ข้อมูลเข้าสู่ระบบของผู้ใช้ถูกเปิดเผย จากนั้นผู้โจมตี
อาจใช้ตารางเรนโบว์หรือเทคนิคอื่นๆ เพื่อถอดรหัสรหัสผ่าน
และเข้าถึงบัญชีโดยไม่ได้รับอนุญาต
- การปฏิเสธลายเซ็นดิจิทัล: ฟังก์ชันแฮชที่อ่อนแอซึ่งใช้ในลายเซ็นดิจิทัลอาจถูกนำไปใช้สร้างลายเซ็นปลอม ซึ่งทำให้ตรวจสอบความถูกต้องและความสมบูรณ์ของเอกสารหรือข้อความได้ยาก
การลดปัญหา
การใช้ฟังก์ชันแฮชแบบเข้ารหัสที่แข็งแกร่งและผ่านการตรวจสอบอย่างดี เช่น SHA-2
หรือ SHA-3
และการอัปเดตฟังก์ชันเหล่านี้อย่างต่อเนื่องเมื่อพบช่องโหว่ใหม่ๆ เป็นสิ่งสำคัญในการลดความเสี่ยงเหล่านี้ นอกจากนี้ การนำแนวทางปฏิบัติด้านความปลอดภัยมาใช้ เช่น การเพิ่ม Salt ในรหัสผ่านและการใช้อัลกอริทึมการแฮชเฉพาะรหัสผ่าน เช่น bcrypt
หรือ Argon2
จะช่วยเพิ่มการปกป้องข้อมูลได้อีกด้วย
ความเสี่ยง: ฟังก์ชันการเข้ารหัสที่อ่อนแอหรือใช้งานไม่ได้
การใช้ฟังก์ชันการเข้ารหัสลับที่ไม่ปลอดภัยหรือใช้งานไม่ได้ (เช่น DES
หรือ
RC4
) ทำให้เกิดความเสี่ยงอย่างร้ายแรงต่อการรักษาความลับของข้อมูลที่ละเอียดอ่อน การเข้ารหัส
ออกแบบมาเพื่อปกป้องข้อมูลโดยการแปลงข้อมูลให้อยู่ในรูปแบบที่อ่านไม่ได้
แต่หากอัลกอริทึมการเข้ารหัสมีข้อบกพร่อง ก็อาจมีการข้ามการป้องกันเหล่านี้ได้
- การละเมิดข้อมูล: อัลกอริทึมการเข้ารหัสที่อ่อนแอมีแนวโน้มที่จะถูกโจมตีหลายรูปแบบ
รวมถึงการโจมตีแบบ Brute Force, การโจมตีแบบข้อความธรรมดาที่ทราบ และ
เทคนิคการวิเคราะห์รหัสลับ หากการโจมตีสำเร็จ การโจมตีเหล่านี้จะเปิดเผยข้อมูลที่เข้ารหัส
ทำให้มีการเข้าถึงข้อมูลที่ละเอียดอ่อนโดยไม่ได้รับอนุญาต เช่น รายละเอียดส่วนบุคคล
บันทึกทางการเงิน หรือข้อมูลธุรกิจที่เป็นความลับ
- การดัดแปลงและแก้ไขข้อมูล: แม้ว่าผู้โจมตีจะถอดรหัสข้อมูลได้ไม่สมบูรณ์
แต่ก็ยังอาจดัดแปลงข้อมูลได้โดยไม่ถูกตรวจพบหาก
อัลกอริทึมการเข้ารหัสอ่อนแอ ซึ่งอาจนำไปสู่การแก้ไขข้อมูลโดยไม่ได้รับอนุญาต ซึ่งอาจส่งผลให้เกิดการฉ้อโกง การสื่อให้เข้าใจผิด หรือกิจกรรมที่เป็นอันตรายอื่นๆ
การลดปัญหา
ใช้อัลกอริทึมการเข้ารหัสที่รัดกุมในฟังก์ชันการเข้ารหัส
การใช้
อัลกอริทึมการเข้ารหัสที่รัดกุมและผ่านการตรวจสอบอย่างดี รวมถึงการทำตามแนวทางปฏิบัติแนะนำสำหรับการจัดการคีย์และการติดตั้งใช้งานการเข้ารหัส
เป็นสิ่งสำคัญในการลดความเสี่ยงเหล่านี้ การอัปเดตอัลกอริทึมการเข้ารหัสเป็นประจำและการรับทราบข้อมูลเกี่ยวกับภัยคุกคามที่เกิดขึ้นใหม่เป็นสิ่งจำเป็นอย่างยิ่งในการรักษาความปลอดภัยของข้อมูลให้มีประสิทธิภาพ
อัลกอริทึมเริ่มต้นที่แนะนำให้ใช้มีดังนี้
- การเข้ารหัสแบบสมมาตร
AES-128
/AES-256
ที่มีโหมด GCM
Chacha20
- การเข้ารหัสแบบอสมมาตร
RSA-2048
/RSA-4096
ที่มีระยะห่างจากขอบ OAEP
ใช้ Primitive ที่ปลอดภัยจากไลบรารีการเข้ารหัสเพื่อลดข้อผิดพลาดที่พบบ่อย
แม้ว่าการเลือกอัลกอริทึมการเข้ารหัสที่เหมาะสมจะเป็นสิ่งสำคัญ แต่หากต้องการลดช่องโหว่ด้านความปลอดภัยอย่างแท้จริง คุณควรใช้ไลบรารีการเข้ารหัสที่นำเสนอ API ที่มีประสิทธิภาพและเน้นการกำหนดค่าเริ่มต้นที่ปลอดภัย แนวทางนี้ไม่เพียงแต่ช่วยเสริมความปลอดภัยของแอปพลิเคชันเท่านั้น แต่ยังช่วยลดโอกาสที่จะเกิดช่องโหว่จากข้อผิดพลาดในการเขียนโค้ดได้อย่างมากอีกด้วย เช่น Tink ช่วยให้การเลือกการเข้ารหัสง่ายขึ้นด้วยการเสนอ
2 ตัวเลือกที่แตกต่างกัน ได้แก่ การเข้ารหัส AEAD
และ Hybrid
ซึ่งช่วยให้นักพัฒนาซอฟต์แวร์
ตัดสินใจด้านความปลอดภัยได้อย่างมีข้อมูลประกอบมากขึ้น
ความเสี่ยง: ฟังก์ชันลายเซ็นการเข้ารหัสที่อ่อนแอหรือใช้งานไม่ได้
การใช้ฟังก์ชันลายเซ็นเข้ารหัสที่อ่อนแอหรือใช้งานไม่ได้ (เช่น
RSA-PKCS#1 v1.5
หรือฟังก์ชันที่อิงตามฟังก์ชันแฮชที่อ่อนแอ)
ก่อให้เกิดความเสี่ยงร้ายแรงต่อความสมบูรณ์ของข้อมูลและการสื่อสาร ลายเซ็นดิจิทัล
ออกแบบมาเพื่อการตรวจสอบสิทธิ์ การปฏิเสธความรับผิด และความสมบูรณ์ของข้อมูล
เพื่อให้มั่นใจว่าข้อความหรือเอกสารมาจากผู้ส่งที่เฉพาะเจาะจง
และไม่มีการดัดแปลง อย่างไรก็ตาม เมื่ออัลกอริทึมลายเซ็นพื้นฐาน
มีข้อบกพร่อง การรับประกันเหล่านี้อาจถูกบุกรุกได้
- การปลอมลายเซ็น: อัลกอริทึมลายเซ็นที่ไม่รัดกุมอาจเสี่ยงต่อการโจมตี
ซึ่งอนุญาตให้ผู้ไม่ประสงค์ดีสร้างลายเซ็นปลอมได้ ซึ่งหมายความว่าผู้โจมตีสามารถ
แอบอ้างเป็นหน่วยงานที่ถูกต้อง สร้างเอกสารปลอม หรือดัดแปลงข้อความ
โดยไม่ถูกตรวจพบ
- การปฏิเสธลายเซ็น: หากอัลกอริทึมลายเซ็นถูกทำลาย ผู้ลงนาม
อาจอ้างเท็จว่าตนไม่ได้ลงนามในเอกสาร ซึ่งจะบ่อนทำลาย
หลักการของการปฏิเสธไม่ได้ และสร้างความท้าทายทางกฎหมายและด้านลอจิสติกส์
- การดัดแปลงและแก้ไขข้อมูล: ในสถานการณ์ที่ใช้ลายเซ็นเพื่อปกป้องความสมบูรณ์ของข้อมูล อัลกอริทึมที่ไม่รัดกุมอาจทําให้ผู้โจมตีแก้ไขข้อมูลได้โดยไม่ทําให้ลายเซ็นไม่ถูกต้อง ซึ่งนําไปสู่การแก้ไขที่ไม่สามารถตรวจพบและอาจทําให้ข้อมูลสําคัญถูกบุกรุก
การลดปัญหา
ใช้อัลกอริทึมลายเซ็นการเข้ารหัสที่รัดกุม
การใช้
อัลกอริทึมลายเซ็นการเข้ารหัสที่รัดกุมและผ่านการตรวจสอบอย่างดีจึงเป็นสิ่งสำคัญในการลดความเสี่ยงเหล่านี้
RSA-2048
/RSA-4096
ที่มีระยะห่างจากขอบ PSS
- อัลกอริทึมลายเซ็นดิจิทัลโดยใช้เส้นโค้งวงรี (
ECDSA
) ที่มีเส้นโค้งที่ปลอดภัย
ใช้ Primitive ที่ปลอดภัยจากไลบรารีการเข้ารหัสเพื่อลดข้อผิดพลาดที่พบบ่อย
การเลือกอัลกอริทึมลายเซ็นที่เหมาะสมเป็นสิ่งสำคัญ แต่หากต้องการลดช่องโหว่ด้านความปลอดภัยอย่างแท้จริง
ให้พิจารณาใช้ไลบรารีการเข้ารหัสที่ให้การรับประกันความปลอดภัยที่แข็งแกร่ง
โดยค่าเริ่มต้น ตัวอย่างเช่น Tink ช่วยลดความซับซ้อนในการเลือก
ลายเซ็นโดยเสนอ ECDSA
ที่มีเส้นโค้งที่ปลอดภัยเป็นตัวเลือกเริ่มต้น ทั้งหมดนี้อยู่ใน
API ที่ตรงไปตรงมาและครอบคลุม แนวทางนี้ไม่เพียงแต่ช่วยเพิ่ม
ความปลอดภัย แต่ยังช่วยเพิ่มประสิทธิภาพการพัฒนาด้วยการลดความจำเป็นในการกำหนดค่า
ที่ซับซ้อนหรือการตัดสินใจ
แหล่งข้อมูล
ตัวอย่างเนื้อหาและโค้ดในหน้าเว็บนี้ขึ้นอยู่กับใบอนุญาตที่อธิบายไว้ในใบอนุญาตการใช้เนื้อหา Java และ OpenJDK เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2025-07-27 UTC
[[["เข้าใจง่าย","easyToUnderstand","thumb-up"],["แก้ปัญหาของฉันได้","solvedMyProblem","thumb-up"],["อื่นๆ","otherUp","thumb-up"]],[["ไม่มีข้อมูลที่ฉันต้องการ","missingTheInformationINeed","thumb-down"],["ซับซ้อนเกินไป/มีหลายขั้นตอนมากเกินไป","tooComplicatedTooManySteps","thumb-down"],["ล้าสมัย","outOfDate","thumb-down"],["ปัญหาเกี่ยวกับการแปล","translationIssue","thumb-down"],["ตัวอย่าง/ปัญหาเกี่ยวกับโค้ด","samplesCodeIssue","thumb-down"],["อื่นๆ","otherDown","thumb-down"]],["อัปเดตล่าสุด 2025-07-27 UTC"],[],[],null,["# Broken or risky cryptographic algorithm\n\n\u003cbr /\u003e\n\n**OWASP category:** [MASVS-CRYPTO: Cryptography](https://mas.owasp.org/MASVS/06-MASVS-CRYPTO)\n\nOverview\n--------\n\nDespite the widespread use of cryptography to protect data confidentiality and\nintegrity, a significant risk arises when developers inadvertently implement\nweak or outdated cryptographic algorithms. This vulnerability stems from the\ninherent weaknesses in these algorithms, which can be exploited by malicious\nactors possessing the necessary computational power or knowledge. The\nconsequences of such exploitation can be severe, potentially leading to\nunauthorized access, data breaches, and manipulation of sensitive information.\n\nImpact\n------\n\nSensitive data can be exposed, modified, or forged. Broken or risky\ncryptographic algorithms might lead to vulnerabilities and can be abused to\ndecrypt sensitive information, tamper with data, or impersonate legitimate\nentities. The impact of exploiting such vulnerabilities can range from data\nbreaches and financial losses to reputational damage and loss of user trust.\n\nRisk: Weak or broken cryptographic hash functions\n-------------------------------------------------\n\nThe use of weak or broken cryptographic hash functions (such as `MD5` or `SHA1`)\nposes a significant risk to the security and integrity of data. Hash functions\nare designed to create unique, fixed-length fingerprints (hashes) of input data,\nmaking them useful for various purposes, including data integrity verification,\npassword storage, and digital signatures. However, when weak or compromised hash\nfunctions are employed, several vulnerabilities can arise:\n\n- **Collision Attacks**: Weak hash functions are susceptible to collision attacks, where an attacker finds two different inputs that produce the same hash value. This can allow them to substitute malicious data for legitimate data without detection, compromising data integrity.\n- **Data Breaches**: If passwords are hashed with a weak algorithm, a successful breach of a system could lead to the exposure of user credentials. Attackers could then use rainbow tables or other techniques to crack the passwords, gaining unauthorized access to accounts.\n- **Repudiation of Digital Signatures**: Weak hash functions used in digital signatures can be exploited to create forged signatures, making it difficult to determine the authenticity and integrity of documents or messages.\n\n### Mitigations\n\nTo mitigate these risks, it is crucial to use strong, well-vetted cryptographic\nhash functions like [`SHA-2`](https://en.wikipedia.org/wiki/SHA-2) or [`SHA-3`](https://en.wikipedia.org/wiki/SHA-3), and\nto keep them updated as new vulnerabilities are discovered. Additionally,\nadopting security practices such as salting passwords and using\npassword-specific hashing algorithms like [`bcrypt`](https://en.wikipedia.org/wiki/Bcrypt) or\n[`Argon2`](https://en.wikipedia.org/wiki/Argon2) can further enhance data protection.\n\n*** ** * ** ***\n\nRisk: Weak or broken cryptographic encryption functions\n-------------------------------------------------------\n\nThe use of weak or broken cryptographic encryption functions (such as `DES` or\n`RC4`) poses severe risks to the confidentiality of sensitive data. Encryption\nis designed to protect information by transforming it into an unreadable format,\nbut if the encryption algorithm is flawed, these protections can be bypassed:\n\n- **Data Breaches:** Weak encryption algorithms are susceptible to various attacks, including brute-force attacks, known-plaintext attacks, and cryptanalysis techniques. If successful, these attacks can expose encrypted data, allowing unauthorized access to sensitive information such as personal details, financial records, or confidential business data.\n- **Data Manipulation and Tampering:** Even if an attacker cannot fully decrypt the data, they may still be able to manipulate it without detection if the encryption algorithm is weak. This can lead to unauthorized modifications of data, potentially resulting in fraud, misrepresentation, or other malicious activities.\n\n### Mitigations\n\n#### Use strong cryptographic algorithms in encryption functions\n\nTo mitigate these risks, it is crucial to use strong, well-vetted cryptographic\nalgorithms and follow best practices for key management and encryption\nimplementation. Regularly updating encryption algorithms and staying informed\nabout emerging threats is also essential to maintain robust data security.\n\nSome recommended default algorithms to use:\n\n- Symmetric encryption:\n - `AES-128`/`AES-256` with [`GCM`](https://en.wikipedia.org/wiki/Galois/Counter_Mode) mode\n - `Chacha20`\n- Asymmetric encryption:\n - `RSA-2048`/`RSA-4096` with [`OAEP`](https://datatracker.ietf.org/doc/html/rfc8017) padding\n\n#### Use secure primitives from a cryptography library to reduce common pitfalls\n\nWhile selecting an appropriate encryption algorithm is crucial, to truly\nminimize security vulnerabilities, consider using a cryptography library that\noffers a streamlined API and emphasizes secure default configurations. This\napproach not only strengthens the security of your applications but also\nsignificantly reduces the likelihood of introducing vulnerabilities through\ncoding errors. For example, [Tink](https://developers.google.com/tink) simplifies encryption choices by offering\ntwo distinct options: [`AEAD`](https://developers.google.com/tink/streaming-aead) and [`Hybrid`](https://developers.google.com/tink/hybrid) encryption, making it easier\nfor developers to make informed security decisions.\n\n*** ** * ** ***\n\nRisk: Weak or broken cryptographic signature functions\n------------------------------------------------------\n\nThe use of weak or broken cryptographic signature functions (such as\n[`RSA-PKCS#1 v1.5`](https://www.rfc-editor.org/rfc/rfc2313), or the ones based on weak hash functions)\nposes severe risks to the integrity of data and communication. Digital\nsignatures are designed to provide authentication, non-repudiation, and data\nintegrity, ensuring that a message or document originates from a specific sender\nand has not been tampered with. However, when the underlying signature algorithm\nis flawed, these assurances can be compromised:\n\n- **Forging signatures**: Weak signature algorithms can be vulnerable to attacks that allow malicious actors to create forged signatures. This means they can impersonate legitimate entities, fabricate documents, or tamper with messages without detection.\n- **Repudiation of signatures**: If a signature algorithm is broken, a signer may be able to falsely claim that they did not sign a document, undermining the principle of non-repudiation and creating legal and logistical challenges.\n- **Data manipulation and tampering**: In scenarios where signatures are used to protect the integrity of data, a weak algorithm could allow attackers to modify the data without invalidating the signature, leading to undetected tampering and potential compromise of critical information.\n\n### Mitigations\n\n#### Use strong cryptographic signature algorithms\n\nTo mitigate these risks, it is crucial to use strong, well-vetted cryptographic\nsignature algorithms:\n\n- `RSA-2048`/`RSA-4096` with [`PSS`](https://datatracker.ietf.org/doc/html/rfc8017) padding\n- Elliptic Curve Digital Signature Algorithm ([`ECDSA`](https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm)) with secure curves\n\n#### Use secure primitives from a cryptography library to reduce common pitfalls\n\nChoosing the right signature algorithm is essential, but to truly minimize\nsecurity vulnerabilities, consider a cryptography library that provides robust\nsecurity assurances by default. [Tink](https://developers.google.com/tink), for example, simplifies signature\nchoices by offering `ECDSA` with secure curves as its default option, all within\na straightforward and comprehensive API. This approach not only enhances\nsecurity but also streamlines development by eliminating the need for complex\nconfiguration or decision-making.\n\n*** ** * ** ***\n\nResources\n---------\n\n- [Tink cryptography library](https://developers.google.com/tink/what-is)\n- [Android App quality: Cryptography](/privacy-and-security/cryptography)\n- [Digital Signature with Tink](https://developers.google.com/tink/digital-signature)\n- [Hybrid Encryption with Tink](https://developers.google.com/tink/hybrid)\n- [Authenticated Encryption with Tink](https://developers.google.com/tink/streaming-aead)\n- [Weak or broken cryptographic hash and encryption functions Android security lint](https://github.com/google/android-security-lints/blob/main/checks/src/main/java/com/example/lint/checks/BadCryptographyUsageDetector.kt)\n- [CWE-327: Use of a Broken or Risky Cryptographic Algorithm](https://cwe.mitre.org/data/definitions/327.html)\n- [CWE-328: Use of Weak Hash](https://cwe.mitre.org/data/definitions/328.html)\n- [CWE-780: Use of RSA Algorithm without OAEP](https://cwe.mitre.org/data/definitions/780.html)\n- [NIST page about Approved Hash Functions](https://csrc.nist.gov/projects/hash-functions)\n- [Advanced Encryption Standard (Wikipedia)](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard)\n- [Secure Hash Algorithm 2 (Wikipedia)](https://en.wikipedia.org/wiki/SHA-2)\n- [Secure Hash Algorithm 3 (Wikipedia)](https://en.wikipedia.org/wiki/SHA-3)\n- [RSA cryptosystem (Wikipedia)](https://en.wikipedia.org/wiki/RSA_(cryptosystem))\n- [Elliptic Curve Digital Signature Algorithm (Wikipedia)](https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm)\n- [Stream cipher ChaCha (Wikipedia)](https://en.wikipedia.org/wiki/Salsa20#ChaCha_variant)\n- [Salting password (Wikipedia)](https://en.wikipedia.org/wiki/Salt_(cryptography))\n- [Hybrid cryptosystem (Wikipedia)](https://en.wikipedia.org/wiki/Hybrid_cryptosystem)\n- [Authenticated encryption](https://en.wikipedia.org/wiki/Authenticated_encryption)"]]