Matt Blundin sat in Stuart Gibbs’ office, aggravated and exhausted at the end of a seventeen-hour day. The director sat across from him, leaning back in his chair, head tilted upward, eyes staring blankly at the ceiling.

At 2:00 A.M. in Washington, Blundin had just finished explaining the nuances of a developing situation: a security breach and data theft that he’d only recently discovered.

Gibbs brought himself forward and exhaled loudly. “What else do you have?”

“That’s it,” Blundin said. “All we know right now is what happened.”

“I don’t give a shit about what happened,” Gibbs cursed. “I want to know how it happened, why it happened and who the fuck made it happen.” With the last phrase, Gibbs threw the report across the desk, where it fanned out and crashed into Blundin’s prominent gut.

Blundin rubbed his neck. He was sweaty and grimy after such a long day and ready to lash out. But that would just make for a longer night. He plucked the report from his lap and placed it back on the desk, out of Gibbs’ reach, then pulled a dented pack of Marlboros from his breast pocket.

He drew one out and stuck it between his lips. Two flicks of the lighter and the tip was glowing red. Only after a long drag on the cigarette did he begin to reply.

“Look,” he said, white smoke billowing from his mouth. “I can tell you how it was probably done. I can even tell you when it was probably done, but that doesn’t help us with the who, because it could have been anybody on the network, either inside this building or out.”

Gibbs leaned back, looking pleased for the first time all night. “Let’s start with how.”

“Fine,” Blundin said. “We can start there, but we’re going to end up right back where we are now.” He exhaled another cloud of carcinogens and reached for an ashtray to lay the cigarette on. “It all starts with the codes. Our system uses a matrix code generated from a set of prime numbers and then exercised through a complex algorithm.”

Gibbs seemed lost already, which came as no surprise to Blundin. Maybe this was why he hadn’t listened in the first place.

Blundin leaned forward, demonstrating with his hands. “Just think of it like a combination lock. If you don’t know the combination you can eventually figure it out by checking every number against every other possible combination of numbers. You know, one, one, one, then one, one, two, then one, one, three—until eventually you get to thirty-six, twenty-six, thirty-six and it finally opens. Only in our case, we’re not talking about forty numbers or whatever you have on one of those locks, we’re talking about a massive set of possibilities.”

“How massive?”

“Try a one with seventeen zeroes after it,” Blundin said. “So many numbers that if you counted a thousand a second it would take you a hundred years just to count that high.”

Blundin eased back in his chair. “And that’s just to count them. To crack the code, each number would have to be checked against every other number, and then tested to see if it worked.”

By the look on his face, Gibbs seemed to understand. “What about the vendor, the manufacturer who sold us this encryption?”

“No,” Blundin said. “The illegal entries were made using an inactive master code reserved by the computer in case the system locks up.”

“What about an ex-employee?” Gibbs asked. “Someone who might know the system, but quit or got fired.”

“I already checked. No one higher than a receptionist has left Atlantic Safecom since we installed the system.”

“And here?”

“Every time one of our employees leaves, their code and profile are scrubbed from the system—and like I already said, it wasn’t an employee code, it was a master code.”

Gibbs pounded a fist on the desk. “Well, goddamnit, how the hell did they get the master code? That’s what I’m asking you. I mean, they didn’t fucking guess it, did they?”

“Actually,” Blundin said, “in a way, they did.”

Gibbs’ eyes narrowed, which Blundin took as a veiled threat that if he didn’t become more forthright, there would be repercussions.

“They made a lot of guesses,” Blundin said. “Over three hundred and fifty quadrillion.”

Gibbs’ face went blank. “That doesn’t even sound like a real fucking number.”

“It is,” Blundin assured him. “That’s what it takes to crack the code. That’s what I’ve been warning you about for the past year.”

Gibbs was silent, no doubt recalling Blundin’s requests to de-link from Research Division and his claims that the code could be vulnerable to a special type of computer-assisted probing. “The hacker problem,” Gibbs said finally. “Using a supercomputer or something. Is that how this was done?”

Blundin shifted in his chair. “Under normal circumstances, I would say no. Because even a supercomputer basically does things in series, checking one number against another, raising them by a single exponent and running them through a single algorithm. Even at the speed of your average Cray or Big Blue you’re still talking too many numbers and too much time.” Blundin paused and did some calculations in his head. “Might take a year or two of continuous, uninterrupted operation.”

Gibbs tapped his pen on the desktop. “You said ‘under normal circumstances.’ Am I to assume we’re firmly in the abnormal realm now?”

Blundin wiped his brow. “There’s a different type of programming out there,” he said. “In some cases, entering its third and fourth generation. It’s called massive parallel processing. It’s used to link computers together, everything from regular PCs to servers and mainframes. And it can turn those units into the equivalent of a supercomputer … or ten. Aside from NASA and the Defense Department, not too many people even use it, because no one needs that kind of power. But it’s out there and it’s faster than anything you can imagine.”

“How fast are we talking about?”

“Exponentially faster. In other words, four linked units aren’t four times faster, they’re sixteen times faster. A hundred linked processors can be ten thousand times faster. Instead of a one-lane highway for your information to roll down, you now have a fifty-lane highway, or a thousand-lane highway or even a million-lane highway. The numbers get checked in parallel, instead of series. A sophisticated program could run a hundred teraflops per second. That is a hundred trillion calculations every second. And like I’ve been trying to tell you, this type of programming makes systems like ours vulnerable.”

The director appeared shocked. “Our system is the same one used by the FBI, even the CIA. You’re telling me their files are unsecured?”

Blundin shook his head. “Aside from a few criminals, nobody gives a shit what the FBI has in its files. You can’t make any money off what the FBI has in its files. And the Agency system is a pure standalone. Unless you drill a hole in the wall and plug in, there is no way to link up. But we’re attached to Research Department and they’re hooked up all over the fucking place—universities, member corporations, affiliates. It’s like Grand fucking Central. And if you steal one of their projects—or one of ours—you’ve saved years of research for your company, and hundreds of millions in R and D. What the hell do you think we’re all about? It’s the same thing we do to the other side.”

Gibbs looked ill and Blundin thought, If he’s sick now he’s going to puke when I tell him the rest. “It gets worse,” he said.

A look of disbelief covered Gibbs’ face. “Really?” he said. “Well, please tell me. Because I can’t fucking imagine how.”

Blundin hesitated. This time when he spoke, the words came reluctantly. This was the part he hated, the slap in the face that made it so much harder to bear. “I told you they couldn’t do this from the outside. Well, that leaves only one possibility. The actual grunt work of going through the numbers happened on the inside.”

“Our own computers?”

“We have mainframes, stacks of blade servers, and two hundred and seventy-one linked PCs in this building alone. Add in the Research Department and the total network is five times larger, including a pair of brand-new Crays in a climate-controlled room over in Building Three. Link all these units together and you have one unbelievable number-crunching machine.”

“Some kind of virus,” Gibbs guessed.

Blundin nodded. “I have no proof yet, but I suspect when we’re done we’ll find that someone introduced a massive parallel program to our system which instructed our machines to work on breaking our own code.”

Gibbs’ bloodshot eyes looked like they might bug out of his head. “That’s just absurd,” he said. “I mean, I’m waiting for you to tell me that you’re kidding.”

Blundin pulled at his shirt collar. The button was already open but it still felt tight around the bulge of his neck. “I’m not.”

Gibbs leaned back in his chair, mumbling a string of expletives, as if enough swearing could purge him of the feeling welling up inside him. Finally, he focused on Blundin once again. “All right,” he said. “I find it hard to believe this shit, but I guess I don’t really have a choice. So now what? How do we find these bastards?”

Blundin had already begun a counterattack. “Since they probably tapped us from Research’s side, we should start there. Go into Research Division’s back door ourselves. I’m already looking at the programs they were running, to identify candidates for this Trojan. Once we have our list, we investigate the companies that own those programs.”

The director approved with a nod. “Okay, but I want you to do it personally, and then bring the information directly to me.” He clarified. “Only to me.”

“What about the boys at the Bureau?”

Gibbs was adamant. “No one from the outside. Not even anyone in your department. Not until I tell you.”

That was fine with Blundin. Better to solve the problem before telling the world about it anyway.

“What else do we know?”

“Not much,” Blundin said. “They accessed information all over the place, like they didn’t know exactly what they were looking for at first. Their queries covered at least a dozen projects, maybe more. I’m still checking. Their last entry was three weeks ago, on …” He leafed through his copy of the report until he found the right page. “January 4.” He said, “Nothing since then.”

“Did we change the codes that week?”

“No, they haven’t been changed yet.”

Gibbs’ face went red again. “You might want to get around to that.”

“Actually, I don’t,” Blundin said. “Our best chance of catching them is to have the idiots make another entry. I’ve put a tracer on the system, a slick little runner that they’ll never see coming. If they tap the system again, we’ll follow them home.”

Gibbs held up a hand, relenting. “All right. It’s your area of expertise, you run the investigation. Do whatever the hell you have to do, but keep it to yourself. I don’t want another soul involved until I know what happened. Do you understand?”

“Yeah, I get it,” Blundin said. “I pretty much got it the first time.” He reached for his cigarette, and saw that it had burned down to a stub. He looked at it sadly, wondering if he could get one more drag off the thing, before giving up and crushing it out. He reached into his pocket for a new one, only to find the pack empty. Another aggravation. “I’m too tired for any more of this shit tonight,” he said, standing up and grabbing his jacket off the back of the chair. “We can have another bitch session in the morning, if you want. But I’m going home.”

Gibbs looked at the clock, then nodded his permission.

Blundin walked toward the exit, stopping in the doorway and turning around, remembering another discrepancy. “There is one other thing,” he said.

“What’s that?” Gibbs asked, looking down at the report again.

“We don’t know for sure,” Blundin began, “but we’re pretty much assuming this has something to do with the Brazil project, right? So I took the liberty to check those files. Sure enough, they were all accessed. Every single one of them.” Gibbs looked up, and Blundin pulled on his coat as he continued speaking. “The thing is, in checking them, I noticed the file sets didn’t have any project codes attached. And the funding codes belonged to a completely different project.”

Gibbs looked surprised. “Whose entries were they?”

“Your junior achiever down there in Brazil, Laidlaw.”

Gibbs waited. “And …”

“Well, does she know what the fuck she’s doing?”

Gibbs’ face relaxed a bit. “Don’t worry about that,” he said. “It’s accounting’s fault. They’ve screwed that up before, because she’s outside of her sector. Let me guess: the funding codes belonged to one of her other projects.”


“See,” Gibbs said, “accounting. I’ll chew their asses for it tomorrow. You just find the son of a bitch who hacked us.”

“All right,” Blundin said. “I figured it was something like that. I’ll give you the file numbers in the morning.”

Gibbs nodded and Blundin gave a half-assed wave as he ducked out through the door.

With Blundin gone, Gibbs was left alone to ponder the situation. He sat quietly for several minutes, silently rejoicing at the limits he’d placed on Moore and Laidlaw, limits that had saved him from dumping the most important information into the database, including the location of the recently discovered temple. That was good news, and it eased his mind considerably, but other news was less pleasant. He stared hard at the doorway through which Blundin had just departed, his eyes burning from anger and lack of sleep. In some ways, things had just gone from bad to worse.

Black Rain