BIRN_ID GENERATOR README

Prerequisites

Java JDK (or JRE) 1.3.1 or higher needs to be installed on your system

Installation

  • Put BIRN_ID Generator package to a selected installation directory
  • Create a new environment variable, BIRNIDGEN_HOME, pointing to the installation directory

Usage

  • To generate BIRNIDs:

$BIRNIDGEN_HOME/bin/birnid_gen.sh  -create -p <prefix> -l <linkTableFilename> [-cf <clinicalIdsFilename> | -c <clinicalId>]

where <clinicalId> is a single clinicalID, <clinicalIdsFilename> is a file contains a list of clinicalIDs (each line is a clinicalID), <linkTableFilename> is a text file to store MD5 one-way hashes of clinicalIDs.

  • To find the BIRNID from a clinicalID:

$BIRNIDGEN_HOME/bin/birnid_gen.sh -find -c <clinicalId> -l <linkTableFilename>
where <clinicalId> is a single clinicalID, <clinicalIdsFilename> is a file contains a list of clinicalIDs (each line is a clinicalID), <linkTableFilename> is a text file to store MD5 one-way hashes of clinicalIDs.

Background Information on the Random Number Generation

SHA1PRNG: The name of the pseudo-random number generation (PRNG) algorithm supplied by the SUN provider. This implementation follows the IEEE P1363 standard, Appendix G.7: "Expansion of source bits", and uses SHA-1 as the foundation of the PRNG. It computes the SHA-1 hash over a true-random seed value concatenated with a 64-bit counter which is incremented by 1 for each operation. From the 160-bit SHA-1 output, only 64 bits are used.

SHA-1 is the Secure Hash Algorithm, as defined in Secure Hash Standard, NIST FIPS 180-1.

SHA1PRNG is a cryptographically strong pseudo-random number generator (PRNG). A cryptographically strong pseudo-random number minimally complies with the statistical random number generator tests specified in FIPS 140-2, Security Requirements for Cryptographic Modules, section 4.9.1. Additionally, SecureRandom must produce non-deterministic output and therefore it is required that the seed material be unpredictable and that output of SecureRandom be cryptographically strong sequences as described in RFC 1750: Randomness Recommendations for Security.