{VERSION 3 0 "IBM INTEL NT" "3.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 1 12 128 0 128 1 0 1 0 0 1 0 0 0 0 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 }{CSTYLE "2D Comment" 2 18 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "2D Output" 2 20 "Times" 1 12 0 128 0 1 0 1 0 0 0 0 0 0 0 } {CSTYLE "" -1 256 "" 0 1 0 0 0 0 2 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 257 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 258 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 259 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 } {CSTYLE "" -1 260 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 261 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 262 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 263 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 264 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 265 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 266 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 267 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 268 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 269 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 270 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 271 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 272 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 273 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 274 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 275 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 276 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 277 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 278 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 279 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 280 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 281 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 282 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 283 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 284 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 285 "" 1 14 0 0 0 0 1 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 286 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 287 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 288 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 289 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 290 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 291 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 292 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 293 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 294 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 295 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 296 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 297 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 298 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 299 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 300 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 301 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 302 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 303 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 304 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 305 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 306 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 307 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 308 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 309 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 310 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 311 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 312 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 313 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 314 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 315 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 316 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 317 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 318 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 319 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 320 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 321 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 322 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 323 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 324 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 325 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 326 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 327 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 328 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 329 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 330 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 331 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 332 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 333 "" 1 18 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 334 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 335 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 336 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 337 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 338 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 339 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 340 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 341 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 342 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 343 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 344 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 345 "" 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 346 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 347 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 348 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 349 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 350 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 351 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 352 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE " " -1 353 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 354 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 355 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 356 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 357 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 358 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 359 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 360 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 361 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE " " -1 362 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 363 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 364 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 365 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 } {CSTYLE "" -1 366 "" 1 14 0 0 0 0 1 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 367 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 368 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 369 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 370 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 371 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 372 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 373 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 374 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 375 "" 0 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 376 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 377 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 378 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 379 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 380 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 381 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 382 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 383 "" 0 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE " " -1 384 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 385 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 386 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 387 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 388 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 389 "" 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 390 "" 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 391 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 392 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 393 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 394 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 395 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 396 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 397 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 398 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 399 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 400 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 } {CSTYLE "" -1 401 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 402 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 403 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 404 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 405 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 406 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 407 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 408 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 409 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 410 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 411 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 412 "" 1 18 0 0 0 0 0 0 1 0 0 0 0 0 0 } {CSTYLE "" -1 413 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 414 "" 1 14 0 0 0 0 1 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 415 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 416 "" 1 14 0 0 0 0 1 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 417 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 418 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 419 "" 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 420 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 421 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 422 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 423 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 424 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 425 "" 1 18 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE " " -1 426 "" 0 14 0 0 0 0 0 2 0 0 0 0 0 0 0 }{CSTYLE "" -1 427 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 428 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 429 "" 0 14 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 430 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 431 "" 0 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 432 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 433 "" 0 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 434 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE " " -1 435 "" 0 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 436 "" 0 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 437 "" 0 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 438 "" 0 14 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 439 "" 0 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 440 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 441 "" 0 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 442 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 443 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 444 "" 0 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 445 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 446 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 447 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE " " -1 448 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 449 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 450 "" 0 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 451 "" 0 14 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 452 "" 0 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 453 "" 0 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 454 "" 0 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 455 "" 0 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 456 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE " " -1 457 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 458 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 459 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 460 "" 0 14 0 0 0 0 0 0 1 0 0 0 0 0 0 } {CSTYLE "" -1 461 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 462 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 463 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 464 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 465 "" 1 14 0 0 0 0 1 0 1 0 0 0 0 0 0 }{CSTYLE " " -1 466 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 467 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 468 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 469 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 } {CSTYLE "" -1 470 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 471 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 472 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 473 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 474 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 475 "" 1 18 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 476 "" 1 18 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 477 "" 1 18 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 478 "" 1 18 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 479 "" 1 18 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 480 "" 1 18 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 481 "" 1 18 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 482 "" 1 18 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE " " -1 483 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 484 "" 1 18 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 485 "" 1 18 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 486 "" 1 18 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 487 "" 1 18 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 488 "" 1 18 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 489 "" 1 18 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 490 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 491 "" 1 18 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 492 "" 1 18 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 493 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 494 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 495 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE " " -1 496 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 497 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 498 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 499 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 500 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 501 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 502 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 503 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 504 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 505 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 506 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 507 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 508 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 509 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 510 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 511 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 512 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 513 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 514 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 515 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 516 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE " " -1 517 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 518 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 519 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 520 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 521 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 522 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 523 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 524 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 525 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE " " -1 526 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 527 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 528 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 529 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 530 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 531 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 532 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 533 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 534 "" 1 18 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 535 "" 0 18 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 536 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 537 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 538 "" 1 18 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE " " -1 539 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 540 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 541 "" 1 18 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 542 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 } {CSTYLE "" -1 543 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 544 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 545 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 546 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 } {CSTYLE "" -1 547 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 548 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 549 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 550 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 551 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 552 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 553 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 554 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 555 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 556 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 557 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 558 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 559 "" 1 14 0 0 0 0 1 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 560 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 561 "" 1 14 0 0 0 0 1 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 562 "" 1 18 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 563 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE " " -1 564 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 565 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 566 "" 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 567 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE " " -1 568 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 569 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 570 "" 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 571 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 572 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 573 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 574 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 575 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 576 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 577 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 578 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 579 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 580 "" 1 14 0 0 0 0 1 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 581 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 582 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 583 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 584 "" 1 14 0 0 0 0 1 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 585 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 586 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 587 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 588 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE " " -1 589 "" 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 590 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 591 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 592 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE " " -1 593 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 594 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 595 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 596 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE " " -1 597 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 598 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 599 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 600 "" 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 601 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 602 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 603 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 604 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 605 "" 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 606 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 607 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 608 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 609 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 610 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 611 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 612 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 613 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 614 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 615 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 616 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 617 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 618 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 619 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 620 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 621 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 622 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 623 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 624 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 625 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 626 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 627 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 628 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 629 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 630 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 631 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 632 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 633 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 634 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 635 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 636 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 637 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 638 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 639 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 640 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 641 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 642 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 643 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 644 "" 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 645 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 646 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 647 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 648 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 649 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 650 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 651 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 652 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 653 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 654 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 655 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 656 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 657 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 658 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 659 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 660 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 661 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 662 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 663 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 664 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 665 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 666 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 667 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 668 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 669 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 670 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 671 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 672 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 673 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 674 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 675 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 676 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 677 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 678 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 679 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 680 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 681 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 682 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 683 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 684 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 685 "" 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 686 "" 0 1 0 0 0 0 2 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 687 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 688 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 689 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 690 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 691 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 692 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 693 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 694 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 695 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 696 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 697 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 698 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 699 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 700 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 701 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 702 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 703 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 704 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 705 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 706 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 707 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 708 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 709 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 710 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 711 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 712 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 713 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 714 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 715 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 716 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 717 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 718 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 719 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 720 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 721 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 722 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 723 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 724 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 725 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 726 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 727 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 728 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 729 "" 1 14 0 0 0 0 1 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 730 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 731 "" 1 14 0 0 0 0 1 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 732 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 733 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 } {CSTYLE "" -1 734 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 735 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 736 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 737 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 738 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE " " -1 739 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 740 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 741 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 742 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 743 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 744 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 745 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 746 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 747 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE " " -1 748 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 749 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 750 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 751 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 752 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 753 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 754 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 755 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 756 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE " " -1 757 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 758 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 759 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 760 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE " " -1 761 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 762 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 763 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 764 "" 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 765 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 766 "" 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 767 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 768 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 769 "" 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 770 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 771 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 772 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 773 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 774 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 775 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 776 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 777 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 778 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 779 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 780 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 781 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 782 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 783 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 784 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 785 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 786 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 787 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 788 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 789 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 790 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 791 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 792 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 793 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 794 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 795 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 796 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 797 "" 1 18 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 798 "" 1 18 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 799 "" 1 18 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 800 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 801 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 802 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 803 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 804 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 805 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 806 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 807 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 808 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 809 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 810 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 811 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 812 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 813 "" 1 18 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 814 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 815 "" 1 18 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 816 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 817 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE " " -1 818 "" 1 18 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 819 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 820 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 821 "" 1 18 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 822 "" 0 18 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 823 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 824 "" 1 18 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 825 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 826 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 827 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 828 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 829 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 830 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 831 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 832 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 833 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 834 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE " " -1 835 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 836 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 837 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 838 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 839 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 840 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 841 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 842 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 843 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 844 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 845 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 846 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 847 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 848 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 849 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 850 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 851 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 852 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 853 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 854 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 855 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 856 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 857 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 858 "" 1 14 0 0 0 0 0 0 1 0 0 0 0 0 0 }{CSTYLE "" -1 859 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE " " -1 860 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 861 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 862 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 863 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 864 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 865 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 866 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 867 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 868 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE " " -1 869 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 870 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 871 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 872 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 } {PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 128 1 2 1 2 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Text Output" -1 2 1 {CSTYLE "" -1 -1 "Courier" 1 14 255 0 0 1 0 1 0 0 0 1 3 0 3 }1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Heading 1" 0 3 1 {CSTYLE "" -1 -1 "" 1 18 0 0 0 0 0 1 0 0 0 0 0 0 0 }1 0 0 0 8 4 0 0 0 0 0 0 -1 0 }{PSTYLE "Heading 2" 3 4 1 {CSTYLE "" -1 -1 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }0 0 0 -1 8 2 0 0 0 0 0 0 -1 0 }{PSTYLE "" 2 6 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 2 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Warning" 2 7 1 {CSTYLE "" -1 -1 "" 0 1 0 0 255 1 0 0 0 0 0 0 1 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Maple Output" 0 11 1 {CSTYLE "" -1 -1 "Courier" 1 12 0 128 0 1 0 1 0 0 0 0 0 0 0 }3 3 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 11 12 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Bullet Item" 0 15 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }0 0 0 -1 3 3 0 0 0 0 0 0 15 2 }{PSTYLE "Title" 0 18 1 {CSTYLE "" -1 -1 "" 1 18 0 0 0 0 0 1 1 0 0 0 0 0 0 }3 0 0 -1 12 12 0 0 0 0 0 0 19 0 }{PSTYLE "R3 Font 0" -1 256 1 {CSTYLE "" -1 -1 "Helvetica" 1 12 128 0 128 1 2 1 2 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 } {PSTYLE "R3 Font 2" -1 257 1 {CSTYLE "" -1 -1 "Courier" 1 12 0 128 0 1 2 1 2 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 258 1 {CSTYLE "" -1 -1 "" 1 18 0 0 0 0 1 0 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 259 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }3 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 260 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 261 1 {CSTYLE "" -1 -1 "" 1 18 0 0 0 0 0 0 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 262 1 {CSTYLE "" -1 -1 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }} {SECT 0 {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "# 3_clinton.mws" }}} {EXCHG {PARA 18 "" 0 "" {TEXT -1 31 "Bill Clinton, Bertie Ahern and\n " }{TEXT 345 18 "digital signatures" }}{PARA 0 "" 0 "" {TEXT -1 0 "" } }{PARA 259 "" 0 "" {TEXT 346 23 "A Public Lecture using " }{TEXT 465 5 "MAPLE" }{TEXT 466 0 "" }{TEXT 467 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 464 4 "Da te" }{TEXT 463 2 ". " }{TEXT -1 0 "" }{TEXT 461 43 " \+ WED. 25th. Nov. 1998." }{TEXT 462 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 349 5 "Venue" }{TEXT 388 98 ". \+ ST. PATRICK'S COLLEGE, \n DRUM CONDRA, DUBLIN 9." }{TEXT 348 0 "" }}{PARA 0 "" 0 "" {TEXT -1 44 " \+ " }}{PARA 0 "" 0 "" {TEXT 347 8 "Lecturer" }{TEXT -1 1 "." }{TEXT 726 18 " " } {TEXT -1 79 "JOHN COSGRAVE, \n M ATHEMATICS DEPARTMENT, " }}{PARA 0 "" 0 "" {TEXT -1 114 " \+ ST. PATRICK'S COLLEGE, \n \+ DRUMCONDRA," }}{PARA 0 "" 0 "" {TEXT -1 57 " \+ DUBLIN 9, IRELAND." }}{PARA 0 "" 0 " " {TEXT -1 139 " [home e-mail: j ohnbcos@iol.ie\n College: John. Cosgrave@spd.ie]" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 364 0 "" }{TEXT 365 0 "" }{TEXT 366 5 "MAPLE" } {TEXT -1 3 ". " }{TEXT 387 43 " This talk has been prepared u sing " }{TEXT 367 5 "MAPLE" }{TEXT -1 2 ". " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 368 5 "MAPLE" }{TEXT -1 50 " is a remarkable 'Computer Algebra System', which " }}{PARA 0 " " 0 "" {TEXT -1 57 "has been in continuous development since December \+ 1980. " }}{PARA 0 "" 0 "" {TEXT -1 61 "Initially it was the brain-chi ld of a dedicated group at the " }}{PARA 0 "" 0 "" {TEXT -1 63 "Univer sity of Waterloo (Canada). It continues to be developed " }}{PARA 0 " " 0 "" {TEXT -1 61 "there, but now with the assistance of INRIA (Franc e) and the " }}{PARA 0 "" 0 "" {TEXT -1 68 "ETH (Zurich, Switzerland). It is used here in St. Patrick's College " }}{PARA 0 "" 0 "" {TEXT -1 66 "by all first, second and third year students in our undergradua te " }}{PARA 0 "" 0 "" {TEXT -1 22 "Mathematics programme." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 369 0 "" }{TEXT 370 14 "Some Web sites" }{TEXT 371 1 "." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 15 "" 0 "" {TEXT -1 0 "" }{TEXT 376 0 "" }{TEXT -1 4 "The " }{TEXT 377 0 "" }{TEXT 378 5 "MAPLE" }{TEXT 379 1 " " } {TEXT -1 20 "home page is at: \n\n" }{TEXT 420 43 " \+ www.maplesoft.ca\n" }{TEXT -1 0 "" }}{PARA 15 "" 0 "" {TEXT -1 0 "" }{TEXT 380 0 "" }{TEXT 381 5 "MAPLE" }{TEXT 383 1 " " }{TEXT -1 67 "can be obtained from Adept Scientific at:\n\n \+ " }{TEXT 494 34 "elaine.bragg@adeptscientific.co.uk" }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 57 "There are a huge n umber of helpful sites; use any search " }}{PARA 0 "" 0 "" {TEXT -1 20 "engine and look up '" }{TEXT 384 0 "" }{TEXT 385 5 "Maple" }{TEXT 386 1 "." }{TEXT 382 0 "" }{TEXT -1 0 "" }{TEXT 372 0 "" }{TEXT 375 0 "" }{TEXT 374 0 "" }{TEXT 373 0 "" }{TEXT -1 1 "'" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 362 0 "" }{TEXT 363 0 "" }{TEXT -1 0 "" }{TEXT 353 0 "" }{TEXT 350 12 "Introduction" } {TEXT -1 55 ". In recent years hardly a day has passed without some" }}{PARA 0 "" 0 "" {TEXT -1 57 "newspaper, magazine or journal making s ome reference to '" }{TEXT 354 10 "e-commerce" }{TEXT -1 1 "'" }} {PARA 0 "" 0 "" {TEXT -1 30 "and the associated concepts of" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 15 "" 0 "" {TEXT 261 16 " encrypti on " }{TEXT 356 1 "(" }{TEXT 355 10 "public-key" }{TEXT 357 1 ")" }} {PARA 15 "" 0 "" {TEXT 262 15 " decryption" }{TEXT 351 1 " " } {TEXT 359 1 "(" }{TEXT 360 11 "private-key" }{TEXT 361 1 ")" }{TEXT -1 5 " and " }{TEXT 358 0 "" }}{PARA 15 "" 0 "" {TEXT 264 20 " sec ure digital " }{TEXT 352 0 "" }{TEXT 263 10 "signatures" }{TEXT -1 2 " \n" }}{PARA 0 "" 0 "" {TEXT -1 45 "in short, the whole paraphernalia \+ of modern (" }{TEXT 421 4 "i.e." }{TEXT -1 11 " post 1977)" }}{PARA 0 "" 0 "" {TEXT -1 26 "public-key cryptography. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 7 "[For a " }{TEXT 423 23 "hi story of Cryptography" }{TEXT -1 21 " see the outstanding " }}{PARA 0 "" 0 "" {TEXT -1 23 " (1181 page) reference:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 1 " " }{TEXT 422 1 " " }{TEXT 727 4 " " }{TEXT 731 16 "The Codebreakers" }{TEXT -1 30 " (The Comprehe nsive History of" }}{PARA 0 "" 0 "" {TEXT -1 63 " Secret Communi cation from Ancient Times to the Internet)" }}{PARA 0 "" 0 "" {TEXT -1 10 " by " }{TEXT 732 10 "David Kahn" }{TEXT -1 15 ", publishe d by " }{TEXT 728 0 "" }{TEXT 729 8 "SCRIBNER" }{TEXT 730 0 "" }{TEXT -1 7 ", 1996 " }}{PARA 0 "" 0 "" {TEXT -1 27 " (2nd. new edition ) " }{TEXT 733 18 "ISBN 0-684-83130-9" }{TEXT -1 2 " ]" }}{PARA 0 "" 0 "" {TEXT 424 38 "\n " }{TEXT 425 24 "My lecture in a nutshell" }{TEXT 456 2 ". " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 275 "\"Ahern to seal historic digital accord with Clinton\", and \"Digital history\nmade in Dublin \" - Irish Times, Sept. 1st. and 5th. On Sept. 4th. Bill\nClinton and \+ Bertie Ahern 'digitally signed' a US-Irish government\ncommuniqu\351 o n e-commerce, using cryptographic software produced " }}{PARA 0 "" 0 " " {TEXT -1 31 "by Baltimore Technologies (see " }{TEXT 505 16 "www.bal timore.ie" }{TEXT -1 21 " for a picture of the" }}{PARA 0 "" 0 "" {TEXT -1 66 "signing ceremony, and the government communique). [Mr. Ah ern - the" }}{PARA 0 "" 0 "" {TEXT -1 68 "Irish Prime Minister - is ou r neighbour here in Drumcondra, and as a" }}{PARA 0 "" 0 "" {TEXT -1 57 "boy went to the primary school in the College grounds.]\n\n" } {TEXT 468 28 "What is a digital signature?" }{TEXT -1 43 " It is a ma thematically driven electronic " }}{PARA 0 "" 0 "" {TEXT -1 33 "form o f a classical signature, a " }{TEXT 551 25 "revolutionary development " }{TEXT -1 39 " made possible\nthrough the creation of " }{TEXT 552 25 "'public-key' cryptography" }{TEXT -1 2 ". " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 469 40 "How does 'public-key' cr yptography work?" }{TEXT -1 12 " Here is a " }{TEXT 470 6 "highly" } {TEXT -1 1 " " }}{PARA 0 "" 0 "" {TEXT 471 9 "idealised" }{TEXT -1 24 " picture which captures " }{TEXT 474 18 "the essential idea" }{TEXT -1 24 ": imagine I have paints" }}{PARA 0 "" 0 "" {TEXT -1 1 " " }} {PARA 15 "" 0 "" {TEXT 475 7 "public1" }{TEXT -1 15 " (available to " }{TEXT 820 0 "" }{TEXT 821 0 "" }{TEXT 822 0 "" }{TEXT -1 0 "" }{TEXT 472 6 "anyone" }{TEXT -1 87 ". 'Anyone' in the sense \n \+ that I don't care who has access to it) and " }}{PARA 15 "" 0 "" {TEXT 537 0 "" }{TEXT 538 8 "private1" }{TEXT 539 0 "" }{TEXT -1 12 " \+ (available " }{TEXT 536 0 "" }{TEXT -1 0 "" }{TEXT 533 0 "" }{TEXT 534 0 "" }{TEXT 535 0 "" }{TEXT -1 0 "" }{TEXT 473 10 "only to me" } {TEXT -1 56 "), with these properties:\n\n1. a surface painted with \+ " }{TEXT 476 7 "public1" }{TEXT -1 57 " (disguising the surface), and \n subsequently with " }{TEXT 540 0 "" }{TEXT 541 8 "private1" }{TEXT -1 62 ", restores the original surface,\n\n2. a surface painte d with " }{TEXT 477 8 "private1" }{TEXT -1 54 " (disguising the surfa ce), and \n subsequently with" }{TEXT 478 8 " public1" }{TEXT -1 76 ", restores the original surface,\n\n3. no one can realistically m anufacture " }{TEXT 479 8 "private1" }{TEXT -1 7 " from " }{TEXT 480 7 "public1" }{TEXT -1 2 ".\n" }}{PARA 0 "" 0 "" {TEXT 553 31 "You \+ then communicate with me by" }{TEXT -1 27 " writing your message on a \+ " }}{PARA 0 "" 0 "" {TEXT -1 26 "surface, paint over with " }{TEXT 481 7 "public1" }{TEXT -1 38 ", and send the painted surface to me. " }}{PARA 0 "" 0 "" {TEXT -1 35 "On receipt, by painting over with " } {TEXT 482 8 "private1" }{TEXT -1 26 ", I recover your message. " }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 50 "Can I hav e confidence the message came from you? " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 65 "I can't!! The message could be fr om someone impersonating you.\n\n" }{TEXT 483 20 "This is the solution " }{TEXT -1 27 ". Suppose you have paints " }{TEXT 484 7 "public2" } {TEXT -1 5 " and " }{TEXT 485 9 "\nprivate2" }{TEXT -1 30 ", with prop erties similar to " }{TEXT 486 7 "public1" }{TEXT -1 6 " and " } {TEXT 487 8 "private1" }{TEXT -1 3 ". " }}{PARA 0 "" 0 "" {TEXT -1 47 "Write your message on a surface, and apply two " }{TEXT 490 10 "di sguising" }{TEXT -1 7 " coats " }}{PARA 0 "" 0 "" {TEXT -1 11 "of pain ts: " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 15 "" 0 "" {TEXT -1 11 " first with " }{TEXT 545 4 "your" }{TEXT -1 1 " " }{TEXT 542 6 "secret " }{TEXT -1 1 " " }{TEXT 488 8 "private2" }{TEXT -1 2 ", " }}{PARA 15 "" 0 "" {TEXT -1 10 "then with " }{TEXT 544 2 "my" }{TEXT -1 1 " " } {TEXT 543 6 "public" }{TEXT -1 2 " " }{TEXT 489 7 "public1" }{TEXT -1 3 ". \n" }}{PARA 0 "" 0 "" {TEXT -1 55 "On receipt of the doubly-di sguised surface I apply two " }}{PARA 0 "" 0 "" {TEXT 493 9 "revealing " }{TEXT -1 17 " coats of paint: " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 15 "" 0 "" {TEXT -1 11 "first with " }{TEXT 546 2 "my" }{TEXT -1 1 " " }{TEXT 547 6 "secret" }{TEXT -1 2 " " }{TEXT 491 8 "private1 " }{TEXT -1 31 " (stripping off the top layer)," }}{PARA 15 "" 0 "" {TEXT -1 10 "then with " }{TEXT 548 4 "your" }{TEXT -1 1 " " }{TEXT 549 6 "public" }{TEXT -1 1 " " }{TEXT 492 7 "public2" }{TEXT -1 72 ", \+ revealing the original \nmessage which I know must have come from you. \n" }{TEXT 550 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 495 0 "" } {TEXT -1 0 "" }{TEXT 496 0 "" }{TEXT 497 59 "This highly fanciful idea has, however, been made a reality" }{TEXT 498 1 ":" }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 33 "Classical (pre 1976) cr yptography" }{TEXT 426 1 " " }{TEXT -1 1 "(" }{TEXT 435 8 "kryptos " } {TEXT -1 5 "logos" }{TEXT 444 9 " = hidden" }{TEXT -1 11 " word) was \+ " }}{PARA 0 "" 0 "" {TEXT -1 73 "about devising means of disguising me ssages so that the recipient of the " }}{PARA 0 "" 0 "" {TEXT -1 66 "m essage was privy to HOW the message was disguised, and thus - by " }} {PARA 0 "" 0 "" {TEXT 436 21 "reversing the process" }{TEXT -1 37 " - \+ could recover the original message" }{TEXT 427 1 "." }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 31 "The archetypal example \+ was the " }{TEXT 429 11 "Caesar code" }{TEXT -1 22 ", whereby the mess age " }}{PARA 0 "" 0 "" {TEXT -1 72 "was disguised by 'transposition b y 3', a posh way of saying 'move every " }}{PARA 0 "" 0 "" {TEXT -1 7 "letter " }{TEXT 439 5 "along" }{TEXT -1 37 " three places.' Thus - fo r example - " }{TEXT 431 5 "' cat" }{TEXT -1 17 " ' would become '" } {TEXT 433 4 " fdw" }{TEXT -1 4 " ', " }}{PARA 0 "" 0 "" {TEXT -1 32 "a nd the recipient would recover " }{TEXT 437 3 "cat" }{TEXT -1 6 " from " }{TEXT 438 3 "fwd" }{TEXT -1 24 " by moving every letter " }{TEXT 441 4 "back" }{TEXT -1 1 " " }}{PARA 0 "" 0 "" {TEXT -1 12 "three plac es" }{TEXT 428 2 ".\n" }}{PARA 0 "" 0 "" {TEXT -1 68 "Later methods we re far, far more complex, but nevertheless the fact " }}{PARA 0 "" 0 " " {TEXT -1 67 "remained that until about 1977 all cryptographic method s were such " }}{PARA 0 "" 0 "" {TEXT -1 67 "that if one knew HOW a me ssage was encrypted then one could easily " }}{PARA 0 "" 0 "" {TEXT -1 10 "decrypt it" }{TEXT 430 1 "." }{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 457 1 "\n" }{TEXT -1 47 "The REVOLUTION brought about in 1976 in a paper" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 446 54 " 'The fundamental idea of public-key cryptography' " }}{PARA 0 "" 0 "" {TEXT 445 22 " (" }{TEXT 501 24 "Diffie an d Hellman, 1976" }{TEXT 502 3 "), " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 44 " [in which one might say they propos ed " }{TEXT 499 8 "the idea" }{TEXT -1 15 " of the paints]" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 447 19 " \+ " }{TEXT -1 28 "and in 1977 in another paper" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 448 48 " 'The realization of \+ public-key cryptography'" }{TEXT -1 1 " " }}{PARA 0 "" 0 "" {TEXT -1 15 " " }{TEXT 449 1 "(" }{TEXT 503 32 "Rivest, Shamir an d Adleman, 1977" }{TEXT 504 1 ")" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 43 " [in which one might say they showe d " }{TEXT 500 16 "how to make them" }{TEXT -1 1 "]" }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 62 "was that one could now \+ have methods of disguise which were of " }}{PARA 0 "" 0 "" {TEXT 455 13 "such a nature" }{TEXT -1 39 " that EVEN IF ONE KNEW HOW THE MESSAG E " }}{PARA 0 "" 0 "" {TEXT -1 5 "WAS '" }{TEXT 450 9 "ENCRYPTED" } {TEXT -1 3 "' (" }{TEXT 451 1 "i" }{TEXT -1 1 "." }{TEXT 452 1 "e" } {TEXT -1 28 ". disguised) ONE COULD NOT '" }{TEXT 453 7 "DECRYPT" } {TEXT -1 3 " ' " }}{PARA 0 "" 0 "" {TEXT -1 1 "(" }{TEXT 454 4 "i.e." }{TEXT -1 49 " unscramble) IT IN ANY REASONABLE PERIOD OF TIME " }} {PARA 0 "" 0 "" {TEXT -1 30 "(MANY THOUSANDS OF YEARS, SAY)" }{TEXT 432 3 ".\n\n" }{TEXT -1 4 "The " }{TEXT 460 3 "key" }{TEXT -1 64 " to \+ this development - in a nutshell - was to devise 'trapdoor' " }}{PARA 0 "" 0 "" {TEXT -1 64 "methods: methods which were intrinsically diff icult to reverse " }}{PARA 0 "" 0 "" {TEXT -1 71 "(it is easy to fall \+ through a trapdoor, but difficult to get out of it)" }{TEXT 434 31 ". \n\nKeep your eye open for this " }{TEXT 458 22 "difficulty of reversa l" }{TEXT 459 4 " as " }}{PARA 0 "" 0 "" {TEXT 506 17 "my talk proceed s." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 18 " \+ " }{TEXT 412 32 "Structure of the rest of my talk" } {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 1 "\n" }{TEXT 413 11 "Section One" }{TEXT 507 22 ". A romp through " }{TEXT 414 23 "public-key cryptography" }{TEXT 508 0 "" }{TEXT 415 0 "" }{TEXT 509 53 ",\n \+ using the revolutionary " }{TEXT 416 10 "RSA met hod" }{TEXT 510 1 "." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 4 "" 0 " " {TEXT -1 0 "" }{TEXT 417 11 "Section Two" }{TEXT -1 19 ". How t he the " }{TEXT 418 3 "RSA" }{TEXT -1 57 " method is used\n \+ to provide a '" }{TEXT 419 17 "digital signature" } {TEXT -1 2 ".'" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 734 0 "" }{TEXT 735 13 "Section Three" }{TEXT 736 10 ". The '" }{TEXT 737 21 "factorization problem" }{TEXT 738 2 ".'" }{TEXT -1 1 " " }{TEXT 755 6 "[the '" }{TEXT 754 8 "trapdoor" } {TEXT 756 3 ".']" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 " " 0 "" {TEXT 742 0 "" }{TEXT 739 11 "Section One" }{TEXT -1 1 "." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 512 5 "First" } {TEXT -1 19 " we need to make a " }{TEXT 513 10 "convention" }{TEXT -1 22 " as to an ordering of " }}{PARA 0 "" 0 "" {TEXT -1 4 "our " } {TEXT 511 19 "alphabetic symbols " }{TEXT -1 34 "('a' followed by 'b', 'b' by 'c', " }{TEXT 554 4 "etc." }{TEXT -1 2 "):" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }{TEXT -1 0 "" } {MPLTEXT 1 0 148 "`crypt/alphabet` := \n `abcdefghijklmnopqrstuvwxyz `\n .`ABCDEFGHIJKLMNOPQRSTUVWXYZ`\n .```1234567890-=~!@#$\243%^&*( )_+`\n .` ,./<>?;':\"[]\{\}| `:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 514 4 "Next" }{TEXT -1 24 " we need a procedure to " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 515 10 " " }{TEXT 517 35 "turn a string of text into a number" }{TEXT 516 1 ":" }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 250 "to_ number := proc(st, string) \nlocal ll, nn, ss, ii; \nll := length(st) ;\nif ll = 0 then RETURN(0) fi; \nnn := 1;\nfor ii to ll do \nss := Se archText(substring(st, ii .. ii),\n `crypt/alphabet`); \nnn := 100*nn + ss \nod;\nnn - 10^(2*ll) \nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" } {TEXT 518 0 "" }{TEXT 519 13 "Some examples" }{TEXT 520 2 " (" }{TEXT 522 4 "Note" }{TEXT 523 33 " to anyone trying this: the text " }} {PARA 0 "" 0 "" {TEXT 524 4 "must" }{TEXT 555 20 " be included within \+ " }{TEXT 521 15 "backward quotes" }{TEXT 740 13 ", namely ``)." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "to_number(`This is great!!!`); # Example 1" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"Annn?,0=2!)>4!)>43Y" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 741 0 "" }{TEXT 525 11 "Observation" }{TEXT -1 1 "." }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 15 "" 0 "" {TEXT -1 46 "The initial '46' repre sents the 'T' in 'This, " }}{PARA 15 "" 0 "" {TEXT -1 63 "the followin g '08' represents the 'h' in 'This',\n .\n .\n ." }}{PARA 15 "" 0 "" {TEXT -1 56 "the final '676767' corresponds to the '!!!' at the e nd.\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "to_number(`Lmsaus \+ woutfger &8^%ysph ;;; 23$\243\243!+=plas`); # Example 2" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#\"]p>,7;lznrrqcb!yyy3)3;>Dsthu!)=021?@:B!)>@,>8Q " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 526 7 "Comment" }{TEXT -1 56 ". Junk text w ill still have a numerical representation." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 556 7 "Finally" }{TEXT -1 48 " we need a procedure to\n\n " }{TEXT 527 0 "" } {TEXT 528 38 "recover a string of text from a number" }{TEXT 529 1 "\n " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 272 "from_number := proc(nn , integer) \nlocal ss, mm, ll, pp, ii, ans; mm := nn;\nll := floor(1/2 *trunc(evalf(log10(mm))))+1;\nans := ``; for ii to ll do mm := mm/100; \npp := 100*frac(mm);\nss := substring(`crypt/alphabet`, pp..pp);\nans := cat(ss, ans); mm := trunc(mm)\nod; ans end:" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" } {TEXT 530 0 "" }{TEXT 531 13 "Some examples" }{TEXT 532 1 "." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 250 " from_number(9027140480358001138009148004051916010918802008012080200913 0580130125800218091407802716161815220504801601202005181419801506802315 1305148015188015068013051480282120801415208020080120801905120619011305 80052403051212051403058001070109148290);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#%ar\"And~I~am~in~despair~that~time~may~bring~Approved~patterns~o f~women~or~of~men~But~not~that~selfsame~excellence~again.\"G" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 88 "from_number(112233445534768009871278345576987987654 97059236721694654300987766554443336);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%FkvGR2H(~i;l_H2(~+;=W$6w!u#T1Di;(=1RGJG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 196 "fro m_number(4608091980091980018007180501208012050320211805676780301580251 5211880192021040514201980121515118006151823011804802015800715091407802 015802008050918801805072112011880120503202118051986);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%fpThis~is~a~great~lecture!!~Do~your~students~look ~forward~to~going~to~their~regular~lectures?G" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 44 "A messag e from the students: 40416767 ... 67" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 21 "Let's see what it is:" }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "from_numb er(4041676767676767676767676767676767);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%2NO!!!!!!!!!!!!!!!G" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 557 0 "" }{TEXT 558 26 "Now for a crash course on " }{TEXT 559 3 "RSA" }{TEXT 560 1 " \+ " }{TEXT 561 25 "public-key cryptography,\n" }{TEXT 633 80 "in which I cut some corners, but make an effort to point\nout when I am doing so ." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 62 "One \+ frequently reads that RSA public-key cryptography is about" }}{PARA 0 "" 0 "" {TEXT -1 9 "choosing:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 15 "" 0 "" {TEXT -1 4 "two " }{TEXT 562 5 "'big'" }{TEXT -1 12 " primes - ' " }{TEXT 567 0 "" }{TEXT 563 1 "p" }{TEXT -1 9 " ' and ' \+ " }{TEXT 564 1 "q" }{TEXT -1 56 " '- and multiplying them together,\nf orming the number ' " }{TEXT 565 1 "n" }{TEXT -1 39 " ' - one of the t wo elements of the \n' " }{TEXT 566 6 "public" }{TEXT 573 4 "-key" } {TEXT -1 77 " ' [this is indeed part of the truth, but is not the enti re\ntruth. A certain " }{TEXT 635 4 "care" }{TEXT -1 121 " - in the 'r eal world' - must be exercised in\nchoosing these two primes. It all \+ relates to the fundamentally\ndifficult '" }{TEXT 634 21 "factorizatio n problem" }{TEXT -1 36 "' ... ].\n\nand that one then creates " } {TEXT 625 19 "two further numbers" }{TEXT -1 2 ":\n" }}{PARA 15 "" 0 " " {TEXT -1 2 " '" }{TEXT 568 2 " e" }{TEXT -1 11 " ' - the ' " }{TEXT 570 6 "public" }{TEXT 572 18 " encryption power " }{TEXT -1 35 "', and the second element of\nthe ' " }{TEXT 571 10 "public-key" }{TEXT -1 7 " ' \n\n[ " }{TEXT 611 37 "the fine mathematical detail requires" } {TEXT -1 11 " that this " }{TEXT 607 1 "e" }{TEXT -1 21 ", and the num ber \n (" }{TEXT 608 1 "p" }{TEXT -1 13 " - 1) times (" }{TEXT 609 1 "q" }{TEXT -1 11 " - 1), are " }{TEXT 612 18 "not both divisible" } {TEXT -1 33 " by some common whole \n number, " }{TEXT 610 14 "greate r than 1" }{TEXT -1 10 ". That '(" }{TEXT 653 1 "p" }{TEXT -1 13 " - \+ 1) times (" }{TEXT 654 1 "q" }{TEXT -1 1 " " }{TEXT 655 0 "" }{TEXT -1 26 "- 1)' is known as\n the ' " }{TEXT 656 9 "phi-value" }{TEXT -1 17 " ' of the number " }{TEXT 657 1 "n" }{TEXT -1 104 ", and it was introduced into\n Mathematics by the renowned 18th. century mathemat ician, Euler.\n\n Thus - " }{TEXT 627 11 "for example" }{TEXT -1 11 " \+ - to take " }{TEXT 619 32 "small illustrative (only) values" }{TEXT -1 8 ":\n\n if " }{TEXT 620 1 "p" }{TEXT -1 5 " was " }{TEXT 636 1 "5 " }{TEXT -1 5 " and " }{TEXT 621 1 "q" }{TEXT -1 5 " was " }{TEXT 637 2 "11" }{TEXT -1 7 ", then " }{TEXT 622 1 "e" }{TEXT -1 1 " " }{TEXT 626 5 "could" }{TEXT -1 17 " be chosen to be " }{TEXT 638 1 "3" } {TEXT -1 13 ", because \n " }{TEXT 639 1 "3" }{TEXT -1 7 " and (" } {TEXT 640 1 "5" }{TEXT -1 13 " - 1) times (" }{TEXT 641 2 "11" }{TEXT -1 95 " - 1) (namely 40) are not both divisible by any \n common whol e number greater than 1, whereas " }{TEXT 623 1 "e" }{TEXT -1 7 " coul d " }{TEXT 624 3 "not" }{TEXT -1 74 " be \n chosen to be - say - 6, s ince 6 and 40 are both divisible by 2. ]\n " }}{PARA 15 "" 0 "" {TEXT -1 1 "'" }{TEXT 569 2 " d" }{TEXT -1 10 " ' - the '" }{TEXT 256 25 " p rivate decryption power" }{TEXT -1 7 " ' \n\n[ " }{TEXT 613 37 "the fi ne mathematical detail requires" }{TEXT -1 10 " that the " }{TEXT 616 7 "product" }{TEXT -1 19 " of the \n numbers " }{TEXT 614 1 "e" } {TEXT -1 5 " and " }{TEXT 615 1 "d" }{TEXT -1 30 " be a multiple of th e number (" }{TEXT 617 1 "p" }{TEXT -1 16 " - 1) times \n (" }{TEXT 618 1 "q" }{TEXT -1 65 " - 1), plus 1.\n\n Thus - for example - and us ing the above values " }{TEXT 628 1 "p" }{TEXT -1 6 " = 5, " }{TEXT 629 1 "q" }{TEXT -1 13 " = 11,\n and " }{TEXT 630 1 "e" }{TEXT -1 6 " = 3, " }{TEXT 631 1 "d" }{TEXT -1 1 " " }{TEXT 632 21 "could be chose n to be" }{TEXT -1 95 " 27 since 3 times 27 (namely 81)\n is a multip le of 40, plus 1 (namely 2 times 40, plus 1). ] \n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 574 0 "" }{TEXT -1 0 "" }{TEXT 586 0 "" }{TEXT 587 38 "S ome brief, passing mathematical notes" }{TEXT 588 1 ":" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 15 "Recall that a '" } {TEXT 589 5 "prime" }{TEXT -1 43 "' number is a whole number which is \+ greater" }}{PARA 0 "" 0 "" {TEXT -1 21 "than 1, and which is " }{TEXT 590 37 "evenly divisible only by 1 and itself" }{TEXT -1 1 "." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 594 18 "A few co mputations" }{TEXT -1 1 ":" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "with(numtheory):" }}{PARA 7 "" 1 " " {TEXT -1 33 "Warning, new definition for order" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "divisors(17); # 17 is a prime number:" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#<$\"\"\"\"#<" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "divisors(15); # 15 isn't a prime number:" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#<&\"\"\"\"\"$\"\"&\"#:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "divisors(123454321);" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#<+\"*@VXB\"\"$r#\"%\"o\"\"&66\"\"&TM(\"'^bX\"(\" 36I\"\"\"\"#T" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "divisors(2 ^13 - 1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#<$\"%\">)\"\"\"" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "divisors(2^23 + 1);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#<&\"(4')Q)\"(.iz#\"\"\"\"\"$" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 595 29 "Here are the first 200 primes" }{TEXT -1 1 ":" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "s eq(ithprime(k), k=1..200);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6dw\"\"#\" \"$\"\"&\"\"(\"#6\"#8\"#<\"#>\"#B\"#H\"#J\"#P\"#T\"#V\"#Z\"#`\"#f\"#h \"#n\"#r\"#t\"#z\"#$)\"#*)\"#(*\"$,\"\"$.\"\"$2\"\"$4\"\"$8\"\"$F\"\"$ J\"\"$P\"\"$R\"\"$\\\"\"$^\"\"$d\"\"$j\"\"$n\"\"$t\"\"$z\"\"$\"=\"$\"> \"$$>\"$(>\"$*>\"$6#\"$B#\"$F#\"$H#\"$L#\"$R#\"$T#\"$^#\"$d#\"$j#\"$p# \"$r#\"$x#\"$\"G\"$$G\"$$H\"$2$\"$6$\"$8$\"$<$\"$J$\"$P$\"$Z$\"$\\$\"$ `$\"$f$\"$n$\"$t$\"$z$\"$$Q\"$*Q\"$(R\"$,%\"$4%\"$>%\"$@%\"$J%\"$L%\"$ R%\"$V%\"$\\%\"$d%\"$h%\"$j%\"$n%\"$z%\"$([\"$\"\\\"$*\\\"$.&\"$4&\"$@ &\"$B&\"$T&\"$Z&\"$d&\"$j&\"$p&\"$r&\"$x&\"$(e\"$$f\"$*f\"$,'\"$2'\"$8 '\"$<'\"$>'\"$J'\"$T'\"$V'\"$Z'\"$`'\"$f'\"$h'\"$t'\"$x'\"$$o\"$\"p\"$ ,(\"$4(\"$>(\"$F(\"$L(\"$R(\"$V(\"$^(\"$d(\"$h(\"$p(\"$t(\"$(y\"$(z\"$ 4)\"$6)\"$@)\"$B)\"$F)\"$H)\"$R)\"$`)\"$d)\"$f)\"$j)\"$x)\"$\"))\"$$)) \"$())\"$2*\"$6*\"$>*\"$H*\"$P*\"$T*\"$Z*\"$`*\"$n*\"$r*\"$x*\"$$)*\"$ \"**\"$(**\"%45\"%85\"%>5\"%@5\"%J5\"%L5\"%R5\"%\\5\"%^5\"%h5\"%j5\"%p 5\"%(3\"\"%\"4\"\"%$4\"\"%(4\"\"%.6\"%46\"%<6\"%B6\"%H6\"%^6\"%`6\"%j6 \"%r6\"%\"=\"\"%(=\"\"%$>\"\"%,7\"%87\"%<7\"%B7" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 596 33 "Here \+ is the 1000-th. prime number" }{TEXT -1 1 ":" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "ithprime(1000);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"%>z" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 597 42 "Here is the next prime after the number \+ 20" }{TEXT -1 1 ":" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "nextp rime(20);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#B" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 11 "and \+ here - " }{TEXT 598 23 "much more spectacularly" }{TEXT -1 26 " - is t he next prime after" }}{PARA 0 "" 0 "" {TEXT -1 63 "the (randomly-type d) number 9998777553210032992874366465554431:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "nextprime(9998777553210032992874366465554431);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"C*[abYmV(G*H.5Kbx()***" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 591 6 "Remark" }{TEXT -1 59 ". There is a lot of seriou s Mathematics going on behind the" }}{PARA 0 "" 0 "" {TEXT -1 56 "scen es in making that extremely fast computation ... !!!" }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 575 30 "Returning to RSA cryptography:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 15 "" 0 "" {TEXT 592 5 "The (" }{TEXT 576 1 "n" }{TEXT 577 2 ", \+ " }{TEXT 578 1 "e" }{TEXT 579 18 ") pair form the ' " }{TEXT 580 10 "p ublic-key" }{TEXT 593 1 " " }{TEXT 581 83 "' (the public \n \+ paint, as it were) and \n" }}{PARA 15 "" 0 "" {TEXT 582 1 "d" }{TEXT 583 10 " is the ' " }{TEXT 584 11 "p rivate-key" }{TEXT 585 34 " ' (the private paint, as it were)" }{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 14 "I will create " }{TEXT 265 23 "public and private keys" }{TEXT -1 20 " for myself (John = " }{TEXT 398 0 "" }{TEXT 399 1 "j" }{TEXT -1 16 " ), and will use:" }}{PARA 0 "" 0 "" {TEXT -1 1 " " }}{PARA 15 "" 0 "" {TEXT 391 2 "pj" }{TEXT -1 5 " and " }{TEXT 392 2 "qj" }{TEXT -1 11 " \+ to denote " }{TEXT 599 20 "my two chosen primes" }}{PARA 15 "" 0 "" {TEXT 393 2 "nj" }{TEXT -1 7 " - my '" }{TEXT 600 14 "public modulus" }{TEXT -1 19 "' - the product of " }{TEXT 394 2 "pj" }{TEXT -1 5 " and " }{TEXT 395 2 "qj" }{TEXT -1 0 "" }}{PARA 15 "" 0 "" {TEXT 396 2 "ej " }{TEXT -1 11 " to denote " }{TEXT 400 3 "my " }{TEXT 389 23 "public \+ encryption power" }}{PARA 15 "" 0 "" {TEXT 397 2 "dj" }{TEXT -1 11 " t o denote " }{TEXT 601 3 "my " }{TEXT 390 24 "private decryption power " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 602 13 "Firs t my two " }{TEXT 644 7 "secret " }{TEXT 642 6 "primes" }{TEXT -1 18 " (to keep matters " }{TEXT 401 6 "simple" }{TEXT -1 6 " I am " }{TEXT 266 3 "not" }{TEXT -1 27 " \n exercising " }{TEXT 643 4 " care" }{TEXT -1 31 " with respect to their choice):" }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 50 "pj := nextprime(1 0^49 + 654321); # 50 digit prime" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#> %#pjG\"SjVl+++++++++++++++++++++5" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "qj := nextprime(10^69 + 654321654321); # 70 digit pr ime" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#qjG\"ao^Wl@Vl+++++++++++++++ +++++++++++++5" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 603 23 "Next, my public modulus" }{TEXT -1 1 ":" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "nj := pj*qj; # the product of my secretly chosen prim es" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%#njG\"br8(>:x!)Q;G/+++++++++++ ++++^Wl@Vl++++jVl+++++++++++++++++++++5" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 604 45 "Next, to cho ose my public encryption power ' " }{TEXT 605 2 "ej" }{TEXT 606 3 " '. " }{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 30 "Recall from earlier that this " }{TEXT 645 2 "ej" }{TEXT -1 1 " " }{TEXT 652 14 "must be chosen" }{TEXT -1 17 " so as to satisf y" }}{PARA 0 "" 0 "" {TEXT -1 4 "the " }{TEXT 649 11 "requirement" } {TEXT -1 6 " that " }{TEXT 646 2 "ej" }{TEXT -1 6 " and (" }{TEXT 647 2 "pj" }{TEXT -1 13 " - 1) times (" }{TEXT 648 2 "qj" }{TEXT -1 18 " - 1) are not both" }}{PARA 0 "" 0 "" {TEXT -1 53 "divisible by some com mon whole number greater than 1." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 56 "Anyone familiar with the mathematics at s take here would" }}{PARA 0 "" 0 "" {TEXT -1 59 "know that one has a ve ry high chance of a successful choice" }}{PARA 0 "" 0 "" {TEXT -1 15 " if one chooses " }{TEXT 650 2 "ej" }{TEXT -1 43 " to be a reasonably-s ized, randomly-chosen " }}{PARA 0 "" 0 "" {TEXT -1 6 "prime." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 651 22 "I make an atte mpt with" }{TEXT -1 1 ":" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "ej := nextprime(1234321); " }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%#ejG\"(LVB\"" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 658 59 "Now I need to test that it satisfies the above requirement." }}{PARA 0 "" 0 "" {TEXT -1 24 "That requires two steps:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 661 5 "First" }{TEXT -1 31 " I need to calculate the Euler " }{TEXT 659 9 "phi-value" }{TEXT -1 7 " of my " }{TEXT 660 2 "nj" }{TEXT -1 1 ":" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "phi_nj := (pj - 1)*(qj - 1);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%'phi_njG\"br+4@\\kAj\"G/+++++++++++++++]Wl@Vl++++iVl+ ++++++++++++++++++++5" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" } }}{EXCHG {PARA 0 "" 0 "" {TEXT 664 6 "Second" }{TEXT -1 50 " I must te st to see that there is no whole number " }}{PARA 0 "" 0 "" {TEXT -1 33 "greater than 1 that divides both " }{TEXT 662 2 "ej" }{TEXT -1 5 " and " }{TEXT 663 6 "phi_nj" }{TEXT -1 10 ". That is" }}{PARA 0 "" 0 "" {TEXT -1 20 "achieved by using a " }{TEXT 669 15 "remarkable idea" }{TEXT -1 15 " - known as the" }{TEXT 666 1 " " }}{PARA 0 "" 0 "" {TEXT 667 19 "Euclidean algorithm" }{TEXT -1 33 " - that has come down to us from " }}{PARA 0 "" 0 "" {TEXT -1 51 "the renowned 3rd. century B.C. Greek mathematician," }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 665 0 "" }{TEXT 668 6 "Euclid" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 19 "The mathematics is " } {TEXT 670 6 "hidden" }{TEXT -1 22 " behind the following:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "igcd(ej, phi_nj);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6# \"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 671 0 "" }{TEXT 672 25 "A brief mathema tical note" }{TEXT 673 27 ". That '1' tells us that 1 " }{TEXT 682 2 " is" }{TEXT 683 34 "\nthe 'greatest common divisor' of " }{TEXT 674 2 " ej" }{TEXT 675 5 " and " }{TEXT 676 6 "phi_nj" }{TEXT 677 68 ", and\ns o there is no whole number greater than 1 which\ndivides both " } {TEXT 678 2 "ej" }{TEXT 679 5 " and " }{TEXT 680 6 "phi_nj" }{TEXT 681 2 ". " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 684 44 "Here are a few smaller illustrative examples" }{TEXT -1 1 ":" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "igcd(18, 14);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"#" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "igcd(15, 21);" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#\"\"$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "igcd(35, 27);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"\"" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 688 0 "" }{TEXT 256 45 "Next, to choose my private decryption po wer '" }{TEXT 685 4 " dj " }{TEXT 686 1 "'" }{TEXT 687 1 "." }{TEXT -1 19 "\n\nRecall that that " }{TEXT 690 8 "requires" }{TEXT -1 6 " th at " }{TEXT 691 2 "dj" }{TEXT -1 10 " have the " }{TEXT 695 8 "propert y" }{TEXT -1 5 " that" }}{PARA 0 "" 0 "" {TEXT -1 15 "the product of \+ " }{TEXT 692 2 "ej" }{TEXT -1 5 " and " }{TEXT 693 2 "dj" }{TEXT -1 18 " be a multiple of " }{TEXT 694 6 "phi_nj" }{TEXT -1 9 ", plus 1." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 19 "The com putation of " }{TEXT 696 2 "dj" }{TEXT -1 31 " is done by using a rema rkable " }}{PARA 0 "" 0 "" {TEXT -1 52 "consequence of the Euclidean a lgorithm - namely the " }}{PARA 0 "" 0 "" {TEXT 689 28 "extended Eucli dean Algorithm" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 260 "" 0 "" {TEXT -1 46 "The mathematics is hidden behind the fo llowing" }}{PARA 0 "" 0 "" {TEXT 697 16 "two calculations" }{TEXT -1 1 ":" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "igcdex(ej, phi_nj, xj, yj);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "dj := xj mod phi_nj; " }} {PARA 12 "" 1 "" {XPPMATH 20 "6#>%#djG\"ar(p\"=TY>+xy:&[EXdr/Cm%)[!zy6 1!yyjF68&\\]%4n9!41)\\>85'=L\")=dwcMS+S\\$G)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 9 "Thus, my \+ " }{TEXT 698 7 "private" }{TEXT -1 42 " decryption power is the (enorm ous) number" }}{PARA 0 "" 0 "" {TEXT -1 26 "828349 ... ... ... 181697. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 262 "" 0 "" {TEXT -1 21 "It \+ is something of a " }{TEXT 699 20 "needle in a haystack" }{TEXT -1 3 " !!!" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 19 "In fact, it is the " }{TEXT 700 4 "only" }{TEXT -1 22 " number between 1 and " }{TEXT 701 6 "phi_nj" }{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 9 "with the " }{TEXT 702 17 "required property" }{TEXT -1 1 "." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 267 51 " Making my public keys known (to the world at large)" }{TEXT -1 7 ", I \+ am " }}{PARA 0 "" 0 "" {TEXT -1 14 "now set up to " }{TEXT 270 7 "rece ive" }{TEXT -1 35 " messages from anyone who knows my " }}{PARA 0 "" 0 "" {TEXT -1 25 "public keys, and also to " }{TEXT 271 4 "send" } {TEXT -1 29 " messages messages to anyone " }}{PARA 0 "" 0 "" {TEXT -1 27 "who knows my public keys. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT 268 11 "For example" }{TEXT -1 46 ", let's say t hat you (Mary) wished to send me " }}{PARA 0 "" 0 "" {TEXT -1 14 "this message, " }{TEXT 269 20 "using my public keys" }{TEXT -1 23 " (it be ing understood, " }}{PARA 0 "" 0 "" {TEXT -1 64 "of course, that we ar e also using the agreed 'crypt/alphabet'): " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 30 " \+ " }{TEXT 402 30 "Meet at cinema, 9.30 P.M. Mary" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 703 26 "You - Mary - would do th is" }{TEXT -1 1 ":" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 272 5 "First" }{TEXT -1 43 " convert your message into numerical form, " }}{PARA 0 "" 0 "" {TEXT -1 30 "using the to_number procedure: " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "num1 := to_number(`Meet at cinema, 9.30 P.M. Mary`);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%num1G\"gnD=,R!G)R#G/QmDG1==I^S\"4.!37+3_]!R" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 277 4 "Next" }{TEXT -1 15 " you perform a " } {TEXT 279 17 "single encryption" }{TEXT -1 16 " [you are laying" }} {PARA 0 "" 0 "" {TEXT -1 28 "one coat of paint] using my " }{TEXT 273 6 "public" }{TEXT -1 18 " encryption power " }{TEXT 274 2 "ej" }{TEXT -1 2 ", " }}{PARA 0 "" 0 "" {TEXT -1 7 "and my " }{TEXT 275 6 "public " }{TEXT -1 9 " modulus " }{TEXT 276 2 "nj" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 15 "That involves:\n " }}{PARA 15 "" 0 "" {TEXT -1 21 "raising the number ' " }{TEXT 704 4 "num1" }{TEXT -1 31 " ' to the power of the \nnumber " }{TEXT 705 2 "e j" }{TEXT -1 11 ", and then " }}{PARA 15 "" 0 "" {TEXT -1 41 "calculat ing the remainder on division by " }{TEXT 706 2 "nj" }{TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 11 "That is a n " }{TEXT 707 32 "extraordinary computational feat" }{TEXT -1 17 ", a nd it exploits" }}{PARA 0 "" 0 "" {TEXT -1 46 "a fundamental mathemati cal construct known as " }{TEXT 708 22 "modular\nexponentiation" } {TEXT -1 12 ", using the " }{TEXT 709 20 "square-and-multiply " } {TEXT -1 10 "technique." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 710 74 "The mathematics is hidden in the following - incred ibly\nfast - calculation" }{TEXT -1 1 ":" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "enc1 := num1&^ej mod nj;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%%enc1G\"ar@@*)*e[c$4KTX[\"Qw zY37Pm/g9M--(o&>`]&>Xhx2:nl\"*))oEZ6mnkyK]i?zs8wo" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 278 23 "You send me that number" }{TEXT -1 32 " - enc1 - the encrypted form of " }}{PARA 0 "" 0 "" {TEXT -1 55 "the (ordinary) numerical form of the me ssage, and then " }}{PARA 0 "" 0 "" {TEXT -1 38 "I proceed to decrypt \+ that by using my " }{TEXT 280 7 "private" }{TEXT -1 12 " decryption " }}{PARA 0 "" 0 "" {TEXT -1 6 "power " }{TEXT 281 3 "dj." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 54 "That also entails a \+ modular exponentiation computation" }}{PARA 0 "" 0 "" {TEXT -1 62 "[it is actually the application of the private coat of paint]," }}{PARA 0 "" 0 "" {TEXT -1 51 "whereby the original numerical form of the text is " }{TEXT 711 9 "recovered" }}{PARA 0 "" 0 "" {TEXT -1 58 "by raisi ng the numerical form of the encrypted text to the" }}{PARA 0 "" 0 "" {TEXT -1 30 "power of the decryption power " }{TEXT 712 2 "dj" }{TEXT -1 22 ", and calculating the " }}{PARA 0 "" 0 "" {TEXT -1 25 "remainde r on division by " }{TEXT 713 3 "nj:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "dec1 := enc1&^dj mod nj; " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%dec1G\"gnD=,R!G)R#G/QmDG1==I^S \"4.!37+3_]!R" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 282 38 "Then I recover the original messa ge by" }{TEXT -1 1 ":" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "text1 := from_number(dec1);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%&text1G%?Meet~at~cinema,~9.30~P.M.~M aryG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 8 "Horray!!" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 4 "All " }{TEXT 283 5 "SEEMS" }{TEXT -1 46 " fine. \+ You have sent me an encrypted message, " }}{PARA 0 "" 0 "" {TEXT -1 24 "and I have decrypted it." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 4 "But " }{TEXT 291 3 "why" }{TEXT -1 2 " '" } {TEXT 284 5 "seems" }{TEXT -1 27 "'? [This brings us to the " }{TEXT 285 4 "crux" }{TEXT -1 17 " of the matter.] " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 59 "Well, you have used my public k ey to send me that message, " }}{PARA 0 "" 0 "" {TEXT 286 3 "BUT" } {TEXT -1 1 " " }{TEXT 287 6 "anyone" }{TEXT -1 1 " " }{TEXT 288 5 "cou ld" }{TEXT -1 29 " have sent me that message. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 403 40 "Anyone, that is, who kno ws my public key" }{TEXT -1 2 ". " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 1 "'" }{TEXT 289 3 "You" }{TEXT -1 2 "' " } {TEXT 290 21 "could be someone else" }{TEXT -1 6 " ... ." }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 59 "[I'm not finished \+ yet with the points I wish to make ... .]" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 37 "Equally I could send you a message . " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 23 "I \+ could do it by using " }{TEXT 292 15 "your public key" }{TEXT -1 17 " \+ (if you had one " }}{PARA 0 "" 0 "" {TEXT -1 15 "which I knew), " } {TEXT 293 3 "BUT" }{TEXT -1 38 " 'I' also could be someone else ... . \+ " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 61 "[I'm \+ still not finished with the points I wish to make ... .]" }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 2 "I " }{TEXT 294 5 "c ould" }{TEXT -1 33 " send you a message using my own " }{TEXT 295 7 "p rivate" }{TEXT -1 6 " key (" }{TEXT 296 8 "assuming" }{TEXT -1 1 " " } }{PARA 0 "" 0 "" {TEXT -1 45 "you know my public key), and I could do \+ that " }{TEXT 297 3 "NOT" }{TEXT -1 15 " by encrypting " }}{PARA 0 "" 0 "" {TEXT -1 61 "using my public encryption power (which anyway would require " }}{PARA 0 "" 0 "" {TEXT -1 44 "that you knew my private dec ryption power), " }{TEXT 298 3 "BUT" }{TEXT -1 15 " by encrypting " }} {PARA 0 "" 0 "" {TEXT -1 13 "using my own " }{TEXT 299 7 "private" } {TEXT -1 31 " decryption power to encrypt. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 300 11 "For example" }{TEXT -1 48 ", s uppose I want to send you (Mary) the message:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 10 " " }{TEXT 404 34 "Can't make it. Too much work. John" }}{PARA 0 "" 0 "" {TEXT -1 0 " " }}{PARA 0 "" 0 "" {TEXT -1 66 "[My wife would confirm that this is a ll too realistic an example.]" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 48 "First I convert my message into numerical form, " }}{PARA 0 "" 0 "" {TEXT -1 30 "using the to_number procedure: " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "num2 := to_number(`Can't make it. Too much work. John`);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%num2G\"_o93:O!G=\"=:B!)3.@8!e^h/G3#4!e56I,3# )[6!H" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 259 4 "Next" }{TEXT -1 13 " I perform a " }{TEXT 260 17 "single encryption" }{TEXT -1 3 ", " }{TEXT 301 3 "B UT" }{TEXT -1 10 " using my " }{TEXT 714 7 "private" }{TEXT -1 1 " " } }{PARA 0 "" 0 "" {TEXT -1 28 "decryption power dj, and my " }{TEXT 257 6 "public" }{TEXT -1 9 " modulus " }{TEXT 258 3 "nj:" }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "enc2 := num2&^dj mod nj; " }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%%enc2G\"ar( eg6_;0I&*\\BXH4OlO(p2LmA7?W^M@v7!Q#)f\"3o9-$fw')RTWf%plzf5%Q" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 " " {TEXT -1 54 "I send you that number - enc2 - the encrypted form of \+ " }}{PARA 0 "" 0 "" {TEXT -1 55 "the (ordinary) numerical form of the \+ message, and then " }}{PARA 0 "" 0 "" {TEXT 302 3 "you" }{TEXT -1 42 " then proceed to decrypt that by using my " }{TEXT 715 6 "public" } {TEXT -1 1 " " }}{PARA 0 "" 0 "" {TEXT -1 17 "encryption power " } {TEXT 257 2 "ej" }{TEXT -1 33 " [the paints have interchangeable" }} {PARA 0 "" 0 "" {TEXT -1 12 "properties]:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "dec2 := enc2&^ej mod nj;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%dec2G\"_o93:O!G=\"=:B!)3.@8 !e^h/G3#4!e56I,3#)[6!H" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 50 "and then you just recover the o riginal message by:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "text2 := from_number(dec2);" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#>%&text2G%CCan't~make~it.~Too~much~work.~JohnG" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 " " {TEXT -1 8 "Horray!!" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 16 "Once again, all " }{TEXT 303 5 "SEEMS" }{TEXT -1 6 " fine." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 9 " But why '" }{TEXT 304 5 "seems" }{TEXT -1 4 "'? " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 19 "Well, at least you " } {TEXT 305 4 "know" }{TEXT -1 30 " the message has come from me " }} {PARA 0 "" 0 "" {TEXT -1 54 "(since - in theory - ONLY I know MY priva te key), BUT " }}{PARA 0 "" 0 "" {TEXT -1 38 "ANYONE could also read t hat message. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 307 6 "Anyone" }{TEXT -1 11 ", that is, " }{TEXT 308 3 "who" } {TEXT -1 12 " (like you) " }{TEXT 306 19 "knows my public key" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 309 9 "Of course" }{TEXT -1 2 ", " }{TEXT 310 2 "if" }{TEXT -1 38 " you ha d your public and private keys " }{TEXT 311 4 "then" }{TEXT -1 1 " " } }{PARA 0 "" 0 "" {TEXT -1 52 "that problem could be avoided by my send ing you the " }}{PARA 0 "" 0 "" {TEXT -1 54 "above message using your \+ public encryption power ... ." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT 312 3 "BUT" }{TEXT -1 55 " then you couldn't be \+ sure the message is from me ... ." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 44 "[I hope you see what the problems are ... .]" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 62 "Wh ile we are at it - and before showing how all is resolved - " }}{PARA 0 "" 0 "" {TEXT -1 61 "I would like to divert briefly to illustrate wh at happens if " }}{PARA 0 "" 0 "" {TEXT -1 48 "someone ATTEMPTS to GUE SS my private decryption " }}{PARA 0 "" 0 "" {TEXT -1 43 "power, in an attempt to FORGE my signature:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 55 "Suppose they wished to send the same mess age as above, " }}{PARA 0 "" 0 "" {TEXT -1 33 "and went through the us ual steps:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "NUM2 := to_number(`Can't make it. Too much work. John `);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%NUM2G\"_o93:O!G=\"=:B!)3.@8! e^h/G3#4!e56I,3#)[6!H" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" } }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 36 "Let's say they choose the follow ing " }{TEXT 314 6 "forged" }{TEXT -1 1 " " }}{PARA 0 "" 0 "" {TEXT -1 13 "value for my " }{TEXT 315 7 "private" }{TEXT -1 23 " decryption power [such" }}{PARA 0 "" 0 "" {TEXT -1 26 "an attempt is, of course, " }{TEXT 716 6 "doomed" }{TEXT -1 10 ". They are" }}{PARA 0 "" 0 "" {TEXT -1 47 "trying to find that needle in that haystack!!]:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "D J_guess := 98877676655544333221110093465439876548765432;" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#>%)DJ_guessG\"MKaw[l()RaY$456ALVabmnx))*" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 717 17 "and now encrypted" }{TEXT -1 1 ":" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "ENC2 := NUM 2&^DJ_guess mod nj; " }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%%ENC2G\"ar% e:Mb9,*ol\"G\"\\q\")*e_5&[e0]3m;B,*R.pT\"o*zhrm^dTr+u'yK!4vgPSV'Rd(p4R #" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 50 "They send you that number, and you now proceed to " }}{PARA 0 "" 0 "" {TEXT -1 34 "(attempt to) decrypt it, using my " } {TEXT 313 7 "genuine" }{TEXT -1 1 " " }{TEXT 316 6 "public" }{TEXT -1 5 " key:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "DEC2 := ENC2&^ej mod nj; " }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%%DEC2G\"ar1JI#o#)[1&oOC%G!)>jE:7%y[mLo\">(o#HIr_\"RCA t`yo0P'\\Km6;&y^Nv\"H$*z%[\\Zo" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 56 "There is nothing appar ently untoward there, but now the " }}{PARA 0 "" 0 "" {TEXT -1 57 "gam e is up when you attempt to recover the original text:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "text2 \+ := from_number(DEC2);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%&text2G%fn@ UWVU~F[*IY_Y8p0x~Ke@_`^vxMoAmb]@|^u[@G|irV_OuZ|irE~b " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 317 41 "The forger would have wasted his/her time" }{TEXT -1 2 " . " }}{PARA 0 "" 0 "" {TEXT -1 24 "The message decrypts as " }{TEXT 405 12 "gobbledegook" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 743 0 "" }{TEXT 744 11 "Section Two" }{TEXT 745 72 ". How the RSA method is used to\n \+ provide a '" }{TEXT 746 17 "digital signature" } {TEXT 747 2 ".'" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 11 "One of the " }{TEXT 318 5 "MAJOR" }{TEXT -1 41 " applicat ions of public-key cryptography " }}{PARA 0 "" 0 "" {TEXT -1 18 "is th at it allows " }{TEXT 319 6 "SECURE" }{TEXT -1 10 " two-way '" }{TEXT 320 6 "signed" }{TEXT -1 16 "' communication " }}{PARA 0 "" 0 "" {TEXT -1 63 "between two parties who each have their own public and pr ivate " }}{PARA 0 "" 0 "" {TEXT -1 65 "keys (with, of course, an agree d system for converting text into " }}{PARA 0 "" 0 "" {TEXT -1 63 "num erical form). [That is what President Clinton and Mr. Ahern " }}{PARA 0 "" 0 "" {TEXT -1 65 "were doing in a very public way, but it is exac tly what everyone " }}{PARA 0 "" 0 "" {TEXT -1 33 "else is doing all t he time ... .]" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 57 "Let us have parties A and B with public and private keys \+ " }}{PARA 0 "" 0 "" {TEXT -1 1 "(" }{TEXT 322 2 "ea" }{TEXT -1 2 ", " }{TEXT 323 2 "na" }{TEXT -1 2 ", " }{TEXT 324 2 "da" }{TEXT -1 7 ") an d (" }{TEXT 325 2 "eb" }{TEXT -1 2 ", " }{TEXT 326 2 "nb" }{TEXT -1 2 ", " }{TEXT 327 2 "db" }{TEXT -1 38 "); then these parties can communi cate " }}{PARA 0 "" 0 "" {TEXT -1 25 "securely with each other." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 61 "Implicit \+ in all of this - of course - is the assumption that " }{TEXT 321 2 "na " }{TEXT -1 5 " and " }{TEXT 748 2 "nb" }{TEXT -1 1 " " }}{PARA 0 "" 0 "" {TEXT -1 31 "have been created so that they " }{TEXT 328 6 "canno t" }{TEXT -1 25 " be factored quickly!!. " }}{PARA 0 "" 0 "" {TEXT -1 55 "That will be discussed in final section, Section Three." }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 329 22 "This is \+ how it is done" }{TEXT -1 1 ":" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT 330 5 "First" }{TEXT -1 50 " let's create public and private keys for A and B " }}{PARA 0 "" 0 "" {TEXT -1 57 "[I am n ot going to be fussy about the choice of primes. " }}{PARA 0 "" 0 "" {TEXT -1 39 "I am merely choosing them to be 'big']:" }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 27 "I make up the first pri me, " }{TEXT 331 2 "pa" }{TEXT -1 28 ", so that it has 100 digits." }} {PARA 0 "" 0 "" {TEXT -1 55 "Because that can take as much as two minu tes to compute" }}{PARA 0 "" 0 "" {TEXT -1 56 "[depending on the speed of the computer being used] then" }}{PARA 0 "" 0 "" {TEXT -1 59 "to s ave time in my lecture I have privately calculated it, " }}{PARA 0 "" 0 "" {TEXT -1 63 "copied and pasted its value into a new region, and s imply that " }}{PARA 0 "" 0 "" {TEXT -1 58 "can take a while, dependin g on the speed of the computer]:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "# pa := nextprime(10^99 + 876543210 9876543211234567834567);" }{TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 44 "Calculated, copied, pasted, and reexecuted (" }{TEXT 440 23 "to save time in lecture" }{TEXT -1 2 "):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 107 "pa := 10000000000000000000000000000000000000000 00000000000000000000000000008765432109876543211234567835109;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%#paG\"_q4^$ycM7@Vl()4@Vl(3++++++++++++++++ +++++++++++++++++5" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 718 28 "And now for the second prime" } {TEXT -1 1 ":" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "# qa := ne xtprime(10^119 + 8765432109876543211234567834567);" }{TEXT -1 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 8 "As with " }{TEXT 442 2 "pa" }{TEXT -1 54 " this has been c alculated, copied, pasted, reexecuted " }{TEXT 443 12 "to save time" } {TEXT -1 1 ":" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 127 "qa := 100 0000000000000000000000000000000000000000000000000000000000000000000000 00000000000000008765432109876543211234567835227;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%#qaG\"crF_$ycM7@Vl()4@Vl(3+++++++++++++++++++++++++++ ++++++++++++++++5" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "" 0 "" {TEXT 719 30 "Now to form A's public modulus" } {TEXT -1 1 ":" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "na := pa*qa;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6# >%#naG\"fxVZeep(*\\lU@=Sn)G78**yuaG2+G$o2++++++++++++++++++F_$yc M7@Vlx?c@AA8@Vl()4@Vl(3+++++++++++++++++++++++++++++++++5" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 720 41 "Now to choose A's public encryption power" }{TEXT -1 2 ", " }} {PARA 0 "" 0 "" {TEXT 721 43 "followed by the other standard computati ons" }{TEXT -1 1 ":" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "ea := nextprime(12321);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#eaG\"&BB\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "phi_na := (pa - 1)*(qa - 1);" }}{PARA 12 "" 1 "" {XPPMATH 20 " 6#>%'phi_naG\"fx3W\">)G$*o<(QAIBc!H%Qn)G78**yuaG2+G$o2++++++++++++++++ ++E_$ycM7@Vln?c@AA8@Vl()4@Vl(3+++++++++++++++++++++++++++++++++5" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "igcdex(ea, phi_na, xa, ya); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"\"" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 20 "da := xa mod phi_na;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%#daG\"exNi6jcV/M8mWx[o/\\.ob3D44!=+-?2+!)zl(oiDa=02(pqcW'f]b?* G&y:)4Kw.!R8cq*o0(eWG1<&*=8m#**\\]*pgS_aZn&4F2[7%z=3 " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 722 53 "Now to do make similar choices and calculations for B" }}{PARA 0 "" 0 "" {TEXT -1 52 "(once again I have saved lecture ti me by calculating" }}{PARA 0 "" 0 "" {TEXT -1 44 "the two primes, copi ed, pasted, reexecuted):" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "# pb := nextprime(10^109 + 222876543210987654 3211234567834000); # 110 digits" }{TEXT -1 0 "" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 117 "pb := 100000000000000000000000000000000000000 0000000000000000000000000000000000000222876543210987654321123456783417 3;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%#pbG\"iqtT$ycM7@Vl()4@Vl(GA+++ ++++++++++++++++++++++++++++++++++5" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "# qb := nextprime(10^129 + 2228765432109876543211234567834000); # 130 digits " }{TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 137 "qb := 1 0000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000002228765432109876543211234567834077;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%#qbG\"]sxS$ycM7@Vl()4@Vl(GA+++++++++++++++ ++++++++++++++++++++++++++++++++5" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "nb := p b*qb;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%#nbG\"jy@L^9N4c&>y]Z`/Ir6kB T71y0mqCzO^`Rn\\+++++++++++++++++++++xS$ycM7@Vl " 0 "" {MPLTEXT 1 0 23 "eb := nextprime(54321);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#ebG\"&BV&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "phi_n b := (pb - 1)*(qb - 1);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%'phi_nbG \"jys]%)yViLJtax7\"=*ff'fBT71y0mqCzO^`Rn\\+++++++++++++++++++++wS$ycM7 @Vl2Fb@AANBVl()4@Vl(GA+++++++++++++++++++++++++++++++++++++5" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "igcdex(eb, phi_nb, xb, yb); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"\"" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 20 "db := xb mod phi_nb;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%#dbG\"iyjz$H_C@;_G7$>db+99<'=.CtstqwC1D?+/B$)3[*R8F?c.bhoi*[uX ]IB!Qrw?(pxA7l'=T^'*\\*pXQX(Q![&yQ_-(p)ocNtPu_wOOG/^ks>3*oHkk3h#zTRph# 3W6&z4t" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 261 "" 0 "" {TEXT 332 40 "So, A and B have public and private ke ys" }{TEXT -1 2 ", " }}{PARA 0 "" 0 "" {TEXT 723 26 "and we are now in business" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 " " 0 "" {TEXT -1 54 "Let B send the following message, in signed form t o A:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 3 " \+ " }{TEXT 333 68 "If we give you \2431,000,000 will we \n get the \+ government contract?" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 " " {TEXT -1 0 "" }{TEXT 334 34 "For technical mathematical reasons" } {TEXT -1 31 " - that can only be understood " }}{PARA 0 "" 0 "" {TEXT -1 38 "by someone who has really studied the " }{TEXT 256 11 "mathemat ics" }{TEXT -1 17 " of all of this -" }}{PARA 0 "" 0 "" {TEXT 724 21 " one must KEEP IN MIND" }{TEXT -1 34 " that since A's public modulus is " }{TEXT 335 4 "LESS" }{TEXT -1 1 " " }}{PARA 0 "" 0 "" {TEXT -1 10 " than B's (" }{TEXT 406 2 "na" }{TEXT -1 14 " is less than " }{TEXT 407 2 "nb" }{TEXT -1 25 "), then one must use the " }{TEXT 336 7 "SMAL LER" }{TEXT -1 1 " " }}{PARA 0 "" 0 "" {TEXT -1 8 "modulus " }{TEXT 337 5 "FIRST" }{TEXT -1 52 " [this just really means that the order in which the" }}{PARA 0 "" 0 "" {TEXT -1 33 "paints are applied is impor tant]:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 14 "The steps are:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 86 "B_num := to_number(`If we give you \2431,000,000 will we get the government contract?`); " }}{PARA 12 "" 1 "" {XPPMATH 20 " 6#>%&B_numG\"gr'3K5!=?9:.!3U^IT\"=0A:2!e!3?!3_q+eI-G@\"4B!QOO;QOO;[:2= _^-e?#42!eI-o]$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "length(B _num);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"$C\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 27 "Becau se B_num is less than " }{TEXT 408 2 "na" }{TEXT -1 23 ", then the mes sage can " }}{PARA 0 "" 0 "" {TEXT -1 13 "be sent as a " }{TEXT 338 12 "single block" }{TEXT -1 32 " (had that not been so, then one" }} {PARA 0 "" 0 "" {TEXT -1 52 "would have had to break up the numerical \+ form of the" }}{PARA 0 "" 0 "" {TEXT -1 52 "message into blocks of dig its, each having numerical" }}{PARA 0 "" 0 "" {TEXT -1 16 "value less \+ than " }{TEXT 725 2 "na" }{TEXT -1 1 ")" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 339 13 "B now does a " }{TEXT 340 17 "doubl e encryption" }{TEXT -1 1 ":" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 15 "" 0 "" {TEXT -1 101 "FIRST using A's smaller modulus, \nwith A's P UBLIC encryption power\n[so, laying on A's public paint],\n" }}{PARA 15 "" 0 "" {TEXT -1 99 "SECOND using B's own modulus, \nwith B's PRIVA TE decryption power\n[laying on B's own private paint]:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "B_first := B_n um&^ea mod na; # SMALLER modulus FIRST" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%(B_firstG\"ex3Eo-V9`,)*)=*pLs/[dr#p]'[AJ5:j$Rhc4r#=3!Q)>T(G9:r :zKIx77!)*GbAXbej0#e'zwm*zuc5I^?cwI22e#e(*3;^Tul^^H'G*)e%o&z\\A.we&RS8 #HIA(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "B_second := B_first&^db mod nb;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%)B_secondG\"iyQ/$)zeq]u%))4ku!eC;$*))=kaKp $*Rhig#=/CY'pipc-\\SE\\Fi(oh)*y/g4B%>OxcAW3%p4#>,bCb1X:$fh/$o1C\"=#4\" Qkx(4FV]?]p**ef#[cv-Mr^vp$etk-Km`egK:hGa" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 409 8 "B_second" } {TEXT -1 40 " is what A receives, and A now proceeds " }}{PARA 0 "" 0 "" {TEXT -1 10 "to do the " }{TEXT 341 17 "double decryption" }{TEXT -1 21 " as follows (simply \n" }{TEXT 342 9 "reversing" }{TEXT -1 21 " the last two steps):" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 15 "" 0 "" {TEXT -1 89 "FIRST using B's modulus, \nwith B's PUBLIC encryptio n power\n[laying on B's public paint], " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 15 "" 0 "" {TEXT -1 99 "SECOND using A's own modulus, \nwit h A's PRIVATE decryption power\n[laying on A's own private paint]:" }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "A_f irst := B_second&^eb mod nb;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%(A_f irstG\"ex3Eo-V9`,)*)=*pLs/[dr#p]'[AJ5:j$Rhc4r#=3!Q)>T(G9:r:zKIx77!)*Gb AXbej0#e'zwm*zuc5I^?cwI22e#e(*3;^Tul^^H'G*)e%o&z\\A.we&RS8#HIA(" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 31 "A_second := A_first&^da mod na;" }}{PARA 12 "" 1 " " {XPPMATH 20 "6#>%)A_secondG\"gr'3K5!=?9:.!3U^IT\"=0A:2!e!3?!3_q+eI-G @\"4B!QOO;QOO;[:2=_^-e?#42!eI-o]$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "from_number(A_second);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%inIf~we~give~you~|^u1,000,000~will~we~get~the~government~contra ct?G" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 343 32 "Now let A reply with the message" }{TEXT -1 2 ": " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 258 "" 0 "" {TEXT -1 123 " \+ You're joking! \2432,000,000 and it's yours. \n You'll recoup \+ all with contract. \n Leave cash usual place." }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 121 "A_num := to_number(`You're joking! \2432,000,000 \+ and it's yours.You'll recoup all with contract. Leave cash usual plac e.`);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%&A_numG\"_w#eI5?h,G65#>@!)3 >,.!e?7]!Q!3G3K5!=?9:.!)3?4B!G@6+o6_J]!=!G@\")=_6D)>=@:D!)>)3#4![S6+QO O;QOO;e:2ywS\"46:5!e!=)=_6&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "length(A_num);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"$'>" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "length(na);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"$>#" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 15 "Again, because " }{TEXT 410 5 "A_num" }{TEXT -1 14 " is less than " }{TEXT 411 2 "na" }{TEXT -1 7 ", then " }}{PARA 0 "" 0 "" {TEXT -1 29 "the message can be sent as a \+ " }{TEXT 344 12 "single block" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "A_first := A_num&^d a mod na; # SMALLER modulus first" }}{PARA 12 "" 1 "" {XPPMATH 20 "6# >%(A_firstG\"exBV2?#4,%>My<;)pO&*3zl,63j#HJ!*f3#Qz79Y%Gq5!z$f<**\\@7*p ,A;%z]`#)4\\@'Ry#Rqe0MG'ecK'eGC0B$=*eW<'\\V[H(3L3ASdDUJ&QXf[t+(=*e$>0C :V" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "A_second := A_first&^eb mod nb;" }}{PARA 12 " " 1 "" {XPPMATH 20 "6#>%)A_secondG\"iy8lo'R6!)[&4ucpZ$zW,\"QhIFNxJaj]) y*)f#)QFm^51rbX^1tPI@O2T)\\SX$\\K(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 51 "A_second is w hat B receives, and B now proceeds to " }}{PARA 0 "" 0 "" {TEXT -1 53 "decrypt A's message as follows (simply reversing the " }}{PARA 0 "" 0 "" {TEXT -1 16 "last two steps):" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "B_first := A_second&^db mod nb;" }} {PARA 12 "" 1 "" {XPPMATH 20 "6#>%(B_firstG\"exBV2?#4,%>My<;)pO&*3zl,6 3j#HJ!*f3#Qz79Y%Gq5!z$f<**\\@7*p,A;%z]`#)4\\@'Ry#Rqe0MG'ecK'eGC0B$=*eW <'\\V[H(3L3ASdDUJ&QXf[t+(=*e$>0C:V" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "B_secon d := B_first&^ea mod na;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%)B_secon dG\"_w#eI5?h,G65#>@!)3>,.!e?7]!Q!3G3K5!=?9:.!)3?4B!G@6+o6_J]!=!G@\")=_ 6D)>=@:D!)>)3#4![S6+QOO;QOO;e:2ywS\"46:5!e!=)=_6&" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 22 "from_number(B_second);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%]qYou're~joking!~|^u2,000,000~and~it's~yours.You'll~re coup~all~with~contract.~~Leave~cash~usual~place.G" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" } {TEXT 749 0 "" }{TEXT 750 13 "Section Three" }{TEXT 751 9 ". The '" }{TEXT 752 21 "factorization problem" }{TEXT 753 2 ".'" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 773 0 "" }{TEXT 757 22 "A c ritical observation" }{TEXT 774 3 ". " }{TEXT 771 29 "You may (indeed , should!) say" }{TEXT -1 2 ": " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 61 "\"I see how one creates those public and \+ private keys in RSA. " }}{PARA 0 "" 0 "" {TEXT -1 30 " One just does \+ the following:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 22 "1. Choose two primes " }{TEXT 758 1 "p" }{TEXT -1 5 " an d " }{TEXT 759 1 "q" }{TEXT -1 26 ", and form their product, " }{TEXT 760 1 "n" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 " " 0 "" {TEXT -1 33 "2. Choose an 'encryprion power' " }{TEXT 761 1 "e " }{TEXT -1 24 " (subject to a certain, " }}{PARA 0 "" 0 "" {TEXT -1 33 " minor technical constraint)." }}{PARA 0 "" 0 "" {TEXT -1 0 " " }}{PARA 0 "" 0 "" {TEXT -1 35 "3. Calculate a 'decryption power' " }{TEXT 762 1 "d" }{TEXT -1 2 ", " }{TEXT 768 5 "in a " }{TEXT 769 4 "v ery" }{TEXT 770 15 " particular way" }{TEXT -1 1 "." }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 10 "4. Make (" }{TEXT 763 1 "n" }{TEXT -1 5 ", e) " }{TEXT 764 6 "public" }{TEXT 767 1 " " } {TEXT -1 9 "but keep " }{TEXT 765 1 "d" }{TEXT -1 1 " " }{TEXT 766 7 " private" }{TEXT -1 3 ". " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 " " 0 "" {TEXT 776 6 "Surely" }{TEXT -1 7 " that '" }{TEXT 772 1 "d" } {TEXT -1 5 "' is " }{TEXT 775 10 "not really" }{TEXT -1 45 " private ( in the sense of remaining unknown)?" }}{PARA 0 "" 0 "" {TEXT -1 0 "" } }{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 777 6 "Surely" }{TEXT -1 24 " if you knew a person's " }{TEXT 778 6 "public" }{TEXT -1 0 "" }{TEXT 779 4 "-key" }{TEXT -1 10 " - their (" }{TEXT 780 1 "n" }{TEXT -1 2 ", " }{TEXT 781 1 "e" }{TEXT -1 18 ") pair - you could" }}{PARA 0 "" 0 " " {TEXT -1 66 "just perform a certain calculation, and compute the val ue of their" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 782 11 "private-ke y" }{TEXT -1 9 " - their " }{TEXT 783 1 "d" }{TEXT -1 48 " - and on in tercepting any messages sent to them" }}{PARA 0 "" 0 "" {TEXT -1 49 "p roceed to decrypt the message? \" [end of quote]" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 784 35 "I say to \+ you, show me what you mean" }{TEXT -1 23 ", and you might proceed" }} {PARA 0 "" 0 "" {TEXT -1 11 "as follows:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 45 "\"I know that Maple (say) has a co mmand that '" }{TEXT 785 7 "factors" }{TEXT -1 10 "' numbers," }} {PARA 0 "" 0 "" {TEXT -1 62 "meaning that it can break any whole numbe r down into its prime" }}{PARA 0 "" 0 "" {TEXT -1 14 "constituents. " }{TEXT 786 22 "Here are some examples" }{TEXT -1 1 ":" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "ifactor( 91); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*&-%!G6#\"\"(\"\"\"-F%6#\"#8F (" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 57 "which shows that 91 is the product of the primes 7 a nd 13" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "ifactor(637);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#*&)-%!G6#\"\"(\"\"#\"\"\"-F&6#\"#8\"\" \"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 62 "which shows that 637 is the product of the primes \+ 7, 7 and 13." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 27 "And consider the following:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "ifactor(509429407491696281) ;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*&-%!G6#\"*8FVl(\"\"\"-F%6#\"*PVa l'F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 6 "which " }{TEXT 790 5 "means" }{TEXT -1 47 " that 5 09429407491696281 is the product of the " }}{PARA 0 "" 0 "" {TEXT -1 8 "primes " }{XPPEDIT 18 0 "765432713;" "6#\"*8FVl(" }{TEXT -1 6 " an d " }{XPPEDIT 18 0 "665544337;" "6#\"*PVal'" }{TEXT -1 9 ", and so " }{TEXT 787 2 "if" }{TEXT -1 9 " someone " }}{PARA 0 "" 0 "" {TEXT -1 16 "announced their " }{TEXT 791 6 "public" }{TEXT -1 2 " (" }{TEXT 788 1 "n" }{TEXT -1 2 ", " }{TEXT 789 1 "e" }{TEXT -1 9 ") to be (" } {XPPEDIT 18 0 "509429407491696281;" "6#\"3\"G'p\"\\2%H%4&" }{TEXT -1 2 ", " }{XPPEDIT 18 0 "8779;" "6#\"%z()" }{TEXT -1 2 ")," }}{PARA 0 " " 0 "" {TEXT -1 42 "then anyone could calculate that person's " } {TEXT 792 7 "private" }{TEXT -1 1 " " }{TEXT 793 1 "d" }{TEXT -1 10 ", and thus" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 794 41 "be able to d ecrypt that person's messages" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 795 36 "One would just do these \+ calculations" }{TEXT -1 1 ":" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "p := 765432713;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"pG\"*8FVl(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "q := 665544337;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>% \"qG\"*PVal'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "e := 8779; " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"eG\"%z()" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "igcdex(e, (p-1)*(q-1), x, y);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "d := x mod (p-1)*(q-1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"dG \"2>G9%RXq]9" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 32 "And that's all there is to it!! " }} {PARA 0 "" 0 "" {TEXT -1 19 "Given the value of " }{TEXT 806 1 "n" } {TEXT -1 37 ", one simply factors it, thus finding" }}{PARA 0 "" 0 "" {TEXT -1 18 "the values of the " }{TEXT 807 1 "p" }{TEXT -1 9 " and th e " }{TEXT 808 1 "q" }{TEXT -1 27 ", and from that - using the" }} {PARA 0 "" 0 "" {TEXT -1 10 "value of (" }{TEXT 810 1 "p" }{TEXT -1 7 " - 1)*(" }{TEXT 811 1 "q" }{TEXT -1 40 " - 1) - one calculates the va lue of the " }}{PARA 0 "" 0 "" {TEXT 809 1 "d" }{TEXT -1 45 ", and tha t's it. Decrypt!!\" [end of quote.]" }}{PARA 0 "" 0 "" {TEXT -1 0 " " }}{PARA 0 "" 0 "" {TEXT 796 33 "I would completely agree with you" } {TEXT -1 21 ", but would draw your" }}{PARA 0 "" 0 "" {TEXT -1 21 "att ention now to the " }{TEXT 805 13 "crucial point" }{TEXT -1 2 ": " } {TEXT 800 22 " all of that depended " }}{PARA 0 "" 0 "" {TEXT 801 62 " on your being able to recover the values \nof those two primes " } {TEXT 797 1 "p" }{TEXT 802 5 " and " }{TEXT 798 1 "q" }{TEXT -1 1 " " }{TEXT 803 19 "from the value \nof " }{TEXT 799 1 "n" }{TEXT 804 1 ". " }{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 812 0 "" }{TEXT 813 11 "Major point" }{TEXT 814 1 "." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 15 "" 0 "" {TEXT -1 0 " " }{TEXT 815 11 "Multiplying" }{TEXT 817 28 " big numbers isn't a prob lem" }}{PARA 15 "" 0 "" {TEXT -1 0 "" }{TEXT 816 4 "BUT " }{TEXT 818 9 "factoring" }{TEXT 819 76 " big numbers is!! More precisely,\nfactor ing certain BIG numbers is a problem" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 316 "9999999999999999999999999999988888888888888888888888 7777777777777777777777777777777777777766666666666666666666666666655555 55555555555555555555444444444444444444443333333333333333*2222222222222 2222222221111111111111111111111111111110000000000000000000000000555555 55555555555555555555333333333333333333333333333333333;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#\"e^l*))))))))))))))=&=&=&=&=&=XW2uS2uSFQ\\grKU'3` (RGk3jzl3666Jv>k3`(4Kv\\(>1XB,zcM# f#f8pCvgH'H'H'Hw)4Ka'3`U'H'H'H'H'H'H'H'>k3`(>k3`(>k3666@AAAAAAAAAA#" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 187 "length(999999999999999999 9999999999988888888888888888888888777777777777777777777777777777777777 7766666666666666666666666666655555555555555555555555554444444444444444 44443333333333333333);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"$y\"" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 145 "length(22222222222222222222 2211111111111111111111111111111100000000000000000000000005555555555555 5555555555555333333333333333333333333333333333);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"$O\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" } }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 58 "There we saw that the product of one 178-digit number and " }}{PARA 0 "" 0 "" {TEXT -1 51 "a 136-digit number was calculated almost instantly." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 51 "Now let us look at a succession of multiplications," }}{PARA 0 "" 0 "" {TEXT -1 33 "and corresponding fa ctorizations:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "p1 := next prime(38899887766);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#p1G\",4y))** )Q" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "q1 := nextprime(64466 887766);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#q1G\",\"y()oYk" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "n1 := p1*q1; length(n1);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%#n1G\"7H='HHw?qax]#" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#A" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "ifactor(n1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*&-%!G6#\",\"y()oYk\" \"\"-F%6#\",4y))**)QF(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "p2 := nextprime(738899887 766);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#p2G\"-(y())**)Q(" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "q2 := nextprime(638899887766 );" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#q2G\"-zx))**)Q'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "n2 := p2*q2; length(n2);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#n2G\"9t]l#**HqQbI3s%" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#C" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "ifac tor(n2);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*&-%!G6#\"-zx))**)Q'\"\"\" -F%6#\"-(y())**)Q(F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "p3 := nextprime(55388998877 66);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#p3G\".xx))**)Qb" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "q3 := nextprime(3138899887766);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%#q3G\".,y))**)QJ" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "n3 := p3*q3; length(n3);" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#>%#n3G\";x$38z'>%GOA0'Q<" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#E" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "ifac tor(n3);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*&-%!G6#\".,y))**)QJ\"\"\" -F%6#\".xx))**)QbF(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 2 "I " }{TEXT 823 5 "could" }{TEXT -1 44 " continue doing those sorts of calculations," }}{PARA 0 "" 0 "" {TEXT -1 50 "each taking a little longer than the previuos one," }} {PARA 0 "" 0 "" {TEXT -1 42 "but I am going to leap forward somewhat t o" }}{PARA 0 "" 0 "" {TEXT -1 46 "present you with this number - rathe r a famous" }}{PARA 0 "" 0 "" {TEXT -1 24 "one in the literature - " } }{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 19 " \+ " }{TEXT 825 4 "the " }{TEXT 824 8 "'RSA_129" }{TEXT 826 8 "' number" }{TEXT -1 1 ":" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 141 "RSA_129 := 11438162575788886766923 5779976146612010218296721242362562561842935706935245733897830597123563 958705058989075147599290026879543541;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%(RSA_129G\"\\sTNazo-!H*fZ^2*)*e]qeRcBrfIy*QtX_$pqNH%=ciDOU7s'H=-, 7m9w*zdBpw')))yvD;Q9\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "l ength(RSA_129);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"$H\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 15 "I am certainly " }{TEXT 828 3 "NOT" }{TEXT -1 32 " going to att empt to factor it!!" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 " " {TEXT -1 54 "It first came to public attention in Martin Gardiner's " }}{PARA 0 "" 0 "" {TEXT -1 48 "much read column in the August 1997 i ssue of the" }}{PARA 0 "" 0 "" {TEXT 827 19 "Scientific American" } {TEXT -1 2 ". " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 46 "Rivest, Shamir and Adleman (of RSA fame) threw" }}{PARA 0 "" 0 "" {TEXT -1 52 "this number out as a challenge to be factored. \+ Given" }}{PARA 0 "" 0 "" {TEXT -1 48 "the then state of mathematical k nowledge (as far" }}{PARA 0 "" 0 "" {TEXT -1 47 "as factoring was conc erned) and computer power," }}{PARA 0 "" 0 "" {TEXT -1 51 "they estima ted that it would take some 20,000 years" }}{PARA 0 "" 0 "" {TEXT -1 49 "to factor it, and thereby decrypt a message which" }}{PARA 0 "" 0 "" {TEXT -1 36 "they had encrypted using it as the '" }{TEXT 829 1 "n " }{TEXT -1 11 "' part of a" }}{PARA 0 "" 0 "" {TEXT -1 15 "public mod ulus." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 50 " Briefly, a method known as the 'Quadratic Sieve' -" }}{PARA 0 "" 0 "" {TEXT -1 42 "introduced in 1981 by the US mathematician" }}{PARA 0 "" 0 "" {TEXT -1 43 "Carl Pomerance - together with thousands of" }} {PARA 0 "" 0 "" {TEXT -1 43 "computers worldwide (organised by the Dut ch" }}{PARA 0 "" 0 "" {TEXT -1 45 "mathematician Arjen Lenstra) - fact ored it by" }}{PARA 0 "" 0 "" {TEXT -1 43 "April 1994, and decrypted t he RSA-encrypted" }}{PARA 0 "" 0 "" {TEXT -1 36 "message (which, incid entally, was: \"" }{TEXT 830 10 "The magic " }}{PARA 0 "" 0 "" {TEXT 831 30 "words are squeamish ossifrage." }{TEXT -1 2 "\")" }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 " " {TEXT -1 38 "Lenstra, and his co-workers found that" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 832 7 "RSA_129" }{TEXT -1 33 " was the product of the two prime" }}{PARA 0 "" 0 "" {TEXT -1 39 "numbers (I show them individually, then" }}{PARA 0 "" 0 "" {TEXT -1 42 "their produst, and then show their product" }}{PARA 0 "" 0 "" {TEXT -1 19 "really is RSA _129):" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "f1 := 34905295108476509491478496199038981334177646384 93387843990820577;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#f1G\"[ox0#3*R %yQ$\\QYw'\\y9\\4lZ3^H0\\$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "length(f1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#k" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 72 "f2 := 327691329932667095499619881908344614131776 42967992942539798288533;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%#f2G\"\\ oL&)G)zRD%H*z'HkxJThW$3>))>'*\\&4nE$*H8pF$" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 11 "length(f2);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#l " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 6 "f1*f2;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#\"\\s TNazo-!H*fZ^2*)*e]qeRcBrfIy*QtX_$pqNH%=ciDOU7s'H=-,7m9w*zdBpw')))yvD;Q 9\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "RSA_129 - f1*f2;" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"!" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 47 "If I were to \+ foolishly enter the Maple command:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "# ifactor(RSA_129);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 55 "then the time r would stay on for MANY, MANY years ... ." }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 833 0 "" }{TEXT 834 8 "Question" }{TEXT 835 40 ". So, it it just a ma tter of mere size?" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 836 0 "" }{TEXT 837 6 "Answer" }{TEXT 838 19 ". N o. Size is only " }{TEXT 839 4 "part" }{TEXT 840 16 " of the problem: " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 842 29 "I am going to create a number" }{TEXT -1 32 " - which I will call by the n ame" }}{PARA 0 "" 0 "" {TEXT -1 52 "'beyond_RSA_129' - which will have these properties:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 15 "" 0 " " {TEXT -1 15 "it will be the " }{TEXT 841 7 "product" }{TEXT -1 26 " \+ of two primes 'P' and 'Q'" }}{PARA 15 "" 0 "" {TEXT -1 82 "I will choo se P to be f2 (the greater of the two \nprimes whose product is RSA_12 9)" }}{PARA 15 "" 0 "" {TEXT -1 37 "I will choose Q to be greater than P\n" }}{PARA 0 "" 0 "" {TEXT -1 54 "Those choices will automatically \+ make 'beyond_RSA_129'" }}{PARA 0 "" 0 "" {TEXT -1 41 "be greater than \+ RSA_129 (hence the name)." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 " " 0 "" {TEXT -1 25 "This is how I will do it:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "P := f2;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"P G\"\\oL&)G)zRD%H*z'HkxJThW$3>))>'*\\&4nE$*H8pF$" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 55 "I am c hoosing 'Q' to be next prime after the prime 'P'," }}{PARA 0 "" 0 "" {TEXT -1 53 "and to save computation time in my lecture I do this:" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "# Q := nextprime(P);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"QG\"\\o$z)G)zRD%H*z'HkxJThW$3>))>' *\\&4nE$*H8pF$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "Q := 3276 9132993266709549961988190834461413177642967992942539798288793;" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"QG\"\\o$z)G)zRD%H*z'HkxJThW$3>))>' *\\&4nE$*H8pF$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "beyond_RSA_129 := P*Q;" }} {PARA 12 "" 1 "" {XPPMATH 20 "6#>%/beyond_RSA_129G\"]sp1JuM]NbU2BkwXoB U1L*)*ooh&pN-&Q&H@y7.!R&>l$>]e=!o&om&ySVAsi[v%>3SIr2;Q2\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "length(beyond_RSA_129);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"$I\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 50 "But now I show you that that number can b e QUICKLY" }}{PARA 0 "" 0 "" {TEXT -1 20 "factored as follows:" }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 213 "Fermat_factor:=proc(n,start,finish) \nlocal k, s;\nreadlib(iss qr):\nfor k from start to finish do\nif issqr(n+k^2) then\ns:=sqrt(n+k ^2); \nlprint(n,`factors as the product of`,\ns-k,`and`,s+k); \nRETURN ()\nfi \nod \nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "Fermat_factor(beyond_RSA_1 29, 0, 300);" }}{PARA 6 "" 1 "" {TEXT -1 300 "107381607713040081947548 6272224340785666856801858501936519539003127821295385023569561686898933 064223684576642307425535503474310669 factors as the product of 327 69132993266709549961988190834461413177642967992942539798288533 and \+ 32769132993266709549961988190834461413177642967992942539798288793" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 843 37 "An almost instantaneous factorisation" }{TEXT -1 2 "!!" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 47 "How was that possible? It would not be possible" }}{PARA 0 "" 0 "" {TEXT -1 54 "to go into the exact details here in a public lecture," }}{PARA 0 "" 0 "" {TEXT -1 55 "but suffice it to say that it involves little mor e than" }}{PARA 0 "" 0 "" {TEXT -1 51 "elementary school work (IF I ha ve time I may ... )." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 " " {TEXT -1 7 "What I " }{TEXT 848 12 "will let out" }{TEXT -1 28 " how ever is that the success" }}{PARA 0 "" 0 "" {TEXT -1 28 "was whooly de pendant on the " }{TEXT 847 8 "CRITICAL" }{TEXT -1 5 " fact" }}{PARA 0 "" 0 "" {TEXT -1 20 "that the two primes " }{TEXT 844 7 "P and Q" } {TEXT -1 19 " - although large -" }}{PARA 0 "" 0 "" {TEXT 845 34 "are \+ relatively close to each other" }{TEXT -1 1 ":" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 6 "Q - P;" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#\"$g#" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 53 "What - though - if one doesn't choose two primes that" }}{PARA 0 "" 0 "" {TEXT -1 54 "are relatively close to each other? Suppose one choose" }}{PARA 0 "" 0 "" {TEXT -1 39 "them so that they were quite far apart?" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 32 "That's what I'm now going to do." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 53 "This time I will make up another number - I will call" }} {PARA 0 "" 0 "" {TEXT -1 47 "it 'way_beyond_RSA_129' - which will have these" }}{PARA 0 "" 0 "" {TEXT -1 11 "properties:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 15 "" 0 "" {TEXT -1 15 "it will be the " }{TEXT 256 7 "product" }{TEXT -1 28 " of two primes 'P1' and 'Q1'" }}{PARA 15 "" 0 "" {TEXT -1 89 "I will still choose P1 to be f2 (the greater o f the two \nprimes whose product is RSA_129)" }}{PARA 15 "" 0 "" {TEXT -1 44 "I will choose Q1 to be MUCH greater than P1\n" }}{PARA 0 "" 0 "" {TEXT -1 25 "This is how I will do it:" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 9 "P1 := f2;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>% #P1G\"\\oL&)G)zRD%H*z'HkxJThW$3>))>'*\\&4nE$*H8pF$" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 30 "To \+ save computation time in my" }}{PARA 0 "" 0 "" {TEXT -1 18 "lecture I \+ do this:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 126 "# Q1 := nextpr ime(447011546151268434089125713812505111007680070028290501581908009237 0422104067183317016903679999999999999630);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%#Q1G\"eq,+++++++o.p,e,0HG+2!o2560D\"QrD \"*3M%o7:Y:,Z%" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 113 "Q1 := 44 7011546151268434089125713812505111007680070028290501581908009237042210 4067183317016903680000000000000001;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6 #>%#Q1G\"eq,+++++++o.p,e,0HG+2!o2560D\"QrD\"*3M%o7:Y:,Z% " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 28 "way_beyond_RSA_129 := P1*Q1;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%3way_beyond_RSA_129G\"fuL&)G)zRD%HVpCbsYb#)Ru!Q!GW T6P5wel`Cmlbwq!fyFs.Gl$e#>x\\Ap**GclMgPVDM?!Rdxfw1egT\\EB61'[pc`!3=[Y \"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "length(way_beyond_RSA_129);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"$r\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "way_beyond_RSA_129 - beyond_RSA_129;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#\"fuky(RKOqS2?;5f4q)e(zwW\"QdCbnutt6C.)GDlo62U3AX4&osD:>%)[u<+2r3%H .&HETd$o'fw1egT\\EB61'[pc`!3=[Y\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 38 "But that MUCH LARGER number can now be" }}{PARA 0 "" 0 "" {TEXT -1 31 "QUICKLY fact ored by doing this:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 304 "Pollard:=proc(n)\nlocal a,k;\na[1]:=2:\n for k from 2 while igcd(n,a[k-1]-1 mod n)=1 \ndo a[k]:=a[k-1]&^k mod n od;\nlprint(n,`is the PRODUCT of`, \+ igcd( n, a[k-1]-1 mod n), `and`, \nn/igcd(n, a[k-1]-1 mod n))\nend:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "Pollard(way_beyond_RSA_129); " }}{PARA 6 "" 1 "" {TEXT -1 374 "146481808053566948606112326494160580 6765977573902034254337603465562899692249771925836528037227785907076556 56624536558761037114144280380743982554672552469432942539798288533 is the PRODUCT of 4470115461512684340891257138125051110076800700282905 015819080092370422104067183317016903680000000000000001 and 3276913 2993266709549961988190834461413177642967992942539798288533" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 846 12 "WONDERFUL!!!" }{TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 63 "The mathemati cal ideas behind the success of that factorisation" }}{PARA 0 "" 0 "" {TEXT -1 64 "are due to a British mathematician called John Pollard (h e lives" }}{PARA 0 "" 0 "" {TEXT -1 58 "outside Reading), and were pub lished by him in 1974 in the" }}{PARA 0 "" 0 "" {TEXT -1 56 "Mathemati cal Proceedings of the Cambridge Philosophical " }}{PARA 0 "" 0 "" {TEXT -1 60 "Society, in a now famous paper. The method he develops th ere" }}{PARA 0 "" 0 "" {TEXT -1 31 "has become known as 'Pollard's " } {TEXT 849 12 "p - 1 method" }{TEXT -1 19 "', and with reason:" }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 61 "In that p aper he expounds a very beautiful idea which enables" }}{PARA 0 "" 0 " " {TEXT -1 55 "one to factor a number, one of whose prime factors 'p' \+ " }{TEXT 850 7 "is such" }}{PARA 0 "" 0 "" {TEXT 851 4 "that" }{TEXT -1 27 " the number p - 1 has only " }{TEXT 852 5 "SMALL" }{TEXT -1 15 " prime factors." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 54 "That is WHY I was able so quickly to factor the number" } }{PARA 0 "" 0 "" {TEXT -1 52 "'way_beyond_RSA_129. Look at how its pri me factor Q1" }}{PARA 0 "" 0 "" {TEXT -1 3 "is " }{TEXT 853 10 "struct ured" }{TEXT -1 1 ":" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "ifactor(Q1 - 1);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#*L)-%!G6#\"\"#\"#q\"\"\")-F&6#\"\"$\"#MF*)-F&6#\"\"&\"# ;F*)-F&6#\"\"(\"#6F*)-F&6#F9\"\"'F*)-F&6#\"#8F3F*)-F&6#\"#<\"\"%F*)-F& 6#\"#>F.F*)-F&6#\"#BF.F*)-F&6#\"#HF(F*)-F&6#\"#JF(F*-F&6#\"#P\"\"\"-F& 6#\"#TFZ-F&6#\"#VFZ-F&6#\"#ZFZ-F&6#\"#`FZ-F&6#\"#fFZ-F&6#\"#hFZ-F&6#\" #nFZ-F&6#\"#rFZ-F&6#\"#tFZ" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 57 "Look at all those SMALL pr imes: 2, 3, 5, ... , 71 and 73." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 42 "I'll let you in on my secret. No, I won't ." }}{PARA 0 "" 0 "" {TEXT -1 42 "It would spoil the fun (though some \+ of you" }}{PARA 0 "" 0 "" {TEXT -1 14 "may see ... )." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 59 "Whereas look at the tw o prime factors - f1 and f2 - of the " }}{PARA 0 "" 0 "" {TEXT -1 36 " RSA_129 number; see how they behave:" }{TEXT 854 0 "" }{TEXT -1 0 "" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "ifactor(f1 - 1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*()-%!G6#\"\"#\"\"&\"\"\")-F&6#\"\"$F(F*-F&6 #\"inF\"o\\7T?5G$QsOuSUxdtmLw1pn()[8%*)>@\"\"\"\"" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 16 "ifactor(f2 - 1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#*()-%!G6#\"\"#F(\"\"\"-F&6#\"#T\"\"\"-F&6#\"jn8w'[vW=w( [U!\\k$)fp8$Q_*QHd/#4Va'y6)*>F-" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 46 "Rivest, Shamir and Adl eman knew what they were" }}{PARA 0 "" 0 "" {TEXT -1 51 "doing in choo sing their two primes to make up their" }}{PARA 0 "" 0 "" {TEXT -1 17 "129 digit number." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 855 0 "" }{TEXT 856 23 "An attempt at a summary" }{TEXT 857 54 ". The current security of the RSA\nmethod rests on the \+ " }{TEXT 858 35 "general difficulty of factorisation" }{TEXT 859 56 " \+ ... .\nBesides the Pollard p-1 method there is also his " }{TEXT 860 4 "rho-" }{TEXT 861 16 "method\n(aka his " }{TEXT 862 11 "Monte Carlo " }{TEXT 863 37 " method), and there is the Pomerance\n" }{TEXT 864 16 "quadratic sieve " }{TEXT 865 26 "method, Hendrik Lenstra's " } {TEXT 866 14 "elliptic curve" }{TEXT 867 47 " method,\nand the current dominant method - the " }{TEXT 868 19 "Number Field Sieve " }{TEXT 869 617 "method\n(introduced by Pollard, and added to by many others) \n\nI hope there is enough here for someone who has not\nbeen at my pu blic talk to be able to follow this.\n\nDetails concerning the Fermat \+ factorisation method,\nand the Pollard 'p-1' method, may be seen in Ma ple\nworksheets of mine which are available off the Web\nat the US Nav al Academy on David Joyner's:\n\n http://web.usna.navy.mil/~wdj/cr ypto.htm\n\nWhen my College has its own Web site I will make\nmany mor e such Maple documents available.\n\nFinally, all of the above, and mu ch, much more\nbesides, is studied by my 3rd. year B.Ed. and B.A.\nstu dents in their " }{TEXT 871 30 "Number Theory and Cryptography" } {TEXT 872 38 "\ncourse here in St. Patrick's College." }}{PARA 0 "" 0 "" {TEXT 870 44 " ______________________" }}} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}} {MARK "268 4 15" 556 }{VIEWOPTS 1 1 0 1 1 1803 }