Facebook Encryption, Digital Fingerprinting and Signing Authorities

 
Click images below for larger
part 1 go to the About page on your main wall then to Contact and Basic info page
and down to add a public key ( see <<<< click this ) on screen below. You need to have created a key beforehand so here is the procedure for doing so under Linux OS or more on what is Digital Fingerprinting here and the implications of Signing/Certificate Authorities on privacy issues.



now for the codes
and extra hacks you can use to secure your keys to hardern 
your system to protect you from Facebook


What's the problem with the new encrypt to email notifications from Facebook? Its good to obfuscate your account message information but well .....
First its at a glacial pace so we won't be shocked by any concrete encryption ( encryption of the actual messages themselves ) from them any time soon.... but at at least were getting something useful yes? well read on .....
Well on the face of it, it is ok yet what does it actually do? just encrypt the notifications you get to your mail box..... thats ok but if you can just read the messages on your page then that isn't much help is it? Well it is the usual karma at play here .... what you get is what you give so you are getting encryption and nice coded messages in your Yahoo email box but you are also giving away your digital fingerprint... ( a unique identifier of yourself to the world of surveillance actorz )

Solution

The solution to message encryption is to use key encryption  on your PGP public key ... if the key isn't encrypted then you just have waved a flag to all the people on your list to the NSA as your key is like a digital signature of your intentions to encrypt.

for example this is a old public key for me ( don't use it now ) umm and the public key obviously is scanned by people like the NSA to identify you being a nice unique id for your posts .... hmm ok how about we obfuscate it with a word being equal to every character in the key so the first 2 characters are x and s so we replace them with XkeyScore and Secret then do the same for every word. Hmm i see a program coming on :)
  



( don't use this key below its just a old one for testing and programming example purposes and to use as a PGP tool in coding array loops in Delphi )
 
-----BEGIN PGP PUBLIC KEY BLOCK-----
xsBNBFKmgbYBCACDEkrM1hLNNiEZ9KiMm/xX+sJGNvsI0Zwl2R+epePMx0er
hVA7SHlN27pToVSf/A0K87zBCZUKdVVa23PuwRzmI35yeB8VPOjhOZ/Rkm6B
gqARJ/D0nuEpA0cu4ZvnU2X7Un3+XkDEXfg2atFszNmqByMgJlV9fYnraYBg
S55YjJtPEm4kNO3ymnqNzmpZIUrqshdSPtPMLU0BtYPXnG2cYy6HgIotxazl
mM+8//IYHfn20+vFEXSP2UDOnTAzSy/mn1G46Z3UrJQjgW0lTddqmH+iCz3Z
73ala4OLLbZXdQmb1SOwjJLG/jGrdpDlgEK+W43G49myMdhwIuZAVSE3ABEB
AAHNJHN0ZXBoZW4gam9uZXMgPHZlbi52aXJ1cGFAZ21haWwuY29tPsLAXAQQ
AQgAEAUCUqaCDgkQc+xFyXw+T+YAAO7CB/9eoG8MavwEIdTNX+IViINXobSB
N2BqJFdyhp449Ktf3my9/kmhG2kHDoAMKG4DGxmg6fDFJuCwL1S67hh2orOn
tWCwx+E8A3h6zXqd4+M1x7n5KASyUiDVJZRYBS+9AZu2+YPXXlknyJnUDzDT
VSmbdsWIkP1Ak74pv+Xqm+myVhVzzkeBm96zOhqflPogR9Ib/hSfyAAJTG+0
8WckkeHNAZOhT4hWuFwnaI4J/mYL/NFUrc5j7fhkG4F4Py24EdCht7lHDB9j
DVmfnw9mIfS3wD53GTTsxTJtb/hepQeqX9a8a8xj28KSUQtydMNlcfXIabAh
UcGBi+lQVlOHZNOt
=RPsz
-----END PGP PUBLIC KEY BLOCK-----

Program exercise 

Here we need to replace the text key with a dictionary. First we must limit the dictionary to certain words.  For example words less then 5 letters can be avoided because we can use small words to fill the text to make it seem more real ( ie put the word "the" in the usual frequency to avoid robot scanning of your key text for unusual combinations that would indicate a key to a observant state actor )
 
Programming math tech learnt
 
1. generate a random number using the Delphi RandomRange(low value, high value) function then store it to stop it being repeated.
 
   ( the program needs a random to choose a word from the list but how random is the number can the number selector select the same number again? so we have to store the previous selections in a array type structure and compare them every time we select a number )
 
var
  xi : Integer;
begin
  // Show 5 random numbers in the range 6520 to 6560
  for xi := 1 to 5 do
    ShowMessage('Random number : '+IntToStr(RandomRange(6520, 6560)));
end;
 
Something like this can result in the message box each time the loop is done.
 
   Random number = 6520
   Random number = 6520
   Random number = 6550
   Random number = 6555
   Random number = 6530
 
But note the number 6520 comes up twice and cause errors in our encryption code program so we can create a new function called RandomRangeEx().
That can solve this by holding previous results in a number array structure.

We can create a new function called RandomRangeEx( low value, high value: integer, clear: Boolean )
using the clear boolean operator we can erase the stored random number data after we are finished.

Ok seeing it is a math function we can put it in the MathBox unit ( see below link KeyUnderTheMat for source ) to keep for another days coding projects.

MathBox.pas snippet

var
   arrayOfKey: ARRAY OF INTEGER;  // storage for each number generated
                                                             // will be cleared with true flag bool

implementation

uses
  StrBox2;
{----------------------
      Name: RandomRangeEx
      Unit: MathBox
      Date: 17/06/2015
      Description: returns a unique random number to use with key cryptography
      must save the internal data every time function is used unless  the clear flag is set to false

 }

function RandomRangeEx(LowValue, HighValue: integer; Clear: boolean): integer;
var
x,y: integer;
begin
//

if clear = true then
      begin
      setLength(arrayOfKey,0);
      exit;
      end;
if clear = false then
      begin
      setlength(arrayOfKey,Length(arrayOfKey) + 1);
      x := RandomRange(LowValue,HighValue);
      for Y := 0 to length(arrayOfKey) -1 do
                  begin
                  while x = arrayOfKey[y] do
 
                  // we need another number so
                  // if its in our database recurse the call with false flag
 
                  x :=  RandomRangeEx(LowValue, HighValue, false);
                  end;
      arrayOfKey[length(arrayOfkey)-1] := x; // ok found a unique value so return
      end;
      result := x;
end;

now something like this should result ( each value is unique unlike previous example )
 
Random number = 6520
   Random number = 6522
   Random number = 6553
   Random number = 6555
   Random number = 6530

 
 
 
 
KeyUnderTheMat ( download page for this program its free as in free speech and open source I just put it on a separate page to save space just go to the bottom and click on the down arrow next to KeyUnderTheMat.zip  remember to read the disclaimer on main page )
Steganography ( hide key in picture )
ċ
MathBox.pas
(9k)
Stephen P,
21 Jun 2015, 12:19
Comments