
עם התקדמות המחשוב הקוואנטי, קהילת הקריפטוגרפיה מפתחת באופן יזום אלגוריתמים שקדו להאמין שהם עמידים בפני התקפות קוונטיות—קריפטוגרפיה פוסט-קוונטית (PQC). מבין אלה, מערכות קריפטוגרפיה מבוססות סריג בולטות בזכות היסודות החזקים שלהן מבחינת אבטחה וביצועים יעילים.
למרות זאת, גם בעיות מתמטיות מסובכות ביותר עלולות להיות פגיעות אם היישום חושף מידע ערוץ צדדי. ניתוח והתקפות ערוץ צדדי (SCA) הם מסוגי התקפות על יישום שעוקפים את התיאוריה המתמטית ומנצלים תופעות פיזיקליות כגון צריכת כוח, דליפות אלקטרומגנטיות ושונות בזמנים כדי לחלץ מפתחות סודיים.
פוסט זה מספק ניתוח מעמיק של האופן שבו התקפות ערוץ צדדי מאיימות על סכמות פוסט-קוואנטיות מבוססות סריג. אנו מכסים מושגי SCA בסיסיים, מצב החשיפה של PQC, נקודות מחקר אחרונות ודוגמאות מעשיות—המגשרות בין מושגי מתחילים לידע מעמיק למומחים.
התקפות ערוץ צדדי הן קטגוריה של התקפות אבטחה בהן תוקפים משיגים מידע על פעולות קריפטוגרפיות באמצעות מדידת פרמטרים פיזיקליים של התקן במהלך חישוב.
דוגמה: אם התקן קריפטוגרפי לוקח פחות זמן כאשר ביט סודי הוא '0' מאשר כשזה '1', תוקף עשוי למדוד פעם אחר פעם את זמני החישוב על קלטים ידועים כדי לשחזר את הסוד.
מחשבים קוואנטיים, כאשר יופעלו, יוכלו לפרוץ סכמות מפתח ציבורי מסורתיות (כגון RSA, ECC) עם אלגוריתמים כמו של שור. קריפטוגרפיה פוסט-קוואנטית היא מאמץ לנסות ליצור סכמות הצפנה/חתימה העמידות בפני התקפות קוונטיות.
סריג הוא רשת של נקודות במרחב ממדי n עם תבנית סדירה. מערכות קריפטוגרפיה משתמשות בבעיות סריג קשות:
פרויקט PQC של NIST בוחר סכמות מבוססות סריג בזכות היעילות והרחבה שלהן.
למרות חוסנן המתמטי, סכמות מבוססות סריג מיושמות על חומרה פיזית—הנתונה ל-SCA. בניגוד לסכמות מסורתיות, קריפטוגרפיה מבוססת סריג משתמשת בפעולות כמו כפל פולינומיאלי, דגימה גאוסית בדידה, ואריתמטיקה מודולרית, שכולם יכולים לדלוף מידע אם לא מיושמים בזהירות.
מנגנון הקפת המפתח של Kyber מסתמך על אריתמטיקה פולינומיאלית והקטנות מודולריות. מחקרים (ACM, 2022) הראו:
בחתימת Dilithium ניתן להבחין בדליפות דגימה בעת דגימת דחייה אם לוגיקת ההחלטה של הדוגם תלויה בנתונים סודיים ואינה קבועה בזמן.
ניתוח SCA קונבנציונלי דורש מומחיות רבה. עם למידת מכונה (ML), תוקפים יכולים לאוטומט את תהליך חילוץ המאפיינים והסיווג—ובפוטנציאל לפרוץ יישומים מורכבים או רועשים.
נניח שיש לך קבוצת נתונים של עקיבות כוח במהלך שלב דגימה של PQC KEM:
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
# נניח שהמשתנים `traces` הם מערך NxT (N=דוגמאות, T=נקודות זמן)
# נניח שהמשתנים `labels` הם מערך N של ביטים סודיים (0 או 1)
traces, labels = np.load('power_traces.npy'), np.load('labels.npy')
X_train, X_test, y_train, y_test = train_test_split(traces, labels, test_size=0.2)
clf = RandomForestClassifier(n_estimators=100)
clf.fit(X_train, y_train)
print("Test accuracy:", clf.score(X_test, y_test))
גישה זו יכולה לחשוף ביטים של coefficients סודיים (למשל, קטעי וקטור סודיים בינאריים) מערכי פולינום או ערכי LWE סודיים.
תעסוקה מעשית עם ניתוח ערוץ צדדי ממחישה את הסיכון האמיתי. בואו נסקר שרשראות כלים וקטעי קוד טיפוסיות ל-SCA.
# התקנת ערכת הכלים של תוכנת ChipWhisperer
pip install chipwhisperer
סקריפט Python להשגת עקיבות ממיקרו-בקר המריץ פענוח Kyber:
import chipwhisperer as cw
scope = cw.scope()
target = cw.target(scope, cw.targets.SimpleSerial)
traces = []
for i in range(100):
scope.arm()
target.simpleserial_write('d', b'\x00' * 32) # שלח מפתח הצפנה דמה
ret = scope.capture()
if ret:
traces.append(scope.get_last_trace())
שמירה לדיסק לניתוח ML מאוחר יותר.
נניח שייצאת נתוני עקיבה גולמיים.
Bash: חילוץ צריכת זרם ממוצעת מעקיבות
grep -oP 'Trace: \K[0-9 .]+' traces.log | awk '{total += $1; count += 1} END {print total/count}'
Python: ניתוח עקיבות CSV עבור תצוגה/ניתוח
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv('traces.csv')
plt.plot(df['time'], df['power'])
plt.title('Power Trace - Lattice-Based PQC Decrypt')
plt.xlabel('Time (ns)')
plt.ylabel('Power (mA)')
plt.show()
בעולם האמיתי, תוקפים עשויים להשיג אלפי עקיבות ולהשתמש בכלים סטטיסטיים או ML כדי לחלץ ביטי מפתח.
דוגמת CPA (Python):
import numpy as np
from scipy.stats import pearsonr
# עקיבות: מערך NxT; השערות: ניחושי מפתח אפשריים, נתוני קלט: טקסטים פשוטים/מוצפנים
def cpa(traces, input_data, key_guesses):
max_corr = -1
best_guess = None
for k in key_guesses:
hyp = hamming_weight(pqc_operation(input_data, k)) # דגם כוח עבור ניחוש
corrs = [pearsonr(traces[:, t], hyp)[0] for t in range(traces.shape[1])]
if max(abs(corrs)) > max_corr:
max_corr = max(abs(corrs))
best_guess = k
return best_guess, max_corr
בהתחשב בסיכון המוצג כאן, איך יכולים מבצעים להגן על PQC מבוסס סריג מ-SCA?
ל-Kyber, העדף שגרות אריתמטיקה פולינומיאליות בזמן קבוע מבוססות AVX2 (ראה מאגן PQClean הרשמי). לדגימה אקראית, יש להשתמש בדוגמים קשיחים בזמן קבוע ולא בטבלאות נאיביות.
כאשר PQC רואה שימוש רחב יותר:
בעוד שלקריפטוגרפיה פוסט-קוונטית מבוססת סריג יש הבטחה בטחונית תאורטית נגד יריבים קוונטיים, ניתוח ערוץ צדדי חושף סיכונים מעשיים עמוקים. דליפות פיזיות הקשורות ליישום—כוח, EM, זמן—יכולות לאפשר לתוקפים לשחזר סודות עם ניתוח קפדני. שיטות מכונת למידה חדשות מאיצות ומשפרות את ההתקפות הללו. יישומים חסינים לערוץ צדדי דורשים התמדה, קוד בזמן קבוע, עיצוב חומרה/פירמוור, ובדיקות קפדניות.
כאשר סכמות פוסט-קוונטיות מתפרסמות בכרטיסים חכמים, שבבים ניידים, ובענן, עמידות לערוץ צדדי צריכה להיות מרכזית כמו החוזק הקריפטוגרפי של האלגוריתמים הבסיסיים.
Side-channel Analysis of Lattice-based Post-quantum Primitives
https://dl.acm.org/doi/10.1145/3569420
The Risk of Side-Channel Attacks on Post-Quantum Cryptography
https://www.ledger.com/blog-risk-side-channel-attacks-post-quantum-cryptography
Machine Learning and Side-Channel Attacks on Post-Quantum Cryptography
https://eprint.iacr.org/2025/1754
NIST PQC Project
https://csrc.nist.gov/Projects/post-quantum-cryptography
PQClean: Clean and side-channel secure reference implementations
https://github.com/PQClean/PQClean
ChipWhisperer: Open-source SCA/FI tools
https://chipwhisperer.io/
אם מצאתם את התוכן הזה בעל ערך, תארו לעצמכם מה תוכלו להשיג עם תוכנית ההכשרה המקיפה והאליטיסטית שלנו בת 47 שבועות. הצטרפו ליותר מ-1,200 סטודנטים ששינו את הקריירה שלהם בעזרת טכניקות יחידה 8200.