SHARE THE PERSPECTIVE
בדיקת ביצועים צריכה מכשיר, עומס עבודה, שיטה ואי־ודאות — לא רק מספר שנראה מהיר.

אין אחוז צריכת סוללה אוניברסלי שאפשר להצדיק עבור ML-KEM-768 ב־Android. העלות תלויה במימוש, בטלפון, בהקמת הסשן, בתדירות רענון המפתחות ובהתנהגות הרשת. תוצאה מהירה בבדיקת ביצועים קריפטוגרפית במחשב שולחני אינה מוכיחה דבר על חיי הסוללה של יישום מלא להעברת הודעות בנייד.

המאמר הזה מסביר מה אפשר לחשב מתוך התקן ומה דורש מדידה. לא נערכה עבור המאמר הזה שום בדיקת ביצועים של צריכת הסוללה של Livara ב־Android. התהליך שלהלן הוא תוכנית בדיקה, לא תוצאה שנטען כי התקבלה.

מה אפשר ללמוד מהתקן

ML-KEM הוא מנגנון לאנקפסולציה של מפתחות: הוא מסייע ביצירת סוד משותף שפרוטוקול יכול להשתמש בו להצפנה סימטרית. לפי FIPS 203, ב־ML-KEM-768 אורכו של מפתח האנקפסולציה הוא 1,184 בתים ואורכו של טקסט ההצפנה הוא 1,088 בתים. יחד, שני האובייקטים האלה מסתכמים ב־2,272 בתים.

הסכום הזה אינו הגודל המלא של לחיצת יד בפרוטוקול להעברת הודעות, וגם אינו בהכרח תוספת התעבורה שהיא גורמת ברשת. תעודות, חתימות, חומר מפתחות קלאסי, מסגור, קידוד, מפתחות שנשמרו במטמון ושידורים חוזרים יכולים כולם לשנות את מספר הבתים שנשלחים בפועל. המספר ״768״ הוא מזהה של קבוצת פרמטרים, לא אורך של סוד משותף בן 768 סיביות; קבוצת הפרמטרים הזו מיועדת לקטגוריית האבטחה 3 של NIST.

גודל נקבע באלגוריתם או דורש מדידה?
אורכי מפתח האנקפסולציה וטקסט ההצפנה מוגדרים בקבוצת הפרמטרים שנבחרה עבור ML-KEM
זמן יצירת המפתחות, האנקפסולציה והדה־אנקפסולציה יש למדוד במימוש ובמכשיר בפועל
מספר הבתים הכולל להקמת סשן יש למדוד את הפרוטוקול, כולל מסגור וניסיונות חוזרים
השהיית שליחה מקצה לקצה יש למדוד את היישום והרשת יחד
אנרגיה לכל עומס עבודה יש למדוד בניסוי מבוקר ברמת המכשיר

האם העלות נוצרת רק פעם אחת בכל סשן?

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

ארכיטקטורת LVR1 שפרסמה Livara מתארת תקופות ML-KEM מחזוריות לצד השלבים הרגילים בשרשראות ההודעות. לכן בדיקת ביצועים שימושית חייבת לכסות גם העברת הודעות במצב יציב וגם אירועי רענון מפתחות. אין לטעון שהעבודה הפוסט־קוונטית לעולם אינה חוזרת.

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

תוכנית מדידה ניתנת לשחזור ב־Android

1. תעדו את הסביבה

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

2. הפרידו בין בדיקות של פעולות יסוד לבדיקות של היישום

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

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

3. הגדירו עומסי עבודה מציאותיים

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

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

4. מדדו אנרגיה, לא רק זמן

Power Profiler של Android Studio יכול לקשר בין פעילות לבין מדידות במסילות המתח בחומרה נתמכת. Google מזהירה שמדובר במדידות ברמת המכשיר, ולכן פעילות אחרת מוסיפה רעש למדידה. שיטות המדידה הנתמכות משתנות ממכשיר למכשיר.

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

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

איור של מערך מדידה, לא תוצאות מתועדות של בדיקת ביצועים.

מה צריכה לכלול טבלת תוצאות שימושית?

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

השאירו תאים שלא נמדדו ריקים או סמנו אותם ב״לא נמדד״. תרשים עמודות להמחשת צריכת אנרגיה עם חלקים יחסיים מומצאים אינו ראיה.

ומה לגבי תמונות וסרטונים?

קבצים מצורפים גדולים משתמשים בדרך כלל בהצפנה סימטרית, ולא ב־ML-KEM עבור כל בלוק תוכן. יצירת הסוד המשותף עדיין עשויה להשפיע על שלב ההקמה, ואילו עיבוד קבצים, אחסון, העברה ברשת ומנגנון הניסיונות החוזרים משפיעים על הפעולה כולה. יש למדוד את התרומה היחסית בעומס העבודה בפועל; ״לעולם לא מורגש״ אינו טיעון אוניברסלי מבוסס.

שאלות נפוצות

האם ML-KEM-768 תמיד איטי יותר מ־P-256?

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

האם סכום ביקורת של APK מאמת תוצאות ביצועים?

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

האם משתמשים צריכים להשבית הצפנה כדי לחסוך בסוללה?

אל תוותרו על דרישת אבטחה על סמך טענה לא מבוססת על ביצועים. תחילה זהו את המקור האמיתי לצריכת הסוללה והשתמשו בהגדרות או בעדכונים נתמכים.

מקורות

אמתו את קובץ ה־APK ל־Android ב־Proof Lab
CONTINUE THE THREADPost-quantum encryption ↗Android & device security ↗
YOU’VE REACHED THE ENDBack to the reading room ↗