A fingerprint matcher links together minutiae from a search print and minutiae from a file print in a chain to determine if the two prints match. Minutiae are extracted from the images of the search and file prints. Geometric and other relationships between close minutiae in each print are calculated. A table of candidate "steps" is formed. Each step consists of four minutiae, two close search minutiae and two close file minutiae. Each "rung" of the step is a search-file pair, the candidate mating of presumed identical minutiae in the two images. Each "riser" of the step is formed by two close minutiae, search minutiae on the one side and file minutiae on the other. A candidate step is entered into the table if and only if the relationships between search minutiae are similar to those between file minutiae. The number of candidate steps is reduced by requiring that each step adhere to various rules regarding the presence of other steps in the table and the identity of minutiae therein. Maximally long chains of steps are formed which are called "hyperladders", each of which links together surviving steps. The hyperladders are said to be "hyper" because at each search-file pair rung a multiplicity of "riser" pairs may emerge, each to another and different search-file pair "rung". Within the largest hyperladder formed from a given search-file pair of prints the number of links is a measure of the likelihood that the search and file fingerprints are the same, and an indication of a match is returned if the number of links exceeds a predetermined threshold value.