כיצד ליצור אלגוריתם הצפנה?
לא משנה מה הסיבה שלכם היא לרצות ליצור תוכנית הצפנה, יצירת אחת יכולה להיות מהנה ומאתגרת מאוד. עם זאת, זה יכול להיות קשה להבין איך אתה עושה את זה אם זו הפעם הראשונה שלך. מאמר זה מכסה את הרעיון הכללי ואת הצעדים הבסיסיים שתצטרכו לנקוט על מנת ליצור תוכנית הצפנה פונקציונאלית ומציאותית.
חלק 1 מתוך 2: יצירת שיטת ההצפנה
- 1תכנן את האלגוריתם. אלגוריתם כללי הוא עמוד השדרה של כל שיטות ההצפנה. RSA משתמש בתכונות מתמטיות של מספרים ראשוניים גדולים להצפנת נתונים פרטיים במהירות ובבטחה. Bitcoin משתמש בגרסת RSA כדי לאבטח תשלומים בבטחה ולהבטיח שהשולח אכן רוצה לשלוח ביטקוין למשתמש אחר. עליכם לעשות מחקר על סוגים שונים של אלגוריתמי הצפנה, כמו הצפנת מפתח פרטי וציבורי. יש לציין כי שום הצפנה, אם אתה מתכנן לאחזר את הנתונים, אינה שבירה. הצפנה יכולה רק להרתיע חטטנות מזדמנים ולעכב התקפות חמורות. מומלץ ללמוד מה זה בינארי, זה יהיה הפוך את יצירת האלגוריתם שלך להרבה יותר קל ורלוונטי להצפנת נתונים.
- 2בדוק את האלגוריתם שלך. ברגע שאתה חושב שיש לך אלגוריתם טוב, אתה צריך לנסות להצפין הודעה קצרה מאוד ביד. זה אמור לקחת יותר מכמה דקות עבור אלגוריתמי הצפנה טובים. כלל אצבע טוב הוא שאם אתה יכול להצפין את ההודעה בראש שלך, זה לא בטוח להצפנה רצינית. אם ההודעה הסופית נראית דומה, באופן כלשהו, להודעה המקורית, ייתכן שהיא לא בטוחה.
- 3שקול פענוח. צריכה להיות דרך של גורמים מורשים לגשת לנתונים המוצפנים על ידי האלגוריתם שלך. עליך לוודא שאתה יכול לפענח את הנתונים בקלות אם אתה יודע את המפתח, ולהקשות על התוקפים להיתקל בטעות במפתח באמצעות ניסוי וטעייה.
- אם אתה בכלל לא רוצה שהמידע יהיה ניתן לאחזור, שקול ליצור אלגוריתם hashing במקום. אלגוריתם hashing לוקח קלט ויוצר ערך חד כיווני על סמך קלט זה. אפשר לעבור מקלט מקור לערך hashed, אך באופן אידיאלי אי אפשר לחזור לקלט המקור מערך ה- hashed. זה אפשרי במיוחד להגנה על סיסמאות. כשאתה יוצר חשבון באתר עם סיסמה, אתרים אתיים יביאו את הסיסמה שלך לפני האחסון שלה. יש לכך יתרונות רבים, כגון עיכוב התוקפים מפיצוח הסיסמה שלך. עם זאת, אם תשכח את הסיסמה, תאלץ ליצור סיסמה חדשה.
- 4טיוטה של הפסאודוקוד. זה אמור להיות קל יחסית לאחר שיוצרים את האלגוריתם שלך ונבדק כדי להוכיח שהוא עובד. ה- Pseudocode צריך לקרוא כמו אנגלית פשוטה ומלמדת, להיות קריא מספיק בשביל שאדם רגיל יבין, ומלמד מספיק בשביל מתכנת ליישם בקלות את האלגוריתם לשפה כמו C, Java וכו '.
חלק 2 מתוך 2: פרסם את האלגוריתם
- 1שתף את האלגוריתם שלך עם חובבי הצפנת נתונים אחרים. זה יאפשר לך לגלות דלתות אפשריות בהצפנה שלך ולקבל משוב על האבטחה והכדאיות של האלגוריתם. אם האלגוריתם שלך כל כך מורכב שאף אחד לא יכול להבין אותו, אז אף אחד לא ישתמש בו. אך כנ"ל לגבי האלגוריתם כל כך קל עד שכל אחד יכול לפענח הודעה במאמץ מינימלי.
- 2פרסם אתגר בפורום. ישנם פורומים המוקדשים לפתרון ופענוח נתונים, נסה לפרסם הודעה קצרה שהצפנת יחד עם רמזים לגבי האלגוריתם בו נעשה שימוש. אם אתה מרגיש בטוח, אתה יכול אפילו לתת להם את האלגוריתם שלך ולראות כמה זמן לוקח לאחרים לפצח אותו באמצעות כוח אכזרי.
- התחל בללמוד כיצד פועלים אלגוריתמי הצפנה פופולריים אחרים. RSA הוא ייחודי ונמצא בשימוש נרחב בעולם האמיתי לצורך הצפנת נתונים.
- יצירת אלגוריתם הצפנה טוב לעולם אינה קלה, במיוחד אם זו הפעם הראשונה שלך. התחל עם רעיון ובנה עליו. אם אתה מבחין בפגם, ייתכן שיהיה קל יותר להתחיל מחדש לחלוטין במקום לנסות לתקן את הפגם.
- אלגוריתם הצפנה אמור לעבוד ברמת המידע. הימנע פשוט ליצור צופן שעובד רק עם שינוי אותיות בהודעה למשהו שונה במקצת. אלה תמיד חסרי ביטחון.
- אלא אם כן יש לך תואר בתורת המידע או באבטחה, אתה כנראה לא צריך להשתמש בהצפנה שלך כדי לאבטח את הסיסמאות שלך או מידע פרטי אחר.
- שום הצפנה אינה מושלמת. אם אתה מתכנן לאחזר את הנתונים שאתה מצפין, זה לבדו יוצר חור בהצפנה שלך. גם כשאתה לא רוצה לאחזר את הנתונים, זה עדיין יכול להיות, לפחות תיאורטית, סדוק ומתגלה.
קרא גם: כיצד להפוך במהירות למומחה אקסל?