stanford-oval/wikipedia huggingface dataset:
פרוטוקול סיגנל
מבנה

פרוטוקול סיגנל (בגרסה השלישית שלו) בנוי ממספר שכבות שלכל אחת מהן תפקיד קריפטוגרפי נפרד:
שכבת האימות משתמשת בחתימה דיגיטלית מסוג XEdDSA וההרחבה שלה, VXEdDSA. EdDSA היא למעשה וריאציה של חתימת DSA בעקום אליפטי מיוחד הנקרא עקום אדוארד המאפשר ביצוע יעיל במחשב פשוט. הפרוטוקול מבוסס על פונקציית דיפי הלמן X25519 שפותחה על ידי דניאל ברנשטיין או פונקציית דיפי-הלמן X448 שפותחה על ידי מייק המבורג - שתיהן ידועות ביעילות וביטחון גבוהים ושתיהן שולבו בתקנים בינלאומיים.
שכבת לחיצת היד שבה מתבצע שיתוף מאומת של מפתח סודי ארעי בשיטת דיפי הלמן משולשת הנקראת X3DH. שיטה זו מספקת ביטחון קדימה ויכולת הכחשה.
שכבת השיחה. במהלך השיחה משתמשים באלגוריתם לשיתוף מפתחות זמניים הבנוי על עקרון ראצ'ט קריפטוגרפי המשלב את פונקציית דיפי הלמן עם פונקציית גיבוב כדי לייצר מפתחות חד-פעמיים באופן שלא ניתן לחזור לאחור. כל מפתח מושמד לאחר השימוש בו. תוך הבאה בחשבון שהודעות עשויות להגיע שלא לפי סדר שליחתן.
שכבת ניהול שבה נעשה שימוש באלגוריתם "שומשום" כדי לנהל ולתחזק מפתחות זמניים באופן אסינכרוני עם תמיכה להתקנים מרובים או משתתפים מרובים.
מהלך הפרוטוקול

פרוטוקול סיגנל מחולק למספר שלבים, או "מצבים":
רישום. בשלב הרישום כל משתתף רושם את פרטיו האישיים אצל שרת מרכזי וכן שולח אליו "צרור טרום-מפתחות" המכיל אוסף של מפתחות ציבוריים של דיפי הלמן איתם אפשר יהיה לבצע לחיצת יד עם משתמש אחר על מנת להתחיל שיחה. הצרור מורכב משלושה סוגים;
"מפתח זהות" (Identity Key), שהוא מפתח ציבורי ארוך טווח המייצג את המשתמש במערכת
מפתח ציבורי לטווח בינוני שנקרא "מפתח ארעי" (Signed Pre-Key) שמוחלף מעת לעת
רשימה של "מפתחות חד-פעמיים" (One-Time Pre-Keys) לשימוש יחיד.
כמובן שלכל המפתחות הללו מתאימים מפתחות פרטיים סודיים השמורים מקומית אצל המשתמש ולעולם אינם נשלחים ברשת.
התחלת שיחה (session). אם אליס רוצה להתחיל שיחה מוצפנת עם בוב עליה לבקש מהשרת את צרור המפתחות הציבוריים של בוב. וכן עליה לייצר מפתח "ראצ'ט" ציבורי ארעי חדש, ולגזור ממנו שלושה מפתחות סודיים:
"מפתח השורש" (Root Key)
"מפתח שרשרת" (Chain Key)
ו"מפתח מסר" (Message Key), איתו מצפינים את ההודעות
את המפתחות מכינים בשיטת דיפי הלמן משולשת באמצעות שילוב המפתח הפרטי של אליס עם המפתחות הציבוריים של בוב ובשילוב פונקציית גזירת מפתחות (בקיצור KDF) המפורטים להלן.
קבלת שיחה. כאשר בוב מקבל בקשת התחלת שיחה מאליס, הוא משיג עותק של צרור המפתחות הציבוריים של אליס מהשרת וממנו הוא מכין את הסוד המשותף באותה שיטה. כמו כן גוזר ממנו מפתחות באותה שיטה שבה השתמשה אליס, בהם הוא משתמש לפענוח ואימות ההודעה.
ראצ'ט סימטרי (שליחת הודעה כחלק מרצף). כאשר אליס מעוניינת לשלוח לבוב הודעה נוספת מבלי להמתין עד לקבלת אישור שההודעה הראשונה התקבלה, היא מייצרת מפתח חדש בשיטת ראצ'ט סימטרי, דהיינו גוזרת מפתח מסר חדש מהקודם באמצעות פונקציית KDF, מקדמת את מונה מפתחות ההודעות, ושולחת לבוב את ההודעה המוצפנת עם המפתח החדש. היתרונות של ראצ'ט סימטרי הם שהוא מספק סודיות מושלמת קדימה וכן מתאים למקרים בהם הצד השני אינו מקוון, שאז צד אחד מבצע את הראצ'ט ושולח הודעה ואילו הצד השני יבצע את הראצ'ט רק כאשר הוא יתחבר. בנוסף בשיטה זו ניתן לדלג מעל מפתח ראצ'ט אחד, כל עוד המספר הסידורי של כל מפתח ידוע. אם למשל הגיעה הודעה עם מספר סידורי שונה ממה שצפוי, המקבל יכול עדיין לחלץ את המפתח הנכון על ידי "סיבוב" הראצ'ט מהשורש עד שהוא מגיע למספר הסידורי הנכון.
ראצ'ט אסימטרי (שליחת הודעה חדשה). כאשר בוב מעוניין להגיב לאליס עליו לייצר תחילה מפתח ראצ'ט אסימטרי ארעי, לגזור ממנו באמצעות פונקציית KDF את מפתח השרשרת ומפתח המסר ולהצפין עם האחרון את ההודעה. כאשר אליס מגיבה להודעה זו, היא משלימה את תהליך הראצ'ט האסימטרי. מכינה ושולחת מפתח ראצ'ט ארעי חדש ממנו היא גוזרת מפתחות לצורך הצפנת ההודעה וכן הלאה. ראצ'ט אסימטרי יכול להתבצע רק לאחר סבב מלא, כל צד צריך להשלים את הראצ'ט האסימטרי של הצד השני ואז מתחיל ראצ'ט חדש. עם השלמת ראצ'ט אסימטרי לאחר סבב שלם של הודעות (הודעה מאליס לבוב והודעה מבוב לאליס) מחדשים את מפתח השורש ומפתח השרשרת כדי להתחיל ראצ'ט סימטרי חדש. בניגוד לראצ'ט סימטרי, היתרון של ראצ'ט אסימטרי הוא סודיות מושלמת עתידית. גם אם מפתח הודעה אחד נחשף לא תהיה באפשרות המתקיף לנחש את המפתח הבא כי המפתח הבא נגזר מסוד חדש שהצדדים משתפים ביניהם.
מהלך הפרוטוקול > חתימת XEdDSA

חתימת XEdDSA היא וריאציה של החתימה הדיגיטלית DSA מעל העקום האליפטי עקום 25519 או עקום 448. אילו הם עקומים מיוחדים הנמנים עם עקומי אדוארד ומכאן שם האלגוריתם. הפרמטרים הקבועים של העקום הם נקודת בסיס קבועה  B והסדר שלה  q והקבועים  c , d ו- A של עקום אדוארד. כפל סקלרי של נקודה הוא פעולה ארוכה וצורכת משאבים ולכן מנסים לייעל אותה על ידי שימוש בסולם מונטגומרי שבנוסף יתרונו הוא שהוא עמיד נגד התקפת ערוץ צדדי. לצורך סולם מונטגומרי משתמשים כאן רק בקואורדינטה  y של הנקודה בשיטת קואורדינטות פרויקטיביות. היות שהעקום הוא מסוג אדוארד, יש צורך בפונקציה מוסכמת להמרת נקודה מעקום אדוארד לעקום מונטגומרי ובחזרה (הפונקציה לא מובאת כאן). הפונקציה  {\text{calculate key pair}} בתהליך החתימה להלן מקבלת את המפתח הסודי  k  שלם כלשהו ומחזירה את  (A,a) שהם המפתח הפרטי והמפתח הציבורי שהוא נקודה בעקום אדוארד. שים לב שהנקודה  A מתקבלת מהכפלת נקודת הבסיס בשלם הסודי בשיטת סולם מונטגומרי. כדי לחתום על מסר  M תחילה יש צורך במחרוזת אקראית כלשהי  Z חד-פעמית עבור כל מסר נתון. בהינתן הפרמטרים הקבועים של העקום, הפונקציה המתוארת להכנת המפתחות והמפתח הסודי  k החתימה והאימות על המסר  M מתבצעים כדלהלן:
| --- | --- |
  {\boldsymbol {\mathbf {XEdDSA} _{Sign}(k,M,Z)}}  \ \ \ \ A,a={\text{Calculate key pair}}(k)  \ \ \ \ r={\text{hash}}_{1}(a\ \|\ M\ \|\ Z){\text{ (mod }}q)  \ \ \ \ R=rB  \ \ \ \ h={\text{hash}}(R\ \|\ A\ \|\ M){\text{ (mod }}q)  \ \ \ \ s=r+ha{\text{ (mod }}q)  \ \ \ \ {\text{Return }}(R\|s):   {\boldsymbol {\mathbf {XEdDSA} _{Verify}(u,M,(R\|s))}}  \ \ \ \ {\text{If }}u\geq p{\text{ or }}R.y\geq 2^{|p|}{\text{ or }}s\geq 2^{|q|}{\text{ Return False}}  \ \ \ \ A={\text{Convert from montgomery to Eduard}}(u)  \ \ \ \ {\text{If }}A{\text{ Is not on the Curve Return False}}  \ \ \ \ h={\text{hash}}(R\|A\|M){\text{ (mod }}q)  \ \ \ \ R'=sB-hA  \ \ \ \ {\text{If }}R'=R{\text{ Return True else Return False}}
כדי לאמת את החתימה דרושים הפרמטרים הקבועים של העקום, המפתח הציבורי של החותם  u (בעקום מונטגומרי) המסר  M וזוג הערכים שהתקבלו מהחתימה  R ו- s. הסימן  \| מייצג שרשור. הפונקציה  {\text{hash}}_{i} היא פונקציית גיבוב מותאמת המתקבלת על ידי שרשור הערך  2^{b}-1-i לקלט  x לפני הקריאה לפונקציה. כך שמתקבל  h(2^{b}-1-i\ \|\ x). במקרה של  {\text{hash}}_{1} יוצא שלפני הקלט נוספת תחילית המורכבת ממחרוזת אחדים באורך  b-1 ואפס בסופה.  b מייצג את אורך נקודה בעקום בסיביות. בנוסף הפרוטוקול תומך בגרסה מורחבת הנקראת VXEdDSA שהיא דומה לזו המתוארת אך מכילה תכונה נוספת. בגמר הפרוטוקול היא מפיקה מחרוזת פסאודו אקראית נוספת המשרתת כהוכחה לפונקציה אקראית בקיצור VRF.
מהלך הפרוטוקול > פרוטוקול דיפי-הלמן משולש (X3DH)

פרוטוקול X3DH הוא פרוטוקול שיתוף מפתח קנייני המבוסס על פרוטוקול דיפי-הלמן (שאיתו שני משתמשים מבצעים שיתוף מפתח סודי מאומת לצורך התקשרות עתידית) שעושה שימוש בשלושה סוגים של זוגי-מפתחות במקום באחד.
הפרוטוקול מכיל סודיות מושלמת קדימה ויכולת הכחשה וכן מותאם לעבודה במצב אסינכרוני, כלומר כל אחד מפרסם מפתחות ציבוריים מראש וכאשר מישהו מעוניין להתקשר עמו גם אם הוא אינו מחובר באותו רגע הוא יכול לבקש מהשרת את המפתחות השמורים שלו ולבצע את פרוטוקול השיתוף בלעדיו. מאוחר יותר כאשר אותו משתמש מתחבר הוא מקבל מהשרת התראה שמחכה לו הודעה הוא יכול להשתמש במפתח הפרטי המתאים, יחד עם המפתח הציבורי של השולח שנכלל בהודעה, לבצע את אותו תהליך שיתוף ולחלץ את הסוד המשותף כדי לפענח את ההודעות שקיבל.
הפרוטוקול פועל בעקום אליפטי מסוג עקום 25519 או עקום 448. בנוסף הפרוטוקול משתמש בפונקציית הגיבוב SHA-256 או SHA-512 לפי בחירה ובפונקציית קידוד מוסכמת לייצוג המפתחות הציבוריים. ההנחה לפני שהפרוטוקול מתחיל היא שאליס ובוב רשמו את המפתחות הציבוריים שלהם בשרת.
צרור המפתחות של כל משתמש כולל שלושה סוגים של זוגי מפתחות (key pairs), כאמור:
"מפתח זהות" המסומן  IK (Identity Key). המפתח לרוב קבוע ומשתנה במקרים נדירים (המשתמש החליף מפתח או התקין מחדש את היישום)
"טרום מפתח" (Signed Pre Key) המסומן  SPK כשהוא חתום על ידי המשתמש באמצעות מפתח הזהות (אל המפתח הוא מצרף את החתימה שלו עליו  {\text{Sign}}_{IK}(SPK)). את המפתח  SPK טוענים מחדש אחת לשבוע או חודש בהתאם ליישום בפועל.
רשימה של מפתחות חד-פעמיים (One-Time Pre Keys) המסומנים  OPK_{1},OPK_{2},... וכו'. כמות המפתחות החד פעמיים נקבעת לפי היישום (ברירת המחדל היא 2000 מפתחות).  מפתחות חד-פעמיים נטענים כאשר השרת מודיע ללקוח שהם עומדים להיגמר. בכל פעם שמשתמשים במפתח אחד מהם השרת מוחק אותו מהרשימה.
כאשר אליס מעוניינת לשלוח הודעה לבוב, תחילה היא מכינה מפתח דיפי הלמן ארעי  EK_{a} (Ephemeral Key) ומבקשת מהשרת את המפתחות הציבוריים של בוב:  IK_{b},  SPK_{b} וכן  OPK_{b} אם ישנו ואז היא מבצעת את פונקציית דיפי-הלמן שלוש פעמים. אם מסמנים את הפונקציה DH אז היא מבצעת לפי הסדר:
אם קיים מפתח חד-פעמי היא מבצעת גם  DH_{4}=DH(EK_{a},OPK_{b}) ואז היא משרשרת את כל התוצאות ביחד ומפעילה את פונקציית גזירת המפתח
כאשר  DH_{4} אופציונלי.
בנוסף לאמור אליס מכינה קובץ כותר המכיל מידע על זהותה וזהותו של בוב. את מפתחות הזהות שלהם  IK_{a} ו- IK_{b} וייתכן מידע נוסף. לסיום היא שולחת לבוב את מפתח הזהות שלה  IK_{a}, את המפתח הארעי שלה  EK_{a} ואת גוף ההודעה כשהיא מוצפנת עם SK או עם מפתח אחר שנגזר ממנו באמצעות פונקציה פסאודו-אקראית ומידע ניהולי נוסף. את ההצפנה היא מבצעת עם אלגוריתם להצפנה מאומתת עם מידע נלווה (AEAD). למעשה ההודעה משרתת שתי מטרות: אחת היא להעברת המסר שהיא מעוניינת והשנייה העברת מפתח ציבורי ארעי חדש על מנת שבוב יוכל להכין את המפתח הסודי המשותף לצורך תקשורת עתידית ביניהם. לכן כאשר בוב מקבל את המסר תחילה הוא מכין את המפתח המשותף ומפענח את ההודעה ואז אם ברצונו להחזיר תגובה לאליס הוא מייצר מפתח חדש ושולח לה אותו יחד עם ההודעה באותה דרך. כמובן שהוא מוחק מיד כל מפתח חד פעמי שנעשה בו שימוש.
מהלך הפרוטוקול > מחגר משונן כפול (Double Ratchet)

מחגר משונן כפול או ראצ'ט כפול הוא מנגנון קריפטוגרפי המאפשר לשני משתתפים לנהל שיחה מוצפנת בהתבסס על סוד משותף שהשיגו קודם לכן. בדרך כלל הסוד המשותף מושג באמצעות פרוטוקול דיפי-הלמן כמו פרוטוקול דיפי-הלמן משולש המתואר לעיל. לאחר שיתוף הסוד המשתתפים ישתמשו בפרוטוקול ראצ'ט כפול כדי לגזור מפתחות חדשים עבור כל הודעה באופן כזה שגם אם מפתח אחד נחשף בדרך כלשהי לא ניתן יהיה לנחש על ידו מפתחות אחרים, לא עתידיים ולא קודמים בשרשרת המפתחות. משיגים זאת על ידי צירוף מפתחות דיפי-הלמן ארעיים חדשים עם כל הודעה ואיתם משתפים סודות חדשים מהם שוב גוזרים מפתחות חדשים וכן הלאה. למעשה מכל סוד משותף גוזרים מפתחות חדשים בשילוב הראצ'ט הסימטרי, דהיינו באמצעות פונקציית KDF לגזירת מפתחות הצפנה והתהליך חוזר על עצמו שוב ושוב עד לסיום השיחה. המושג ראצ'ט משמש כאן לתיאור מצב שבו לא ניתן לחזור שלב אחד לאחור, בדומה לכלי העבודה לחיזוק ברגים המסתובב רק בכיוון אחד. השילוב של הראצ'ט הסימטרי עם הראצ'ט האסימטרי המפורטים להלן יוצר ראצ'ט כפול שגורם לכך שלא ניתן לנוע (להסיק) ממפתח אחד לאחר לא קדימה ולא אחורה, מכאן שם האלגוריתם.
האלגוריתם מכיל "שרשרת מפתחות" מבוססת KDF שהיא פונקציה לגזירת מפתחות שמקבלת מפתח סודי ומידע נוסף ומפיקה מפתח חדש באופן אקראי ובלתי תלוי במפתח הקודם. פונקציית HKDF (המתוארת להלן) מקיימת את ההגדרה של פונקציית PRF, גם אם הקלט אינו אקראי עדיין תתקבל תוצאה אקראית ובלתי תלויה לכן היא מספקת ביטחון לפנים, אם נחשף מפתח אחד, לא ניתן לנחש את המפתח הקודם ממנו הוא נגזר. למעשה שרשרת המפתחות מורכבת משלוש שרשראות: שרשרת מפתחות שורש ושתי שרשראות מקבילות, שרשרת משלוח ושרשרת קבלה. בנוסף בכל סבב הצדדים מפיקים ומשתפים מפתח דיפי-הלמן שהופך להיות חלק ממפתח השורש הבא. ממפתחות השורש מתחילים שרשרת משלוח או שרשרת קבלה בהתאם.
כל הודעה שנשלחת או מתקבלת, מוצפנת עם "מפתח הודעה" חדש. את ממפתח ההודעה מפיקים בצד השולח משרשרת המשלוח ובצד המקבל משרשרת הקבלה. לאחר משלוח ההודעה המפתח נמחק מיד, אפילו אם ההודעה טרם הגיעה ליעדה או שלא התקבל אישור שהיא נקראה. היות שמפתח ההודעה אינו משמש לגזירת מפתחות אחרים, אין בו צורך יותר ומיד בגמר השימוש בו אפשר למחוק אותו. המקבל יכול להשיג את מפתח ההודעה הדרוש לפענוח הודעה ספציפית מתוך שרשרת הקבלה שלו לפי אינדקס ההודעה וגם הוא אינו זקוק לשמירת המפתח לאחר קריאת ההודעה. כך אפשר להתמודד עם הודעות שלא הגיעו כסדרן. חישוב המפתח הבא בשרשרת המשלוח וגזירת מפתח ההודעה הבא נקרא ראצ'ט סימטרי והוא אינו מספק ביטחון עתידי. אם מפתח אחד בשרשרת נחשף, אמנם אי אפשר לחשב את המפתחות הקודמים אך אפשר לחשב את כל המפתחות הבאים כי ה-KDF דטרמיניסטי ואם הקלט ידוע קל לדעת מה יהיה הפלט.
ראצ'ט דיפי-הלמן (בקיצור DH) הוא ראצ'ט אסימטרי המבוסס על שיתוף סוד בשיטת דיפי-הלמן והוא מספק ביטחון עתידי. ידיעת מפתח אחד אינה תורמת דבר לניחוש המפתח הבא. לכן את הסוד המשותף שנולד כתוצאה מהראצ'ט האסימטרי מערבבים עם הקלט ל-KDF ומחשבים מפתח שורש חדש איתו אפשר להתחיל שרשרת מפתחות חדשה ואז ממשיכים עם הראצ'ט הסימטרי עד לסבב הבא וחוזר חלילה. לכל הודעה מצורף כותר המכיל מפתח ציבורי ארעי טרי של השולח. כאשר ההודעה מתקבלת, המקבל משלים את הראצ'ט האסימטרי על ידי הכנת מפתח ציבורי ארעי משלו אותו הוא מצרף להודעה הבאה שהוא שולח. בתהליך זה המתנהל כמו "פינג פונג", כל צד שולח בתורו מפתח חדש והצד השני מפעיל את פונקציית דיפי-הלמן כדי לגזור את מפתח הראצ'ט האסימטרי הבא בתור ובד בבד מכין את המפתח לראצ'ט האסימטרי הבא.
מהלך הפרוטוקול > פונקציית גזירת מפתחות

לצורך פרוטוקול סיגנל משתמשים בפונקציית גזירת מפתחות (בקיצור KDF) המבוססת על HKDF לפי RFC 5869 שהיא בתורה מסתמכת על HMAC. הפונקציה HKDF מקבלת ערך חד-פעמי הנקרא מלח (שהוא מחרוזת אפסים בפרוטוקול סיגנל) וכן את הקלט ממנו מעוניינים להפיק מפתחות אחרים. היא מבצעת שני שלבים: שלב חילוץ סודיות ושלב הרחבה. היא משתמשת בפונקציה HMAC המקבלת שני פרמטרים, מפתח סודי וקלט באורך כלשהו ומחזירה תג באורך המפתח. תחילה מפעילים את הפונקציה HMAC על הקלט  KM ומקבלים את PRK לאחר מכן מחשבים את HMAC באופן חוזר ונשנה עם המפתח PRK על מחרוזת כלשהי המסומנת כאן  {\text{info}} שהיא מחרוזת טקסט תלויית יישום כמו "MyProtocol" ומונה  i שמקודם עם כל קריאה, עד שמתקבל מפתח סודי אחד או כמה מפתחות באורך הרצוי. לסיכום הפסאודו קוד הבא ממחיש יצירת  t מפתחות סודיים מתוך מפתח מאסטר אחד:
ביטחון

ממחקרים שפורסמו ב-2016 על ידי אוניברסיטאות אחדות עולה שהפרוטוקול במבנה הבסיסי בשיחה בין שני משתמשים בטוח לשימוש. בינואר 2018 פורסם מחקר המצביע על חולשה בפרוטוקול סיגנל בשיחה קבוצתית בתוכנות סיגנל, ואטסאפ וטרימה. בניגוד לשיחה בין שני משתתפים בלבד המתקיימת לפי כללי הצפנה מקצה לקצה, בשיחה קבוצתית, שלמות השיחות ומסרי הניהול של הקבוצה אינם מוצפנים מקצה לקצה וכן לא מופעל אימות. משמעות הדבר היא שמי שיש לו גישה לשרת ההודעות יכול להוסיף עצמו לכל קבוצה ללא ידיעת מנהליה ובכך להפר את הקונספט של הצפנה מקצה לקצה. אם מישהו יכול להוסיף עצמו לכל קבוצה שיחפוץ הוא יקבל את כל השיחות המוצפנות בתוך הקבוצה כך שאין כל תועלת בהצפנה. הבעיה פחות קריטית בסיגנל משום שבתוכנה זו כל חברי הקבוצה הם גם מנהלים בהגדרה ולשרת אין גישה למסרי ניהול הקבוצה. החוקרים הציעו כמה תיקונים גנריים במטרה להבטיח אימות והצפנת כל המסרים והשיחות כולל מסרי ניהול המיועדים למנהלי הקבוצות. ראוי לציין שיישום ההתקפה בפועל מאוד קשה והתיקון קל מאוד כך שסביר להניח שבזמן הקרוב תוכנות המסרים המדוברות יפיצו עדכוני תוכנה מתאימים להסרת האיום.
ראו גם

מיסור שלא לפרסום
פרוטוקול שיתוף מפתח
פרוטוקול דיפי-הלמן
הערות שוליים

↑  Signal Specifications
↑  Signal Protocol library for Java/Android
↑  Video calls for Signal now in public beta
↑  Advanced cryptographic ratcheting
↑  Cohn-Gordon, Katriel; Cremers, Cas; Dowling, Benjamin; Garratt, Luke; Stebila, Douglas (25 October 2016). A Formal Security Analysis of the Signal Messaging Protocol (PDF). Cryptology ePrint Archive. International Association for Cryptologic Research (IACR).
↑  Ermoshina, Ksenia; Musiani, Francesca; Halpin, Harry (September 2016). End-to-End Encrypted Messaging Protocols: An Overview. In Bagnoli, Franco; et al. Internet Science. INSCI 2016. Florence, Italy: Springer. pp. 244–254.
↑  Frosch, Tilman; Mainka, Christian; Bader, Christoph; Bergsma, Florian; Schwenk, Jörg; Holz, Thorsten (March 2016). How Secure is TextSecure?. 2016 IEEE European Symposium on Security and Privacy (EuroS&P). Saarbrücken, Germany: IEEE. pp. 457–472
↑  Unger, Nik; Dechand, Sergej; Bonneau, Joseph; Fahl, Sascha; Perl, Henning; Goldberg, Ian Avrum; Smith, Matthew (2015). SoK: Secure Messaging (PDF). Proceedings of the 2015 IEEE Symposium on Security and Privacy. IEEE Computer
↑  TextSecure Protocol: Present and Future, talk by Trevor Perrin at NorthSec 2015 (video)
↑  More is Less. On the End-to-End Security of Group Chats in Signal, WhatsApp, and Threema
תיאור סכמתי של אלגוריתם מחגר משונן כפול. הראצ'ט האסימטרי DH משמש לעדכון מפתח השורש RK ואילו הראצ'ט הסימטרי משמש להכנת מפתחות הודעות CK ממפתח השורש. כל עוד המקבל לא הגיב בהודעה חוזרת משלו, הראצ'ט האסימטרי לא הושלם, לכן השולח ממשיך להשתמש בראצ'ט הסימטרי שוב ושוב עד לקבלת תגובה ראשונה מהמקבל. היות שמפתחות ההודעות נגזרים ממפתח השורש והיות שמפתח השורש ידוע לשני הצדדים, המקבל יכול לשחזר את מפתח ההודעה הדרוש כדי לפענח הודעה אחת בשרשרת לא בהכרח לפי הסדר על ידי שימוש באינדקס ההודעה.
קיווי מנוקד גדול

| קיווי מנוקד גדול |
| --- | --- |

מצב שימור
 מצב שימור: פגיע פגיע (VU) 
מיון מדעי
ממלכה:: בעלי חיים
מערכה:: מיתרניים
על־מחלקה:: בעלי ארבע רגליים
מחלקה:: עופות
על־סדרה:: עופות קדומים חסרי שיניים
סדרה:: קיוואים
תת־סדרה:: תרופודה
משפחה:: קיוויים
סוג:: קיווי
מין:: קיווי מנוקד גדול
שם מדעי
 Apteryx haastii ‏Potts, 1872
תחום תפוצה


קיווי מנוקד גדול (שם מדעי: Apteryx haastii) הוא מין של עוף לא מעופף ממשפחת הקיוויים החי בניו זילנד.
מאפיינים

הקיווי הוא עוף שכמעט איבד את שרידי כנפיו. הוא מגיע לאורך 45 סנטימטרים בזכרים ו־50 סנטימטרים בנקבות ולמשקל של עד 3.3 קילוגרם. לקיווי נוצות עבות בצבע חום והם מזכירות יותר שערות מאשר נוצות. המקור בעל שערות בקצה והוא מוארך וכפוף מלמטה, מה שעוזר לו לחפש תולעים באדמה. הרגליים קטנות והגוף בצורה מעוגלת.
הקיווים הם עופות ליליים היוצאים בערבים לחוף או לשדות ומחפשים יצורים קטנים כמו תולעים או סרטנים. הם נעזרים לשם כך בשערות מקורם וגם בחוש הריח הרגיש שלהם.
מין זה, כמו מיני עופות רבים מניו זילנד, נמצא בסכנת הכחדה עקב פגיעה אנושית בהם ועקב הבאת חיות לא ילידות המאיימות עליהם כמו שועלים, חולדות וחתולים.
הערות שוליים

↑  קיווי מנוקד גדול באתר הרשימה האדומה של IUCN
| --- | --- |
בקרת זהויות :  NLI: 987007398202905171 
קיווי בשבי
קוורה

| --- | --- |

 סוג:  אתר שאלות ותשובות
 סלוגן:  התשובה הטובה ביותר לכל שאלה
 תקופת הפעילות:  25 ביוני 2009 – הווה (15 שנים) 
 מייסדים:  אדם דאנג'לו, צ'ארלי צ'יבר 
 מנכ"ל:  אדם דאנג'לו 
 הרשמה:  חובה
 שפות תכנות:  פייתון 
 www.quora.com
 
קְווֹרָה (באנגלית: Quora) הוא אתר אינטרנט לשאלות ותשובות הנכתבות על ידי הגולשים בשפות שונות. באתר נשאלות שאלות, והן מקבלות מענה, נערכות ומאורגנות על ידי חברי הקהילה. החברה נוסדה ביוני 2009, והאתר הושק ב־21 ביוני 2010. קוורה השיקה אתר בעברית ב-2019. קוורה אוספת שאלות ותשובות לנושאים שונים. משתמשים יכולים לערוך בשותפות שאלות, ולהציע הצעות עריכה לתשובות של המשתמשים השונים בקהילה, ובכך לרתום את כוחה של חוכמת ההמונים כדי להגיע למידע המדויק והמקיף ביותר.
היסטוריה

אתר קוורה נוסד על ידי שני עובדי פייסבוק לשעבר, אדם ד'אנג'לו וצ'ארלי צ'יבר. ד'אנג'לו התפטר מתפקידו בפייסבוק בינואר 2010 כדי ליצור את קוורה. הוא אמר שהוא וצ'יבר רצו ליצור את קוורה מכיוון שהם חשבו "ש'שאלות ותשובות' הוא אחד מהאזורים באינטרנט שיש המון אתרים שמתעסקים בהם, אבל אף אחד עדיין לא קם ויצר משהו באמת טוב".
כמות המשתמשים בקוורה הוערכה בכ־500,000 משתמשים רשומים נכון לינואר 2011. ביוני 2011 אתר קוורה עוצב מחדש במטרה להפוך את מציאת המידע והניווט באתר לנוחים יותר. משתמשים רבים שמו לב לכך שהעיצוב דומה מאוד לעיצובו של אתר ויקיפדיה. קוורה שחררה יישומון למכשירי ה־אייפון ב־29 בספטמבר 2011, ואחריו למכשירי האנדרואיד ב־5 בספטמבר 2012.
בחודש נובמבר 2019 השיק האתר גרסת בטא בשפה העברית, ובדצמבר היא הוכרזה כרשמית.
פעילות

בקוורה ניתן לפרסם שאלות, תשובות ופוסטים בחלק הכללי של האתר, ולהקים מרחבים בהם ניתן לכתוב על נושא לבחירת המשתמשים. המשתמשים יכולים להצביע בעד או נגד (באנגלית: Upvote ו־Downvote), וגם יכולים להציע עריכות לתשובות שסופקו על ידי אחרים. עד 19 באפריל 2021, בקוורה נדרשו המשתמשים להירשם בשמם המלא, ולא באמצעות כינוי או שם בדוי.
קהילת קוורה כוללת מספר אישים ידועים, כמו מארק אנדריסן, דאסטין מוסקוביץ', ג'ימי ויילס, סטיבן פריי ואשטון קוצ'ר. רבים ממשתמשי קוורה פועלים מאזור עמק הסיליקון, ורבים נוספים מניו יורק. קרוב ל-40% מהמשתמשים פועלים מהודו נכון לינואר 2014.
מבחינת הארכיטקטורה של האתר, האתר קוורה נבנה בעזרת Pylons ו־Comet עבור צד השרת של האתר. הוא משתמש ב־MySQL כמסד הנתונים, ושרתי החברה מופעלים באמצעות מערכת ההפעלה אובונטו. מפתחי קוורה משתמשים בגיט על מנת לפתח את המוצר. אנשי הצוות של קוורה פיתחו, בנוסף, אלגוריתם לדירוג תשובות, שדומה לאלגוריתם PageRank. האתר גם משתמש בטכנולוגיית הענן של אמאזון, שמאחסנת את השרתים שמריצים אותו. באוגוסט 2011, החליטו מפתחי קוורה לעבור משימוש במימוש הפייתון CPython לשימוש ב-PyPy, על מנת לשפר את זמני התגובה של האתר.
פעילות > פרטיות הגלישה באתר

באוגוסט 2012 פרסם הבלוגר איוון קירגין שעמיתיו יכולים לראות את הפעילות שלו, כולל את השאלות בהן הוא צפה. בתגובה הפסיקה קוורה להראות מי צפה בשאלה. כברירת מחדל, קוורה חושפת את הפרופיל של משתמשיה, כולל שמם האמיתי, למנועי חיפוש.
נתונים כלכליים

במרץ 2010, קוורה קיבלה מימון של 11 מיליון דולרים מקרן הון הסיכון בנצ'מרק קפיטל, שהעריכה את חברת ההזנק ב־86 מיליון דולרים.
במאי 2012, קוורה גייסה 50 מיליון דולרים בסבב הגיוס B, בה הוערכה במעל 400 מיליון דולרים. המייסד ד'אנג'לו, שברשותו 0.8% ממניות Facebook, הוסיף 20 מיליון דולרים מכספו בסבב B.
באפריל 2014, קוורה גייסה 80 מיליון דולרים נוספים בסבב הגיוס C, בה הוערכה ב־900 מיליון דולרים. המימון הובל על ידי קרן הגידור Tiger Global Management.
באפריל 2017, קוורה גייסה 85 מיליון דולרים נוספים בסבב הגיוס D, בה הוערכה ב-1.7 מיליארד דולרים. המימון הובל על ידי קרנות הגידור Collaborative Fund ו-Y Combinator.
הערות שוליים

↑  Quora, Quora
↑  הגר בוחבוט, קווארה בעברית: "ישראלים משתפים הכל", באתר ynet, 29 בנובמבר 2019
↑  Quora is now available in 24 Languages! - The Quora Blog - Quora, www.quora.com
↑  יסמין יבלונקו, ‏אתר השאלות והתשובות Quora השיק גרסה בעברית, באתר גלובס, 14 בדצמבר 2019
↑  Removing Feed Stories about Views, Quora
צבי ערבי

| צבי ערבי |
| --- | --- |

מצב שימור
 מצב שימור: פגיע פגיע (VU) 
מיון מדעי
ממלכה:: בעלי חיים
מערכה:: מיתרניים
על־מחלקה:: בעלי ארבע רגליים
מחלקה:: יונקים
סדרה:: מכפילי פרסה
משפחה:: פריים
סוג:: צבי
מין:: צבי ערבי
שם מדעי
 Gazella arabica ‏ליכטנשטיין, 1827

צבי ערבי או צבי סינַי (שם מדעי: Gazella arabica; בתעתיק מערבית: غزال عربي - עַ'זַאל עַרַבִּיַיה), הוא מין של צבי החי בחצי האי ערב. הוא תואר מדעית לראשונה בשנת 1827 על ידי הזואולוג הגרמני מרטין ליכטנשטיין ויש שרצו לכלול בו את המין הנכחד - צבי מלכת שבא או לסווגו כתת-מין של מיני צבי אחרים (צבי הנגב וצבי מצוי).
זהותו של צבי זה התמיהה את הזואולוגים במשך למעלה מ-180 שנה. הדגימה היחידה של מין זה שנמצאה אי פעם ועליה גם התבסס התיאור המדעי (לקטוטייפ), נלקחה מאיי פרסן (ער') בים האדום השייכים לערב הסעודית בשנת 1825, אולם מאידך החוקרים מפקפקים בכך שאוכלוסיית בר של הצבי הייתה נפוצה בעבר על האיים הללו, ומשערים שהוא הובאה עליהם מהחלק היבשתי של סעודיה או ממקום אחר בחצי האי ערב (אוכלוסיית הצבאים כיום באיים אלו שייכת לצבי מצוי). הסיבה המרכזית לתיאור הצבי הערבי כמין נפרד, היא המבנה הייחודי של גולגולתו ששונה מכל צבי אחר באזור; הדגימה, אשר שייכת לצבי זכר נמצאת כיום במוזיאון בברלין.
מחקר טקסונומי משנת 2013 קובע באמצעות ניתוח פילוגנטי שהעור והגולגולת הייחודית של הצבי הערבי אשר נלקחו מאיי פרסן הסעודים משתייכים למעשה לשני פרטים נפרדים, המייצגים שתי שושלות אבולוציוניות בתוך הקלייד של הצבי המצוי. בין אם אכן מדובר במין נפרד ובין אם מדובר באוכלוסייה של מין אחר, סיבות ההכחדה של הצבי הערבי נותרו עלומות. עד 1997, הצבי הערבי סווג על ידי הרשימה האדומה של IUCN, כמין נכחד (EX); בעקבות הפקפוק במעמדו הטקסונומי, IUCN סיווג אותו בשנת 2008 כמין חסר נתונים ובשנת 2017 כמין פגיע.
ראו גם

צבי סעודי
צבי אדום
הערות שוליים

↑  צבי ערבי באתר הרשימה האדומה של IUCN
↑  מילון בעלי חיים: נכר (תשל"ב), 1972, באתר האקדמיה ללשון העברית
↑  דגימה שעליה מתבסס התיאור המדעי של בעל החיים וטרם נמצאה דגימה אחרת מלבדה, מכונה לקטוטייפ (lectotype).
| צבאיים |
| --- | --- | --- |
| אנטילופות ערבה | אנטילופות ערבה |  |
| צבי | צבי הנגב • צבי מצוי • צבי הודי • צבי קווייר • צבי רים • צבי ספיקי • צבי הזפק • צבי החול • צבי ארלנג'ר • צבי ערבי |    |
| צבי אמיתי | צבי תומסון • צבי מונגאלה • צבי אדום חזית • צבי הוגלין • צבי אדום |    |
| צבי דק-צוואר | צבי יחמורי • צבי גראנט • צבי סומרינג |    |
| צבי קלארק | צבי קלארק |    |
| צבי ג'ירפי | צבי ג'ירפי |    |
| אנטילופה הודית | אנטילופה הודית |    |
| דלגן | דלגן |    |
| צבי יעלי | צבי יעלי פרז'וואלסקי • צבי יעלי מונגולי • צבי יעלי טיבטי |    |
| סאיגות | סאיגות |    |
| סאיגה | סאיגה |    |
| אנטילופות סבך | אנטילופות סבך |    |
| אוריבי | אוריבי |    |
| צבי הסלעים | צבי הסלעים |    |
| אנטילופה ננסית | דלקרן המושק • אנטילופה מלכותית • אנטילופת בייטס |  |
| דיקדיק | דיקדיק גינתר • דיקדיק קירקי • דיקדיק כסוף • דיקדיק סולט |  |
| דוקרן | דוקרן הסטינבוק • דוקרן הכף • דוקרן שארפי |  |
| אנטילופת ביירה | אנטילופת ביירה |  |
קוון לוני

| --- | --- |

לוני בשנת 2016
 לידה:  6 בפברואר 1996 (בן 28) מילווקי שבוויסקונסין, ארצות הברית
 עמדה:  פאוור פורוורד, סנטר
 גובה:  2.06 מטר
 מספר:  5
 מכללה:  UCLA
 דראפט:  בחירה מספר 30, 2015 גולדן סטייט ווריורס
 קבוצות כשחקן
 2015–:  גולדן סטייט ווריורס
 הישגים כשחקן
 3 זכיות באליפות ה-NBA‏ (2017, 2018, 2022)
קוון גרנט לוני (באנגלית: Kevon Grant Looney; נולד ב-6 בפברואר 1996) הוא כדורסלן אמריקאי המשחק בקבוצת גולדן סטייט ווריורס מליגת ה-NBA, בעמדות הפאוור פורוורד והסנטר. ניחן במוטת ידיים ארוכה במיוחד של 2.24 מטרים.