این دیدگاه را به اشتراک بگذارید
بنچمارک به دستگاه، بار کاری، روش و عدم‌قطعیت نیاز دارد؛ نه فقط عددی که سریع به نظر برسد.

هیچ درصد مصرف باتریِ واحد و قابل‌دفاعی برای ML-KEM-768 در اندروید وجود ندارد. هزینه به پیاده‌سازی، گوشی، برقراری نشست، دفعات نوسازی کلید و رفتار شبکه بستگی دارد. سریع‌بودن یک بنچمارک رمزنگاری روی رایانهٔ رومیزی، عمر باتریِ یک پیام‌رسان کاملِ موبایل را مشخص نمی‌کند.

این مقاله توضیح می‌دهد چه چیزهایی را می‌توان از استاندارد محاسبه کرد و چه چیزهایی به اندازه‌گیری نیاز دارند. برای این مقاله هیچ بنچمارک مصرف باتریِ لیوارا در اندروید انجام نشده است. روش زیر یک طرح آزمون است، نه ادعای دستیابی به نتیجه.

استاندارد چه اطلاعاتی به ما می‌دهد؟

ML-KEM یک سازوکار کپسوله‌سازی کلید است: به ایجاد یک راز مشترک کمک می‌کند که پروتکل می‌تواند از آن برای رمزنگاری متقارن استفاده کند. در FIPS 203، کلید کپسوله‌سازیِ ML-KEM-768 برابر با 1,184 بایت و متن رمزشدهٔ آن برابر با 1,088 بایت است. مجموع این دو شیء 2,272 بایت است.

این مجموع، اندازهٔ کامل دست‌دهیِ یک پیام‌رسان یا لزوماً هزینهٔ افزودهٔ آن در شبکه نیست. گواهی‌ها، امضاها، داده‌های کلیدِ کلاسیک، قاب‌بندی، کدگذاری، کلیدهای ذخیره‌شده در حافظهٔ نهان و ارسال مجدد، همگی می‌توانند تعداد بایت‌های واقعاً ارسال‌شده را تغییر دهند. «768» شناسهٔ یک مجموعه‌پارامتر است، نه طولِ 768 بیتیِ راز مشترک؛ هدف این مجموعه، ردهٔ امنیتی 3 مؤسسهٔ NIST است.

کمیت الگوریتم آن را تعیین می‌کند یا باید اندازه‌گیری شود؟
طول کلید کپسوله‌سازی و متن رمزشده مجموعه‌پارامترِ انتخاب‌شدهٔ ML-KEM آن را تعریف می‌کند
زمان تولید کلید، کپسوله‌سازی و کپسول‌گشایی برای پیاده‌سازی و دستگاه واقعی اندازه‌گیری شود
تعداد بایت‌های کل فرایند برقراری نشست در سطح پروتکل، همراه با قاب‌بندی و تلاش‌های مجدد، اندازه‌گیری شود
تأخیر سرتاسریِ ارسال برنامه و شبکه با هم اندازه‌گیری شوند
انرژی مصرفی برای هر بار کاری با آزمایشی کنترل‌شده در سطح دستگاه اندازه‌گیری شود

آیا این هزینه فقط یک بار در هر نشست پرداخت می‌شود؟

نه لزوماً. یک پروتکل ممکن است در راه‌اندازی اولیه از KEM استفاده کند و هنگام به‌روزرسانی‌های دوره‌ایِ کلیدِ پساکوانتومی دوباره آن را به کار بگیرد. تغییرات عضویت گروه، دستگاه‌های جدید، نشست‌های ناموفق و بازیابی می‌توانند کار بیشتری ایجاد کنند. واحد درست، رویدادِ پروتکل است، نه این فرض که هر گفت‌وگو دقیقاً یک عملیات KEM انجام می‌دهد.

معماری منتشرشدهٔ LVR1 لیوارا دوره‌های تکرارشوندهٔ ML-KEM را در کنار گام‌های معمول زنجیرهٔ پیام توصیف می‌کند. بنابراین، یک بنچمارک مفید باید هم پیام‌رسانی در حالت پایدار و هم رویدادهای نوسازی کلید را پوشش دهد. نباید ادعا کند که عملیات پساکوانتومی هرگز تکرار نمی‌شود.

تعداد بایت‌های یک متن رمزشدهٔ ذخیره‌شده نیز به‌تنهایی اطلاعات چندانی دربارهٔ انرژی نمی‌دهد. یک بستهٔ اضافه ممکن است رفتاری متفاوت از چند بایت بیشتر در یک انتقالِ ازپیش‌فعال، در بخش رادیویی دستگاه ایجاد کند.

طرحی تکرارپذیر برای اندازه‌گیری در اندروید

1. محیط را ثبت کنید

مدل گوشی، بیلد اندروید، نسخهٔ برنامه، نسخهٔ کتابخانهٔ رمزنگاری، حالت ساخت، وضعیت باتری و وضعیت حرارتی را یادداشت کنید. نوع شبکه و شرایط سیگنال را ثبت کنید. داده‌های خصوصی حساب‌ها یا محتوای بسته‌ها را در گزارش بنچمارک منتشر نکنید.

2. آزمون عملیات پایه را از آزمون برنامه جدا کنید

آزمون عملیات پایه، تولید کلید، کپسوله‌سازی یا کپسول‌گشایی را به‌صورت مجزا اندازه می‌گیرد. آزمونِ کل برنامه، ایجاد نشست، ارسال پیام‌ها و بازیابی پس از قطع ارتباط را اندازه می‌گیرد. اگر هر دو در دسترس‌اند، هر دو را گزارش کنید؛ یکی را به‌جای دیگری معرفی نکنید.

آزمایش را تکرار کنید و به‌جای انتخاب سریع‌ترین اجرا، پراکندگی نتایج، مانند میانه و یک صدک بالا، را گزارش کنید. گرم‌کردن اولیه، کامپایل در زمان اجرا و محدودسازی عملکرد بر اثر گرما می‌توانند بر نتایج تأثیر بگذارند.

3. بارهای کاری واقع‌بینانه تعریف کنید

  • یک نشست جدیدِ پیام مستقیم برقرار کنید.
  • در نشستی برقرارشده، تعداد مشخصی پیام با اندازهٔ ثابت بفرستید.
  • عبور از یک مرزِ مستندِ نوسازی کلید را آزمایش کنید.
  • در صورت پشتیبانی، عضوی را به یک گروه آزمایشی اضافه یا از آن حذف کنید.
  • همان پیوست را در شرایط یکسان ارسال کنید.
  • برنامه را برای بازه‌ای مشخص بی‌کار بگذارید و رفتار پس‌زمینه را جداگانه اندازه بگیرید.

از محتوای ساختگی و حساب‌های آزمایشی با رضایت صاحبانشان استفاده کنید. آزمون گروهی باید تعداد اعضا را بیان کند؛ نتیجهٔ یک گروه دونفره را نمی‌توان بی‌آنکه توضیح داده شود به گروهی بزرگ تعمیم داد.

4. انرژی را هم در کنار زمان اندازه بگیرید

Power Profiler در Android Studio می‌تواند در سخت‌افزارهای پشتیبانی‌شده، فعالیت را با اندازه‌گیری‌های ریل تغذیه مرتبط کند. گوگل هشدار می‌دهد که این اندازه‌گیری‌ها در سطح دستگاه‌اند؛ بنابراین فعالیت‌های دیگر نویز ایجاد می‌کنند. روش‌های اندازه‌گیریِ پشتیبانی‌شده بین دستگاه‌ها متفاوت‌اند.

روشنایی نمایشگر، کارهای پس‌زمینه، شرایط شبکه و مدت آزمون را کنترل کنید. همان بار کاری را تکرار کنید و موارد هم‌سنخ را با هم بسنجید. اگر روش شما نمی‌تواند سهم رمزنگاری را جدا کند، این محدودیت را بیان کنید؛ نه اینکه تمام تخلیهٔ باتری را به ML-KEM نسبت دهید.

گوشی در کنار یک لپ‌تاپ و یک ساعت کوچک، زیر نور بنفش.

تصویری از چیدمان اندازه‌گیری است، نه نتایج ثبت‌شدهٔ بنچمارک.

یک جدول نتایجِ مفید چه اطلاعاتی باید داشته باشد؟

فیلد نتیجه نمونهٔ اطلاعاتی که باید ثبت شود
بار کاری نشست جدید، پیام‌رسانی در نشست برقرارشده یا نوسازی کلید
محیط دستگاه دقیق، بیلد برنامه و شبکه
تکرارها تعداد اجراها و نحوهٔ برخورد با اجراهای گرم‌کردن اولیه
زمان‌بندی میانه، تغییرپذیری و واحدها
ترافیک بایت‌های اندازه‌گیری‌شده و شرایط ارسال مجدد
انرژی روش، بازهٔ زمانی و عدم‌قطعیت
محدودیت‌ها آنچه آزمون جدا نکرده یا پوشش نداده است

خانه‌های اندازه‌گیری‌نشده را خالی بگذارید یا با عبارت «اندازه‌گیری نشده» مشخص کنید. نمودار میله‌ایِ نمایشیِ انرژی با سهم‌های نسبیِ ساختگی، مدرک محسوب نمی‌شود.

عکس‌ها و ویدئوها چطور؟

پیوست‌های بزرگ عموماً از رمزنگاری متقارن استفاده می‌کنند، نه از ML-KEM برای تک‌تک بلوک‌های محتوا. برقراری کلید همچنان می‌تواند بر مرحلهٔ راه‌اندازی اثر بگذارد؛ در عین حال، پردازش فایل، ذخیره‌سازی، انتقال شبکه و منطق تلاش مجدد بر کل عملیات اثر دارند. سهم نسبی باید روی بار کاری واقعی اندازه‌گیری شود؛ «هرگز محسوس نیست» ادعای کلیِ معتبری نیست.

پرسش‌های متداول

آیا ML-KEM-768 همیشه از P-256 کندتر است؟

هیچ مقایسهٔ واحدی برای همهٔ کتابخانه‌ها و سخت‌افزارها صدق نمی‌کند. عملیات یکسان را در شرایط یکسان مقایسه کنید، سپس پروتکل ترکیبیِ کامل را جداگانه اندازه بگیرید.

آیا چک‌سام APK نتایج عملکرد را اعتبارسنجی می‌کند؟

چک‌سام، با مقایسه با یک مرجع مورداعتماد، می‌تواند دقیقاً همان فایلِ آزموده‌شده را شناسایی کند. روش آزمون، ایمنی پیاده‌سازی یا اندازه‌گیری انرژی را اعتبارسنجی نمی‌کند.

آیا کاربران برای صرفه‌جویی در باتری باید رمزنگاری را غیرفعال کنند؟

بر پایهٔ ادعای عملکردیِ بدون پشتوانه، یک الزام امنیتی را کنار نگذارید. ابتدا منبع واقعی مصرف باتری را شناسایی کنید و از تنظیمات یا به‌روزرسانی‌های پشتیبانی‌شده استفاده کنید.

منابع

راستی‌آزمایی APK اندروید در آزمایشگاه اثبات
ادامهٔ این موضوعرمزنگاری پساکوانتومی ↗امنیت اندروید و دستگاه ↗
پایان مقالهادامهٔ مطالعه ↗