mersenneforum.org  

Go Back   mersenneforum.org > Great Internet Mersenne Prime Search > PrimeNet

Reply
 
Thread Tools
Old 2008-10-29, 08:32   #1
ixfd64
Bemusing Prompter
 
ixfd64's Avatar
 
"Danny"
Dec 2002
California

2,467 Posts
Default long-standing PrimeNet issues and how to fix them

I wrote this several weeks ago, which was before PrimeNet v5 was officially launched, so some of these issues may be redundant.

As experienced members of the GIMPS community know, PrimeNet is far from being perfectly secure. One of the most frequently debated subjects is poaching, or testing an exponent that was not assigned to you. Ethics aside, there is also discussion on the possibility of someone sending in forged results to PrimeNet. I'll briefly describe these problems, as well as provide possible solutions.

In the examples below, I'll use the characters from Disney's Sleeping Beauty (as a nod to the recent Blu-Ray re-release):

Prince Phillip - an avid prime number enthusiast, he is always trying to convince people to install Prime95 whenever he's not doing lovey-dovey things with Aurora. He has also used a large amount of the Enchanted Kingdom's resources to buy computer hardware, much to the kings' chagrin.
Princess Aurora - she doesn't care much about math, but she tries to help Phillip find new primes.
Flora, Fauna and Merryweather - the three fairies who protect Princess Aurora. They form a team called TGF, short for Three Good Fairies.
King Stefan and King Hubert - the fathers of Aurora and Phillip, respectively.
Maleficent - a troublemaker, she constantly tries to cause grief for the GIMPS community (as well as Phillip and Aurora).


1. Poaching

Poaching is the act of manually testing an exponent assigned to someone else. If a user is assigned an exponent for first-time testing and a poacher finishes it first, the poacher will get the credit. If the original assignee then finishes their test after that, they will still get credit, as it counts as a double check. However, if an exponent assigned for double-checking is poached, the original assignee will get no credit - at least not in PrimeNet v4.

Poaching is often the subject of heated debates. Some claim that it helps reach milestones sooner, especially when it comes to low-end exponents that appear to have been abandoned. However, others argue that it is inethical, and serious ramifications can result if a Mersenne prime is discovered through poaching.

Suppose that Aurora is assigned to test M43112609, which yields a Mersenne prime. For some reason, Maleficent decides to poach it, and having a slightly faster computer, she finishes two days before Aurora is supposed to. There will no doubt be fierce debate on whether Aurora or Maleficent should be credited for the discovery, especially if it involves a cash prize.

Aurora could probably use her status as a princess to ensure that she receives the credit, but in the real world, the person who first discovers a prime would get most of the credit, even if they poeached someone else's assignment.

One way to discourage poaching is to not allow poachers to get any credit. This can be done by generating a key pair for each assignment. The key is stored in the save file and on the server. When a result is submitted, the server checks both keys. If they work, the user is credited. Otherwise, the result is rejected unless it was submitted under the same account it was assigned to.

However, the server should accept any result whose key matches the one stored on the server, even if it was requested and submitted by different accounts. This would allow users to transfer assignments to another computer, or another user.

Of course, there is the problem of milestones being held up by extremely slow computers, or those that are rarely on. To compensate for this, I propose that all assignments have absolute time limits, after which the deadline cannot be extended except in special circumstances. Examples of reasonable time limits are:

Code:
Exponent range	Limit
-----------------------------------
<20M		12 months
[20M, 25M)	16 months
[25M, 30M)	22 months
[30M, 35M)	28 months
[35M, 40M]	35 months
>40M		45 months or more
Another idea is to allow users who don't plan on finishing an assignment to upload their save files for other users. Both the original asignee and the user who completes the work would get partial credit.


2. Cheating on double checks

In order to prevent cheating, a double check does not count if it is done by the same person who tested the exponent for the first time. However, cheaters can get around this simply by creating another account. Fake double checks can be spotted if they have an identical shift count, but it seems that shift counts are easy to spoof.

Suppose Maleficent is testing M44040419. During this time, she chreates a secondary account, Diablo (using her pet raven's name), specifically for the purpose of cheating on double checks. When she reaches 44 million iterations, she makes a copy of her save file and changes the shift count. After she finishes the test, she manually requests the exponent again, as a double check, on her second account. She then replaces the save file of the double check with her altered one from the original test. Once both results are submitted, it will appear as if M44040419 was tested by Maleficent and independently double-checked by Diablo.

Again, the key method I described would eliminate this problem. Since first-time tests and double checks are different assignments, they would have different keys. Thus, if Maleficent tries to cheat by replacing save files, the key would not match and the PrimeNet server would reject it. Even if the server doesn't reject results with non-matching keys, George would see that the key is the same as that from the first-time test and know that the result sent by "Diablo" is not legitimate.

The key should be encrypted and incorporated into the save file so users cannot just open the save file and replace the data from the double check with that from the first-time test.

Of course, if someone was using two accounts in order to cheat, it may be easily spotted by other users, especially if one account's first-time tests are always "verified" by the same second account.

Code:
prime   fact    Lucas-Lehmer residue or factor
exponent bits    [residues partially masked]        date returned   account ID     computer ID
-------- ---- -- --------------------------------  ---------------  -------------- ------------
36515383  68     0x035F0D232DFB8F__                01-Feb-59 13:28  king_stefan    C20F01AC0
36515753  68     0x2D1B951F480D93__                15-Feb-59 02:07  Aurora	     Rose1
36515989  68     0x375A33D480C3FC__                17-Feb-59 17:06  princephillip  castle34
36517561  70     0xB76370AB186E97__                10-Feb-59 19:07  Maleficent     dungeon-c
36517561  70  D  0xB76370AB186E97__                12-Feb-59 06:22  Diablo	     birdy
36517771  68     0x56688628FD2916__                04-Feb-59 17:36  TGF		     cottage-pc1
36522163  68     0xC12D99DE35AF1E__                17-Feb-59 17:48  princephillip  castle8
36524297  68     0xD698A180A9488E__                13-Feb-59 17:04  TGF		     cottage-pc2
36525407  68     0x0F1DE86550A7B8__                08-Feb-59 14:46  princephillip  castle17
36526643  69   F            507002143888688734079  17-Feb-59 17:25  Aurora	     Rose3
36527213  68     0x1C9B8665661B61__                01-Feb-59 20:19  princephillip  castle42
36527287  67   F            154854743740540302289  14-Feb-59 20:07  TGF		     cottage-pc2
36528029  68     0xF62D1D84DD3C1B__                07-Feb-59 14:59  king_stefan    CDAE429DF
36528103  70     0x5193F8E0AB77AA__                04-Feb-59 02:07  Maleficent     dungeon-a
36528103  70  D  0x5193F8E0AB77AA__                06-Feb-59 19:12  Diablo	     birdo
36537629  68     0x7AEB48EFC0AE6A__                13-Feb-59 00:12  Hubert	     hubert-q6600
36538483  68     0x2FFBF9CB351138__                13-Feb-59 11:02  Hubert	     hubert-q6600
36540577  68     0xCF2528BFEAB427__                15-Feb-59 04:50  TGF		     Flora-laptop
36540989  68     0x4F0C07F4753218__                17-Feb-59 17:54  Hubert	     hubert-q6600
36544061  68     0x9C26589B78D522__                17-Feb-59 19:05  Hubert	     hubert-q6600
36544831  68     0xF2A140EED75155__                04-Feb-59 19:36  princephillip  castle40
36545513  68     0xD5F758F75B525C__                05-Feb-59 14:39  Maleficent     dungeon-f
36545513  68  D  0xD5F758F75B525C__                06-Feb-59 03:42  Diablo	     birdie
36546527  68     0xE78E6BEA353DEF__                03-Feb-59 19:19  princephillip  castle23
36549943  70     0x1B0F5211886FAA__                12-Feb-59 11:41  princephillip  castleserver
36550373  70     0x148A2F06FC31F6__                13-Feb-07 08:07  princephillip  castleserver
36551363  70     0x1845B8A4C9EF22__                11-Feb-07 22:42  princephillip  castleserver
36551563  68     0x96BF6CA893CCC8__                13-Feb-07 07:59  princephillip  castleserver

3. Forged results

Another major concern is that people can send spoofed results to the PrimeNet server, such as by using a packet editor or doctoring the prime.spl file. According to George, the only technical safeguard against forged results is that the source code which generates the checksum (which acts as a security measure that ensures the results are valid) is not publicly available. (This is the exact same reason that many parts of the Folding@home client are closed source.) However, someone using a disassembler could still figure out how the checksum is generated.

If Maleficent sends a forged prime report to PrimeNet, it would be spotted very quickly because reports of new primes are verified almost immediately. Plus, she would have trouble producing a save file that generates a final residue of zero. However, if Maleficent submits a forged composite result, it would not be discovered until the double-checking "wavefront" reaches that range. If Maleficent submits a fake double check as well (see #2), it probably won't be noticed for a very long time, if ever.

Like in #2, forged results could also be easily prevented by using an encrypted key. Someone could make a doctored prime.spl file, but unless they're very good at cracking the encryption, they will be unable to generate the key that validates the result. The downside is that more parts of the Prime95 source code will have to be kept private. While Prime95 was never truly "open source" to begin with, this would still hurt its development.

It is very unlikely that anyone will try to send in forged results. However, as GIMPS becomes more popular, we can't just ignore the fact that the chance of someone pulling this off will also increase.


4. PrimeNet v4/Prime95 24.14 security issues

In my opinion, version 24.14 isn't very secure. Your account password is stored right there in plaintext, and anyone who had physical access to your computer could steal your credit. All they have to do is log in to their account under "User Information" and the credit would be transfered and the account merged. The only way to prevent this from happening is to prevent access to your computer while you're not using it.

The Disney princesses aren't exactly known for their intelligence (well, maybe except for Belle). Suppose that Aurora, being somewhat computer illiterate, fails to set a screen saver password and never upgrades her Prime95 client. As soon as she and Phillip go out for lunch, Maleficent could teleport into the castle and steal Aurora's v4 credit by merging her (Aurora's) account with her own. Even though Aurora could easily get her account back, she would have to go through the hassle of contacting George or Scott to get the merge reversed.

This problem was mostly fixed since PrimeNet v5 came out, but those who haven't upgraded to version 25.7.3 (or later) are still at risk. The password should not be visible in plaintext, and users should be required to enter the original account's password if they wish to merge an account. Since the PrimeNet server cannot force a change on the client, the only thing users could do to prevent this from happening is to upgrade their clients as soon as possible.
ixfd64 is offline   Reply With Quote
Old 2008-10-29, 09:40   #2
retina
Undefined
 
retina's Avatar
 
"The unspeakable one"
Jun 2006
My evil lair

196E16 Posts
Default

Quote:
Originally Posted by ixfd64 View Post
Suppose that Aurora is assigned to test M43112609, which yields a Mersenne prime. For some reason, Maleficent decides to poach it, and having a slightly faster computer, she finishes two days before Aurora is supposed to. There will no doubt be fierce debate on whether Aurora or Maleficent should be credited for the discovery, especially if it involves a cash prize.
I don't believe that Primenet issuing numbers gives anyone claim to be the only person authorised to test the number. If a user decides to test 2^43112609-1 (for whatever reasons they like to choose it) then they are perfectly within their rights to test it. If it then turns out to be a newly discovered prime then why should the Primenet assignment take any precedence over another users decision to test the same number? If someone finds it first then give them credit, regardless of how they selected the number. And I guess it is just tough if Primenet has also decided to issue the number to someone but they returned the result a day later. Shit happens.

Please don't get me wrong, I'm not against Primenet in any way. It is a great tool for coordinating the workload. But I don't think that Primenet has any exclusive right to which numbers are tested by whom.
retina is online now   Reply With Quote
Old 2008-10-29, 09:57   #3
jinydu
 
jinydu's Avatar
 
Dec 2003
Hopefully Near M48

6DE16 Posts
Default

There's another way to fight the Maleficent + Diablo combo...

Knowing he is a trusted and loyal GIMPS contributor, George appoints Philip to be a "professional triple-checker". Philip triple-checks confirmed LL tests to make sure the residues are in fact correct. To prevent cheaters from staying one step of him, the exponents that Philip triple-checks are chosen randomly. Philip's first few hundred triple-checks confirm the double-checks; but one day Philip discovers that a certain exponent tested by Maleficent and double-checked by Diablo has the wrong residue. This immediately casts great suspicion on both Maleficent and Diablo. An investigation then reveals that this pattern of an incorrect result from one account and a verification from the other has been repeated dozens of times. Both accounts are deleted and all exponents they've tested are returned to the available exponents list to be retested from scratch.

Further advantages:

1) Upon hearing that a triple-checking team is in place, Maleficent worries about getting caught and is deterred from cheating.

2) To avoid the suspicion resulting from having a single account always double-checking her results, Maleficent creates 10 helper accounts: Diablo, Diablo_2, Diablo_3, ... Diablo_10 (ok, she chooses less obviously linked usernames instead) and splits the double-checking work between them. Nevertheless, Philip discovers that Diablo_6 has confirmed an incorrect residue from Maleficent. After further investigation, Maleficent still loses her main account.

Disadvantage:

Maleficent can elude Philip's triple-checking by running her first-time LL test to completion correctly. But even in this case, the harm to GIMPS is minimized because Primenet still has the correct residues for Maleficent's exponents and no Mersenne prime has been missed.

One further note: Maleficent could elude all of ixfd64's safeguards by only (requesting exponents from)/(emailing results to) George.

Last fiddled with by jinydu on 2008-10-29 at 10:02
jinydu is offline   Reply With Quote
Old 2008-10-29, 12:26   #4
Uncwilly
6809 > 6502
 
Uncwilly's Avatar
 
"""""""""""""""""""
Aug 2003
101×103 Posts

7·37·41 Posts
Default

Quote:
Originally Posted by ixfd64 View Post
4. PrimeNet v4/Prime95 24.14 security issues

In my opinion, version 24.14 isn't very secure. Your account password is stored right there in plaintext, and anyone who had physical access to your computer could steal your credit. All they have to do is log in to their account under "User Information" and the credit would be transfered and the account merged. The only way to prevent this from happening is to prevent access to your computer while you're not using it.
This isn't e-mail, or your bank account. I have a relatively insecure password for GIMPS. Most of the machines have the tray icon turned off and no one else knows anything about it.

I lock my personal machine when I am away from it. That is the only one that I check stats with. (Except of course my home machine).
Uncwilly is offline   Reply With Quote
Old 2008-10-29, 20:21   #5
hockmeng
 
hockmeng's Avatar
 
Oct 2008

2·7 Posts
Default

Quote:
Originally Posted by ixfd64 View Post

Of course, there is the problem of milestones being held up by extremely slow computers, or those that are rarely on.

I have a question (though it may not be very related). At the time of writing, I can see that there are still 27 LL-D exponents in the 17M - 18M range which have not been assigned out. I feel that these exponent are somewhat holding back the whole GIMPS.

I was wondering how do I request PrimeNet to assign these exponents to me (or to anyone)? Just a few days ago I was assigned an exponent in the 23M range for LL-D which is currently the "wavefront" as someone described it. Why does PrimeNet not assign the smallest available exponent? Doing so would definitely move the milestones a bit quicker. I'm sure there are many users who would like to see these "small" exponents being completed asap.
hockmeng is offline   Reply With Quote
Old 2008-10-30, 03:21   #6
markr
 
markr's Avatar
 
"Mark"
Feb 2003
Sydney

57310 Posts
Default

Quote:
Originally Posted by hockmeng View Post
At the time of writing, I can see that there are still 27 LL-D exponents in the 17M - 18M range which have not been assigned out. I feel that these exponent are somewhat holding back the whole GIMPS.

I was wondering how do I request PrimeNet to assign these exponents to me (or to anyone)? Just a few days ago I was assigned an exponent in the 23M range for LL-D which is currently the "wavefront" as someone described it. Why does PrimeNet not assign the smallest available exponent?
Primenet normally would hand out the smallest exponents first, and it will - once we are past the transition from v4 to v5 and into more normal times.

In its initial test phase v5 handed out double-checks in the 23M range, past v4's LL-D area. Last time I checked, it still was. I expect this will be fixed once a few higher-priority bugs are squashed.
markr is offline   Reply With Quote
Old 2008-10-30, 06:36   #7
ckdo
 
ckdo's Avatar
 
Dec 2007
Cleves, Germany

2·5·53 Posts
Default

Quote:
Originally Posted by hockmeng View Post
I can see that there are still 27 LL-D exponents in the 17M - 18M range which have not been assigned out. [...]

I was wondering how do I request PrimeNet to assign these exponents to me (or to anyone)?
Rather easy. Look at the list of unverified LL tests in the 17M-18M range:

http://v5www.mersenne.org/report_LL/...B1=Get+LL+data

For each of the exponents listed (there are dupes), look up its status, e.g.:

http://v5www.mersenne.org/report_exp...&B1=Get+status

If there is an ASSIGNED line, move on.

Otherwise, take note of how far the exponent was trial factored and whether P-1 factoring was done.

Then add a line like "DoubleCheck=[exponent],[how_far_factored],[P-1 done]" to your worktodo.txt (or use worktodo.add).

For the first exponent in question that would be "DoubleCheck=17001269,69,1".

Let your client reserve the exponent. Force a manual communication to send an expected completion date. There you go.

Cheers,
Carsten
ckdo is offline   Reply With Quote
Old 2008-10-30, 07:19   #8
markr
 
markr's Avatar
 
"Mark"
Feb 2003
Sydney

3·191 Posts
Default

It certainly can be done. But I would not recommend it just yet for anything in the v4 ranges. Wait a bit.

Given the problems with transferring assignments from primenet v4 to v5, including results completed after v4 crashed & before the v4-to-v5 interface, plus the various special features of v4, like manual ranges, I suspect it will be a while before all existing v4 assignments & results are properly transferred to v5. Until then, I wouldn't 100% trust the "assigned" part of v5 reports, and there could be results still to be loaded too. Some of the unverified exponents in the 17M-18M range that v5 says are unassigned definitely were assigned in v4 on 15 October (the last status.txt I have).

Cheers
Mark
markr is offline   Reply With Quote
Old 2008-10-30, 07:25   #9
hockmeng
 
hockmeng's Avatar
 
Oct 2008

2×7 Posts
Default

Quote:
Originally Posted by ckdo View Post

Then add a line like "DoubleCheck=[exponent],[how_far_factored],[P-1 done]" to your worktodo.txt (or use worktodo.add).


I opened my worktodo.txt and found that there is a long string of characters and numbers between "DoubleCheck=" and "[exponent]". Do I have to be worried about that since I'm going to manually edit the file? This is what my worktodo.txt currently looks like for Worker #2.

Code:
[Worker #2]
DoubleCheck=CCF1F0522203D2A2FCA8CDD37C547482,23021057,67,1
hockmeng is offline   Reply With Quote
Old 2008-10-30, 07:36   #10
ckdo
 
ckdo's Avatar
 
Dec 2007
Cleves, Germany

2×5×53 Posts
Default

Code:
Mersenne PrimeNet Server 4.0 (Build 4.0.101)
Assigned Exponents Report 20 Oct 2008 09:00 (Oct 20 2008  2:00AM Pacific)
See ftp://mersenne.org/gimps/t/status.txt

But don't scroll down too far... It hurts.
ckdo is offline   Reply With Quote
Old 2008-10-30, 07:46   #11
ckdo
 
ckdo's Avatar
 
Dec 2007
Cleves, Germany

2×5×53 Posts
Default

Quote:
Originally Posted by hockmeng View Post
I opened my worktodo.txt and found that there is a long string of characters and numbers between "DoubleCheck=" and "[exponent]". Do I have to be worried about that since I'm going to manually edit the file?
It will be added when the exponent is assigned to you. And before you get the idea, don't tamper with existing lines which already have a code there.
ckdo is offline   Reply With Quote
Reply

Thread Tools


Similar Threads
Thread Thread Starter Forum Replies Last Post
ECM RAM issues yoyo GMP-ECM 7 2018-04-28 05:51
New GPU; new issues... chalsall GPU Computing 18 2013-06-12 19:28
Using long long's in Mingw with 32-bit Windows XP grandpascorpion Programming 7 2009-10-04 12:13
I think it's gonna be a long, long time panic Hardware 9 2009-09-11 05:11
Long-term Primenet archive delta_t Data 3 2005-08-25 00:31

All times are UTC. The time now is 08:48.


Mon Jul 4 08:48:19 UTC 2022 up 81 days, 6:49, 0 users, load averages: 1.18, 1.28, 1.19

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.

This forum has received and complied with 0 (zero) government requests for information.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.
A copy of the license is included in the FAQ.

≠ ± ∓ ÷ × · − √ ‰ ⊗ ⊕ ⊖ ⊘ ⊙ ≤ ≥ ≦ ≧ ≨ ≩ ≺ ≻ ≼ ≽ ⊏ ⊐ ⊑ ⊒ ² ³ °
∠ ∟ ° ≅ ~ ‖ ⟂ ⫛
≡ ≜ ≈ ∝ ∞ ≪ ≫ ⌊⌋ ⌈⌉ ∘ ∏ ∐ ∑ ∧ ∨ ∩ ∪ ⨀ ⊕ ⊗ 𝖕 𝖖 𝖗 ⊲ ⊳
∅ ∖ ∁ ↦ ↣ ∩ ∪ ⊆ ⊂ ⊄ ⊊ ⊇ ⊃ ⊅ ⊋ ⊖ ∈ ∉ ∋ ∌ ℕ ℤ ℚ ℝ ℂ ℵ ℶ ℷ ℸ 𝓟
¬ ∨ ∧ ⊕ → ← ⇒ ⇐ ⇔ ∀ ∃ ∄ ∴ ∵ ⊤ ⊥ ⊢ ⊨ ⫤ ⊣ … ⋯ ⋮ ⋰ ⋱
∫ ∬ ∭ ∮ ∯ ∰ ∇ ∆ δ ∂ ℱ ℒ ℓ
𝛢𝛼 𝛣𝛽 𝛤𝛾 𝛥𝛿 𝛦𝜀𝜖 𝛧𝜁 𝛨𝜂 𝛩𝜃𝜗 𝛪𝜄 𝛫𝜅 𝛬𝜆 𝛭𝜇 𝛮𝜈 𝛯𝜉 𝛰𝜊 𝛱𝜋 𝛲𝜌 𝛴𝜎𝜍 𝛵𝜏 𝛶𝜐 𝛷𝜙𝜑 𝛸𝜒 𝛹𝜓 𝛺𝜔