My Number Theory papers
   Jacques Basaldúa Lemarchand (B. Bilbao, 1963)

Browser warning


  Before you read the articles, please, verify that your browser supports the character set including mathematical symbols. Click here and verify if both columns on the left display the same characters.

Papers

  These articles describe my research made in Number Theory. Many results may be verified with the toolkits published below.

  2001 December 14, Moaña and the crab. (An informal essay on machines performing arithmetic and subarithmetic operations with special attention to the factoring problem.)

  2001 December 14, All Fermat and Mersenne numbers are squarefree. (A proof based on the order of the subgroup of the powers of 2 modulo Fk or Mp.)

  2001 December ??, Reading a reaction to my proof, I found Will Edington's paper of September 5, 1996 included here.

  2002 January 2, Remarks about Wieferich primes in relation with .. (An exception was found to my previous proof.)

  2003 December, I am working in a new paper that will be published soon.

FREEWARE: Cryptographic Libraries

NumTyp32.zip
    License Conditions:
    ===================

These libraries are freeware.
                    --------

They are intended to be used for research in Number Theory, Cryptography, etc.
Nevertheless, commercial use is also possible.

You can copy, modify or use them as you wish.

No responsibility of any kind is accepted by the author.

The author would be glad if:

  * You notify any bugs found to numtyp32@dybot.com
  * You mention the source of the libraries if used in commercial products.


    Support:
    ========

No support of any kind is given to these libraries.


    Content:
    ========

  NumTyp32.pas
  ------------

  1. The object BigNumber manages big numbers. It performs ASCII<->BINARY
     conv, RAM allocation and more.

  2. It also includes the following basic arithmetic operations with BigNumber
     objects: addition, subtraction, multiplication and integer division.

  Unsigned arithmetic:

  Function  UbigAdd        (var sum         : BigNumber;
                            const s1,s2     : BigNumber)    : byte;
  Function  UbigSubtract   (var sub         : BigNumber;
                            const s1,s2     : BigNumber)    : byte;
  Function  UbigMultiply   (var p           : BigNumber;
                            const m,n       : BigNumber)    : byte;
  Function  UbigDivide     (var dv,rm       : BigNumber;
                            const num,den   : BigNumber)    : byte;

  Signed arithmetic:

  Function  bigAdd         (var sum         : BigNumber;
                            const s1,s2     : BigNumber)    : byte;
  Function  bigSubtract    (var sub         : BigNumber;
                            const s1,s2     : BigNumber)    : byte;
  Function  bigMultiply    (var p           : BigNumber;
                            const m,n       : BigNumber)    : byte;
  Function  bigDivide      (var dv,rm       : BigNumber;
                            const num,den   : BigNumber)    : byte;

  It also contains functions to compare BigNumber objects, easy string
  conversion and a (not very efficient) square root algorithm.


  NumRSA32.pas
  ------------

  Function bnRaiseInModular  (var ri                  : BigNumber;
                              const n,modl,expn       : BigNumber)    : byte;

  Raises a BigNumber n to a BigNumber expn modulus an other BigNumber modl.
  (The RSA encryption and decryption.)


  Function bnModularInverse  (var mi                  : BigNumber;
                              const n,modl            : BigNumber)    : byte;

  Computes the modular inverse of n mod modl.


  Function bnGCD             (var mcd                 : BigNumber;
                              const p,q               : BigNumber)    : byte;
  Function bnLCM             (var mcm                 : BigNumber;
                              const p,q               : BigNumber)    : byte;

  GCD and LCM (Greatest Common Divisor and Least Common Multiple)


  Function bnRsaFullKeySet   (var modl,pubExp,priExp  : BigNumber;
                              const m,n               : BigNumber)    : byte;

  Creates a full RSA key set: modulus, public exponent, private exponent


  Function bnIsPrime         (const p                 : BigNumber)    : byte;

  A full primality test using a LUT (Look-up table) of primes to seed and a
  Fermat test to decide the cases not solved by the seed.


  Test.dpr
  --------

  A heavy (450 seconds on a Pentium IV) test of both libraries. This file is
  the only reference about how the functions are supposed to be called.
  Read it carefully!!

numtyp32.zip

FREEWARE: Expression Parser/Profiler

moana.zip
    License Conditions:
    ===================

These libraries are freeware.
                    --------

They are intended to be used for research in Number Theory, Cryptography, etc.
Nevertheless, commercial use is also possible.

You can copy, modify or use them as you wish.

No responsibility of any kind is accepted by the author.

The author would be glad if:

  * You notify any bugs found to moana@dybot.com
  * You mention the source of the libraries if used in commercial products.


    Support:
    ========

No support of any kind is given to these libraries.


    Content:
    ========

  PROGRAM STRUCTURE: The grammar is made of 4-levels:

  Formal(smTypes.pas):
    Replace() & Classify() + other minor tools

  Syntactic(smParse.pas):
    ParseExpression() + an hybrid (const/var) object oriented calculator

  Semantic(smProfil.pas):
    ProfileExpression() via truth-table analysis

  Equation system builder (smMoana.pas):
    Includes MOAÑA formulae

  The grammar definition is declared in the file smTypes.pas (see remarks)
  The definition of Moaña formulae is included in the file smMoana.pas

  Read my article Moaña and the crab (see above) for further reference.


  Test.dpr
  --------

  This program is a factoring example. The application crunches Moaña
  formulae for the number 2257.

  The result is:  !q1·q5·q2·<q4×!q3

  This means: All 6 bit factors of 2257 are the numbers whose

     bit 0 is obviously 1 (even numbers are not interesting)
     bit 1 is 0 (!q1 is true, means not q1 is true)
     bit 2 is 1 (q2 is true)
     bit 3 and 4 are either 0,0 or 1,1 ((q4 xor not q3) is true)
     bit 5 is 1 (q5 is true)

   This is: 100101 and 111101 (binary) = 37 and 61

   Note: The reason why the trivial factors 1 and 2257 are not included,
   is the choice of 6 bits for the result. (2257 does not fit in 6 bits)

moana.zip

FREEWARE: Fac 1.0 simulation

fac10.zip
    License Conditions:
    ===================

This program is freeware.
                --------

No responsibility of any kind is accepted by the author.


    Support:
    ========

No support of any kind is given to this program.


    Content:
    ========

This is an interactive DEMO to help better understanding of concepts treated in:

    Moaña and the crab


There is no manual and no support of any kind concerning the usage of this program.

The program is FREE and essentially USELESS.

The program includes a 64 bit hash function for self-integrity verification which
would warn you if any virus (present or future) should modify it.

The program requires Windows 95 or later, no particular version is required.

fac10.zip


MAIN PAGE

Jacques Basaldúa (c) 2003

Numbers page