BIRN_ID Generator

Filed under: Tools

Status: In production

The BIRN_ID generator can be used to assign a unique ID to subjects in any type of experiment. Subjects in experiments, whether human or animal, are often assigned random numbers as identifiers. When data are being shared and compiled across studies, these numbers must be unique. The BIRN_ID Generator can be used to assign a unique identifying 12-digit number for a subject.

The BIRN_ID Generator package generates unique HIPAA-compliant IDs, a BIRN_ID, from scratch or from already-assigned local IDs.  It is a Java application that runs on any platform.  It uses a cryptographically-strong pseudo-random number generating algorithm, SHA1PRNG, provided by Sun, and a one-way MD5 hash.

The BIRN_ID Generator also can find a BIRN_ID for a given local ID when the link table and local ID are provided.  The one-way hash ensures that the user cannot use a BIRN_ID alone to find a local ID and identify a subject.

The birn-id generator can be checked out with this command:

svn co https://www.nitrc.org/svn/hid/utilities/trunk/utilities/birn-id_gen

BIRN_ID GENERATOR README

Prerequisites

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

Installation

  • Put the BIRN_ID Generator package in 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 <linkTableFilename> is a text file to store MD5 one-way hashes of clinicalIDs, <clinicalIdsFilename> is a file that contains a list of clinicalIDs (each line is a clinicalID) and <clinicalId> is a single clinicalID.
  • To find the BIRNID from a clinicalID:$BIRNIDGEN_HOME/bin/birnid_gen.sh -find -c <clinicalId> -l <linkTableFilename>where <clinicalId> is a single clinicalID and <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.

BIRN is supported by NIH grants 1U24-RR025736, U24-RR021992, U24-RR021760 and by the Collaborative Tools Support Network Award 1U24-RR026057-01.
 
BIRN_ID Generator | Biomedical Informatics Research Network (BIRN)

BIRN_ID Generator

Filed under: Tools

Status: In production

The BIRN_ID generator can be used to assign a unique ID to subjects in any type of experiment. Subjects in experiments, whether human or animal, are often assigned random numbers as identifiers. When data are being shared and compiled across studies, these numbers must be unique. The BIRN_ID Generator can be used to assign a unique identifying 12-digit number for a subject.

The BIRN_ID Generator package generates unique HIPAA-compliant IDs, a BIRN_ID, from scratch or from already-assigned local IDs.  It is a Java application that runs on any platform.  It uses a cryptographically-strong pseudo-random number generating algorithm, SHA1PRNG, provided by Sun, and a one-way MD5 hash.

The BIRN_ID Generator also can find a BIRN_ID for a given local ID when the link table and local ID are provided.  The one-way hash ensures that the user cannot use a BIRN_ID alone to find a local ID and identify a subject.

The birn-id generator can be checked out with this command:

svn co https://www.nitrc.org/svn/hid/utilities/trunk/utilities/birn-id_gen

BIRN_ID GENERATOR README

Prerequisites

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

Installation

  • Put the BIRN_ID Generator package in 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 <linkTableFilename> is a text file to store MD5 one-way hashes of clinicalIDs, <clinicalIdsFilename> is a file that contains a list of clinicalIDs (each line is a clinicalID) and <clinicalId> is a single clinicalID.
  • To find the BIRNID from a clinicalID:$BIRNIDGEN_HOME/bin/birnid_gen.sh -find -c <clinicalId> -l <linkTableFilename>where <clinicalId> is a single clinicalID and <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.

BIRN is supported by NIH grants 1U24-RR025736, U24-RR021992, U24-RR021760 and by the Collaborative Tools Support Network Award 1U24-RR026057-01.
 
BIRN_ID Generator | Biomedical Informatics Research Network (BIRN)

BIRN_ID Generator

Filed under: Tools

Status: In production

The BIRN_ID generator can be used to assign a unique ID to subjects in any type of experiment. Subjects in experiments, whether human or animal, are often assigned random numbers as identifiers. When data are being shared and compiled across studies, these numbers must be unique. The BIRN_ID Generator can be used to assign a unique identifying 12-digit number for a subject.

The BIRN_ID Generator package generates unique HIPAA-compliant IDs, a BIRN_ID, from scratch or from already-assigned local IDs.  It is a Java application that runs on any platform.  It uses a cryptographically-strong pseudo-random number generating algorithm, SHA1PRNG, provided by Sun, and a one-way MD5 hash.

The BIRN_ID Generator also can find a BIRN_ID for a given local ID when the link table and local ID are provided.  The one-way hash ensures that the user cannot use a BIRN_ID alone to find a local ID and identify a subject.

The birn-id generator can be checked out with this command:

svn co https://www.nitrc.org/svn/hid/utilities/trunk/utilities/birn-id_gen

BIRN_ID GENERATOR README

Prerequisites

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

Installation

  • Put the BIRN_ID Generator package in 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 <linkTableFilename> is a text file to store MD5 one-way hashes of clinicalIDs, <clinicalIdsFilename> is a file that contains a list of clinicalIDs (each line is a clinicalID) and <clinicalId> is a single clinicalID.
  • To find the BIRNID from a clinicalID:$BIRNIDGEN_HOME/bin/birnid_gen.sh -find -c <clinicalId> -l <linkTableFilename>where <clinicalId> is a single clinicalID and <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.

BIRN is supported by NIH grants 1U24-RR025736, U24-RR021992, U24-RR021760 and by the Collaborative Tools Support Network Award 1U24-RR026057-01.