מספר ראשוני בלתי חוקי

**מספר ראשוני בלתי חוקי** הוא מספר ראשוני אשר מייצג, כאשר מפרשים אותו כרצף סיביות (אפסים ואחדים), מידע שהחזקתו או הפצתו אסורה לפי חוק בתחום שיפוט מסוים. המושג נוצר בראשית שנות ה-2000 כצעד מחאה נגד חוקי זכויות יוצרים, במטרה להמחיש את האבסורד שבהוצאתם מחוץ לחוק של אובייקטים מתמטיים.

## רקע
כל מידע דיגיטלי, בין אם הוא טקסט, תמונה או תוכנת מחשב, מיוצג כרצף סיביות. מכיוון שכל רצף סיביות ניתן לפרש כמספר טבעי יחיד וגדול, המשמעות היא שלכל קובץ קיים מספר המייצג אותו. בנוסף, בשל האפשרות להוסיף לקבצים נתונים חסרי משמעות ("ריפוד" או Padding) שאינם משפיעים על הפענוח שלהם, קיימים אינסוף מספרים שונים היכולים לייצג את אותו המידע בדיוק.

בסוף שנות ה-90 ותחילת שנות ה-2000, חקיקה מודרנית (כגון חוק ה-DMCA בארצות הברית) אסרה על הפצה של מידע מסוים, כגון קוד מחשב שנועד לעקוף מנגנוני הגנה של זכויות יוצרים. שילוב שני היבטים אלו: העובדה שתוכנה היא מספר, והעובדה שהפצת התוכנה אסורה - הוביל לפרדוקס פילוסופי ומשפטי: האם ייתכן שמספר, שהוא בסך הכל עובדה מתמטית, ייחשב כבלתי חוקי להפצה?

הפולמוס נשען על המתח שבין חוקי הגנת זכויות יוצרים לבין חופש הביטוי המוגן תחת התיקון הראשון לחוקת ארצות הברית. במסגרת הליכים משפטיים כגון פרשת ״Universal v. Reimerdes״, עלתה השאלה האם קוד מחשב נחשב ל"ביטוי" (Speech). בתי המשפט הכירו בכך שקוד מקור הוא צורת ביטוי המעבירה רעיונות בין מתכנתים, אך קבעו כי ניתן להגבילו בשל "המרכיב הפונקציונלי" שבו בשל יכולתו להוציא אל הפועל פעולות המפרות חוק.

## הדוגמה של DeCSS
בשנת 1999 פותחה תוכנת DeCSS  שאיפשרה לעקוף את מנגנון ההצפנה של תקליטורי DVD. בעקבות זאת, החל גל תביעות בארצות הברית שמטרתו הייתה לאסור את הפצת קוד המקור של התוכנה.

כמחאה על ניסיונות הצנזורה, במרץ 2001 פרסם פיל קרמודי (Phil Carmody) מספר ראשוני גדול מאוד, אשר הייצוג הבינארי שלו הוא למעשה קובץ דחוס (בפורמט gzip) המכיל את קוד המקור של תוכנית ה-DeCSS. באותה תקופה, הפצת הקוד נחשבה בארצות הברית להפרת חוק, ולכן הפצת המספר עצמו נחשבה לכאורה כפעולה בלתי חוקית.

מטרתו של קרמודי הייתה לאלץ מאגרי מידע מתמטיים מכובדים (כמו אתר Prime Pages, שמתעד את המספרים הראשוניים הגדולים ביותר הידועים לאדם) לפרסם את המספר בשל ייחודו המתמטי בלבד, ובכך לעורר דיון ציבורי. המספר הראשון שמצא קרמודי היה בן 1,401 ספרות, אולם הוא לא היה גדול מספיק כדי להיכנס לרשימת עשרים הראשוניים הגדולים בארכיון. לפיכך, הוא יצר מספר נוסף בן 1,905 ספרות, שהבטיח את כניסתו למאגר כמספר העשירי בגודלו לאותה תקופה.

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

כחלק מפעולת המחאה, קוד ה-DeCSS עצמו הופץ באמצעים בלתי שגרתיים, כגון הדפסתו על חולצות טריקו, כדי לאתגר את החוק (האם לבישת חולצה מהווה עבירה על חוק ההפצה?). בעקבות גילוי המספר הראשוני, הודפסו והופצו חולצות שעליהן הופיע גם המספר עצמו.

## שיטת הבנייה
על מנת לבנות מספר ראשוני המייצג מידע נתון, נעשה שימוש בשילוב בין שיטות קידוד מידע לבין כלים מתורת המספרים:
* קיבוע הקוד המקורי: מתחילים מרצף סיביות המייצג את קובץ המטרה הדחוס.
* ניצול מאפייני הפורמט: תוכנת החילוץ gzip מתוכננת כך שהיא מתעלמת מנתונים שמופיעים לאחר תווי הסיום של הקובץ (Null-terminated). עובדה זו אפשרה לקרמודי להוסיף "ריפוד" של ספרות בסוף הקובץ מבלי להרוס את התוכן שיחולץ ממנו.
* מציאת הראשוני: המספר מיוצג במבנה אריתמטי מהצורה ( N=b + k⋅256^n ), כאשר k הוא המספר שמקודד את הקובץ, ו-b נבחר כך שהמספר המתקבל יהיה ראשוני. כאשר מתרגמים את המספר הסופי בחזרה לבינארי ומחלצים אותו בעזרת תוכנת פתיחת כיווץ, שורות הקוד יחולצו בשלמותן.

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

לשם כך נעשה שימוש באלגוריתמים מתקדמים לבדיקת ראשוניות, ובראשם אלגוריתם Elliptic curve primality  . אלגוריתם זה מבוסס על עקומים אליפטיים ומאפשר לא רק לאשר אם מספר הוא ראשוני, אלא גם להפיק "תעודת ראשוניות" (Primality certificate) הניתנת לאימות על ידי כל מתמטיקאי או מחשב אחר.

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

## קישורים חיצוניים

* גדי אלכסנדרוביץ', ראשוני מחוץ לחוק בבלוג "לא מדויק"
* Thomas C. Greene, DVD descrambler encoded in 'illegal' prime number, The Register, March 19, 2001

## הערות שוליים

קטגוריה:קניין רוחני
קטגוריה:מספרים ראשוניים